Как выполнять команды от имени другого пользователя в Linux

12 set 2022 2 min di lettura
Как выполнять команды от имени другого пользователя в Linux
Indice dei contenuti

Введение

Linux — наиболее широко используемая операционная система с открытым исходным кодом. Пользователи Linux имеют большое количество вариантов выбора операционной системы. У вас есть несколько вариантов выбора рабочего стола для ваших систем Linux. Профи Linux по-прежнему любят работу с командной строкой. В основном серверные версии Linux поставляются только с опцией командной строки, что делает их легче и быстрее.

Пользователи Linux используют оболочку для взаимодействия с операционными системами. Где Bash (Born Shell) является наиболее используемой оболочкой и доступна по умолчанию в большинстве систем. Сейчас Zsh (Z Shell) также становится популярным среди пользователей благодаря своим возможностям.

В этом руководстве вы узнаете, как запустить команду от имени другого пользователя в системах Linux/Unix.

Выполнять команды от имени другого пользователя с кнопкой Вверх

Команда su (сменить пользователя) используется для запуска оболочки от имени другого пользователя. Эта команда переключается на нового пользователя и загружает его среду.

Основная команда su выглядит следующим образом:

su - username

Приведенная выше команда позволяет вам перейти к другому пользователю, где вы можете выполнять команды с этим пользователем. Но наша цель — запустить команду Linux от имени другого пользователя, не переключая пользователей. Для этого ознакомьтесь с примером ниже.

В настоящее время я вошел в систему как root. Вы можете передать свою команду с параметром -c. Теперь в следующем примере команда ls будет запущена от имени пользователя alice без переключения пользователя:

su - alice -c "pwd"
/home/alice

Вы также можете запускать несколько команд от имени другого пользователя в Linux, например:

su - alice -c "pwd; mkdir hello && cd hello; pwd"
/home/alice
 /home/alice/hello

В приведенной выше команде он сначала печатает текущий рабочий каталог с pwd, затем создает и переходит в новый каталог с именем hello. Снова распечатайте существующий рабочий каталог. Все команды разделены точкой с запятой ; как у нас вообще.

Запустите команду от имени другого пользователя с помощью Sudo.

Этот метод обычно используется для запуска команды от имени пользователя root, но вы также можете использовать его с другими пользователями. Здесь нет необходимости использовать какие-либо параметры командной строки. Введите имя пользователя, с которым вы хотите выполнить команду.

Синтаксис:

sudo -u username [commands...]

Например, вы пишете сценарий оболочки, который необходимо запускать от имени пользователя без полномочий root. Но вам нужно перезапустить службу apache2. В этом случае вы можете использовать sudo для запуска команды от имени пользователя root:

sudo -u root 'systemctl restart apache2'

Запустите команду от имени другого пользователя с помощью Runuser

Вы также можете использовать runuser для выполнения команд, как другой пользователь в системах Linux. Это команды, менее известные пользователям Linux. Используйте команду runuser для запуска команд с фактическим идентификатором пользователя и идентификатором группы определенного пользователя.

Синтаксис:

runuser - username -c [commands...]

Например, запустите команду от имени пользователя alice и создайте каталог в ее домашнем каталоге:

runuser - alice -c 'mkdir -p ~/hello'

Затем перечислите файлы в домашнем каталоге пользователя alice:

runuser - alice -c 'ls -l'
total 16
 -rw-r--r-- 1 alice alice 8980 Feb 16 2020 examples.desktop
 drwxr-xr-x 2 alice alice 4096 Dec 22 14:55 hello

Вы также можете запустить обе команды в одной команде. Просто добавьте несколько команд, разделенных точкой с запятой:

runuser - alice -c 'mkdir -p ~/hello; ls -l'

Вывод

В этом руководстве вы узнали, как выполнять команды от имени другого пользователя в системе Linux. Вы научились выполнять команды от имени другого пользователя с помощью команд su, sudo и Linux runuser.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.