Утилита su (сокращение от замены или переключения пользователя) позволяет запускать команды с привилегиями другого пользователя, по умолчанию пользователя root.

Использование su — самый простой способ переключиться на административную учетную запись в текущем сеансе входа в систему. Это особенно удобно, когда пользователю root не разрешено входить в систему через ssh или с помощью диспетчера отображения графического интерфейса.

В этом руководстве мы объясним, как использовать команду su .

Как использовать команду su

Общий синтаксис команды su следующий:

su [OPTIONS] [USER [ARGUMENT...]]

При вызове без каких-либо параметров по умолчанию su запускает интерактивную оболочку от имени пользователя root:

su

Вам будет предложено ввести пароль root, и в случае аутентификации пользователь, выполняющий команду, временно станет пользователем root.

Переменные среды сеанса ( 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

SUDO против SU

В некоторых дистрибутивах Linux, таких как Ubuntu, учетная запись пользователя root по умолчанию отключена по соображениям безопасности. Это означает, что пароль для root не установлен, и вы не можете использовать su для переключения на root.

Один из вариантов изменения на root — это добавить к команде su sudo и ввести пароль текущего пользователя:

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 — это утилита командной строки, которая позволяет вам временно стать другим пользователем и выполнять команды от имени замещающего пользователя.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оригинал статьи.