Answers:
简短答案:
使用visudo
,将以下内容添加到您的sudoers文件中,用正确的用户名替换用户名:
username ALL = /etc/init.d/apache2
如果您不想在此之前输入密码,请使用以下命令:
username ALL = NOPASSWD: /etc/init.d/apache2
此后,“用户名”用户可以执行sudo /etc/init.d/apache2 start
(或停止,重新启动等)
长答案:您可能需要为此设置一个单独的用户(如果尚未设置),然后配置/ etc / sudoers文件以允许用户或组执行所需的命令。
例如,要允许用户“ ben”以root用户身份执行所有命令以提示输入密码,请执行以下操作:
ben ALL= ALL
要允许'ben'仅执行一个命令(例如rm
),您可以执行以下操作:
ben ALL= /bin/rm
如果您以用户身份运行脚本并且不想提示输入密码,则需要使用“ NOPASSWD”选项,如下所示:
ben ALL=NOPASSWD: /bin/commandname options
您可以通过为组名加上百分号前缀来对组执行相同的操作,如下所示:
%supportstaff ALL= NOPASSWD: /bin/commandname
简短的答案:须藤。
该调用将类似于以下内容: sudo /etc/init.d/apache2 restart
最简单的方法是用来visudo
设置/ etc / sudoers文件。有关详细信息,请参见man sudoers
和man visudo
。
您还可以通过将包装器写入apache2ctl,将组所有权分配给Web管理组并设置suid位来完成此操作。与visudo相比,这是一种不太通用的解决方案,但是允许对用户功能和错误检查进行自定义限制。
我根据自己的需要编写了此工具,并在github上进行了共享:https : //github.com/josiahjohnston/ltd_apache2ctl
username
限制为参数子集吗?说start
restart
但不stop
?