Unix username что делать
Как я могу изменить свое имя пользователя?
Некоторое время назад, когда я установил Ubuntu, я выбрал довольно глупое имя пользователя для своей учетной записи, которое я больше не хочу использовать.
Как я могу изменить это (включая имя моего домашнего каталога и имя в терминале) без потери настроек для приложений?
Как мне сохранить разрешения и мои ключи для различных аутентификаций (например, электронная почта, SSH, GPG и т. Д.)?
Какие настройки могут быть потеряны, если я изменю свое имя пользователя?
8 ответов
Unix-подобные операционные системы отделяют имя пользователя от имени пользователя, поэтому вы можете смело менять имя, не влияя на идентификатор. Все разрешения, файлы и т. Д. Привязаны к вашей личности (uid), а не к вашему имени пользователя.
Для управления каждым аспектом пользовательской базы данных вы используете usermod инструмент.
Чтобы изменить имя пользователя (вероятно, лучше сделать это без входа в систему):
Это, однако, не переименовывает домашнюю папку.
Чтобы изменить домашнюю папку, используйте
после того, как вы изменили имя пользователя.
Некоторая дополнительная информация для таких неопытных пользователей, как я:
Поскольку у меня есть только ОДНА учетная запись пользователя (администратор), он не позволил бы мне изменить имя пользователя («Вы уже вошли в систему» был ответ в TTY1 ( Ctrl + Alt + F1 ). Чтобы обойти это:
Войдите со своими старыми учетными данными и добавьте нового пользователя, например, «временный» в TTY1:
Разрешите временному пользователю запускать sudo, добавив его в группу sudo:
🐧 Как правильно изменить имя пользователя на Linux
В этом кратком руководстве объясняется, как правильно изменить имя пользователя в операционной системе Linux.
Э то руководство также описывает, как изменить имя хоста, группу пользователей, домашний каталог, а также владельца и группу этого каталога на нового пользователя вместе со всеми файлами.
Если вы когда-нибудь искали правильный способ изменить имя пользователя в Linux, не нарушая существующие файлы конфигурации, далее объясняется, как это сделать!
Предупреждение:
Я бы не рекомендовал это в производственной среде.
Всегда лучше просто создать нового пользователя, а не переименовывать существующего.
Потому что переименование имени пользователя вызовет так много проблем, если на домашний каталог старого пользователя ссылаются некоторые другие файлы конфигурации.
Поэтому я рекомендую вам создать нового пользователя и перенести данные старого пользователя на нового.
Если это недавно установленная система или просто тестовая система, вы можете изменить имя пользователя, как описано ниже.
Правильный способ изменить имя пользователя на Linux
Изменить имя хоста в Fedora и других дистрибутивах Linux очень просто!
Войдите в систему как пользователь sudo или root.
Я вошел в систему как пользователь root.
Измените текущее имя хоста с помощью команды hostnamectl, как показано ниже:
Вы также можете проверить это с помощью команды hostname:
В этом руководстве я использовал одно и то же имя для пользователя и группы.
Вы можете использовать другое имя, если хотите.
А затем изменил имя пользователя с помощью команды usermod, как показано ниже:
Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.
Наконец, назначьте привилегии sudo новому пользователю с помощью команды:
Если вы используете системы на основе Debian, такие как Ubuntu, вы можете предоставить пользователю разрешения sudo с помощью этой команды:
Пользователи и группы в Linux
Различные типы пользователей
В этой главе вы узнаете, как создавать и управлять учетными записями пользователей. Прежде чем углубляться в детали управления пользователями, вы узнаете, как пользователи используются в среде Linux.
Пользователи в Linux
Чтобы получить информацию об учетной записи пользователя, вы можете использовать команду id. При использовании этой команды из командной строки вы можете увидеть подробности о текущем пользователе.
Вы также можете использовать его в других учетных записях пользователей, чтобы получить подробную информацию об этих учетных записях.
Ниже показан пример вывода команды.
Работая как root
Поскольку учетная запись root очень полезна для управления средой Linux, некоторые люди имеют привычку входить в систему как root напрямую. Это не рекомендуется, особенно если вы входите в графическую среду. Когда вы входите в систему как пользователь root в графической среде, все выполняемые задачи также выполняются как пользователь root, что создает ненужную угрозу безопасности. Поэтому вы должны вместо этого использовать один из следующих альтернативных методов. В таблице представлен обзор этих методов.
Использование su
Команда su позволяет пользователям открывать окно терминала и с этого терминала запускать вспомогательную оболочку, в которой у пользователя есть другой идентификатор. Например, для выполнения административных задач вы можете войти в систему с учетной записью обычного пользователя и набрать su, чтобы открыть root-оболочку. Это приносит то преимущество, что только в root-оболочке используются root-привилегии.
Если набрана только команда su, подразумевается имя пользователя root. Но su можно использовать для запуска задач от имени другого пользователя. Например, введите su user, чтобы открыть подоболочку от имени пользователя user. При использовании su в качестве обычного пользователя вам будет предложено ввести пароль, и после ввода вы получите учетные данные целевого пользователя:
Использование sudo
Вместо использования учетной записи root, непривилегированные пользователи могут быть настроены на использование разрешений администратора для определенных задач с помощью sudo. Когда sudo настроен, обычные пользователи имеют привилегии sudo, и для использования этих привилегий они запускают команду с помощью sudo. Таким образом, вместо использования таких команд, как useradd в качестве пользователя root, вы используете обычную учетную запись пользователя и набираете sudo useradd. Это определенно более безопасно, потому что вы сможете действовать так, как если бы у вас были права администратора при выполнении этой конкретной команды.
PolicyKit
Большинство программ администрирования с графическим интерфейсом пользователя используют PolicyKit для аутентификации в качестве пользователя root. Если обычный пользователь не входит в группу доступа wheel, ему будет предложено пройти аутентификацию. Если он входит в группу wheel, откроется приложение PolicyKit.
Пример переключения учетных записей пользователей
Управление аккаунтами пользователей
Теперь, когда вы знаете, как выполнять задачи как пользователь с правами администратора или без прав администратора, настало время научиться управлять учетными записями пользователей в Linux. В этом разделе вы узнаете, что в этом участвует.
Обычные и системные аккаунты
В типичной среде Linux существуют два типа учетных записей пользователей. Существуют учетные записи пользователей, которым необходимо работать на сервере и которым требуется ограниченный доступ к ресурсам на этом сервере. Эти учетные записи обычно имеют пароль, который используется для аутентификации пользователя в системе. Существуют также системные учетные записи, которые используются службами, которые предлагает сервер. Обе учетные записи пользователей имеют общие свойства, которые хранятся в файлах /etc/passwd и /etc/shadow. Ниже показано содержимое файла /etc/passwd.
Как видите, для определения учетной записи пользователя в /etc/passwd используются разные поля. Поля отделены друг от друга двоеточием. Ниже приводится краткое изложение этих полей, а затем краткое описание их назначения.
Имя пользователя (Username): это уникальное имя для пользователя. Имена пользователей важны для соответствия пользователя его паролю, который хранится отдельно в /etc/shadow. В Linux в имени пользователя не должно быть пробелов.
Пароль: в старые времена второе поле /etc/passwd использовалось для хранения хеш-пароля пользователя. Поскольку файл /etc/passwd доступен для чтения всем для пользователей это создает угрозу безопасности, и по этой причине в современных системах Linux пароли хэшей хранятся в /etc/shadow.
UID: каждый пользователь имеет уникальный идентификатор пользователя (UID). Это числовой идентификатор. Именно UID действительно определяет, что может делать пользователь. Когда для пользователя установлены разрешения, UID сохраняется в метаданных файла (а не в имени пользователя). UID 0 зарезервирован для root, неограниченной учетной записи пользователя. Более низкие UID (обычно до 999) используются для системных учетных записей, а более высокие UID (по умолчанию от 1000) зарезервированы для людей, которым необходимо подключить каталог к серверу. Диапазон UID, которые используются для создания учетных записей обычных пользователей, задается в /etc/login.defs.
GID: в Linux каждый пользователь является членом хотя бы одной группы. Эта группа называется основной, и эта группа играет центральную роль в управлении разрешениями.
Поле комментариев (Comment field): поле комментариев, как можно догадаться, используется для добавления комментариев к учетным записям пользователей. Это поле является необязательным, но его можно использовать для описания того, для чего создается учетная запись пользователя. Некоторые утилиты, такие как устаревшая утилита finger, могут использоваться для получения информации из этого поля. Это поле также называется полем GECOS, которое обозначает General Electric Comprehensive Operating System и имело конкретную цель для определения рабочих мест в начале 1970-х годов, когда General Electric была еще важным производителем серверов.
Каталог (Directory): это начальный каталог, в который пользователь помещается после входа в систему, также называемый домашним каталогом. Если учетная запись пользователя используется человеком, именно здесь он будет хранить свои личные файлы и программы. Для системной учетной записи пользователя это среда, в которой служба может хранить нужные файлы во время работы.
Часть пользовательских свойств хранится в /etc/passwd, который только что обсуждался.
Другая часть конфигурации пользовательских свойств находится в /etc/shadow. Настройки в этом файле используются для определения срока действия пароля. Типичным для /etc/shadow является то, что никто, кроме суперпользователя root и процессов, запущенных с правами root, такими как механизмы аутентификации на сервере, не имеет разрешений для доступа к нему, что имеет смысл, так как содержит всю информацию, необходимую для подключения в систему.
Пример содержимого /etc/shadow.
Следующие поля определены в /etc/shadow:
■ Имя для входа: обратите внимание, что /etc/shadow не содержит никаких UID, а только имена пользователей. Это открывает возможность для нескольких пользователей использовать один и тот же UID, но разные пароли (что, кстати, не очень рекомендуется);
■ Зашифрованный пароль: в этом поле содержится все, что необходимо для безопасного хранения пароля;
■ Дни с 1 января 1970 года, когда пароль последний раз изменялся: многие вещи в Linux относятся к этой дате, которая в Linux считается началом дней. Это также упоминается как эпоха;
■ За несколько дней до того, как пароль может быть изменен: это позволяет системным администраторам использовать более строгую политику паролей, когда невозможно сразу вернуться к исходному паролю, если пароль был изменен. Обычно это поле имеет значение 0;
■ Дни, после которых пароль должен быть изменен: в этом поле указан максимальный срок действия паролей. Обратите внимание, что по умолчанию он установлен на 99 999 (около 273 лет);
■ За несколько дней до истечения срока действия пароля пользователь получает предупреждение: это поле используется для предупреждения пользователя о предстоящей смене пароля. Обратите внимание, что по умолчанию установлено значение 7 (даже если срок действия пароля установлен на 99 999 дней!);
■ Через несколько дней после истечения срока действия пароля эта учетная запись отключена: используйте это поле для принудительного изменения пароля. После истечения срока действия пароля пользователи больше не могут входить в систему;
■ Дни с 1 января 1970 года эта учетная запись отключена: администратор может установить это поле, чтобы отключить учетную запись. Обычно это лучший подход, чем удаление учетной записи, поскольку все связанные свойства и файлы этой учетной записи будут сохранены, но больше не могут использоваться для аутентификации на вашем сервере;
■ Зарезервированное поле, которое когда-то было добавлено «для будущего использования»: это было давно; это поле, вероятно, никогда не будет использовано;
Большинством свойств пароля можно управлять с помощью команды passwd или chage, которые обсуждаются далее.
Создание пользователей
Существует множество решений для создания пользователей на сервере Linux. Для начала вы можете отредактировать содержимое файлов /etc/passwd и /etc/shadow напрямую (с риском сделать ошибку, из-за которой вход в систему невозможен для кого-либо; лучше просто этого не делать).
Изменение файлов конфигурации
Использование useradd
Каталог home
Как администратор, вы, как правило, не будете изменять параметры, связанные с домашним каталогом, для системных учетных записей, поскольку они создаются автоматически из сценариев постустановки RPM при установке соответствующих пакетов программного обеспечения. Если у вас есть люди, которым нужна учетная запись пользователя, вы, вероятно, хотите немного управлять содержимым домашнего каталога.
Управление свойствами пользователя
Файлы конфигурации для управления пользователями по умолчанию
При работе с инструментами как useradd предполагаются некоторые значения по умолчанию. Эти значения по умолчанию установлены в двух файлах конфигурации: /etc/login.defs и /etc/default/useradd. Ниже показано содержимое /etc/default/useradd.
Как показано выше файл /etc/default/useradd содержит некоторые значения по умолчанию, которые применяются при использовании useradd.
В файле /etc/login.defs установлены различные переменные, связанные с логином. Этот файл используется различными командами и относится к настройке соответствующей среды для новых пользователей.
Список некоторых наиболее важных свойств, которые можно установить в /etc/login.defs:
MOTD_FILE: Определяет файл, который используется как файл «сообщения дня». В этот файл можно включить сообщения, которые будут отображаться после успешного входа пользователя на сервер.
PASS_MAX_DAYS, PASS_MIN_DAYS и PASS_WARN_AGE: определение свойств срока действия пароля по умолчанию при создании новых пользователей.
UID_MIN: первый UID, который будет использоваться при создании новых пользователей.
CREATE_HOME: указывает, следует ли создавать домашний каталог для новых пользователей.
USERGROUPS_ENAB: установите yes, чтобы создать личную группу для всех новых пользователей. Это означает, что у нового пользователя есть группа с тем же именем, что и пользователь, в качестве группы по умолчанию. Если установлено значение no, все пользователи становятся членами группы users.
Управление свойствами пароля
Чтобы увидеть текущие настройки управления паролями, используйте chage –l.
Создание пользовательской среды
/.profile: специальные настройки для одного пользователя, применяемые при запуске оболочки входа;
/.bashrc: специальные настройки для одного пользователя, применяемые при запуске подоболочки.
При входе в систему файлы читаются в этом порядке, и к ним применяются переменные и другие параметры, определенные в этих файлах. Если переменная или параметр встречаются в более чем одном файле, побеждает последний.
В этом примере вы применяете общие решения для создания учетных записей пользователей.
1. Введите vim /etc/login.defs, чтобы открыть файл конфигурации /etc/login.defs, и измените несколько параметров, прежде чем приступить к настройке параметров файла. Найдите параметр CREATE_HOME и убедитесь, что он установлен на «yes». Также установите параметр USERGROUPS_ENAB на «no», что означает, что новый пользователь добавляется в группу с тем же именем, что и пользователь, и больше ничего;
3. Введите useradd linda, чтобы создать учетную запись для пользователя linda. Затем введите id linda, чтобы убедиться, что linda является членом группы с именем linda и больше ничего. Также убедитесь, что каталоги Pictures и Documents были созданы в домашнем каталоге linda;
4. Используйте passwd linda, чтобы установить пароль для пользователя, которого вы только что создали;
7. Введите grep lori /etc/passwd /etc/shadow/ etc/group. Это покажет, что пользователь lori создан во всех трех критических файлах, и подтверждает, что они были установлены правильно.
Создание и управление аккаунтами групп
Каждый пользователь Linux должен быть членом хотя бы одной группы. В этом разделе вы узнаете, как управлять настройками учетных записей групп Linux.
Группы в Linux
Пользователи Linux могут быть членами двух разных типов групп. Во-первых, есть основная группа. Каждый пользователь должен быть членом основной группы, и существует только одна основная группа. При создании файлов основная группа становится владельцем группы этих файлов. Пользователи также могут получить доступ ко всем файлам, к которым имеет доступ их основная группа. Членство в основной группе пользователей определено в /etc/passwd; сама группа хранится в файле конфигурации /etc/group.
Помимо обязательной первичной группы пользователи также могут быть членами одной или нескольких вторичных групп. Вторичные группы важны для получения доступа к файлам. Если группа, в которую входит пользователь, имеет доступ к определенным файлам, пользователь также получит доступ к этим файлам. Работа со вторичными группами важна, особенно в средах, где Linux используется в качестве файлового сервера, чтобы люди, работающие в разных отделах, могли обмениваться файлами друг с другом.
Создание групп с помощью vigr или groupadd
Как и в случае с созданием пользователей, существуют также различные варианты создания групп.
Файлы конфигурации группы можно изменить напрямую, используя vigr или утилиту командной строки groupadd.
Создание групп с помощью vigr
С помощью команды vigr вы открываете интерфейс редактора непосредственно в файле конфигурации /etc/group. В этом файле группы определены в четырех полях на группу как показано ниже.
Создание групп с помощью groupadd
Управление свойствами группы
Пример работы с группами
В этом примере вы создаете две группы и добавите в эти группы некоторых пользователей.
1. Введите groupadd sales, а затем groupadd account, чтобы добавить группы с именами sales и account.
2. Используйте usermod, чтобы добавить пользователей linda и lisa в группу продаж, а lori и bob в групповую учетную запись:
3. Введите id linda, чтобы убедиться, что пользователь linda правильно добавлен в группу sales. В результатах этой команды вы видите, что Линда назначена группе с gid=100(users). Это ее основная группа. С параметром groups упоминаются все группы, членом которых она является в качестве вторичной группы:
Linux.yaroslavl.ru
р Добавление новых пользователей
р Команды обслуживания пользователей
р Команды контроля пользователей
р Команды ограничения пользователей
В данной главе рассматриваются операции, относящиеся к администрированию пользователей. Сюда входит добавление, удаление, модификация, перемещение, отслеживание, проверка и ограничение функций пользователей. Следующий раздел посвящен специальным идентификаторам и средам управления ими.
Добавление новых пользователей
Вполне логично, что администрирование начинается с добавления пользователей к новой системе. Для выполнения этой задачи существуют разные методы. Каждый метод связан с вводом информации в файл паролей /etc/group. Заслуживают внимания также файл /etc/passwd и разные другие, как, например, файлы запуска оболочки системы и системный файл почтовых псевдонимов.
Формат файла /etc/passwd в большинстве разновидностей UNIX постоянен. Он содержит записи, поля в которых разделены двоеточиями:
user-name :p5wd:uid:giv:uid comments: directory: shell
В некоторых системах, типа BSD, формат записей несколько отличается:
username:pswd:uid:gid:user class:pswd change:acct expiration:uid comments:directory:shell
username — это то, что пользователь вводит после приглашения UNIX login:. Обычно это поле содержит восемь или меньше алфавитно-числовых символов, при этом символы алфавита находятся в нижнем регистре. Эта последовательность должна быть уникальной. Двоеточия не допускаются, так как они используются для разграничения полей. Для лучшей совместимости это поле не должно содержать точек не должно и начинаться с тире или знака плюс.
Поле pswd содержит пароль и может иметь множество различных форм. Оно может быть пустым, указывая, что для входа в систему пароль не нужен. Поле может содержать до 13 символов, представляющих зашифрованную строку пароля пользователя. В позиции поля может находиться символ, не попадающий в набор <./0-9 A-Zд-s>. К примеру, в этот диапазон не показывает символ «*». Это значит, что бюджет для данного пользователя существует, но вход в систему невозможен.
Кроме того, в системах IRIX и HP-UX поле пароля может содержать запятую, после которой следуют один или два символа.
Если система не имеет встроенной проверки паролей, выбранных пользователями, помочь в этом может утилита Alec Muffefts Crack.
0: Суперпользователь (привилегированный пользователь)
I-10: Демоны и псевдопользователи
100+: Обычные пользователи
60001: «nobody» (иногда 32000 или 65534)
60002: «noaccess» (иногда 32001)
Поле uid comments традиционно называют GECOS или GCOS. Оно служит источником информации для операционной системы. Чтобы общая команда finger правильно отображала эту информацию, поле должно содержать настоящее имя пользователя, код компании или офиса, номер телефона офиса, домашний телефон, разделенные запятыми. Могут быть указаны не все данные, тогда для сохранения синтаксиса GECOS нужно применять заполнители. Например, запись Homer Userр,800-IAM-HOME позволит вывести подлинное имя пользователя и его домашний телефон. Настоящее имя пользователя также выводится почтовой программой в заголовке почтовых сообщений.
Поле directory обычно называется собственным каталогом (home directory) пользователя или исходным рабочим каталогом. Этот каталог предоставляется пользователю после входа в систему, но перед выполнением его персональных файлов запуска.
Поле shell (оболочка) определяет интерпретатор команд или программу, предоставляемую пользователю после входа в систему. Среди множества оболочек можно выделить: sh (Bourne), ksh (Kom), csh (С), tcsh (тип TENEX/ TOPS-20 оболочки С), bash (Bourne Again). По умолчанию принимается оболочка Bourne. Заметьте, что это поле не обязательно содержит название оболочки. Оно может указывать программу, которая блокирует имя пользователя и запускает приложение, захватывающее канал связи. Чтобы значение этого поля было допустимым, в некоторых системах требуется присутствие этой записи в проверочном файле оболочки.
Поле class не используется, но предназначено для определения класса атрибутов пользователя для данного имени пользователя.
Поле pswd change определяет время смены пароля. Это число секунд, которые пройдут со знаменательного момента 1 января 1970 года, 00:00. Если значение не указано, вынужденной смены пароля не происходит.
Поле a сс t expiration представляет число секунд, прошедших с этого же момента до прекращения действия бюджета. Если поле пусто, срок действия бюджета не ограничен.
+ должны быть включены все записи YP
+username включить явное имя пользователя из YP
-username исключить явное имя пользователя из YP
+@netgroup включить все имена пользователей из YP для указанной группы
-@netgroup исключить все имена пользователей из YP для указанной группы
Обычно, когда поля uid, gid, uid comments, directory и shell содержат данные, они вытесняют значения, которые для них пересылают YP. Имейте в виду, что эти записи обрабатываются по порядку, при этом на происходящее оказывает влияние первая запись, а не последняя, если они противоречат друг другу. Например:
root :х:0:0: Superuser:/:
daemon:*:1:5::/:/sbin/sh bin:*:2:2::/usr/bin:/sbin/sh sys:*:3:3::/:
dave:x 100:10:Dave G,13,x3911,unlisted:/usrl/dave:/bin/tcsh
john:x 102:60:John S,2,555-1234,xl400:/usr2/john:/bin/ksh
Имя пользователя sieve всегда исключается, даже если оно входит в группу friends. Каждый член группы friends по умолчанию помещается в группу 20. Включается имя пользователя wayne из YP. Все его поля, кроме gid и uid comments, перекрываются указанной информацией. Отметьте, что в этом примере буква х в поле pswd стоит вместо реального зашифрованного пароля. Символ * поля pswd обозначает псевдопользователей без права входа в систему. Дополнительные сведения о псевдопользователях содержатся в конце раздела «Добавление новых пользователей».
Теневой файл паролей
Поскольку файл /etc/passwd обычно общедоступен для чтения, на узлах с повышенными требованиями к защите, как правило, используется схема теневого пароля, доступная в большинстве операционных систем UNIX. Смысл в том, что зашифрованные пароли переадресуются другому файлу, который может содержать (либо нет) другую информацию. Эта схема используется потому, что при неудачном выборе пароля современные машины вполне могут его взломать. К неудачному выбору можно отнести любое слово из словаря, регистрационное имя, отсутствие пароля или любую информацию, включенную в поле uid comment. Схемы применения теневых файлов паролей в разных версиях UNIX имеют значительные отличия.
Например, в системах IRIX и Solaris существует файл /etc/shadow, генерируемый командой pwconv, которая имеет следующий формат:
user-name: pswd: lastchg :min :max: warn: inactive: expire: flag
Поле pswd содержит либо зашифрованный пароль длиной в 13 символов, либо null-значение, указывающее, что для входа в систему пароль не нужен, либо строку, содержащую символ, не принадлежащий множеству <./0-9 A-Z a-z>. Если пароль содержит символ, не являющийся алфавитно-цифровым, для данного пользователя вход в систему невозможен. Обычно системные администраторы используют для записи в это поле символ * или *LK*.
Поле lastchg определяет число дней, прошедших с 1 января 1970 г., когда пароль последний раз изменялся. Поле min задает минимальное число дней, которое должно пройти от успешной смены пароля до другой смены.
Поле тах содержит максимальное число дней действия пароля.
Поле warn содержит число дней до истечения срока действия пароля, в течении которых пользователь будет получать об этом предупреждения.
Поле inactive определяет число дней, в течение которых пользователь может оставаться неактивным, после чего ему не будет отказано во входе в систему.
Поле expire указывает на абсолютное число дней. Если оно используется, то определяет срок, после которого имя пользователя не будет давать права на вход в систему. Поле flag в настоящее время не используется.
В системе HP-UX принята другая схема сокрытия файла пароля. Для каждого имени пользователя существует файл /tcb/files/auth/first letter/username, где first letter — начальная буква имени пользователя, а username — регистрационное имя пользователя. Например, для пользователя buster будет существовать файл /tcb/files/auth/b/buster. Этот файл содержит информацию, проявляющуюся как termcap. В последних версиях системы файл поддерживал до 32 возможных опций, имеющих отношение к защите данных пользователя. Список имен полей и их возможных значений содержится в странице руководства для утилиты prpwd(4). В общем случае файл содержит:
Имя пользователя и его идентификатор, скопированные из файла пароля.
Зашифрованный пароль, если он существует.
Данные о времени, указывающие:
В системах BSD применяется еще одна разновидность системы сокрытия пароля, использующая файлы /etc/master.passwd или /etc/spwd.db.
Файл /etc/group является частью общей схемы защиты UNIX: пользователь, группа и другие механизмы допуска к файлам. Шаблон записи с разделением полей двоеточиями имеет следующий вид:
group_name: раз sword:group_id:list
Поле group Jid содержит текстовое имя группы.
Поле password является заполнителем для зашифрованного пароля группы. Если его значение null, пароль не нужен.
Поле group_name содержит уникальное числовое значение группы.
Поле list содержит список с разделением запятыми пользователей, принадлежащих данной группе. Перечисление пользователей в группах, указанных для их имени в файле /etc/passwd, необязательно. Ниже следует пример файла /etc/group.
Если служба Network Information Service/Yellow Pages активна, этот файл, как и /etc/passwd, должен содержать записи, начинающиеся со знака минус или плюс. Это определяет исключение или включение (соответственно) информации о группах из NIS/YP.
Следует знать и о двух других файлах, затрагивающих управление доступом пользователей к системе. Эти файлы запуска оболочки системы вызываются до передачи управления персональным стартовым файлам пользователей. Операционная среда для пользователей настраивается посредством редактирования файла /etc/profile (для пользователей System V sh/ksh) или файла /etc/csh.login, /etc/logjn или /etc/stdlogin (для пользователей System V csh/tcsh). В этих файлах можно настраивать стандартные опции доступа, используемые пользователями при создании файлов. С помощью установки опции umask можно добавлять элементы к стандартному пути, чтобы включать локальные утилиты в /usr/local, добавлять удобные псевдонимы или переменные среды. Имеет смысл не загромождать эти файлы данными, поскольку опытные пользователи могут с их помощью настраивать собственную рабочую среду. Большинство систем предоставляют шаблон
или модель, помещаемую в собственный каталог пользователя. Администраторы системы HP-UX могут обнаружить их в каталоге /etc/skel. Ниже приводится пример файла profile для оболочки ksh:
stty erase ‘^H» kill ‘^U» intr ^C» eof ‘^D»
stty hupcl ixon ixoff
# установить пути поиска:
# установит среду оболочки:
trap «echo ‘logout'» 0
# установить переменные среды:
# сохранить путь среды:
# установить псевдонимы пользователей:
Пользовательские опции почтовой службы BSD могут настраиваться глобально в файле запуска: /usr/ lib/Mail.rc, /usr/share/lib/mailx, /etc/mail.rc, /etc/mail/mail.rc или /etc/mail/Mail.rc, в зависимости от версии UNIX. Например, вставка записи set crt в файл запуска почтовой службы вызывает нумерацию страниц для сообщений, превышающих длину одной страницы. Если требуется сопровождать все почтовые отправления определенным типом строки заголовка, нужно вставить запись: ignore Message-Id. И снова, лучше делать содержимое файлов проще и позволить пользователям настраивать свою среду почтовых операций с помощью файла .mailrc.
Как видно из описания систем теневых паролей, функции защиты для разных операционных систем UNIX не очень стандартизированы. Поэтому для полного представления о других файлах, настройка которых влияет на вход пользователей в систему, следует прочитать первую man-страниц, посвященную входу в систему (login). Например, в системе HP-UX путем редактирования файла /etc/securety можно ограничить число терминалов, с которых возможен вход в систему с правами root. В системе IRIX файл /etc/default/login содержит много изменяемых опций, определяющих такие параметры, как допустимость null-паролей, сколько неудачных попыток входа в систему может быть предпринято перед разъединением линии и требуется ли регистрация всех входов в систему или только запись о сбоях этих операций. Именно этот файл позволяет ограничивать входы в систему с правами root.
Для каждой версии UNIX существуют записи файла паролей для нескольких псевдопользователей. Эти записи не подлежат редактированию. Такие пользователи без права входа в систему располагают соответствующими процессами для каждого аспекта, связанного с принадлежностью системы. Ниже приводится список наиболее распространенных псевдопользователей:
daemon Используется серверными процессами системы
bin Владеет исполняемыми файлами пользователя
sys Владеет системными файлами
adm Владеет файлами бюджета
uucp Используется UUCP
lp Используется подсистемами 1р или lpd
nobody Используется NFS
Существуют и другие стандартные псевдопользователи, такие как audit, cron, mail, new и Usenet. Все они обслуживают связанные с ними процессы и файлы.
Команды обслуживания пользователей
Операции генерирования, модификации и удаления записей в файлах паролей и групп в значительной мере зависят от версии операционной системы. К основным методам относятся непосредственное редактирование файла паролей с помощью командной строки или применения утилиты с графическим интерфейсом для вставки записей. Благодаря применению шаблонов и поддержке манипуляций мышью, эти утилиты очень удобны для администрирования пользователей. Инструментарий системы IRIX располагает графическим средством User Manager, которое высоко ценят пользователи.
Система HP-UX располагает популярным средством администрирования SAM, которое работает в графическом и символьном режиме,
Ниже приведены некоторые утилиты командной строки и графические средства для определенных операционных систем:
HP-UX useradd, uscrdel и usermod, vipw или SAM
Solaris useradd, userdel и usermod или admintool
FreeBSD adduser и rmuser или vipw
OpenBSD adduser или vipw
IRIX User Manager (cpeople)
Форматы инструкций командной строки имеют следующий вид:
useradd [-с uid comment> [-d dir> [-e expire> [-f inactive> [-g gid\ [-G gid[,gid,.. ] ]
Кроме того, команда useradd может устанавливать стандартные значения для : base dir, expire, inactive, gid, skel_dir и shell
adduser [-batch username [gid, [gidр.. ] ] [uid comment> [password]] OR adduser
Команда adduser без параметров работает в интерактивном режиме. Она может также принимать другие стандартные опции, которые:
1. вызывают копирование информации файлов login или profile в собственные каталоги пользователей;
2. помещают новых пользователей в стандартную группу;
3. определяют начальные разделы home для новых пользователей;
4. выводят приглашающие сообщения для новых пользователей;
5. устанавливают стандартную оболочку для новых пользователей; и 6. выбирают новые идентификаторы пользователей из заранее определенной группы чисел.
usermod t-c uid comment> [-d dir [-m] ] [
[-1 new username> [-s shell> [-u uid [-0] ] username
В каждой из приведенных выше команд:
Если начальный каталог пользователя изменен, файлы прежнего начального каталога должны переместиться в новый каталог. Для перемещения каталога пользователя введите команду:
Проверьте полученный результат и удалите old_dir (старый каталог). Если пользователь не вполне подготовлен, найдите за него записи old_dir в существующих файлах и замените их на new_dir (новый каталог). Для поиска всех таких записей в системе используется команда:
Для всех записей, найденных с помощью команды find, измените запись на new_dir или, если можно, измените абсолютное имя пути на более общую переменную $НОМЕ. Уделите особое внимание файлам запуска, содержащимся в начальном каталоге пользователя, поскольку ошибки в этом классе файлов наверняка быстро привлекут внимание пользователя.
К распространенным файлам запуска относятся:
.login Выполняется в оболочках csh и tcsh во время входа в систему.
.cshrc Выполняется оболочкой csh при порождении новых субоболочек.
-tcshrc Выполняется оболочкой tcsh при порождении новых субоболочек.
.profile Выполняется в оболочках sh и ksh во время входа в систему.
.kshrc Выполняется оболочкой ksh при вызове новых субоболочек.
.bashrc Выполняется оболочкой bash при вызове новых субоболочек.
.history Содержит список последних выполненных команд оболочки.
.rhosts Списки удаленных хостов/имен пользователей (host/usemame), пользующихся доверием. Утилиты riogin, rexec, rsh/remsh. используют этот файл для разрешения входа в систему, доступа к файлам и выполнения команд без пароля.
.netrc Используется процессом автоматического входа в удаленную систему (auto-login) FTP.
.forward Позволяет почтовой службе перенаправлять почту другом адресам, файлам или процессорам.
.mailrc Файл запуска mail, допускающий установку опций отправителя или псевдонимов.
.ехгс Файл запуска ех или vi, допускающий установку определенных опций редактирования.
.xinitrc Файл запуска для среды Х Window.
.xsession Еще один файл запуска для среды Х Window.
-.default Еще один файл запуска для среды Х Window.
При удалении имен пользователей из файла пароля требуется выявить все принадлежащие им файлы и удалить их. И снова команда find помогает справиться с этой рутинной операцией:
Выполняется поиск всех файлов, принадлежащих пользователю с именем username. Для надежности перед удалением этих файлов можно выполнить резервное копирование. Поиск и удаление файлов в одной командной строке выполняется следующим образом:
После удаления файлов пользователя username файл групп и файл(ы) почтовых псевдонимов должны модифицироваться, путем удаления из них имени этого пользователя. Для обновления базы данных псевдонимов следует выполнить команду newaliases.
Команды контроля пользователей
Первый класс команд выдает информацию о происходящем в настоящее время. Эти команды указывают, если кто-либо использует больше ресурсов, чем ему отведено. Кроме того, их можно применять для предупреждения потенциальных проблем производительности путем выявления потребности в увеличении ресурсов процессора, памяти или дисков, чтобы удовлетворять растущие нужды пользователей.
Команда uptime выводит текущее время, число дней работы машины, число вошедших в систему пользователей и среднюю загрузку системы в течение последних 1, 5 и 15 минут.
Это несколько туманное описание происходящего, но оно удобно при выполнении сравнений с предыдущими попытками и позволяет узнать, что какой-либо пользователь монополизирует ресурсы машины.
Команда w выводит информацию uptime и указывает имя текущего пользователя, какой порт терминала он использует, имя хоста, с которого он вошел в систему, время входа, как долго пользователи неактивны, общее время ЦПУ всех процессов, выполняемых с данного порта терминала (JCPU), время ЦПУ активного процесса, указываемое в следующем поле (PCPU) и какие команды в настоящее время выполняются. Время неактивности позволяет определить кандидатов на выход из системы.
Команда top генерирует вывод, подобный выводимому командой ps, но постоянно обновляемый. В частности, столбцы %сри и time позволяют вьювить пользователей, которые перегружают систему. Параметр size, указывающий размер процесса в страницах, позволяет идентифицировать пользователей, которые вызывают слишком частое повторение процесса подкачки из памяти на диск. Эта информация может подсказать, что для системы требуется больше памяти.
При первой инициализации программа GlancePlus отображает экран Global или Process Summary. Если график использования памяти дает большие всплески, нажмите клавишу F2, F3 или F4 для прекращения испытания и вызова детализирующих экранов, позволяющих идентифицировать соответствующие процессы и пользователей. Эти детализирующие экраны позволяют отслеживать многие ресурсы системы, такие как ЦПУ, память, область подкачки, ввод/вывод на диски, nfs, lan и т.п. Дальнейшая информация выводится в экранах Individual Process.
Небольшие изменения в файле конфигурации syslog (обычно находящемся по адресу /etc/syslog/conf) могут вызывать дополнительную информацию. Например, можно вставить запись в последнюю строку файла конфигурации, если ее еще нет:
Затем утилита syslogd повторно считывает этот модифицированный файл, путем выполнения команды:
Это вызывает размещение сообщений mail to, from и deferred в log-файле очереди почтовых сообщений, /some_legal_directory/syslog. Это способствует лучшему пониманию почтового графика и лучшему управлению почтой, а также удовлетворению потребностей пользователя.
Контроль пользователей также подразумевает их защиту от самих себя. В обязанности администратора входит коррекция устойчивости системы в целом и исправление созданных самими пользователями проблем в частности. Здесь особенно удобно применение утилиты find. В большинстве случаев пользователи не должны иметь каталогов с глобальным доступом для записи и, вероятно, с глобальным доступом для чтения, если нужно поддерживать какое-то подобие защиты. Команда
генерирует список всех SUID-программ системы. Добавление в командную строку параметра -user root приводит к выводу всех SUID-файлов с привилегиями root, поэтому можно проверить, что все ли подобные файлы находятся там, где положено. Можно загрузить из сети подключаемый пакет COPS (автор-Dan Farmers) и сконфигурировать его так, чтобы выполнялись проверки, подобные рассмотренным, а также более интенсивные запросы, касающиеся защищенности.
Другая стратегия состоит в том, чтобы предоставить пользователям альтернативную команду rm, которая не удаляет файлы (по крайней мере сразу). Команда помещает файл во временную область, в которой удаляются файлы предопределенного срока давности.
Команды ограничения пользователей
Применение квот на ресурсы диска призвано защищать систему от истощения ресурсов небольшим числом пользователей. Ограничение использования дискового пространства начинается с выполнения команды /quotaon /user_filesystem. Эта команда включает механизм дисковых квот пользователей, размещенных в файловой системе user_filesystem. В результате выполнения команды edquota определяется, какое пространство каждый пользователь может занимать. Общая форма этой команды имеет следующий вид:
edquota [-p prevlosly_ctefinedl_quota_username> username
Filesystem usage quota limit timeleft files quota limit timeleft /usri 26015 25600 30720 5.1 days 488 500 750
Пользователь jamie перерасходовала допустимое количество килобайт дискового пространства и имеет в запасе 5,1 дня, чтобы снизить этот показатель. Она может создать еще 12 файлов (если хватит дискового пространства) перед тем, как получит сигнал о перерасходе индексных дескрипторов.
Команда repquota отличается тем, что выводит перечень всех пользователей, для которых действуют квоты. Ниже приводится пример вывода этой команды:
Disk limits File limits
User used soft hard timeleft used soft hard timeleft
jamie +- 26015 25600 30720 5.1 days 0488 500 750
dave +- 50226 50000 60000 EXPIRED 0430 500 750
Из таблицы видно, что wayne и dave не смогли уложиться в ограничения и им отказано в пользовании системой. Пользователям jamie и holly придется снизить потребление ресурсов в указанный период, иначе им также будет отказано в доступе к системе. Вместо этого можно увеличить для них квоты.
Следует контролировать использование файлов входящей почты, как часть общего расхода ресурсов диска, поскольку обычно все пользователи обращаются к общему пространству почтового каталога. Здесь одна «свинья» может подрыть всю систему. Команда
выводит список всех пользователей, для которых объем почтовых файлов превышает полмиллиона символов. Можно вежливо попросить такого пользователя снизить число сообщений, либо уменьшить занимаемое файлами пространство путем их сохранения и сжатия или архивирования и удаления.
Обзор администрирования пользователей не будет полным, если не упомянуть использование очень
специфического, если не сказать незащищенного, бюджета пользователя. Этот последний раздел посвящен настройке бюджета анонимного FTP.
Во-первых, создайте для бюджета запись в файле passwd. Запись должна содержать уникальный идентификатор пользователя, идентификатор группы, соответствующий пользователю, недопустимый пароль и оболочку. Пример записи:
Во-вторых, создайте начальный каталог пользователя ftp.
mkdir bin etc [lib] [dev] pub
chmod ugo+x bin etc [dev]
chmod u+rwx,o+wx,+t pub/incoming
В-третьих, заполните каталоги необходимой информацией.
ср /bin or /sbin/ls bin
[ ср /usr/lib/libdi.so.* lib ]
[ chmod ugo+rx lib/libdi.so.* ]
seperated entries directly left of the date in the ouput of the «Is» command.
[ chmod ugo+r dev/zero ]
[ create an etc/passwd file that includes root, daemon, and ftp whose
[ create an etc/group file that includes the root default group and the ftp group ]