Попытка пользователя guest

Попытка пользователя guest поменять интерпретатор команд демонстрируется в листинге 5.20. Порядок событий очевиден. Когда пользователь выполняет команду chsh, вызывается ядро Linux-PAM, которое активизирует стек модулей типа auth из файла /etc/pam. d/chsh. Первый из модулей данного типа — pam_rootok. Поскольку пользователь не является суперпользователем, модуль завершается неудачей, после чего вызывается модуль pam_unix, отображающий приглашение на ввод пароля. Пользователь guest вводит правильный пароль, и управление передается модулю pam_listf ile, который находит пользователя guest в списке типа deny. В результате возникает ошибка аутентификации (выводится сообщение Password error).

Листинг 5.20. Неудачная попытка выполнить команду chsh из-за установок модуля pam_listfile

$ telnet livfreeordie Trying 10.1.1.1. . . Escape character is '"]'.

This is a restricted system. All activity is logged.

login: guest

Password:

livfreeordie$ chsh -s /bin/bash

Changing shell for guest.

Password:

Password error.

livfreeordie$

Рассмотрим другой пример. Предположим, необходимо ограничить список пользователей, чьи имена могут указываться в качестве аргументов команды su. Для этого добавим в файл /etc/pam.d/su запись pam_listfile (листинг 5.21). На этот раз мы воспользуемся разрешающим списком, перечислив требуемые имена пользователей в файле /etc/security/suok, например:

root тагу bill jane efram

Листинг 5.21. Конфигурационный файл команды su, содержащий вызов модуля pam_listfile

auth required /lib/security/pam_listfile.so onerr=fail \ item=user sense=allow file=/etc/security/suok

auth required /lib/security/pam_unix.so

account required /lib/security/pam_unix.so

password required /lib/security/pam_cracklib.so minlen=20 retry=3

password required /lib/security/pam_unix.so md5 use_authtok

session required /lib/security/pam_unix.so

Отметим, что вызывать команду su по-прежнему может кто угодно. Ограничиваются лишь возможные аргументы команды. В листинге 5.22 показано, что произойдет, если пользователь paul попытается с помощью команды su стать пользователем guest, а затем — пользователем root. Предполагается, что оба пароля пользователю paul известны.

Листинг 5.22. Неудачная попытка выполнить команду su из-за установок модуля pam_listfile

$ whoami joe

$ su - guest Password:

su: incorrect password $ su -

Password:

Обратите внимание: сообщение об ошибке не раскрывает истинную причину неудачи. Это вообще характерно для модулей РАМ. Идея заключается в том, чтобы не выдавать пользователям полезную информацию в виде экранных сообщений об ошибках. Администратор всегда может проверить журнальные файлы. По умолчанию сообщения, генерируемые модулями РАМ, сохраняются в файле /var/log/messages (подробнее об этом файле и системе Syslog).

Если в листинге 5.21 поменять установку sense=allow на sense=deny, файл /etc/security/suok станет запрещающим списком, т.е. ни один пользователь с помощью команды su не сможет стать пользователем, указанным в списке. Это особенно полезно, если используется команда sudo и необходимо запретить команду su root.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок