 | Учетные записи пользователей и групп
Этот раздел охватывает материал по теме 1.111.1 экзамена 102 Администрирование Linux для начинающих (LPIC-1). Рейтинг темы 4.
Из этого раздела вы узнаете, как:
- Добавлять, изменять и удалять пользователей и группы
- Приостанавливать и изменять учетные записи пользователей
- Управлять информацией о пользователях и группах в базах данных паролей и групп
- Использовать подходящие средства для управления базами данных теневых паролей и базами данных групп
- Создавать ограниченные учетные записи и учетные записи специального назначения и управлять ими
Как вы знаете из учебного пособия
"Подготовка к экзамену LPI 101 (тема 104) Устройства, файловые системы Linux и стандарт Filesystem Hierarchy Standard", Linux является многопользовательской системой, в которой каждый пользователь принадлежит одной основной группе и, возможно, нескольким дополнительным группам. В Linux права на файлы тесно связаны с идентификаторами пользователей (id) и группами. Вспомните, что можно войти в систему в качестве какого-либо пользователя и при помощи команд su или
sudo -s стать другим пользователем и что можно воспользоваться командой
whoami для проверки текущего действительного id и командой groups, чтобы узнать, какой группе вы принадлежите. Из этого раздела вы узнаете, как создавать и удалять пользователей и группы и управлять ими. Также вы узнаете о содержащихся в каталоге /etc файлах, в которых хранится информация о пользователях и группах.
Добавление и удаление пользователей и групп
Вы добавляете пользователя в систему Linux при помощи команды useradd
и удаляете при помощи команды userdel. Подобным образом, вы добавляете или удаляете группы при помощи команд
groupadd и groupdel.
Добавление пользователя или группы
Администрирование пользователей и групп в современных системах Linux обычно производится при помощи соответствующего графического интерфейса. Обычно доступ к нему можно получить через меню для системного администрирования. Существует большое разнообразие этих интерфейсов, так что интерфейс, присутствующий в вашей системе, может выглядеть не так, как в примере, приведенном здесь, но основные понятия и команды будут похожи.
Давайте начнем с добавления пользователя в графической системе Fedora Core 5 и затем рассмотрим приведенные выше команды. В системе Fedora Core 5 с десктопом GNOME выберите
Система > Администрирование > Пользователи и Группы и нажмите кнопку Добавить пользователя.
На рисунке 1 изображены окно User Manager (Менеджер пользователей) и окно Create New User (Создать пользователя), содержащее основную информацию для нового пользователя по имени 'john'. Были введены полное имя пользователя (Full name) John Doe, и пароль (Password). Оболочка (Login Shell) /bin/bash предоставлена по умолчанию. В системах Fedora по умолчанию создается новая группа, имя которой совпадает с именем пользователя, в нашем случае 'john', и домашний каталог
/home/john.
Рисунок 1. Добавление пользователя
В листинге 1 показан пример использования команды id для просмотра основной информации о новом пользователе. Как вы можете видеть, john имеет идентификатор пользователя 503 и соответствующую группу john с номером 503. john является членом только этой группы.
Листинг 1. Просмотр информации об id пользователя
[root@pinguino ~]# id john
uid=503(john) gid=503(john) groups=503(john)
|
Для выполнения той же задачи из командной строки воспользуйтесь командами
groupadd и useradd
для создания группы и пользователя, а затем командой
passwd, чтобы установить пароль для вновь созданного пользователя. Для выполнения всех этих команд необходимы привилегии пользователя root. Основные приемы использования этих команд для добавления другого пользователя, jane, показаны в листинге 2.
Листинг 2. Добавление пользователя jane
[root@pinguino ~]# groupadd jane
[root@pinguino ~]# useradd -c "Jane Doe" -g jane -m jane
[root@pinguino ~]# passwd jane
Changing password for user jane.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@pinguino ~]# id jane
uid=504(jane) gid=504(jane) groups=504(jane)
[root@pinguino ~]# ls -ld /home/jane
drwx------ 3 jane jane 4096 Jun 25 18:22 /home/jane
|
В этих двух примерах и id пользователя, и id группы имеют
значение выше 500. В некоторых современных системах пользовательские id начинаются не с 500, а с 1000. Обычно эти значения являются признаком обычных пользователей, в то время как значения ниже 500 (или 1000, если в системе отсчет обычных пользователей начинается с 1000) зарезервированы для системных пользователей.
Описание Системных пользователей вы найдете ниже в этом разделе. Действующие точки отсечения установлены в /etc/login.defs как UID_MIN и
GID_MIN.
В листинге 2, приведенном выше, команда groupadd имеет один параметр,
jane, имя добавляемой группы. Имена групп должны начинаться с букв нижнего регистра или знаков подчеркивания и обычно содержат только эти символы, а также дефисы или черточки. Опции, которые можно указать этой команде, показаны в таблице 3.
Таблица 3. Опции команды groupadd
| Опция | Назначение |
|---|
| -f | Выйти со статусом успешного выполнения, если
группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать. | | -g | Задать id группы вручную. По умолчанию
используется самое маленькое значение, не меньше, чем GID_MIN, причем больше, чем id любой из существующих групп. id групп обычно уникальны и не должны быть отрицательными | | -o | Разрешить группу с неуникальным id. | | -K | Может использоваться для отмены значений по умолчанию, хранящихся в файле /etc/login.defs. |
В листинге 2, приведенном выше, команда
useradd имеет один параметр,
jane, имя добавляемого пользователя, а также опции
-c, -g и
-m. Наиболее часто употребляемые
опции команды
useradd показаны в таблице 4.
Таблица 4. Опции команды useradd
| Опция | Назначение |
|---|
-b --base-dir | Базовый каталог по умолчанию, в котором создаются
домашние каталоги пользователей. Обычно это /home, а пользовательские каталоги — /home/$USER. | -c --comment | Текстовая строка для описания id, содержащая, например, полное имя пользователя. | -d --home | Предоставляет определенное имя каталога для домашнего каталога. | -e --expiredate | Дата, когда учетная запись потеряет силу или будет заблокирована. Задается в формате YYYY-MM_DD. | -g --gid | Имя или номер начальной группы регистрации
пользователя. Группа должна существовать, и поэтому в листинге 2 группа jane была создана раньше пользователя jane. | -G --groups | Список дополнительных групп, которым принадлежит пользователь. Группы перечисляются через запятую. | | -K | Может использоваться для отмены значений по умолчанию, хранящихся в файле /etc/login.defs. | -m --create-home | Создает домашний каталог пользователя, если
он не существует. Копирует скелетные файлы и другие каталоги из /etc/skel в домашний каталог. | -o --non-unique | Позволяет создать пользователя с неуникальным id. | -p --password | Шифрованный пароль. Если пароль не определен, по
умолчанию учетная запись заблокирована. Вместо того
чтобы создавать шифрованный пароль и определять его в команде useradd, обычно для создания пароля вы будете использовать команду passwd. | -s --shell | Имя login shell пользователя, если оно отличается от login shell по умолчанию. | -u --uid | Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию
используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей. |
Примечания:
- В некоторых системах, в том числе в дистрибутивах
Fedora и Red Hat, имеются расширения в виде команд для создания пользователей. Например, в системах Fedora и Red Hat по умолчанию для пользователя создается новая группа, и для запрета этой функции при выполнении команды
useradd используется опция -n. Следует знать, что
такие различия возможны, и при возникновении сомнений обращаться к страницам руководства man вашей системы.
- В системах SUSE для доступа к графическому
интерфейсу администрирования пользователей и групп используется YaST или YaST2.
- Графические интерфейсы могут использоваться для
решения дополнительных задач, например, для создания файла для почты пользователя в каталоге /var/spool/mail.
Удаление пользователя или группы
Удаление пользователя или группы значительно проще, чем их создание, поскольку имеет меньше опций. Фактически, команде groupdel для удаления группы требуется только имя группы; эта команда не имеет опций. Вы не можете удалить группу, если она является основной группой пользователя. Если для удаления пользователей и групп вы используете графический интерфейс, действия очень похожи на команды, показанные выше.
Воспользуйтесь командой userdel, чтобы удалить пользователя. Опция
-r или --remove дает указание
удалить домашний каталог пользователя и все его содержимое вместе с пользовательской почтой. Когда вы удаляете пользователя, группа, имеющая то же имя, что и пользователь, также удаляется, если переменная USERGROUPS_ENAB в файле /etc/login.defs установлена в положение yes, но это будет сделано, только если группа не является основной для другого пользователя.
В листинге 3 вы видите пример удаления группы, когда несколько пользователей разделяют одну и ту же основную группу. Здесь другой пользователь, jane2, был предварительно добавлен в систему с той же группой, что и jane.
Листинг 3. Удаление пользователей и групп
root@pinguino:~# groupdel jane
groupdel: cannot remove user's primary group.
root@pinguino:~# userdel -r jane
userdel: Cannot remove group jane which is a primary group for another user.
root@pinguino:~# userdel -r jane2
root@pinguino:~# groupdel jane
|
Примечания:
- Для удаления пользователей и их групп команда
userdel может быть использована с опцией
-f или --force. Эта опция
опасна, поэтому использовать ее следует только в крайнем случае. Прежде чем сделать это, внимательно прочтите руководство man.
- Следует знать, что если вы удаляете пользователя
или группу и в файловой системе есть файлы, принадлежащие этому пользователю или группе, эти файлы автоматически не удаляются или присваиваются другому пользователю или группе.
Приостановка и изменение учетных записей
Теперь, когда вы можете создать или удалить id пользователя или группу, у вас может возникнуть потребность изменить их.
Изменение учетных записей пользователей
Предположим, пользователь john хочет иметь в качестве оболочки по умолчанию tcsh. В графическом интерфейсе вы, как правило, найдете способ отредактировать данные о пользователе (или группе) или просмотреть свойства объекта. На рисунке 2 показан диалог Свойства пользователя (User Properties) для пользователя john, созданного нами ранее в системе Fedora Core 5.
Рисунок 2. Изменение учетной записи пользователя
Для изменения учетной записи пользователя из командной строки используйте команду usermod. Можно использовать большинство опций, которые используются с командой useradd, за исключением того, что для пользователя нельзя создать или наполнить содержимым новый домашний каталог. Если необходимо изменить имя пользователя, используйте опцию -l или
--login в сочетании с новым именем. Возможно, вы захотите переименовать домашний каталог, чтобы он соответствовал id пользователя. У вас также может возникнуть необходимость переименовать другие элементы, такие как почтовые spool-файлы. Наконец, если login shell изменен, может возникнуть необходимость изменить некоторые связанные с ним profile-файлы. В листинге 4 показан пример операций, которые необходимо выполнить, чтобы изменить пользователя john на john2 с /bin/tcsh в качестве shell по умолчанию и переименовать домашний каталог на /home/john2.
Листинг 4. Изменение пользователя
[root@pinguino ~]# usermod -l john2 -s /bin/tcsh -d /home/john2 john
[root@pinguino ~]# ls -d ~john2
ls: /home/john2: No such file or directory
[root@pinguino ~]# mv /home/john /home/john2
[root@pinguino ~]# ls -d ~john2
/home/john2
|
Примечания:
- Если вам необходимо изменить дополнительные группы
пользователя, вы должны определить полный список дополнительных групп. Не существует команды, чтобы просто добавить или удалить единственную группу для пользователя.
- Существуют ограничения на изменение имени или id
для пользователя, который зарегистрирован в системе или который выполняет какие-либо процессы. За подробностями обратитесь к страницам руководства man.
- Если вы меняете номер пользователя, у вас может
возникнуть желание изменить владельца файлов и каталогов этого пользователя в соответствии с новым номером.
Изменение групп
Ни для кого не является сюрпризом, что команда groupmod используется для
изменения информации о группе. При помощи опции groupmod можно изменить номер, а при помощи опции -n
— имя группы.
Листинг 5. Переименование группы
[root@pinguino ~]# ls -ld ~john2
drwx------ 3 john2 john 4096 Jun 26 18:29 /home/john2
[root@pinguino ~]# groupmod -n john2 john
[root@pinguino ~]# ls -ld ~john2
drwx------ 3 john2 john2 4096 Jun 26 18:29 /home/john2
|
В листинге 5 обратите внимание, что, когда мы использовали команду groupmod для изменения имени группы, имя группы для домашнего каталога пользователя john2 чудесным образом изменилось. Вы удивлены? Это не удивительно, поскольку в файловой системе группы представлены их номерами, а не именами. Однако, если вы изменяете номер группы, вы должны обновить всех пользователей, для которых эта группа является основной, кроме того у вас может возникнуть желание обновить файлы и каталоги, принадлежащие этой группе, в соответствии с новым номером (так же, как было сказано выше, где речь шла об изменении номера пользователя). В листинге 6 показано, как изменить номер группы для john2 на 505, обновить учетную запись пользователя и произвести соответствующие изменения для всех файлов, входящих в файловую систему /home. Вы, вероятно, захотите изменить номера пользователей и групп, если это вообще возможно.
Листинг 6. Переименование группы
[root@pinguino ~]# groupmod -g 505 john2
[root@pinguino ~]# ls -ld ~john2
drwx------ 3 john2 503 4096 Jun 26 18:29 /home/john2
[root@pinguino ~]# id john2
uid=503(john2) gid=503 groups=503
[root@pinguino ~]# usermod -g john2 john2
[root@pinguino ~]# id john2
uid=503(john2) gid=505(john2) groups=505(john2)
[root@pinguino ~]# ls -ld ~john2
drwx------ 3 john2 503 4096 Jun 26 18:29 /home/john2
[root@pinguino ~]# find /home -gid 503 -exec chgrp john2 {} \;
[root@pinguino ~]# ls -ld ~john2
drwx------ 3 john2 john2 4096 Jun 26 18:29 /home/john2
|
Пароли пользователей и групп
Вам уже встречалась команда passwd, которая используется для изменения пароля пользователя. Пароль является уникальным (или должен быть таковым) для пользователя и может быть изменен пользователем. Как вы уже видели, пользователь root может изменить пароль любого пользователя.
Группы также могут иметь пароли, и для их установки используется команда gpasswd. Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы. Конечно, наличие пароля, известного нескольким пользователям в некоторой степени проблематично, поэтому необходимо оценить преимущества добавления пользователя в группу при помощи команды usermod в сравнении с проблемой безопасности при слишком большом количестве людей, знающих пароль группы.
Приостановка и блокирование учетных записей
Если необходимо запретить пользователю регистрацию в системе, можно приостановить или заблокировать учетную запись при помощи команды usermod с опцией -L. Для разблокирования учетной записи используется опция -U. В листинге 7 показано, как заблокировать учетную запись john2, и что произойдет, если john2 попытается зарегистрироваться в системе. Обратите внимание, что когда учетная запись john2 разблокируется, восстанавливается ее прежний пароль.
Листинг 7. Блокирование учетной записи
[root@pinguino ~]# usermod -L john2
[root@pinguino ~]# ssh john2@pinguino
john2@pinguino's password:
Permission denied, please try again.
|
Вы, возможно, заметили ранее, что окно диалога на рисунке 2 имело несколько вкладок с дополнительными свойствами пользователя. Мы кратко упомянули о возможности использования команды passwd для установки пароля пользователя, но и эта команда, и команды usermod и chage могут выполнять множество задач, связанных с учетными записями пользователей. Некоторые их опции показаны в таблице 5. За более подробной информацией об этих и других опциях обратитесь к соответствующим страницам руководства man.
Таблица 5. Команды и опции для изменения учетных записей пользователей
| Опция команды | Назначение |
|---|
| Usermod | Passwd | Chage | |
|---|
| -L | -l | N/A | Блокирует или приостанавливает действие учетной записи. | | -U | -u | N/A | Разблокирует учетную запись. | | N/A | -d | N/A | Блокирует учетную запись путем отмены ее пароля. | | -e | -f | -E | Устанавливает дату прекращения полномочий для учетной записи. | | N/A | -n | -m | Минимальное время действия пароля в днях. | | N/A | -x | -M | Максимальное время действия пароля в днях. | | N/A | -w | -W | Число дней, за которое появляется предупреждение о необходимости изменить пароль. | | -f | -i | -I | Число дней после того, как пароль потеряет силу, но до того, как учетная запись будет отключена. | | N/A | -S | -l | Вывод краткого сообщения о статусе текущей учетной записи. |
Управление базами данных пользователей и групп
Основные репозитории, содержащие информацию о пользователях и группах, — это четыре файла в каталоге /etc.
- /etc/passwd
- файл паролей, содержащий основную информацию о пользователях
- /etc/shadow
- файл теневых паролей, содержащий шифрованные пароли
- /etc/group
- файл групп, содержащий основную информацию о группах и принадлежащих этим группам пользователях
- /etc/gshadow
- файл теневых групп, содержащий шифрованные пароли групп
Эти файлы обновляются при помощи команд, которые вы уже видели в этом учебном пособии, кроме того, после того как мы обсудим сами эти файлы, вам встретятся другие команды для работы с ними. Все эти файлы являются простыми текстовыми файлами. Вообще, вы не должны редактировать их непосредственно. Для их обновления используются специальные инструменты, так что они должным образом блокируются и поддерживаются в синхронном состоянии.
Обратите внимание, что файлы passwd и group являются затеняемыми. Это сделано из соображений безопасности. Сами файлы passwd и group должны быть доступными для чтения для всех, а зашифрованные пароли — недоступными для чтения для всех. Поэтому зашифрованные пароли хранятся в теневых файлах, и эти файлы доступны для чтения только пользователю root. Необходимый доступ для изменения аутентификационных данных обеспечивается при помощи suid-программы, которая имеет полномочия пользователя root, но может быть запущена любым пользователем. Убедитесь, что в системе установлены соответствующие права доступа. В листинге 8 показан пример.
Листинг 8. Права доступа к базам данных пользователей и групп
[ian@pinguino ~]$ ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root 701 Jun 26 19:04 /etc/group
-r-------- 1 root root 580 Jun 26 19:04 /etc/gshadow
-rw-r--r-- 1 root root 1939 Jun 26 19:43 /etc/passwd
-r-------- 1 root root 1324 Jun 26 19:50 /etc/shadow
|
Примечание: Несмотря на то, что все еще существует техническая возможность работы без теневых файлов паролей и групп, эта возможность почти некогда не используется и пользоваться ею не рекомендуется.
Файл /etc/passwd
Файл /etc/passwd содержит одну строку для каждого пользователя системы. В листинге 9 показано несколько примеров строк.
Листинг 9. Записи из файла /etc/password
root:x:0:0:root:/root:/bin/bash
jane:x:504:504:Jane Doe:/home/jane:/bin/bash
john2:x:503:505:John Doe:/home/john2:/bin/tcsh
|
Каждая строка содержит семь полей, разделенных двоеточиями (:), как показано в таблице 6.
Таблица 6. Поля файла /etc/passwd
| Поле | Назначение |
|---|
| Имя пользователя (Username) | Имя, используемое для входа в систему. Например, john2. | | Пароль (Password) |
Зашифрованный пароль.
Если используется зашифрованный пароль,
это поле содержит единичный символ x. | id пользователя (UID) | Число, используемое для представления этого пользователя в системе. Например, 503 для пользователя john2. | id группы (GID) | Число, используемое для представления этой основной группы пользователя в системе. Например, 505 для пользователя john2. | Комментарий (GECOS) | Необязательное поле, используемое для описания пользователя. Например, "John Doe". Это поле может содержать несколько разделенных запятыми записей. Оно также используется такой программой как finger. Название поля GECOS сложилось исторически. Подробнее см. в
man 5 passwd. | | Домашний каталог (Home) | Абсолютный путь для домашнего каталога пользователя. Например, /home/john2. | | Командная оболочка (Shell) | Программа, которая автоматически запускается при входе пользователя в систему. Обычно это интерактивный shell, такой как /bin/bash или /bin/tcsh, но это может быть и другая программа, не обязательно интерактивный shell. |
Файл /etc/group
Файл /etc/group содержит одну строку для каждой группы системы. В листинге 10 показано несколько примеров строк.
Листинг 10. Записи в /etc/group
root:x:0:root
jane:x:504:john2
john2:x:505:
|
Каждая строка содержит четыре поля, разделенных двоеточиями (:), как показано в таблице 7.
Таблица 7. Поля файла /etc/group
| Поле | Назначение |
|---|
| Имя группы (Groupname) | Имя этой группы. Например, john2. | | Пароль (Password) | Зашифрованный пароль. Если используется зашифрованный пароль группы, это поле содержит единичный символ x. | id группы (GID) | Число, используемое для представления этой группы в системе. Например, 505 для группы john2. | | Члены (Members) | Разделенный запятыми список членов группы, за исключением тех членов, для которых это группа является основной. |
Теневые файлы
Файл /etc/shadow должен быть доступен для чтения только для пользователя root. Он содержит зашифрованные пароли наряду с паролем и информацией о времени истечения действия учетной записи. Информацию о значении полей см. в man-странице (man 5 shadow). Пароли могут быть зашифрованы при помощи DES, но чаще для шифрования используется MD5. Алгоритм DES использует 7 младших битов из первых 8 символов пароля пользователя, представленных в виде 56-битного ключа, в то время как алгоритм MD5 использует весь пароль. В любом случае пароли кодированы при помощи salt-кода, так что из двух идентичных паролей не будут сгенерированы одинаковые зашифрованные значения. В листинге 11 показано, как установить одинаковые пароли для пользователей jane и john2, и затем показан результат шифрования паролей при помощи MD5 в файле /etc/shadow.
Листинг 11. Пароли в /etc/shadow
[root@pinguino ~]# echo lpic1111 |passwd jane --stdin
Changing password for user jane.
passwd: all authentication tokens updated successfully.
[root@pinguino ~]# echo lpic1111 |passwd john2 --stdin
Changing password for user john2.
passwd: all authentication tokens updated successfully.
[root@pinguino ~]# grep "^j" /etc/shadow
jane:$1$eG0/KGQY$ZJl.ltYtVw0sv.C5OrqUu/:13691:0:99999:7:::
john2:$1$grkxo6ie$J2muvoTpwo3dZAYYTDYNu.:13691:0:180:7:29::
|
Лидирующий $1$ означает пароль MD5, а salt — это поле переменной длины до 8 символов, заканчивающееся следующим символом $. Оставшаяся строка из 22 символов — это зашифрованный пароль.
Средства администрирования пользователей и групп
Вам уже встречалось несколько команд для манипуляций с файлами учетных записей и групп и их теневыми файлами. Сейчас вы узнаете о:
- Администраторах групп
- Командах редактирования файлов паролей и групп
- Программах преобразования
Администраторы групп
При каких-то обстоятельствах у вас может возникнуть желание, чтобы не только root, но и другие пользователи могли администрировать одну или несколько групп, добавляя или удаляя членов группы. В листинге 12 показано, как root может добавить пользователя jane в качестве администратора для группы john2 и затем jane, в свою очередь, может добавить пользователя ian в качестве пользователя.
Листинг 12. Добавление администраторов и членов группы
[root@pinguino ~]# gpasswd -A jane john2
[root@pinguino ~]# su - jane
[jane@pinguino ~]$ gpasswd -a ian john2
Adding user ian to group john2
[jane@pinguino ~]$ id ian;id jane
uid=500(ian) gid=500(ian) groups=500(ian),505(john2)
uid=504(jane) gid=504(jane) groups=504(jane)
|
Вы можете с удивлением заметить, что, несмотря на то, что jane является администратором группы john2, она не является ее членом. Исследование структуры файла /etc/gshadow показывает, почему это произошло. Как показано в таблице 8, файл /etc/gshadow содержит четыре поля для каждой записи. Обратите внимание, что третье поле — это разделенный запятыми список администраторов группы.
Таблица 8. Поля файла /etc/gshadow
| Поле | Назначение |
|---|
| Имя группы (Groupname) | Имя этой группы. Например, john2. | | Пароль (Password) | Поле используется для хранения зашифрованного пароля, если у группы имеется пароль. Если группа не имеет пароля, здесь можно увидеть 'x', '!' или '!!'. | | Администраторы (Admins) | Разделенный запятыми список администраторов группы. | | Члены (Members) | Разделенный запятыми список членов группы. |
Как можно заметить, список администраторов и список членов — это два отдельных поля. Опция -A команды gpasswd позволяет пользователю root добавлять администраторов группы, в то время как опция -M позволяет пользователю root добавлять членов. Опция -a (заметьте, что используется нижний регистр) позволяет администратору добавлять члена, в то время как опция -d позволяет администратору удалять пользователя. Дополнительные опции позволяют удалить пароль группы. Подробнее см. в страницах руководства man.
Команды редактирования файлов паролей и групп
Хотя следующих двух команд нет в списке целей LPI, необходимо знать, что при помощи команды vipw можно безопасно редактировать файл /etc/passwd, а при помощи команды vigr безопасно редактировать файл /etc/group. Эти команды заблокируют необходимые файлы на то время, пока при помощи редактора vi будут производиться изменения. Если вы вносите изменения в файл /etc/passwd, команда vipw подскажет, что необходимо проверить, не нужно ли обновить и файл /etc/shadow. Подобным образом, если вы обновляете файл /etc/group при помощи команды vigr, вы получите подсказку, что необходимо обновить и файл /etc/gshadow. Если необходимо удалить администраторов группы, необходимо использовать команду vigr, поскольку команда gpasswd позволяет только добавлять администраторов.
Программы преобразования
Другие четыре другие связанные команды также не перечислены в целях LPI. Это команды pwconv, pwunconv,
grpconv и grpunconv.
Они используются для преобразования файлов теневых паролей и групп в нетеневые и обратно. У вас может никогда не возникнуть необходимости в этих командах, но вы должны знать об их существовании. Подробности см. в страницах руководства man.
Ограниченные учетные записи и учетные записи специального назначения
В соответствии с соглашением, системные пользователи обычно имеют id меньше, чем 100, а пользователь root имеет id, равный 0. Автоматическая нумерация обычных пользователей начинается со значения UID_MIN, установленного в файле /etc/login.defs, это значение обычно установлено в 500 или 1000.
Помимо учетных записей обычных пользователей и учетной записи пользователя root, обычно в системе бывает несколько учетных записей специального назначения для демонов, таких как FTP, SSH, mail, news и т.д. В листинге 13 показано несколько записей из файла /etc/passwd для этих учетных записей.
Листинг 13. Ограниченные учетные записи и учетные записи специального назначения
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
|
Такие учетные записи часто управляют файлами, но к ним невозможно получить доступ путем обычной регистрации в системе. Поэтому обычно они имеют login shell, определенный как /sbin/nologin или /bin/false, чтобы попытки зарегистрироваться в системе терпели неудачу.
|  |