Добавление пользователей в группы freebsd. Управление пользователями FreeBSD

Добавить пользователя или группу можно несколькими способами (sysinstall, adduser, pw …). Рассмотрим самые популярные программы для управления пользователями в ОС freeBSD .

1. Добавление пользователей используя adduser

И так рассмотрим указанную выше программу adduser (за слешами будет // мой комментарий) :

#adduser
Username: test // указываем имя будующего пользователя
Full name: Test User // полное имя
Uid (Leave empty for default): // юзер АйДи (индификационный номер в системе) желательно оставить пстым, система сама назначит
Login group : // вносим пользователя в его группу. оставляем пустым
Login group is test. Invite test into other groups? : wheel // можно добавить пользователя в другую группу если есть необходимость
Login class : // оставим пустым
Shell (sh csh tcsh zsh nologin) : tcsh // выбираем ‘оболочку’ командной строки, лучше вписать tcsh, sh не удобен IMHO
Home directory : // домашняя папка можно разместить где удобно но лучше оставить по дефолту
Use password-based authentication? : // оставляем пустым
Use an empty password? (yes/no) : // пользователь с пустым паролем это не безопасно, выбор по умолчанию no
Use a random password? (yes/no) : // система может генерировать случайный пароль по умолчанию no
Enter password: // если вы отвергли 2 верхних пункта вам предложено ввести пароль самостоятельно
Enter password again: // повторите ввоб пароля
Lock out the account after creation? : // заблокировать учетную запись пользователя после создания
Username: test
Password: ****
Full Name: Test User
Uid: 1001
Class:
Groups: test wheel
Home: /home/test
Shell: /usr/local/bin/tcsh
Locked: no
OK? (yes/no): yes // если вышеуказанное совпадает с тем что вы хотели вводите yes
adduser: INFO: Successfully added (test) to the user database.
Add another user? (yes/no): no // предложение добавить еще пользователя, ненасытный, ему только пользователей подавай
Goodbye! // и вам не хворать
#

2. Удаление пользователей используя rmuser

И так добавить - добавили. Теперь нужно знать как удалить /> Помните «ломать - не строить!» Удалить куда проще чем добавить пользователя и назначить ему нужные настройки и права.
Удаляем следующей программой: rmuser
Что может эта программа:

  1. Удаление записи пользователя из crontab (если она присутствует).
  2. Удаляет задачи at , принадлежащие пользователю.
  3. Уничтожает все процессы, принадлежащие пользователю.
  4. Удаляет пользователя из локального файла паролей.
  5. Удаляет домашний каталог пользователя (если он принадлежит пользователю).
  6. Удаляет принадлежащую пользователю входящую почту из /var/mail .
  7. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например /tmp .
  8. Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в /etc/group.

# rmuser test // удаляем пользователя test
Matching password entry:
test:*:1001:1001::0:0:Test User:/home/test:/usr/local/bin/tcsh
Is this the entry you wish to remove? y // перестраховка, того ли юзера вы собрались удалять
Remove user’s home directory (/home/test)? y // удалить пользовательскую папку со всем содержимым?
Updating password file, updating databases, done.
Updating group file: trusted (removing group test - personal group is empty) done.
Removing user’s incoming mail file /var/mail/test: done.
Removing files belonging to test from /tmp: done.
Removing files belonging to test from /var/tmp: done.
Removing files belonging to test from /var/tmp/vi.recover: done. // всё! пользователь ушел в мир иной и все папки за ним подчищены .
#

Если желаете что бы программа не грузила Вас всеми этими вопросами - используйте параметр -y (rmuser -y ) фактически мы соглашаемся на все условия.

3. Смена пароля программами passwd и chpass

Как изменить пароль у пользователя freeBSD? - спросите Вы. Элементарно! - ответит вам любой читавший дальше =).
Программки для смены пароля: passwd и chpass .
passwd - это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем.
Предствим на минутку что Вы простой юзер с именем test и хотите себе поменять пароль:

% passwd

Old password: // вводим старый пароль
New password: //вводим новый пароль
Retype new password: // повторяем новый пароль
passwd: updating the database…
passwd: done // готово пароль изменен

Теперь представим что Вы суперпользователь и хотите изменить пароль простому смертному юзеру:

# passwd test // обязательно укажите имя пользователя иначе измените свой пароль
Changing local password for test.
New password: // новый пароль (как видите старый пароль знать не нужно - преимущества суперюзера)
Retype new password: //повторим пароль
passwd: updating the database…
passwd: done // готово, хехе

Рассмотрим теперь более функциональную примочку - chpass .
chpass - может не только менять пароль пользователя, а и остальные его данные.
Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью программы chpass . Простые пользователи тоже могут использовать эту программу, но изменять позволено лишь небольшую часть этой информации, и только для своей учетной записи.
И так работа программы chpass для суперюзера:

#Changing user database information for test .
Login: test
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change :
Expire :
Class:
Home directory: /home/test
Shell: /usr/local/bin/tcsh
Full Name: Test User
Office Location:
Office Phone:
Home Phone:
Other information:

4. Управление пользователями и группами используя pw

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

# pw useradd test -s /bin/tcsh -c «Test user» -m -b /home -e 03-07-2011 -p 02-07-2011

Пояснение использованных ключей:
-s – указывает какой терминал будет использоваться, поле shell
– комментарии к созданному пользователю, поле gecos
-e – время жизни аккуанта, поле expire. Формат поля аналогичен опции ‘-p’
-p – время жизни пароля, поле change. Формат задания даты или времени таков:
dd-mm-yy, где dd – день, mm – месяц, yy – год. Или используется следующий
формат: +0mhdwoy, где m – минуты, h – часы, d – дни, w – недели, o – месяц, y - год
-m – заставляет создать домашний каталог пользователя и скопировать в него стандартные файлы
и каталога /usr/share/skel
-b – базовая директория в которой будет находится домашний каталог пользователя, поле home_dir
-L – задаёт класс для пользователя из файла login.conf, поле class

Что бы создать группу noname и переместить в нее пользователя test используем следующую комбинацию:

# pw groupadd noname -M test

Что бы добавить пользователя test в уже существующую группу wheel используем:

# pw usermod test -g wheel

Расписывать все возможности pw можно долго. Основные возможности перед Вамм.

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

Ну и в завершении перечислю все возможные приложения и утилиты для мониторинга/изменения/добавления пользователей и групп:

pw(8) – создание, удаление, изменение, отображение пользователей и групп;
adduser(8) – интерактивное добавление нового пользователя;

Добавить пользователя или группу можно несколькими способами (sysinstall, adduser, pw …). Рассмотрим самые популярные программы для управления пользователями в ОС freeBSD.

1. Добавление пользователей используя adduser

И так рассмотрим указанную выше программу adduser (за слешами будет // мой комментарий):

#adduser
Username: test // указываем имя будующего пользователя
Full name: Test User // полное имя
Uid (Leave empty for default): // юзер АйДи (индификационный номер в системе) желательно оставить пстым, система сама назначит
Login group : // вносим пользователя в его группу. оставляем пустым
Login group is test. Invite test into other groups? : wheel // можно добавить пользователя в другую группу если есть необходимость
Login class : // оставим пустым
Shell (sh csh tcsh zsh nologin) : tcsh // выбираем ‘оболочку’ командной строки, лучше вписать tcsh, sh не удобен IMHO
Home directory : // домашняя папка можно разместить где удобно но лучше оставить по дефолту
Use password-based authentication? : // оставляем пустым
Use an empty password? (yes/no) : // пользователь с пустым паролем это не безопасно, выбор по умолчанию no
Use a random password? (yes/no) : // система может генерировать случайный пароль по умолчанию no
Enter password: // если вы отвергли 2 верхних пункта вам предложено ввести пароль самостоятельно
Enter password again: // повторите ввоб пароля
Lock out the account after creation? : // заблокировать учетную запись пользователя после создания
Username: test
Password: ****
Full Name: Test User
Uid: 1001
Class:
Groups: test wheel
Home: /home/test
Shell: /usr/local/bin/tcsh
Locked: no
OK? (yes/no): yes // если вышеуказанное совпадает с тем что вы хотели вводите yes
adduser: INFO: Successfully added (test) to the user database.
Add another user? (yes/no): no // предложение добавить еще пользователя, ненасытный, ему только пользователей подавай
Goodbye! // и вам не хворать
#

2. Удаление пользователей используя rmuser

И так добавить - добавили. Теперь нужно знать как удалить /> Помните «ломать - не строить!» Удалить куда проще чем добавить пользователя и назначить ему нужные настройки и права.
Удаляем следующей программой: rmuser
Что может эта программа:

  1. Удаление записи пользователя из crontab (если она присутствует).
  2. Удаляет задачи at, принадлежащие пользователю.
  3. Уничтожает все процессы, принадлежащие пользователю.
  4. Удаляет пользователя из локального файла паролей.
  5. Удаляет домашний каталог пользователя (если он принадлежит пользователю).
  6. Удаляет принадлежащую пользователю входящую почту из /var/mail.
  7. Удаляет все файлы, принадлежащие пользователю, из каталогов с временными файлами, например /tmp.
  8. Наконец, удаляет имя пользователя из всех групп, которым оно принадлежит, в /etc/group.

# rmuser test // удаляем пользователя test
Matching password entry:
test:*:1001:1001::0:0:Test User:/home/test:/usr/local/bin/tcsh
Is this the entry you wish to remove? y // перестраховка, того ли юзера вы собрались удалять
Remove user’s home directory (/home/test)? y // удалить пользовательскую папку со всем содержимым?
Updating password file, updating databases, done.
Updating group file: trusted (removing group test - personal group is empty) done.
Removing user’s incoming mail file /var/mail/test: done.
Removing files belonging to test from /tmp: done.
Removing files belonging to test from /var/tmp: done.
Removing files belonging to test from /var/tmp/vi.recover: done. // всё! пользователь ушел в мир иной и все папки за ним подчищены.
#

Если желаете что бы программа не грузила Вас всеми этими вопросами - используйте параметр -y (rmuser -y) фактически мы соглашаемся на все условия.

3. Смена пароля программами passwd и chpass

Как изменить пароль у пользователя freeBSD? - спросите Вы. Элементарно! - ответит вам любой читавший дальше =).
Программки для смены пароля: passwd и chpass.
passwd - это обычный способ изменения собственного пароля пользователя, или пароля другого пользователя суперпользователем.
Предствим на минутку что Вы простой юзер с именем test и хотите себе поменять пароль:

% passwd

Old password: // вводим старый пароль
New password: //вводим новый пароль
Retype new password: // повторяем новый пароль
passwd: updating the database…
passwd: done // готово пароль изменен

Теперь представим что Вы суперпользователь и хотите изменить пароль простому смертному юзеру:

# passwd test // обязательно укажите имя пользователя иначе измените свой пароль
Changing local password for test.
New password: // новый пароль (как видите старый пароль знать не нужно - преимущества суперюзера)
Retype new password: //повторим пароль
passwd: updating the database…
passwd: done // готово, хехе

Рассмотрим теперь более функциональную примочку - chpass.
chpass - может не только менять пароль пользователя, а и остальные его данные.
Только системные администраторы с правами суперпользователя могут изменять информацию и пароли других пользователей с помощью программы chpass. Простые пользователи тоже могут использовать эту программу, но изменять позволено лишь небольшую часть этой информации, и только для своей учетной записи.
И так работа программы chpass для суперюзера:

#Changing user database information for test .
Login: test
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change :
Expire :
Class:
Home directory: /home/test
Shell: /usr/local/bin/tcsh
Full Name: Test User
Office Location:
Office Phone:
Home Phone:
Other information:

4. Управление пользователями и группами используя pw

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

# pw useradd test -s /bin/tcsh -c «Test user» -m -b /home -e 03-07-2011 -p 02-07-2011

Пояснение использованных ключей:
-s – указывает какой терминал будет использоваться, поле shell
– комментарии к созданному пользователю, поле gecos
-e – время жизни аккуанта, поле expire. Формат поля аналогичен опции ‘-p’
-p – время жизни пароля, поле change. Формат задания даты или времени таков:
dd-mm-yy, где dd – день, mm – месяц, yy – год. Или используется следующий
формат: +0mhdwoy, где m – минуты, h – часы, d – дни, w – недели, o – месяц, y - год
-m – заставляет создать домашний каталог пользователя и скопировать в него стандартные файлы
и каталога /usr/share/skel
-b – базовая директория в которой будет находится домашний каталог пользователя, поле home_dir
-L – задаёт класс для пользователя из файла login.conf, поле class

Что бы создать группу noname и переместить в нее пользователя test используем следующую комбинацию:

# pw groupadd noname -M test

Что бы добавить пользователя test в уже существующую группу wheel используем:

# pw usermod test -g wheel

Расписывать все возможности pw можно долго. Основные возможности перед Вамм.

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

Ну и в завершении перечислю все возможные приложения и утилиты для мониторинга/изменения/добавления пользователей и групп:

pw(8) – создание, удаление, изменение, отображение пользователей и групп;
adduser(8) – интерактивное добавление нового пользователя;
rmuser(8) – удаление пользователя из системы;

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

Работая в консоли FreeBSD Вы можете легко создать нового пользователя, используя команду aduser. Запуск команды вызывает интерактивный диалог, в котором запрашивается вся необходимая информация. Пользователь будет создан только после ответа на все вопросы системы.

Скриншот иллюстрирует все вопросы задаваемые командой adduser, мы добавили пользователя shitus.

Если вы хотите прервать создание учетной записи, нажмите ctrl+c.

Разберем что означает каждый пункт -

Username: Имя аккаунта

Full name: Настоящее имя пользователя

Uid: Пользовательский id (User ID), каждый пользователь получает уникальный цифровой id, начинающийся от 1000 и выше. Числа ниже 1000 зарезервированы за системой. Каждый новый пользователь получает уникальное число (ID), которое соответственно возрастает с каждым новым аккаунтом. Вы можете оставить эту опцию пусто, т.к. система автоматически добавит уникальный числовой номер для пользователя.

Login group: Пользовательская группа по умолчанию. В юниксовых системах нормально если пользователь состоит в своей собственной группе. Вы можете оставить эту опцию пустой, система сама добавит учетную запись в ее собственную группу по-умолчанию. Следующим щагом система запросит добавлять ли пользователя в другие группы - Login group is shitus. Invite shitus into other groups? Данный пункт оставляю на Ваше усмотрение, ибо задачи у учетных записей разные, например для повышения уровня доступа можно добавить в группу wheel, но я рекомендую глубоко подумать, чем добавлять в эту или в иную другую группу.

Login class: Класс пользователя, используется для гибкости администрования, по-умолчанию default, если вы не очень хорошо владеете вопросом, советую его не менять. Бывают еще например классы -root, standart и т.д.

Shell: устанавливает оболочку (shell или командный интерфейс). По-умолчанию это /bin/sh. Вы можете установить какой-либо другой, например bash. Это возможно проделать и позже, когда поймете, что конкретно Вам нужно от оболочки

Home directory: Домашняя папка, юзерская папка для хранения своих файлов. По умолчанию юзер имеет полные права только на нее. Все юзерские домашние папки располагаются в /usr/home, Вы также можете увидеть папку /home в корневой директории /, но это всего лишь символическая ссылка на /usr/home/

Home directory permissions : Оставляем по-дефолту, в комментариях особо не нуждается.

User password based authentication: Использовать аутентификацию по паролю, по-умолчанию стоит "yes", поэтому просто нажимаем ввод. Надеюсь никому не надо напоминать, что использование пароля обязательно!

Use an empty password: Пользователь может задать свой собственный пароль при первом входе, по умолчанию установлено в "No", что означает необходимость установить пароль сейчас.

Use a random password: По-умолчанию стоит "No". Если вы выбирете "Yes", то система сгенерирует случайный пароль для пользователя. Пароль будет показан после создания пользователя -

Adduser: INFO: Password for (shitus) is: ntFWk55HRq

Lock out the account after creation: Заблокировать аккаунт после создания, то бишь аккаунт будет создан, но залогиниться от него не получится, пока вы его не разблокируете.

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

Удаление пользователя из системы.

Для удаления пользоователя из системы в Freebsd используется команда rmuser с именем пользователя (его можно и не указывать, тогда команда следующим шагом его запросит). В нашем случае мы удаляем пользователя shitus и его домашнюю папку, вводим rmuser shitus и отвечаем на оба вопроса yes, пользователь удален.



Изменение пароля пользователя Freebsd

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

Если вошли как root и желаете изменить пароль пользователя shmitus, то используем команду -

Passwd shmitus После ввода команды у Вас запросят новый пароль для пользователя, а также его подтверждение.

Что-бы упростить процесс администрирования системы и сделать его более гибким, FreeBSD поддерживает полезную возможность, использование так называемых классов пользователей (login class). При создании учетной записи пользователя, по-умолчанию, используется класс "default", берется он, из соответствующей секции файла /etc/login.conf. Кроме класса "drfault", файл содержит еще несколько предопределенных классов, например класс "russian" с соответствующими языковыми настройками, класс "root", "standart", "xuser", "news", "dialer", "siit", часть из них закомментирована, но при необходимости можете раскомментировать и использовать.

В секции класса прописаны начальные системные настройки для пользователя и это довольно важный момент . Приведу пример секции "default" из файла /etc/login.conf , в системе FreeBSD 7.1.

default:\
:passwd_format=md5:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
:nologin=/var/run/nologin:\
:cputime=unlimited:\
:datasize=unlimited:\
:stacksize=unlimited:\
:memorylocked=unlimited:\
:memoryuse=unlimited:\
:filesize=unlimited:\
:coredumpsize=unlimited:\
:openfiles=unlimited:\
:maxproc=unlimited:\
:sbsize=unlimited:\
:vmemoryuse=unlimited:\
:priority=0:\
:ignoretime@:\
:umask=022:

Вот описание некоторых опций класса пользователя:

passwd_format=md5:
Как можно догадаться по названию, это алгоритм шифрования паролей, вместо md5 , можно использовать, например DES
copyright=/etc/COPYRIGHT:
Файл копирайта, можно назначить какой угодно
welcome=/etc/motd:
Сообщение выводимое при логине пользователя в системе
setenv= ... ....
Устанавливает некоторые переменные окружения оболочки
path=.. ..
Пути к директориям с исполняемыми файлами, данная опция может быть переопределена из других файлов конфигурации
nologin=/var/run/nologin:
Опция, указывающая на местоположение файла nologin, запрещающего пользователю вход в систему
администратор может использовать этот файл, для временного запрета входа пользователей в систему
priority=0:
Начальный приоритет процессов по-умолчанию
umask=022:
Задает так называемую маску прав доступа к файлам и директориям, в данном случае, если пользователь создаст файл,
права доступа будут выставлены как 644 , при создании директории 755

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

Имейте в виду, что после редактирования файла /etc/login.conf , вам необходимо пересобрать базу данных логинов /etc/login.conf.db , делается это так:

Vds-admin /# cap_mkdb /etc/login.conf

В операционной системе FreeBSD, информация из файла /etc/login.conf.db , используется при каждом входе пользователя в систему.

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

После создания учетной записи, может понадобится что-то изменить или исправить в начальных пользователя. Есть несколько мест, где это можно делать, например, домашняя директория пользователя содержит файлы, имена которых начинаются со знака "." (точка). В этих файлах как правило содержаться настройки пользовательской оболочки, переменные среды, настройки приложений. Основные настройки учетной записи можно изменить в файле /etc/passwd . Для безопасного редактирования используйте специальный редактор файла паролей vipw .

Vds-admin #/ vipw

Конечно можно использовать любой редактор для изменения файла паролей, но у vipw есть некоторое преимущество, при редактировании с помощью vipw , файл паролей блокируется, что-бы избежать изменения содержимого, по какой-либо другой причине. Файл паролей может редактировать только пользователь root. Типичная запись из файла паролей:

Drupal:*:1007:1007:drupal cms:/home/drupal:/bin/csh

В данном примере показана запись о пользователе drupal , идентификатор пользователя и группы: 1007 , полное имя: drupal cms , домашняя директория:/home/drupal , оболочка: /bin/csh . В общем-то данный файл не несет никакой критической информации, как видите во втором поле строки, вместо пароля, стоит символ "*", это говорит о том, что сам пароль, в зашифрованном виде, храниться в файле master.passwd .

Будьте осторожны, если надумаете менять идентификаторы пользователя или группы. В результате установки не правильных значений, пользователь может получить доступ туда, куда ему ходить не следует.)

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

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

Vds-admin /# rmuser Please enter one or more usernames: newuser Вводим имя учетной записи Matching password entry: newuser:*:1011:1011::0:0:User &:/home/newuser:/bin/csh Строка из /etc/passwd Is this the entry you wish to remove? y Удалить учетную запись Remove user"s home directory (/home/newuser)? y Удалить домашнюю директорию Removing user (newuser): files(1) mailspool home passwd.

Что-бы на все вопросы, программа получала утвердительный ответ, можно использовать ее с опцией -y . А что-бы увидеть подробный отчет о проделанной работе, используйте ключ -v . Так-же, при необходимости, можно воспользоваться возможностью команды rmuser , брать список пользователей из текстового файла, в нем просто перечисляются все учетные записи для удаления, по одной на строку, а команде rmuser передается опция -f и имя файла.

Vds-admin /root# rmuser -yv newuser Removing crontab for (newuser):. Removing at(1) jobs owned by (newuser): 0 removed. Removing IPC mechanisms. Terminating all processes owned by (newuser): -KILL signal sent to 0 processes. Removing files owned by (newuser) in /tmp: 0 removed. Removing files owned by (newuser) in /var/tmp: 0 removed. Removing mail spool(s) for (newuser): /var/mail/newuser. Removing user (newuser) (including home directory) from the system: Done.

Как видите, rmuser , подчищает все довольно капитально, удаляя записи из таблицы планировщика crontab , убивает процессы запущенные данным пользователем, чистит временные папки и т.д.

Управление паролями учетных записей в операционных системах FreeBSD, программа passwd

Для работы с паролями учетных записей предназначена специальная утилита, passwd . Кроме того можно работать с паролями и с помощью утилиты vipw , описанной выше. Обычный пользователь может управлять только своим паролем, пользователь root , может управлять любыми паролями в системе.
Смена пароля пользователем:

Vds-admin /home/user# passwd Запускаем passwd Changing local password for user Old Password: Вводим старый пароль New Password: Вводим новый пароль Retype New Password: Повторно вводим новый пароль

Смена пользователем root , пароля на учетной записи обычного пользователя:

Vds-admin /root# passwd user Запускаем passwd имя учетной записи в качестве параметра Changing local password for user New Password: Вводим новый пароль Retype New Password: Повторно вводим новый пароль

При запуске пользователем root , утилиты passwd без параметров, ему будет предложено сменить свой пароль

Не забывайте, пароль должен быть сложным! Это значит, чем из большего числа символов состоит пароль, тем лучше, использовать в паролях, желательно, как буквы в верхнем и нижнем регистрах, так и цифры и не буквенно-цифровые символы, такие как &^@)*_, и т.д. Конечно для обычных пользователей это не столь критично как для пользователя root, поэтому желательно создавать для них такие пароли, которые они в состоянии запомнить, не записывая на бумажку и не приклеивая ее на морду монитора..:)

Создание групп в операционной системе FreeBSD, файл /etc/group

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

Записи о группах и пользователях в них входящих, хранятся в файле /etc/group , формат его весьма прост:

# $FreeBSD: src/etc/group,v 1.35 2007/06/11 18:36:39 ceri Exp $
#
wheel:*:0:root
daemon:*:1:
kmem:*:2:
sys:*:3:
tty:*:4:
operator:*:5:root
mail:*:6:
bin:*:7:
sshd:*:22:

Это укороченный вариант, но для ознакомления достаточно. В первом поле, имя группы, далее пароль, вместо него как правило стоит символ "*", далее идентификатор группы (GroupID ), и в последнем поле, через запятую, перечисляются пользователи, входящие в данную группу. Группы с идентификаторами меньше 100, это административные группы, обычные группы начинаются с ID 1001. Существуют так-же специальные группы, предназначенные для отображения групповых прав пользователей, через сеть, такие как nogroup (65533) и nobody (65534) .

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

Группа wheel , является привилегированной, как видите в нее входит пользователь root , добавляя в эту группу еще какого-то пользователя, вы тем самым даете ему права root , помните об этом.

Модель полномочий и пользователей, используемая в операционной системе FreeBSD и большинстве систем семейства UNIX достаточно простая и одноуровневая. Не то, что Windows со своими вложенными одна в другую группами:-).

В FreeBSD существует только два типа пользователей: обычные пользователи и суперпользователь root. Ну и соответственно плоское пространство групп.

На первый взгляд может показаться, что эта схема менее практична, чем схема Windows. Но всё-таки у любой из схем есть свои плюсы и минусы. Сложная иерархическая система групп, пользователей и полномочий Windows позволяет более гибко настроить политику доступа, но также увеличивает вероятность того, что что-то может пойти не так. Да и велика вероятность допустить ошибку, степень которой может варьироваться в широких пределах. Ладно б там, начальник не получил доступ к своей папке. А если все получили доступ к закрытым документам?

Каждый обычный пользователь системы FreeBSD обладает ограниченными полномочиями и имеет закреплённое за собой место хранения файлов (домашняя директория). Когда мы подключаемся к компьютеру удалённо, то являемся там, как правило, рядовым пользователем. Мы сразу попадаем в свой домашний каталог, в котором можем изменять файлы. И то только потому, что являемся их владельцем.

Для того, чтобы олицетворить себя суперпользователем, используем команду su. Потребуется ввести пароль суперпользователя, который является “ключом от всех дверей” нашей системы. После получения доступа на уровне суперпользователя мы получим такие возможности для создания или удаления файлов на компьютере, какие не сможем получить ни на одной системе под управлением Windows.

Важно помнить, что работая в системе под root нужно соблюдать повышенные меры безопасности. Система не будет сомневаться в компетентности root-а, если он сказал – удалить важные каталоги, значит так нужно.

Для того, чтобы выполнить команду su, нужно быть членом группы, называемой “wheel”. В эту группу входят те пользователи, которым полномочно становиться суперпользователями.

“Кто все эти люди?”

Есть ещё одна особенность. Наряду с регистрирующимися пользователями (люди, которые подключаются к системе), существуют и автоматические пользователи (bin, daemon, nobody, operator, www и прочие). Эти учётные записи существуют, чтобы владеть некоторыми системными процессами. Важно понимать тут, что каждый процесс, как и файл, должен принадлежать некоторому пользователю и все процессы ограничены полномочиями тех пользователей, которым они принадлежат.

Пользователи никогда не обращаются к своим файлам напрямую. Все, что делает пользователь со своими файлами с помощью команд – на самом деле выполняет процесс, от имени пользователя. Процессы оперируют файлами или другими процессами. Процессы, принадлежащие пользователю ivan могут работать только с файлами и процессами, которые принадлежат пользователю ivan. В доступе может быть отказано, если один из этих процессов попытается изменить файл или процесс пользователя andrey.

Для чего же нужны псевдопользователи? Представим, что пользователь ivan стал вдруг суперпользователем. Все процессы, выполняемые от имени ivan станут обладать абсолютной властью по отношению к процессам другого пользователя. А что, если один из таких процессов читает особый конфигурационный файл и изменяет параметры системы? А что, если по причине какой-либо ошибки любой может получить доступ к конфигурационному файлу или иным способом передать потенциально небезопасные параметры в программу, выполняющуюся с абсолютными правами? Система может быть уничтожена. Без вопросов и лишних предупреждений. Поэтому каждый сервис должен быть запущен от имени определённого псевдопользователя и быть “запертым” в пространстве своих “владений”, чтобы ненароком не повредить остальную часть системы.

Для чего нужны группы?

Каждый пользователь принадлежит определённой первичной группе, которая, как правило, имеет то же имя, что и пользователь. Фактически пользователь является единственным членом своей первичной группы. Но ничто не мешает нам создать группу, например ftpusers и добавить пользователей в неё. Кстати, управлять принадлежностью пользователей может только суперпользователь root.

В общем случае группы нужды для того, чтобы предоставить определённым пользователям возможность совместной работы с некоторыми файлами или процессами. Ведь нежелательно, чтобы разные люди использовали одну учётную запись для доступа к файлам, нежелательно, чтобы один пароль был известен кому-то ещё. И группы могут предоставить разным пользователям равные привилегии.