
Утилита su (сокращение от substitute или switch user) позволяет вам запускать команды с привилегиями другого пользователя, по умолчанию — пользователя root.
Использование su — самый простой способ переключиться на учетную запись администратора в текущем сеансе. Это особенно удобно, когда пользователю root не разрешено входить в систему через SSH или через графический менеджер отображения.
В этом уроке мы объясним, как использовать команду su .
Как использовать команду su
Общий синтаксис команды su следующий:
su [ OPTIONS ] [ USER [ ARGUMENT... ]]
При вызове без каких-либо параметров поведением su по умолчанию является запуск интерактивной оболочки от имени пользователя root:
su
Вам будет предложено ввести пароль root, и в случае аутентификации пользователь, выполнивший команду, временно станет пользователем root.
Переменные окружения сеанса shell ( SHELL ) и home ( HOME ) устанавливаются из записи /etc/passwd заменяющего пользователя, а текущий каталог не изменяется.
Чтобы подтвердить смену пользователя, используйте команду whoami :
whoami
Команда выведет имя пользователя, запустившего текущий сеанс оболочки:
root
Наиболее часто используемый параметр при вызове su — это - ( -l , --login ). Это превращает оболочку в оболочку входа в систему с окружением, очень похожим на настоящее, и изменяет текущий каталог :
su -
Если вы хотите запустить другую оболочку вместо той, которая указана в файле passwd , используйте опцию -s , --shell . Например, чтобы переключиться на root и запустить оболочку zsh , введите:
su -s /usr/bin/zsh
Чтобы сохранить всю среду ( HOME , SHELL , USER и LOGNAME ) вызывающего пользователя, вызовите команду с опцией -p , --preserve-environment .
su -p
При использовании опции - -p игнорируется.
Если вы хотите выполнить команду от имени подменённого пользователя, не запуская интерактивную оболочку, используйте параметр -c , --command . Например, чтобы вызвать команду ps от имени пользователя root, введите:
su -c ps
Чтобы переключиться на другую учётную запись пользователя, передайте имя пользователя в качестве аргумента функции su . Например, чтобы переключиться на пользователя tyrion , введите:
su tyrion
Судо против Су
В некоторых дистрибутивах Linux, таких как Ubuntu, учётная запись root по умолчанию отключена из соображений безопасности. Это означает, что пароль для root не установлен, и вы не можете использовать su для переключения в режим root.
Одним из вариантов перехода на уровень root является добавление sudo к команде su и ввод пароля текущего вошедшего в систему пользователя:
sudo su -
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователя root.
Если пользователю предоставлено право sudo Assessment, команда su будет вызвана от имени пользователя root. Выполнение sudo su - с последующим вводом пароля пользователя даст тот же эффект, что и выполнение команды su - с вводом пароля root.
При использовании с опцией -i sudo запускает интерактивную оболочку входа в среду пользователя root:
sudo -i
sudo -i по сути то же самое, что и запуск su - .
Преимущество использования sudo перед su заключается в том, что пароль root не нужно использовать совместно с несколькими учетными записями административных пользователей.
С помощью sudo вы также можете разрешить пользователям запускать только определенные программы с правами root.
Заключение
su — это утилита командной строки, которая позволяет вам временно стать другим пользователем и выполнять команды от имени подмененного пользователя.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства