ryg

Команда su в Mac OS X и FreeBSD

Синтаксис:

su [-] [-flm] [login [args]]

Описание:

Заменить идентификатор пользователя. Утилита su запрашивает необходимые учетные данные через PAM и переключает на заданный User ID (по умолчанию суперпользователь) И затем выполняет команду bash.

PAM используется для настройки политики su. В частности, по умолчанию, только пользователи из групп "admin" и "wheel" могут переключаться на супер-пользователя root (UID 0). Требуемые группы могут быть изменены в разделе "pam_group" файла /etc/pam.d/su. Подробнее описано в в pam(8).

По умолчанию переменные среды bash не меняются, за исключением USER, HOME и SHELL. Переменные HOME и SHELL инициализируются в значения для входа. USER устанавливается в соответствии с входом, если только он не имеет ID 0 (root), в этом случае переменная USER не меняется. Запущенная оболочка bash принадлежит новому пользователю. Это традиционное поведение su.

Параметры su:

-f Если оболочка bash запущена командой csh, то данный параметр предотвращает чтение файла ".cshrc".
-l Эмулировать полный вход в систему. Переменные окружения сбрасываются, за исключением HOME, SHELL, PATH, TERM, и USER -они изменяются как описано выше. USER устанавливается в соответствии с пользователем. PATH инициализируется в "/bin:/usr/bin". TERM импортируется из вашей текущей среды bash. Запущенная оболочка будет принадлежать новому пользователю и su изменит домашнюю папку на папку нового пользователя.
- (без символа) Аналогично -l
-m Не менять среду окружения. Среда bash остается принадлежать вашему пользователю и домашняя папка не меняется. Данный параметр используется как мера предосторожности, в случаях когда используется нестандартная оболочка (как определено в  getusershell(3)) и ID пользователя не равно 0, то su не сработает.

Параметры -m и -l являются взаимоисключающими и не могут работать совместно. Последний указанный параметр отменяет все предыдущие.

Если передаются необязательные параметры, то необходимо учитывать, что параметры перед login обрабатываются командой su, а параметры после передаются в новую оболочку без обработки.

Переменные окружения:

HOME -по умолчанию домашняя папка реального пользователя, пока не будет изменен, как указано выше.
PATH -путь к домашней папке реального пользователя, пока не будет изменен, как указано выше.
TERM - Тип терминала, который может быть сохранен для заменённого пользователя.
USER 

Файлы 

/etc/pam.d/su -файл конфигурации PAM для su

Примеры:

Выполнить команду catman от имени пользователя man. У вас запросят пароль man, если только ваш UID =0

su man -c catman

Аналогично предыдущей, в оболочку передается параметр -c и команда состоящая из нескольких слов берется в кавычки

su man -c 'catman /usr/share/man /usr/local/man'

Эмулировать вход для пользователя foo (две одинаковые по действию команды):

su -l foo
su - foo

Эмулировать вход пользователя root

su

Связанные команды

sudo -Выполнить команду от имени другого пользователя
csh, ssh, bash - Запустить командный интерпретатор.
passwd -изменить пароль пользователя.
crontab - Команда управления графиком команд для cron
login - Авторизация и вход пользователя в систему.
dsenableroot - активировать root пользователя и установить пароль

Алфавитный список команд terminal в Mac OS X