Я использую 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