我可以代表其他用户执行 sudo 命令吗?

我可以代表其他用户执行 sudo 命令吗?

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

答案1

sudo -u <username> <command>

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

或者,由于您是 root 用户:

su <username> -c <command>

答案2

su aegir就是您要找的,假设用户名是aegirman 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

相关内容