Изменить пароль пользователя в Linux
Разрешить пользователю изменять пароль некоторых других пользователей
В этом руководстве мы обсудим, как изменить пароль пользователя в Linux с помощью команды passwd
из командной строки. Кроме того, мы также узнаем, как разрешить пользователю изменять пароли некоторых других пользователей с помощью sudo.
Что такое команда passwd?
Команда passwd
используется для установки и изменения пароля пользователя в Linux и Unix-подобных системах. Команда passwd
предназначена не только для установки или изменения пароля пользователя Linux. Мы также можем использовать команду passwd
, чтобы установить срок действия пароля, заблокировать и разблокировать учетную запись пользователя.
Важные параметры команды passwd
приведены ниже:
-d
(--delete
)Удалите пароль пользователя, не удаляя пользователя.
-e
(--expire
)-
Заставьте пользователя сменить пароль при следующем входе в систему.
-i
(--inactive
)Определите количество дней после неактивности после истечения срока действия пароля и до блокировки учетной записи пользователя.
-l
(--lock
)Блокировка учетной записи пользователя.
-u
(--unlock
)Разблокируйте заблокированную учетную запись пользователя.
-n
(--minimum
)Укажите количество дней, которое должно пройти, прежде чем пароль можно будет изменить.
-x
(--maximum
)Указывает максимальное количество дней действия пароля, прежде чем истечет срок действия пароля пользователя, и его необходимо будет изменить.
-S
(--status
)Отображение информации о состоянии учетной записи пользователя.
-w
(--warning
)Указывает количество дней, в течение которых пользователь получает оповещения о необходимости изменить свой пароль до истечения его срока действия.
Таблица – параметры команды passwd и их описание
В этом руководстве мы узнаем только об изменении пароля пользователя в Linux, поэтому для большинства вариантов мы пропускаем примеры. В ближайшее время мы опубликуем подробное руководство по примерам команд passwd
в отдельном руководстве.
Изменить пароль пользователя с помощью команды passwd
Чтобы изменить пароль текущего пользователя, просто запустите команду passwd
без каких-либо параметров, как показано ниже:
passwd
Введите пароль текущего пользователя, а затем дважды введите новый пароль, чтобы изменить пароль.
Changing password for user ostechnix.
Current password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Изменить пароль пользователя с помощью команды passwd
Чтобы изменить пароли других пользователей, укажите целевое имя пользователя (например, sendhil) после команды passwd
, как показано ниже:
sudo passwd senthil
Обратите внимание, что для изменения пароля пользователь должен быть либо root
, либо членом группы sudo
.
Разрешить пользователям изменять пароли некоторых других пользователей
В предыдущем разделе мы узнали, как изменить пароль текущего пользователя, а также как изменить пароли других пользователей с помощью команды passwd
с помощью sudo
или . >корневые
разрешения.
Сейчас мы собираемся изучить, как разрешить конкретному пользователю изменять пароли некоторых других пользователей. Обратите внимание: мы хотим, чтобы пользователь менял ТОЛЬКО пароли других пользователей, и ничего больше. Пользователь не должен запускать другие команды, кроме команды passwd
.
Проще говоря, мы разрешим пользователю запускать команду passwd
и запретим тому же пользователю запускать все остальные команды, даже с разрешением sudo.
Это очень полезно, когда учитель хочет изменить пароль для входа в систему своих учеников.
Позвольте мне показать вам пример.
Я собираюсь создать двух пользователей, а именно user1 и user2, в качестве пользователя root
.
useradd user1
useradd user2
Установите пароль для вышеуказанных пользователей:
passwd user1
passwd user2
Теперь позволим пользователю 1 изменить пароль пользователя 2.
Для этого отредактируйте файл /etc/sudoers
с помощью команды:
visudo
Добавьте следующую строку:
user1 ALL=NOPASSWD: /usr/bin/passwd user2
Разрешить пользователям изменять пароли некоторых других пользователей
Убедитесь, что вы добавили правильный путь к команде passwd
. Согласно приведенной выше строке, пользователь 1 может изменить пароль пользователя 2 с помощью команды passwd без пароля sudo. Сохраните файл и закройте его.
Давайте проверим, какие команды пользователь1 может запускать от имени пользователя root без пароля sudo:
sudo -lU user1
Пример вывода:
Matching Defaults entries for user1 on Almalinux8CT:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User user1 may run the following commands on Almalinux8CT:
(root) NOPASSWD: /usr/bin/passwd user2
Список разрешенных команд для данного пользователя на текущем хосте
Как видите, пользователю 1 разрешено запускать на этом компьютере только команду passwd
без пароля sudo.
Выйдите из сеанса пользователя root и снова войдите в систему как пользователь user1.
И выполните следующую команду, чтобы изменить пароль пользователя user2:
[user1@Almalinux8CT ~]$ sudo passwd user2
Пример вывода:
Changing password for user user2.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
Изменить пароль пользователя 2
Как я уже говорил, пользователь1 может выполнять только команду passwd
, но не другие команды.
Попробуйте запустить любую другую команду с помощью sudo, кроме команды passwd:
[user1@Almalinux8CT ~]$ sudo dnf update
Вы получите ошибку, как показано ниже:
[sudo] password for user1:
Sorry, user user1 is not allowed to execute '/bin/dnf update' as root on Almalinux8CT.
Авторизация изменения паролей для нескольких пользователей через Sudo
В приведенном выше примере мы разрешили изменение пароля через sudo только для одного пользователя, то есть для пользователя user2 в нашем случае. Мы также можем разрешить пользователю изменить пароль для нескольких пользователей или группы пользователей.
Отредактируйте файл /etc/sudoers
как root:
visudo
Добавьте путь к команде passwd
вместе с именами пользователей, разделенными запятыми, как показано ниже:
user1 ALL=NOPASSWD: /usr/bin/passwd user2, /usr/bin/passwd user3, /usr/bin/passwd user4
Согласно приведенной выше команде, пользователю 1 разрешено изменять пароли пользователя 2, пользователя 3 и пользователя 4.
Вы также можете разрешить пользователю изменить пароль группы пользователей (например, с пользователя user2 на user5) с помощью подстановочных знаков, как показано ниже:
user1 ALL=NOPASSWD: /usr/bin/passwd user[2-5]
Чтобы разрешить изменение пароля для пользователей user00, user01, user02,....до user99, добавьте следующую строку:
user1 ALL=NOPASSWD: /usr/bin/passwd user[0-9][0-9]
Связанное чтение:
- Как запустить определенные команды без пароля Sudo в Linux
Заключение
Как видите, изменить пароль пользователя Linux не так уж и сложно. Мы можем легко изменить пароль пользователя в Linux с помощью команды passwd
за пару секунд. Мы также можем разрешить пользователю менять ТОЛЬКО пароль другого пользователя или группы пользователей. Надеюсь, это было полезно.
Рекомендованное изображение — Pexels