23.06.2025

Linux пароль: инструменты и алгоритм работы

Современные операционные системы давно перестали походить на однопользовательские терминальные окна с оболочкой. Сейчас это многозадачные с графическим интерфейсом многопользовательские ОС с возможностью параллельной обработки данных. В связи с этим возникла потребность в организации работы между пользователями: их авторизации и аутентификации. В данном материале рассмотрим алгоритм работы аутентификации в Linux и как можно управлять одним из них.

Что такое PAM и причем тут пароли Linux?

PAM или же Pluggable Authentification Module представляет собой единый сервис, который объединяет провайдеров аутентификации, позволяя выбрать любой сценарий и порядок их использования. Ими  считаются системные способы через /etc/passwd, /etc/shadow, где сравнивается пользователь и его введенный пароль в виде хеша. Это может быть доустановленный модуль LDAP, Kerberos, NTLM, SSH и прочие.

Скриншот №1 — Схема PAM

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

Классически используется проверка по системным паролям в директории /etc/shadow с помощью модуля pam_unix.so. Пользователь вводит данные аутентификации, он хешируются и сравниваются с хешем в директории. Примерный вид записи следующий:

user:$6$JdjJd8...$:18355:0:99999:7:::

Сразу понятно, что user отображает логин пользователя, а значение $6$JdjJd8…$ хеш пароля, но что идет после? Это мета-данные, где 18355 — дата последнего изменения пароля. Следующие поля отвечают за минимальный/максимальный срок действия аутентификационных данных, предупреждения перед истечением, а также блокировки. Модуль обращается к файлу и считывает все эти значения, после чего отдает PAM ответ true, либо false.

Рассмотрим инструменты, которые позволят задать настройки паролей в файле /etc/shadow.

Инструменты для работы с паролями Linux

Самая популярная утилита для работы с паролями – passwd. Простой функционал, который включает в себя смену, блокировку и разблокировку, срок работоспособности и удаления пароля. Для тестовой работы создадим нового пользователя и проверим все возможности утилиты на нем!

useradd koldek -p 123321

Скриншот №2 — Новый аккаунт

В утилите useradd опция -p позволяет задать пароль сразу в одной команде и использовать его для аутентификации.

При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Скриншот №3 — Создание сервера

Вернемся в терминал и предположим, что мы забыли пароль. Тогда необходимо через пользователей в группе sudo или root его сбросить:

sudo passwd koldek

Скриншот №4 — Новый пароль

Отлично, теперь мы его точно не забудем! Но, что если сотрудник уволился, у нас устройство не подключено к контроллеру домена и была выдана отдельная для него учетка. Один из вариантов это заблокировать вход в учетку, сделаем это командой:

passwd -l koldek

Сменим пользователя, на так же в заранее созданного koldek2 и попробуем аутентифицироваться:

Скриншот №5 — Блокировка пароля

Происходит ошибка, без каких либо подробностей по ней. Команда su обратилась к виртуальному терминалу, после чего к pam модулю сформирован запрос на аутентификацию под новым пользователем koldek2. Где прошла проверка записи и было указано в /etc/shadow, что аутентификация по данной записи не возможна. Pam прошел весь сценарий и вернул ошибку.

Представим, что нам необходимо зайти под этим пользователем. Сменим пароль и разблокируем учетку:

passwd koldek && passwd -u koldek

Далее проверим работает ли аутентификация, зайдем на koldek через koldek2 и пропишем команду:

whoami

Скриншот №6 — Разблокировка пароля

Отлично, последняя запись свидетельствует о том, что мы успешно аутентифицировались под koldek на устройстве. Не допустить аутентификации пользователя можно просто удалив его пароль через команду:

passwd -d koldek

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

passwd -e koldek

Или вручную указать для пароля пользователя срок его действия:

passwd -X 90 koldek

Скриншот №7 — Срок действия пароля

А команда с опцией -S позволяет просмотреть статус пароля пользователя и понять применились ли настройки. В целом это все опции и возможности локальной аутентификации на устройстве через pam_unix.so модуль. Более сложные решения такие, как TOTP или LDAP аутентификация мы рассмотрим в следующих материалах!