我可以代表另一个用户 sudo 命令吗?

use*_*468 8 su password users sudo

我正在使用 drupal 和 Aegir。Aegir 自动化了许多站点创建任务。Aegir 控制了 Apache,我以 root 身份登录,我想重新启动 Apache 服务器,但我想代表 Aegirs 执行此操作。不幸的是,我不知道 Aegir 密码,所以基本上我想知道如何以其他用户身份执行某些操作。

Gra*_*ant 11

sudo -u <username> <command>
Run Code Online (Sandbox Code Playgroud)

sudo 接受一个用户参数,它将以该用户身份运行它。

或者,由于您是 root:

su <username> -c <command>
Run Code Online (Sandbox Code Playgroud)


MDM*_*rra 6

su aegir是您要查找的内容,假设用户名是aegir. man su将为您提供有关su命令的更多信息。

如果 Apache 在端口 80 上运行,那么该用户可能无法实际重新启动 Apache,除非专门配置为允许这样做。默认情况下,root是唯一可以将服务绑定到低端口号的用户。

  • 如果您的进程或 httpd 可执行文件具有 cap_net_bind_service 功能,则不需要 root。像`capsh --uid=&lt;aegir_uid&gt; --inh=cap_net_bind_service` 或http://wiki.apache.org/httpd/NonRootPortBinding 中描述的设置应该可以工作。 (2认同)