Можно ли выполнить команду sudo от имени другого пользователя?

Я использую друпал и эгир. Aegir автоматизирует множество задач по созданию сайта. Aegir контролирует Apache, я вошел в систему как root и хочу перезапустить сервер Apache, но я хочу сделать это от имени Aegirs. К сожалению, я не знаю пароль Aegir, поэтому мне интересно, как сделать что-то другим пользователем.

3 ответа

sudo -u <username> <command>

sudo принимает параметр пользователя, который будет запускать его от имени этого пользователя.

В качестве альтернативы, поскольку вы являетесь пользователем root:

su <username> -c <command>

su aegir это то, что вы ищете, предполагая, что имя пользователя aegir, man su даст вам больше информации о su команда.

Этот пользователь, скорее всего, не сможет перезапустить Apache, если он работает на 80-м порту, если только он специально не настроен для этого. По умолчанию, root единственный пользователь, который может привязать сервис к низкому номеру порта.

Вы должны быть в состоянии сделать следующее

runuser -l <username> -c <command>

например

runuser -l Aegir -c service httpd restart

Но если вы являетесь пользователем root, вы можете просто su для пользователя без пароля.

Су-Л Агир

J

Вы можете работать как пользователь, используя -u. Это не откроет программы, поскольку вы "вошли в систему" ​​как этот пользователь, поэтому вам придется указать весь путь.

пример

jupyter notebook

Становится так, если обычный пользователь Ubuntu:

sudo -u ubuntu /home/ubuntu/.local/bin/jupyter notebook

Найдите местонахождение Jupyter:

which jupyter
#Result: /home/ubuntu/.local/bin/jupyter
Другие вопросы по тегам