мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
notes:howlinuxworks:vol7 [2026/05/18 16:14] radi0devnotes:howlinuxworks:vol7 [2026/05/18 16:18] (текущий) radi0dev
Строка 631: Строка 631:
   * **required** - успех → далее; неудача → далее, но всегда отказ в конце   * **required** - успех → далее; неудача → далее, но всегда отказ в конце
  
-**Пример стека (chsh):**+**Пример стека (функции аутентификации chsh):**
 <code> <code>
 auth sufficient pam_rootok.so auth sufficient pam_rootok.so
Строка 638: Строка 638:
 auth required pam_deny.so auth required pam_deny.so
 </code> </code>
 +
 +++++При такой конфигурации, когда команда chsh запрашивает у PAM функцию аутентификации, PAM выполняет следующее|
 +  - Модуль pam_rootok.so проверяет, не пытается ли суперпользователь пройти аутентификацию. Если это так, процесс немедленно выполнится успешно и не будет пытаться выполнить дальнейшую аутентификацию. Это сработает, потому что аргумент управления имеет значение sufficient, что означает: выполнения этого действия достаточно для того, чтобы модуль PAM немедленно сообщил об успехе chsh. В противном случае он переходит к шагу 2.
 +  - Модуль pam_shells.so проверяет, указана ли оболочка пользователя в файле /etc/shells. Если ее там нет, модуль возвращает ошибку и аргумент управления requisite указывает, что модуль PAM должен немедленно сообщить об этом сбое chsh и не пытаться выполнить аутентификацию. В противном случае модуль успешно завершит выполнение и в соответствии с требованиями аргумента управления requisite перейдет к шагу 3.
 +  - Модуль pam_unix.so запрашивает у пользователя пароль и проверяет его. Аргументу управления присвоено значение sufficient, поэтому успеха данного модуля (правильного пароля) достаточно, чтобы PAM сообщил об этом оболочке chsh. Если пароль неверен, PAM переходит к шагу 4.
 +  - Модуль pam_deny.so никогда не выполняется, и поскольку аргумент управления установлен в значение required, PAM сообщает об ошибке в оболочку chsh. Это значение используется по умолчанию для случаев, когда больше нет вариантов действий. (Обратите внимание, что аргумент управления required не приводит к немедленному сбою функции PAM: он будет запускать все строки, оставшиеся в его стеке, но при этом модуль всегда будет сообщать приложению о сбое.)
 +
 +{{:notes:howlinuxworks:pic_7.4.png}}
 +++++
  
 **Аргументы модулей:** После имени модуля (пример: `pam_unix.so nullok` - пароль может отсутствовать) **Аргументы модулей:** После имени модуля (пример: `pam_unix.so nullok` - пароль может отсутствовать)