是否有可能只对特定命令提供sudo访问权限?

背景:我有一台带LAMP设置的开发机器。 一些开发人员会不时访问该机器。 每次他们在配置文件中进行一些更改时,他们都需要使用sudo service apache restartsudo /etc/init.d/apache2 restart apache服务器

问题:

我现在想要的是,每个访问该机器的开发人员都没有sudo访问权限。 相反,他/她应该只能使用sudo而不是其他任何东西来运行service命令。 有可能吗?

是。

建立一个新的团队,网络(称之为你想要的)

 sudo addgroup web 

将您的开发人员添加到Web组(使用他们的登录名)。

 sudo adduser your_developer_user web 

然后运行sudo visudo -f /etc/sudoers.d/somefile (使用有意义的名称而不是somefile )。

添加一行(使用命令的完整路径):

 %web ALL=(ALL) /usr/bin/service apache2 * 

然后开发人员可以运行

 sudo service apache 

使用他们的登录密码。

请勿将管理员用户添加到Web组。

有关其他信息,请参阅man sudoers