Создание пользователей во FreeBSD

Вероятно, одной из самых часто решаемых задач, в процессе администрирования, является управление учетными записями пользователей. За выражением "управление учетными записями пользователей", скрывается целый ряд действий, осуществляемых администратором системы, настройка классов пользователей, создание учетных записей пользователей, изменение учетных записей, удаление или блокировка учетных записей, управление пользовательскими паролями, управление группами. Операционная система FreeBSD, предоставляют удобные инструменты, для облегчения жизни администратору сервера.

Создание учетной записи пользователя в операционных системах FreeBSD, программа adduser

Самым простым и удобным вариантом, для создания учетной записи пользователя в операционной системе FreeBSD, на мой взгляд является утилита adduser. Запущенная без параметров, adduser, переходит в интерактивный режим, то есть в процессе, вам будет задан ряд вопросов, а введенная вами информация будет использована для создания учетной записи. Выглядит это следующим образом:

vds-admin /root# adduser
Итак, запускаем программу
Username: newuser
вводим имя создаваемого пользователя
Full name: vasya pupkin
полное имя, можно оставить пусты, просто нажать Enter
Uid (Leave empty for default):
user id, можно ввести самому, начиная с номера 1001, либо нажать Enter, система выберет сама
Login group [newuser]:
группа в которую входит создаваемый пользователь, по умолчанию совпадает с именем
Login group is newuser. Invite newuser into other groups? []:
включить-ли пользователя в другие группы, если нет, жмем Enter
Login class [default]:
класс пользователя, о них поговорим чуть позже, на данном этапе, жмем Enter
Shell (sh csh tcsh nologin) [sh]: csh
здесь предлагается выбрать системную оболочку, если вы не собираетесь давать данной учетной записи, 
удаленный доступ к системе, например через SSH, вписываем nologin, 
либо выбираем из предложенных вариантов, я обычно ставлю csh
Home directory [/home/newuser]:
назначаем домашнюю директорию, если значение по-умолчанию устраивает, жмем Enter
Home directory permissions (Leave empty for default):
права доступа на домашнюю директорию, что-бы оставить по-умолчанию, жмем Enter
Use password-based authentication? [yes]:
использовать-ли авторизацию по паролю
Use an empty password? (yes/no) [no]:
можно-ли использовать пустые пароли
Use a random password? (yes/no) [no]:
система предлагает сгенерировать вам пароль, что-бы согласиться, нужно написать yes 
на заключительном этапе создания учетной записи, будет показан сгенерированный пароль
если предпочитаете ставить пароль вручную, жмите Enter
Enter password:
вводим пароль, имейте в виду, программа не покажет, что вы вообще что-либо вводите
так что будьте внимательны
Enter password again:
повторный ввод пароля
Lock out the account after creation? [no]:
заблокировать-ли учетную запись после создания

Далее, для подтверждения, будут показаны введенные вами данные

Username   : newuser
Password   : *****
Full Name  :
Uid        : 1011
Class      :
Groups     : newuser
Home       : /home/newuser
Home Mode  : 777
Shell      : /bin/csh
Locked     : no
OK? (yes/no): yes

Если все устраивает, пишем yes и жмем Enter. После этого, программа спросит, приступать-ли ей к созданию следующей учетной записи:

Add another user? (yes/no): no

Ограничимся одним пользователем, набираем no, жмем Enter.

Итак, что произошло в момент создания учетной записи пользователя

  • запись о новом пользователе была добавлена в файл /etc/passwd
  • создана домашняя директория пользователя, в нашем случае /home/newuser
  • в домашнюю директорию, были скопированы файлы из директории /usr/share/skel
  • пользователь был добавлен в соответствующую группу, запись об этом добавлена в файл /etc/group
  • в директории /var/mail был создан почтовый файл с именем пользователя

Вот собственно и все. Довольно просто, не правда-ли ?

Пакетное создание учетных записей пользователей в операционных системах FreeBSD, программа adduser

Утилита adduser, позволяет выполнять добавление целого списка пользователей разом. Это может понадобится, например если вам нужно добавить десяток одинаковых пользователей на несколько серверов. Что-бы воспользоваться этой возможностью, нужно создать конфигурационный файл и использовать опцию -f, команды adduser.

Конфигурационный файл представляет из себя обычный текстовый файл в котором перечислены все параметры для создаваемых учетных записей. Каждый пользователь прописан на отдельной строке, строка в свою очередь состоит из 10 полей, разделенных знаком ":". Вот содержимое файла:

vds-admin /# cat users.txt
newuser1:3000:3000::::vasya pupkin:/home/newuser1:/bin/sh:12345
newuser2:3001:3001::::vova tyapkin:/home/newuser2:/bin/csh:67890
newuser3:3002:3002::::kisa vorobyaninov:/home/newuser3:/bin/tcsh:1234567890

Что собственно тут написано, по сути все то-же самое, что мы вводим при создании учетной записи, в интерактивном режиме. Заметьте, в нашем случае, заполнены не все поля, это вполне нормально.

  1. Имя пользователя
  2. Идентификатор пользователя, UserID, должен быть уникальным в системе, то есть нужно выбирать тот, который еще не используется, для удобства можно оставить пустым, ID будет назначен автоматически
  3. Идентификатор группы, GroupID, для него справедливо все сказанное о UserID
  4. Класс пользователя, мы оставили поле пусты, будет назначен класс по-умолчанию
  5. Срок действия пароля пользователя
  6. Срок действия учетной записи пользователя
  7. Полное имя пользователя
  8. Домашняя директория
  9. Оболочка, как и в случае интерактивного создания пользователя, можно выбрать из нескольких или запретить использовать nologin, я всем назначил разные
  10. Пароль пользователя

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

Прежде чем использовать утилиту adduser с этим конфигурационным файлом, нужно проделать еще одно действие, а именно, добавить необходимые группы, просто прописав их в файл /etc/group в следующем формате:

newuser1:*:3000:
newuser2:*:3001:
newuser3:*:3002:

Что-бы не заморачиваться с UserID и GroupID, можно, в нашем конфигурационном файле, просто оставить соответствующие поля пустыми, система сама выберет свободные значения и назначит их, при этом будут автоматически созданы необходимые записи в файле /etc/group.

Запускаем:

vds-admin /# adduser -f ./users.txt  Передаем наш конфиг утилите adduser
adduser: INFO: Successfully added (newuser1) to the user database.
adduser: INFO: Successfully added (newuser2) to the user database.
adduser: INFO: Successfully added (newuser3) to the user database.

Как видите все прошло успешно

Установка значений "по-умолчанию" для создаваемых учетных записей пользователей в операционных системах FreeBSD

При желании можно создать конфигурационный файл /etc/adduser.conf, откуда программа adduser будет брать значения при создании новых учетных записей. Лучше всего это сделать, запустив adduser с ключом -C. Процесс выглядит следующим образом:

vds-admin /# adduser -C
Uid (Leave empty for default):
Login group []:
Enter additional groups []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Lock out the account after creation? [no]:
Pass Type  : yes
Class      :
Groups     :
Home       : /home/
Home Mode  :
Shell      : /bin/csh
Locked     : no
OK? (yes/no): yes

Значения, которые вы планируете устанавливать сами в процессе работы утилиты adduser, просто оставляйте пустыми. В итоге будет создан файл конфигурации /etc/adduser.conf, примерно такого содержания:

vds-admin /# cat /etc/adduser.conf
# Configuration file for adduser(8).
# NOTE: only *some* variables are saved.
# Last Modified on Thu Jun 25 06:49:19 UTC 2009.
defaultHomePerm=            
defaultLgroup=
defaultclass=
defaultgroups=
passwdtype=yes
homeprefix=/home
defaultshell=/bin/csh
udotdir=/usr/share/skel
msgfile=/etc/adduser.msg
disableflag=
uidstart=1011

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

Опции команды adduser и их использование при создании учетной записи в операционной системе FreeBSD

Любые значения определенные в файле /etc/adduser.conf, можно переопределить из командной строки с помощью опций утилиты adduser. Например, назначить другое местоположение домашней директории пользователя, можно следующим образом:

vds-admin /# adduser -d /otherhome 
в данном случае домашняя директория будет /otherhome/user_name

Назначить другую оболочку:

vds-admin /# adduser -s /bin/sh 
в качестве оболочки будет использован /bin/sh 

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

vds-admin /# ls -l /usr/share/skel
total 18
-rw-r--r--  1 root  wheel  751 Mar  9 16:37 dot.cshrc
-rw-r--r--  1 root  wheel  248 Mar  9 16:37 dot.login
-rw-r--r--  1 root  wheel  158 Mar  9 16:37 dot.login_conf
-rw-------  1 root  wheel  373 Mar  9 16:37 dot.mail_aliases
-rw-r--r--  1 root  wheel  331 Mar  9 16:37 dot.mailrc
-rw-r--r--  1 root  wheel  766 Mar  9 16:37 dot.profile
-rw-------  1 root  wheel  276 Mar  9 16:37 dot.rhosts
-rw-r--r--  1 root  wheel  975 Mar  9 16:37 dot.shrc

Если вам нужно что-бы при создании учетной записи, в домашней директории пользователя, создавались еще какие-то файлы или папки ( например папка public_html ), просто добавьте их в данную директорию, при выполнении adduser скопирует их. Кроме того, можно создать свою заготовку для директорий, создаваемых пользователей и назначить ее для использования командой adduser, в командной строке.

vds-admin /# adduser -k /usr/share/newskel

Что-бы совсем проигнорировать настройки из файла /etc/adduser.conf и использовать системные значения по-умолчанию, можно использовать ключ -N:

vds-admin /# adduser -N

Если вам не нужно что-бы при создании учетной записи, создавалась домашняя директория пользователя, используйте следующий вариант:

vds-admin /# adduser -D 

По-умолчанию, утилита adduser, использует класс пользователей "default", что-бы изменить это значение, используйте:

vds-admin /# adduser -L newclass

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Регистр имеет значение
    oooo    .oooooo.        .o88o.  oooooooooo.                 ooooooooo.   
`888 d8P' `Y8b 888 `" `888' `Y8b `888 `Y88.
888 888 888 o888oo 888 888 oooo ooo 888 .d88'
888 888 888 888 888 888 `88. .8' 888ooo88P'
888 888 888 888 888 888 `88..8' 888
888 `88b d88b 888 888 d88' `888' 888
.o. 88P `Y8bood8P'Ybd' o888o o888bood8P' .8' o888o
`Y888P .o..P'
`Y8P'
Введите код, изображенный в стиле ASCII-арт.