我有一个名为的 bash 脚本,/root/scripts/start-apache
其中包含:
systemctl start apache2
sendTelegramNotice "Apache started from the web"
echo Done
和/root/scripts/stop-apache
:
systemctl stop apache2
sendTelegramNotice "Apache stopped from the web"
echo Done
在 visudo 中我添加了:
www-data ALL=NOPASSWD: /root/scripts/start-apache
www-data ALL=NOPASSWD: /root/scripts/stop-apache
我添加了以下命令/usr/local/bin
:
ln -s /root/scripts/{start-apache,stop-apache} /usr/local/bin/
现在,当我以用户身份登录时www-data
,我可以运行如下命令:
sudo start-apache
sudo stop-apache
这是一种安全的方法吗?我的假设是否正确?当我正确验证 bash 脚本命令的输入时,从安全角度来看,这对于生产来说是安全的。如果不是,那么实现这一目标的最佳做法是什么?
我想创建类似的简单命令banip 0.0.0.0
unbanip 0.0.0.0
slowtrafficdown
并将它们公开给www-data
,但我不想授予www-data
提升的权限来直接运行底层命令(如iptables / ipset等)。