su — запуск командной оболочки с подстановкой идентификаторов пользователя и группы
Команда su используется для запуска нового сеанса работы с командной оболочкой от имени другого пользователя. Команда имеет следующий синтаксис:
su [-[l]] [пользователь]
Если указан параметр -l, запущенная командная оболочка станет оболочкой входа для указанного пользователя. Это означает, что будет загружено окружение пользователя и текущим рабочим каталогом станет домашний каталог пользователя. Часто это именно то, что требуется. Если пользователь не указан, подразумевается суперпользователь. Обратите внимание, что (довольно необычно) параметр -l можно сократить до -, и эта особенность часто используется на практике. Запустить командную оболочку от имени суперпользователя можно следующим образом:
[me@linuxbox ~]$ su -
Password:
[root@linuxbox ~]#
После ввода команды будет запрошен пароль суперпользователя. После ввода правильного пароля появится новое приглашение к вводу, показывающее, что данная командная оболочка обладает привилегиями суперпользователя (символ # в конце вместо символа $) и текущим рабочим каталогом теперь стал домашний каталог суперпользователя (обычно /root). После запуска новой оболочки можно выполнять команды с привилегиями суперпользователя. Завершим работу, введя команду exit, чтобы вернуться в предыдущую командную оболочку:
[root@linuxbox ~]# exit
[me@linuxbox ~]$
С помощью su можно так же просто выполнить единственную команду, не запуская новый интерактивный сеанс:
su -c 'команда'
При использовании этой формы команде su передается единственная командная строка для выполнения. Не забудьте заключить команду в кавычки, чтобы предотвратить дополнительную ее интерпретацию механизмами подстановки текущей командной оболочки:
[me@linuxbox ~]$ su -c 'ls -l /root/*'
Пароль:
-rw------- 1 root root 754 2011-08-11 03:19 /root/anaconda-ks.cfg
/root/Mail:
итого 0
[me@linuxbox ~]$