背景:
我有一台带有 LAMP 设置的开发机器。一些开发人员会不时访问这台机器。每次他们在配置文件中进行一些更改时,他们都需要使用sudo service apache restart
或重新启动 apache 服务器sudo /etc/init.d/apache2 restart
问题:
我现在想要的是,每个访问机器的开发人员都没有对所有内容的 sudo 访问权限。相反,他/她应该只能service
使用 sudo运行命令,而不能使用其他任何命令。有可能这样做吗?
Pan*_*her 37
是的。
创建一个新组,网络(随心所欲地称呼它)
sudo addgroup web
Run Code Online (Sandbox Code Playgroud)
将您的开发人员添加到网络组(使用他们的登录名)。
sudo adduser your_developer_user web
Run Code Online (Sandbox Code Playgroud)
然后运行sudo visudo -f /etc/sudoers.d/somefile
(使用有意义的名称而不是somefile
)。
添加一行(使用命令的完整路径):
%web ALL=(ALL) /usr/bin/service apache2 *
Run Code Online (Sandbox Code Playgroud)
然后开发人员可以运行
sudo service apache
Run Code Online (Sandbox Code Playgroud)
使用他们的登录密码。
不要将您的管理员用户添加到网络组。
有关其他信息,请参阅man sudoers