Назад | Перейти на главную страницу

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

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

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 для пользователя без пароля.

su -l Ageir

J

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

пример

jupyter notebook

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

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

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

which jupyter
#Result: /home/ubuntu/.local/bin/jupyter