Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Управление паролями в Linux с помощью команды passwd

Оригинал: Password Management in Linux by using passwd command
Автор: Naga Ramesh
Дата публикации: 30 апреля 2016 года
Перевод: А. Кривошей
Дата перевода: апрель 2017 г.

Пароль в Linux - это последовательность символов без пробелов, используемая для идентификации пользователя в операционной системе. Обычно в многопользовательской или хорошо защищенной однопользовательской системе каждому пользователю присваивается уникальное имя (называемое user ID), которое не является секретом. Если пользователь вводит опеределенный ID, необходимо убедиться, что это действительно он. Для этого служит пароль, который знает только этот пользователь. Большинство сетей требуют от своих пользователей периодической смены паролей.

Команда passwd

Команда passwd используется для создания и изменения пользовательских паролей. Обычный пользователь может запустить passwd, чтобы сменить свой собственный пароль, а системный администратор (суперпользователь root) может изменять пароли других пользователей, либо опеределять правила использования и смены пользовательских паролей.

Синтаксис PASSWD

Использование: passwd [OPTION...] <accountName>
-k, --keep-tokens keep non-expired authentication tokens
-d, --delete удалить пароль для заданного аккаунта (только root)
-l, --lock заблокировать заданный аккаунт (только root)
-u, --unlock разблокировать заданный аккаунт (только root)
-f, --force не запрашивать подтверждение
-x, --maximum=DAYS максимальное время жизни пароля (только root)
-n, --minimum=DAYS минимальное время жизни пароля (только root)
-w, --warning=DAYS за сколько дней до истечения срока действия пароля предупреждать пользователя (только root)
-i, --inactive=DAYS через сколько дней после истечения срока действия пароля аккаунт дезактивируется (только root)
-S, --status вывести статус пароля для заданного аккаунта (только root)
--stdin читать новые токены из stdin (только root)

Смена пароля обычного пользователя

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

[user1@localhost ~]$ passwd
Changing password for user user1.
Changing password for user1.
(current) UNIX password:
New password:
Retype new password:
passwd: 
all authentication tokens updated successfully.

Если вы авторизованы как root, то при запуске команды passwd по умолчанию сбрасывается пароль root, а если вы зададите после команды имя пользователя, то можете сменить пароль этого пользователя.

Вывод информации о статусе пароля

Для показа информации о статусе пароля пользователя используется опция -S команды passwd.

[root@localhost ~]# passwd -S user1
user1 PS 2016-04-21 0 99999 7 -1 (Password set, SHA512 crypt.)

В приведенном выше выводе команды первое поле показывает имя пользователя, затем статус пароля ( PS = Password Set (пароль задан) , LK = Password locked (пароль заблокирован) , NP = No Password (нет пароля) ). Третье поле отображает время последнего изменения пароля, а четвертое и последнее поле - минимальный и максимальный срок действия пароля, срок вывода предупреждения и срок дезактивации пароля.

Мы также можем вывести информацию о статусе паролей всех пользователей с помощью опции –Sa.

root@localhost:~# passwd -Sa

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

Мы можем удалить пароль заданного пользователя с помощью опции -d.

[root@localhost ~]# passwd -d user1
Removing password for user user1.
passwd: Success
[root@localhost ~]#

Блокировка пароля пользователя

С помощью опции "-l" команды passwd можно заблокировать пароль пользователя. Пока пароль заблокирован, пользователь не сможет сменить его.

[root@localhost ~]# passwd -l user1
Locking password for user user1.
passwd: Success

Для разблокировки пользовательского пароля используется опция -u.

[root@localhost ~]# passwd -u user1
Unlocking password for user user1.
passwd: Success

Дезактивация пароля

С помощью опции -i вы можете дезактивировать пароль пользователя, если через "n" дней после истечения срока действия пароля он не сменил его. После этого пользователь не сможет авторизоваться в системе.

[root@localhost ~]# passwd -n 90 user1
Adjusting aging data for user user1.
passwd: Success
[root@localhost ~]# passwd -S user1
user1 PS 2016-04-21 90 99999 7 7 (Password set, SHA512 crypt.)
[root@localhost ~]#

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

[root@localhost ~]# passwd -n 90 user1
Adjusting aging data for user user1.
passwd: Success
[root@localhost ~]# passwd -S user1
user1 PS 2016-04-21 90 99999 7 7 (Password set, SHA512 crypt.)
[root@localhost ~]#

С помощью опции -w можно задать, за сколько дней до истечения срока действия пароля пользовать получит предупреждение об этом.

[root@localhost ~]# passwd -w 30 user1
Adjusting aging data for user user1.
passwd: Success
[root@localhost ~]# chage -l user1
Last password change                                    : Apr 21, 2016
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 90
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 30
[root@localhost ~]#