Linux:如何授予用户重新启动 apache 的权限?

its*_*dok 41 ubuntu permissions apache-2.2

我有一个在非 root 用户下运行的脚本,在某些情况下,它应该重新启动 apache httpd。

对我来说,允许用户这样做的最简单方法是什么?

我使用的是 Ubuntu Server 8.04 LTS。

epi*_*c9x 92

简短的回答:

使用visudo,将以下内容添加到您的 sudoers 文件中,用正确的用户名替换用户名:

username ALL = /etc/init.d/apache2 
Run Code Online (Sandbox Code Playgroud)

如果您不想在执行此操作之前输入密码,请使用以下命令:

username ALL = NOPASSWD: /etc/init.d/apache2 
Run Code Online (Sandbox Code Playgroud)

在此之后,'username' 用户可以执行sudo /etc/init.d/apache2 start(或停止、重新启动等)

长答案:如果您还没有,您可能希望为此设置一个单独的用户,然后配置 /etc/sudoers 文件以允许用户或组执行您想要的命令。

例如,要允许用户“ben”以 root 用户身份执行所有命令并提示输入密码,您可以执行以下操作:

ben ALL= ALL
Run Code Online (Sandbox Code Playgroud)

要允许 'ben' 仅执行一个命令(例如,rm),您可以执行以下操作:

ben ALL= /bin/rm 
Run Code Online (Sandbox Code Playgroud)

如果您以用户身份运行脚本并且不想提示输入密码,您将需要使用“NOPASSWD”选项,如下所示:

ben ALL=NOPASSWD: /bin/commandname options
Run Code Online (Sandbox Code Playgroud)

您可以通过在组名前加上百分号来对组执行相同的操作,如下所示:

%supportstaff          ALL= NOPASSWD: /bin/commandname 
Run Code Online (Sandbox Code Playgroud)

  • “用户名”可以限制为参数的子集吗?说“开始”“重启”而不是“停止”? (3认同)