Сегодняшний выпуск посвящен команде su(1M), позволяющей
поработать от имени другого пользователя, не завершая текущий сеанс.
Перевод закончен сегодня, 6 ноября, по справочному руководству Solaris 8.
Новые публикации на сайте OpenXS Initiative
Поскольку ваши интересы, скорее всего, не ограничиваются только
справочным руководством UNIX, хочу сообщить о парочке новых полезных
публикаций на моем сайте:
Команда su позволяет пользователю выполнять команды от имени
другого пользователя, не завершая текущий сеанс, или получить роль.
По умолчанию предполагается работа от имени пользователя root
(суперпользователя).
Для использования su необходимо ввести соответствующий пароль
(если только команду не вызывает пользователь root). Если
введен правильный пароль, su создает новый процесс командного
интерпретатора, с такими же реальными и эффективными идентификаторами
пользователя и группы, а также списком дополнительных групп, что и у
указанного пользователя. В качестве нового командного интерпретатора
используется указанный в поле начальной программы записи файла passwd
для соответствующего пользователя (см. passwd(4)).
Если командный интерпретатор там не указан, используется /usr/bin/sh
(см. sh(1)). Чтобы вернуться в прежний сеанс,
введите символ конца файла, EOF (Ctrl-D) для завершения
работы нового командного интерпретатора.
Любые дополнительные аргументы, заданные в командной строке,
передаются новому командному интерпретатору. При использовании программ
типа sh, если аргумент имеет вид -c строка, то
строка выполняется интерпретатором как команда, а аргумент -r
приводит к запуску ограниченного командного интерпретатора.
Следующие утверждения верны, если в качестве начальной программы
в учетной записи пользователя задана /usr/bin/sh или пустая строка
(что означает стандартный командный интерпретатор /usr/bin/sh). Если первый
аргумент su - дефис (-), среда будет установлена такой же,
как при регистрации заданного пользователя. Иначе передается текущая
среда, за исключением значения $PATH, которое задается переменными
PATH и SUPATH в файле /etc/default/su. Кроме того, если задан
аргумент дефис устанавливается идентификатор проекта пользователя. См.
settaskid(2).
Все попытки стать другим пользователем с помощью команды su регистрируются
в журнальном файле /var/adm/sulog
(см sulog(4)).
Команда su используется механизм pam(3PAM)
для аутентификации, управления учетной записью и управления сеансом. Конфигурация модулей PAM, задаваемая в файле /etc/pam.conf, перечисляет модули,
которые должны использоваться для команды su. Вот часть файла pam.conf
с записями для su, задающими использование стандартного (UNIX)
модуля аутентификации, управления учетной записью и сеансом.
su auth required /usr/lib/security/pam_unix.so.1
su account required /usr/lib/security/pam_unix.so.1
su session required /usr/lib/security/pam_unix.so.1
Если записей для службы su в этом файле нет, будут применяться записи
для службы "other". Если перечислено несколько модулей аутентификации,
у пользователя могут запрашивать несколько паролей.
Переменные с префиксом LD_ убраны из соображений защиты.
Поэтому при выполнении su bin в среде не останутся ранее
экспортированные переменные с префиксом LD_ при работе
от имени bin.
Если в среде не установлены какие-то из переменных LC_*
(LC_CTYPE, LC_MESSAGES, LC_TIME, LC_COLLATE,
LC_NUMERIC и LC_MONETARY)
(см. environ(5)), поведение
команды su для соответствующих категорий локали определяется
значением переменной среды LANG. Если установлена переменная
LC_ALL, ее значение имеет приоритет и над значением
LANG, и над значениями других переменных LC_*. Если ни
одна из перечисленных переменных в среде не установлена, поведение
su задает локаль "C" (американского стиля).
LC_CTYPE
Определяет, как su обрабатывает символы. Если переменная LC_CTYPE
имеет допустимое значение, su может выдавать и обрабатывать
текст и имена файлов, содержащие допустимые для этой локали символы.
Команда su может выдавать и обрабатывать символы Extended Unix Code
(EUC), каждый из которых может быть представлен как 1, 2 или 3 байта.
su также может обрабатывать символы EUC, занимающие 1, 2 или более
символьных позиций. В локали "C" допустимы только символы
кодовой страницы ISO 8859-1.
LC_MESSAGES
Определяет, как выдаются выдаются диагностические и информационные сообщения.
В частноти, язык и стиль сообщений, а такде допустимые формы утвердительного
и отрицательного ответа. В локали "C" сообщения выдаются в стандартном
виде, как представлены в самой программе (в большинстве случаев, на американском
диалекте английского языка).
Стандартный путь поиска выполняемых программ для пользователя,
пытающегося с помощью su выполнить команды от имени пользователя root.
(/usr/sbin:/usr/bin)
Определяет, должны ли все попытки вызова su регистрироваться
с помощью средств syslog(3C)LOG_AUTH.
При попытке выполнения команд от имени root с помощью su
генерируются сообщения LOG_NOTICE, при попытке выполнения команд
от имени других пользователей генерируются сообщения LOG_INFO, а для
нгеудавшихся попыток вызова su генерируются сообщения LOG_CRIT.
Если задан, определяет количество секунд ожидания, прежде чем
на экран выдается сообщение о неудачной попытке регистрации
(login failure) и разрешается новая попытка. Стандартное значение - 4 секунды.
Минимальное - 0 секунд, максимальное - 5 секунд.
man newgrp(1) из Solaris 8 или man emergency_disk(1M) из
OpenUNIX 8 (!), она же, снова, UnixWare 7.1.2. Открываем новый раздел...
Выпуск выйдет в конце недели. Следите за новостями
на сайте рассылки.
Кстати, у проекта есть гостевая книга.
Если не хотите писать мне лично, можете высказывать свои пожелания там.