13.6. Изменение учетных записей

В среде UNIX® существуют различные команды для работы с учетными записями пользователей. Наиболее часто используемые команды приведены в таблице, ниже находятся более детальные примеры их использования.

Команда Краткое описание
adduser(8) Рекомендуемое приложение командной строки для добавления новых пользователей.
rmuser(8) Рекомендуемое приложение командной строки для удаления пользователей.
chpass(1) Гибкий инструмент для изменения информации в базе данных пользователей.
passwd(1) Простой инструмент командной строки для изменения паролей пользователей.
pw(8) Мощный и гибкий инструмент для изменения любой информации, связанной с учетными записями пользователей.

13.6.1. adduser

adduser(8) это простая программа для добавления новых пользователей. Она создает записи в системных файлах passwd и group. Она также создает домашний каталог для нового пользователя, копируя файлы настройки по умолчанию (''dotfiles'', файлы имя который начинается с символа .) из /usr/share/skel и опционально может отправлять новому пользователю приветственное сообщение.

Пример 13-1. Добавление пользователя в FreeBSD

# adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
#

Замечание: Пароль, который вы вводите, не отображается, ''звездочки'' при вводе пароля также не отображаются. Убедитесь, что вы не ошиблись при вводе пароля.

13.6.2. rmuser

Для полного удаления пользователя из системы вы можете использовать rmuser(8). Эта программа выполняет следующие действия:

  1. Удаление записи пользователя из crontab(1) (если она присутствует).

  2. Удаляет задачи at(1), принадлежащие пользователю.

  3. Уничтожает все процессы, принадлежащие пользователю.

  4. Удаляет пользователя из локального файла паролей.

  5. Удаляет домашний каталог пользователя (если он принадлежит пользователю).

  6. Удаляет принадлежащую пользователю входящую почту из /var/mail.

  7. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например /tmp.

  8. Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в /etc/group.

    Замечание: Если после этого удаления группа остается пустой и имя группы совпадает с именем пользователя, она удаляется; Это необходимо для удаления пользовательских уникальных групп, создаваемых adduser(8).

rmuser(8) не может использоваться для удаления учетной записи суперпользователя, поскольку это почти всегда означает разрушение системы.

По умолчанию используется интерактивный режим, программа пытается убедиться, что вы уверены в своих действиях.

Пример 13-2. Интерактивное удаление учетной записи с помощью rmuser

# rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
#

13.6.3. chpass

chpass(1) изменяет информацию в базе данных пользователей: пароли, оболочки, персональную информацию.

Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью chpass(1).

При запуске без параметров (кроме опционального имени пользователя), chpass(1) вызывает редактор, содержащий информацию о пользователе. Когда пользователь выходит из редактора, база данных пользователей обновляется этой информацией.

Замечание: После выхода из редактора будет запрошен пароль (если вы не суперпользователь).

Пример 13-3. Интерактивная работа с chpass суперпользователя

#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Обычные пользователи могут изменять лишь небольшую часть этой информации, и только для своей учетной записи.

Пример 13-4. Интерактивная работа с chpass обычного пользователя

#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Замечание: chfn(1) и chsh(1) это всего лишь ссылки на chpass(1), как и ypchpass(1), ypchfn(1) и ypchsh(1). NIS поддерживается автоматически, так что указание yp перед командой не обязательно. Если это непонятно, не беспокойтесь, NIS будет рассмотрен в Гл. 25.

13.6.4. passwd

passwd(1) это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем.

Замечание: Для предотвращения случайного или неавторизованного изменения, перед установкой нового пароля необходимо ввести старый.

Пример 13-5. Изменение пароля

% passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done

Пример 13-6. Изменение пароля другого пользователя суперпользователем

# passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done

Замечание: Как и с chpass(1), yppasswd(1) это всего лишь ссылка на passwd(1), так что NIS работает с обеими командами.

13.6.5. pw

pw(8) это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У pw(8) очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.