Меняем пароль в Linux
Так как Linux — платформа многопользовательская, да еще и с особым уклоном в безопасность, то приходится иметь дела с полномочиями и паролями. Последний особенно часто нужен даже для выполнения тривиальных задач вроде установки свежего программного обеспечения.
Как и в других системах, пароли в Linux иногда приходится менять. В большинстве случаев это приходится делать чисто из соображений безопасности. Когда одним устройством пользуется группа людей, каждому выдается свой пароль. Время от времени их нужно менять для профилактики взлома и потенциальных утечек.
Если речь идет о каком-нибудь администрируемом сервере, то наверняка пользователь с наивысшими полномочиями вынуждает других менять пароль чуть ли не каждый месяц, а того и чаще. Все зависит от требований конкретного человека.
Собственно, об этом и поговорим. Как сменить пароль в Linux, каким должен быть этот пароль, как заставить поменять пароль других пользователей и так далее. Полный экскурс в мир безопасности на платформе Linux.
Утилита passwd
Вообще, в Linux есть несколько программ для управления паролями. Многие из них имеют графический интерфейс и визуально напоминают таковые из других операционных систем (Windows или macOS). Но использовать их все вовсе не обязательно, потому что есть универсальный способ изменения пароля, который вшит в Linux и поддерживается на любом дистрибутиве. Речь об утилите passwd.
Принцип ее работы заключается в изменении содержимого файла /etc/shadow. Это текстовый файл, в котором хранятся пароли. Пароли эти хранятся в зашифрованном виде, которые невозможно расшифровать. При этом пароль в этом файле можно заменить, но так как это процедура сложная, то проще воспользоваться специальной программой.
Также у passwd есть еще несколько преимуществ. С помощью нее можно вынуждать менять пароли других пользователей, а также ставить сроки действия пароля. То есть устанавливать некий таймер, по истечении работы которого пароль просрочится и перестанет работать. А еще можно проделывать любые махинациями с паролями других пользователей.
Синтаксис и опции утилиты passwd
Команды с использованием утилиты passwd строятся по следующей схеме: сначала пишем название самой программы, потом прописываем нужные опции, а потом имя пользователя, на которого будут применены описанные действия.
passwd (название утилиты) опции и имя пользователя .
Как видите, все довольно просто. Легко запомнить и самостоятельно разобраться.
А вот и список доступных опций:
- -d — с помощью этой опции можно удалить пароль у любого пользователя без возможности его вернуть (придется создавать новый). Естественно, после выполнения этой команды пользователь не сможет зайти в систему.
- -e — эта опция обозначает пароль выбранного пользователя устаревшим. Если ею воспользоваться, то система при следующей попытке пользователя войти, вынудит его сменить пароль, объясняя требование как раз-таки устаревшим паролем.
- -iи время — если воспользоваться этой опцией и указать определенный период времени, то после устаревания пароля, спустя этот временной отрезок пользователь будет удален из системы. Если в течение действия опции пользователь успеет заменить пароль на новый, то с учетной записью ничего не произойдет и она будет работать так же, как и раньше.
- -l — эта опция никак не связана с изменением пароля. Она выполняет одну простую функцию — блокирует пользователю доступ к системе.
- -u — а эта пригодится, чтобы разблокировать аккаунт и вернуть доступ выбранному пользователю.
- -nи количество — с помощью этой опции можно указать минимальное количество суток, которое должно пройти с последней смены пароля, чтобы вновь можно было изменить пароль выбранного пользователя.
- -S — воспользуйтесь этой опцией, чтобы получить полный перечень параметров, связанных с паролем у выбранной учетной записи. Она показывает, когда был установлен пароль, как часто он должен меняться, когда следующая смена, придет ли оповещение о необходимости сменить пароль и прочие полезные данные.
- -xи количество — этим параметром задается количество дней, в течение которого выбранный пользователем пароль будет являться актуальным.
- -wи количество — здесь тоже указывается количество дней. Спустя указанное количество суток после смены пароля (именно тогда вступает в действие эта опция) пользователь получит предупреждение о том, что его пароль устарел и его необходимо сменить.
Дальше поговорим о конкретных примерах использования passwd с некоторыми из перечисленных опций.
Меняем свой пароль
Начнем с самой простой и, наверное, самой востребованной операции. Обычная смена пароля для самого себя. То есть для пользователя, под данными которого вы выполнили вход и от лица которого запустили терминал.
- Для смены пароля просто вводим команду passwd . Никакие опции и параметры здесь не нужны. Программа сама определит, что вы за пользователь, а отсутствие опций даст ей понять, что нужно без лишней суеты просто поменять пароль.
Linux задание пароля пользователя
Для введения пароля нового пользователя или изменения пароля существующего введите в командной строке команду
введите пароль (допускаются любые символы, прописные и строчные буквы различаются). На экране не отображаются никакие символы, и курсор по мере набора символов не перемещается.
Если введенный пароль слишком простой (например, короче шести символов), об этом будет выдано предупреждение, начинающееся со слов BAD PASSWORD (далее следует описание недостатков пароля). Напоминаем, что Linux — принципиально многопользовательская система, поэтому по умолчанию предполагается, что на Вашем компьютере могут работать самые разные люди, в том числе и способные «взломать» Ваш пароль. Поэтому настоятельно рекомендуется использовать достаточно длинные (не менее 6 и не более 256 символов) пароли, состоящие не только из цифр и не содержащие «словарных» слов. Разумеется, если компьютер находится в Вашем полном распоряжении и недоступен для посторонних, эти предосторожности представляются чрезмерными. Поэтому Вы можете проигнорировать это сообщение (в данном случае носящее характер предупреждения).
После ввода пароля Вам будет предложено подтвердить введенный пароль. В ответ на приглашение
В случае успеха (если дважды был введен одинаковый пароль) выдается сообщение
passwd: all authentification tokens updated successfully
и программа завершает работу. Если пароли, введенные в первом и во втором случае, не совпадают, выдается сообщение
Sorry, passwords do not match
Точно так же (работая с полномочиями суперпользователя) Вы можете изменить пароль пользователя, который по каким-либо причинам не может войти в систему (например, если он забыл свой пароль). После входа в систему любой пользователь может сам изменить свой пароль. Для этого следует в командной строке ввести команду
ввести текущий пароль. Дальнейшая работа программы аналогична описанной выше, однако в этом случае задание простого пароля не допускается.
Managing Linux users with the passwd command
Linux authentication is primarily handled with passwords and public keys. Find out how the passwd command fits into the user management process.
Unix-like operating systems. including Linux, were developed right from the start as preemptive multitasking and multi-user systems.
Multitasking refers to an operating system in which multiple processes, also called tasks, can execute (i.e., run) on a single computer seemingly simultaneously and without interfering with each other. Each process has the illusion that it is the only process on the computer and that it has exclusive access to all the services of the operating system.
Linux is multi-user because it allows multiple people to use a computer and not affect each other’s files, processes, preferences, etc.
Because there could be multiple users on the system, it is, therefore, necessary to manage their authentication. Authentication is primarily handled with passwords and public keys. One of the many tools available we use to set up passwords is the passwd command.
Linux security
The passwd command
The passwd command changes passwords for user accounts. A normal user may only change the password for their own account, while the superuser may change the password for any account. passwd also changes the account or associated password validity period. This task is achieved through calls to the Linux-PAM and libuser API.
In this article, I am assuming there are already users created on the system with useradd or some other command.
We can see users created on the system with this command:
[root@server ~]# cat /etc/passwd
Use the man page as a reference for passwd . As with all Linux commands, there is a synopsis, which details how the command is used. The man page synopsis for passwd is as below:
passwd [options] [LOGIN] Running the passwd command without any argument will ask for a change of password for the user logged in.
Options
Here is an explanation of some of the options for the passwd command:
The -S option displays the status of user account password settings.
# passwd -S evans evans PS 2020-09-07 0 99999 7 -1 (Password set, SHA512 crypt.)
The output above shows the account evans was created on 7th September 2020 and has a password set with SHA512 encryption.
The -l option is used to lock the password of a specified account, and it is available to root only. The result is that the user cannot use the password to log in to the system but can use other means such as SSH public key authentication.
This option will unlock the password. This option works for an account that already has the password locked.
This is a quick way to delete a password for an account.
This is a quick way to expire a password for an account. The user will be forced to change the password during the next login attempt.
This sets the number of days before a password can be changed. By default, a value of zero is set, which indicates that the user may change their password at any time.
This means user2 cannot change its own password until 10 days have passed.
To confirm the password setting made with the -n option above, run the following command:
# passwd -S user1 user1 PS 2020-12-04 10 99999 7 -1 (Password set, SHA512 crypt.)
The value of 10 after the date indicates the minimum number of days until the password can be changed.
Set the maximum number of days a password remains valid. After MAX_DAYS, the password is required to be changed.
This means after 90 days, the password is required to be changed.
Confirm the setting with passwd -S user1
[root@server ~]# passwd -S user1 user1 PS 2020-12-04 10 90 7 -1 (Password set, SHA512 crypt.)
The value of 90 after 10 indicates the maximum password lifetime.
This will set the number of days in advance the user will begin receiving warnings that the password will expire.
This means the user will receive warnings that the password will expire 7 days before the expiration.
This option is used to disable an account after the password has been expired for a number of days. After a user account has had an expired password for INACTIVE days, the user may no longer sign on to the account.
This means after a user account has had an expired password for 5 days, the user may no longer sign on to the account.
This option indicates that passwd should read the new password from standard input, which can be a pipe.
# echo "userpasswd1"|passwd --stdin user1
This command will read from the echo command and pass it to the passwd command. So this will set the user1 password to userpasswd1.
Wrap up
The passwd command is quite popular to manage user accounts on your Linux system. It manipulates some of the entries in the /etc/passwd file, and the sysadmin should have this in his toolbox.