Thank you for reading this post, don't forget to subscribe!
su (Короткая замена или переключения пользователя) утилита позволяет запускать команды с привилегиями другого пользователя, по умолчанию привилегированного пользователя.
Использование su- это самый простой способ перейти к учетной записи администратора в текущем сеансе входа в систему. Это особенно удобно, когда пользователю root не разрешено входить в систему через ssh или с помощью диспетчера отображения GUI.
В этой статье мы объясним, как использовать команду su.
Как использовать команду su
Общий синтаксис suкоманды выглядит следующим образом:
1 |
su [OPTIONS] [USER [ARGUMENT…]] |
Когда вызывается без какой-либо опции, поведение по умолчанию suдля запуска интерактивной оболочки от имени пользователя root:
1 |
su |
Вам будет предложено ввести пароль пользователя root, и в случае аутентификации пользователь, выполняющий команду, временно станет пользователем root.
Переменные среды сеанса shell ( SHELL) и home ( HOME) задаются из записи замещающего пользователя /etc/passwd, и текущий каталог не изменяется.
Чтобы подтвердить, что пользователь изменился, используйте команду whoami:
1 |
whoami |
Команда выведет имя пользователя, выполняющего текущий сеанс оболочки:
1 |
root |
Наиболее часто используемый вариант при вызове suесть -, -l, –login. Это делает оболочку оболочкой входа в систему со средой, очень похожей на реальную регистрацию, и изменяет текущий каталог :
1 |
su - |
Если вы хотите запустить еще одну оболочку вместо одной , определенной в файле passwd, используйте -s, вариант –shell. Например, чтобы переключиться на root и запустить оболочку zsh, вы должны набрать:
1 |
su -s /usr/bin/zsh |
Для того, чтобы сохранить всю окружающую среду ( HOME, SHELL, USER, и LOGNAME) вызывающего пользователя использовать -p, вариант –preserve-environment.
1 |
su -p |
При использовании параметра -, -p игнорируется.
Если вы не хотите, чтобы запустить интерактивную оболочку и только запустить команду в качестве заменителя пользователя, используйте -c, вариант command. Например, чтобы вызвать команду ps от имени пользователя root, введите:
1 |
su -c root |
Чтобы переключиться на другую учетную запись пользователя, передайте имя пользователя в качестве аргумента su. Например, чтобы переключиться на пользователя andreyex, вы должны набрать:
1 |
su andreyex |
Sudo против Su
В некоторых дистрибутивах Linux, таких как Ubuntu, учетная запись пользователя root по умолчанию отключена из соображений безопасности. Это означает, что для пользователя root не задан пароль, и вы не можете использовать его su для переключения на root.
Один из вариантов для перехода в root будет заключаться в добавлении команды su к команде sudo и вводе текущего пароля пользователя:
1 |
sudo su - |
Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию пользователь root.
Если пользователю предоставлена команда sudo, команда su будет вызываться от имени пользователя root. Запуск sudo su – и использование пароля пользователя аналогичны запуску su – с использованием пароля root.
При использовании sudo с параметром -i, запускайте интерактивную оболочку входа в систему со средой пользователя root:
1 |
sudo -i |
sudo -i в основном то же самое, что и запуск su -.
Преимущество использования sudo против su заключается в том, что пароль root не должен использоваться несколькими учетными записями администраторов.
Также с sudo вы можете разрешить пользователям запускать только определенные программы с привилегиями root.
Заключение
su утилита командной строки, которая позволяет вам временно стать другим пользователем и выполнять команды с замещающим пользователем.