Работа с аккаунтами пользователей в Linux

Это будет не большая заметка, в которой мы рассмотрим интересные и важные вопросы администрирования учетных записей пользователей в системе Linux. Как создать нового пользователя, как задать новый пароль, как отключить аккаунт. Все это довольно широко применимо в повседневном администрировании. Мне часто приходится создавать новых пользователей в системе, менять им пароль, настраивать из рабочую среду, ограничивать привилегии. Так же это полезно знать при работе с такими юзерами как ftp, apache, wwwrun, www и прочие. Правильная настройка всегда поможет измежать неприятностей и усилит безопастность сервера.

Управление пользователями в Linux

Для создания пользователя используется утилита useradd. У нее очень простой синтаксис useradd [опции] {имя пользователя}

useradd alex
useradd alex

Для создания пользователя и его домашней директории используйте:

useradd -m alex
useradd -m alex

После того, как создали нового пользователя, задайте ему пароль:

passwd alex
passwd alex

Установить дату когда срок действия пароля истечет, синтаксис так же прост useradd -e {год-месяц-день} {имя пользователя}

useradd -e 2008-12-31 alex
useradd -e 2008-12-31 alex

Заблокировать аккаунт пользоватлея можно командой passwd -l {имя пользователя}

passwd -l alex
Locking password for user alex.
passwd: Success
passwd -l alex
Locking password for user alex.
passwd: Success

Или так:

usermod -L -e 1 alex
usermod -L -e 1 alex

Когда пользователь попробует подключится в систему, он увидит это:
Your account has expired; please contact your system administrator

Или можно убрать ему шелл:

usermod -s /sbin/nologin alex
usermod -s /sbin/nologin alex

Вернуть досутуп обратно (имынми словами разблокировать аккаунт):

passwd -u alex
Unlocking password for user alex.
passwd: Success
passwd -u alex
Unlocking password for user alex.
passwd: Success

Вернуть шелл:

usermod -s /bin/bash alex
usermod -s /bin/bash alex

Если по каким-то причинам вы не хотите удалять пользователя, но хотите удалить его пароль можно сделать так:

passwd -d alex
usrmod -s /sbin/nologin alex
passwd -d alex
usrmod -s /sbin/nologin alex

Проверить статус пароля пользователя:

passwd -S alex
alexb PS 2013-06-16 0 99999 7 -1 (Password set, SHA512 crypt.)
passwd -S alex
alexb PS 2013-06-16 0 99999 7 -1 (Password set, SHA512 crypt.)

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

userdel -f alex
userdel -f alex

Узнать когда истекает срок пароля:

chage -l alex
Last password change                                    : Jun 16, 2013
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
chage -l alex
Last password change                                    : Jun 16, 2013
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

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

chage -d 0 alex
chage -d 0 alex

Сменить UID пользователю:

usermod -u UID
usermod -u UID

Заблокировать аккаунт после 30-дней с той даты, когда у пользователя закончился “срок годности” пароля

vi /etc/default/useradd
INACTIVE=30
vi /etc/default/useradd
INACTIVE=30