我正在使用 drupal 和 Aegir。Aegir 可自动执行许多网站创建任务。Aegir 控制着 Apache,我以 root 身份登录,我想重新启动 Apache 服务器,但我想代表 Aegirs 执行此操作。不幸的是,我不知道 Aegir 密码,所以基本上我想知道如何以其他用户身份执行 sudo 操作。
答案1
sudo -u <username> <command>
sudo 接受用户参数,它将以该用户的身份运行它。
或者,由于您是 root 用户:
su <username> -c <command>
答案2
su aegir
就是您要找的,假设用户名是aegir
。man su
将为您提供有关该su
命令的更多信息。
如果 Apache 在端口 80 上运行,该用户可能无法真正重新启动它,除非专门配置为允许这样做。默认情况下,root
是唯一可以将服务绑定到低端口号的用户。
答案3
您应该能够执行以下操作
runuser -l <username> -c <command>
例如
runuser -l Aegir -c service httpd restart
但是如果您是 root 用户,您可以直接使用 su 来访问用户,无需密码。
苏-l Ageir
J
答案4
您可以使用 -u 以用户身份运行。由于您是以该用户身份“登录”的,因此这不会打开程序,因此您必须指定完整路径。
例子
jupyter notebook
如果普通用户是 Ubuntu,则变成这样:
sudo -u ubuntu /home/ubuntu/.local/bin/jupyter notebook
找到 Jupyter 的位置:
which jupyter
#Result: /home/ubuntu/.local/bin/jupyter