По умолчанию вызывается непосредственно оболочка пользователя, однако, при указании флага аргумента -, su вызывает оболочку регистрации в системе. Это значит, что текущий рабочий каталог будет изменён в домашний каталог нового пользователя и первый аргумент оболочки будет иметь префикс -. Это поведение понятно и обрабатывается большинством командных интерпретаторов. В случае вызова оболочки регистрации в системе, любая команда, передаваемая посредством аргумента -c, будет проигнорирована. Также, при вызове оболочки регистрации, в базах данных utmp(5) и wtmp(5) будут сделаны соответствующие записи для обозначения присутствия пользователя в системе.
Вместо полной активации командной оболочки пользователя, посредством флага -c может быть вызвана одиночная команда с заданным идентификатором пользователя. Например, следующей командой может быть удалён файл с полномочиями суперпользователя:
su -c 'rm ./this_file'
В таких случаях выбор оболочки не является автоматическим из записи пользователя в Базе Данных Паролей; см. libpwdb(3). Логика в этом такова. Если оболочка пользователя по умолчанию содержит только полное имя пути, то оно добавляется при использовании -c 'команда', однако, если оболочка пользователя состоит из более чем одной записи, она не будет использована su для индивидуальных команд. Вместо этого будет произведена подстановка /bin/sh.
Su сконфигурирована для работы посредством Linux-PAM API. По сути дела она инициализирует саму себя как сервис "su" с Linux-PAM, и использует для аутентификации сконфигурированные модули account, authentication и session с последующим вызовом сессии с подменой идентификатора пользователя. Заметьте, что в отличии от login(1), если пароль(ли) пользователя устарели (устаревают), то новый пароль запрошен не будет. В действительности, любая ошибка из компонента Linux-PAM accounting будет фатальна. Дело обстоит так для всех пользователей, кроме суперпользователя. В случае с суперпользователем обнаружение ошибки вызовет отображение предупреждения, однако su продолжит вызов оболочки запрошенного пользователя.
Для получения более подробной информации о конфигурации этой программы при помощи Linux-PAM смотри Linux-PAM System Administrators' Guide по адресу <http://http://linux.kernel.org/pub/linux/libs/pam/index.html>
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |