我需要执行一些服务器任务。现在我听过很多次,这是非常不安全的。这是我的解决方案:
将此行添加到sudoers:
www-data ALL=NOPASSWD: /var/private-www/bin/webadmin
(无法通过网络访问)
创建此脚本var/private-www/bin/webadmin
:
# Script for executing server tasks.
#
# Arguments:
# - Password Required for authentication, not all scripts may run this file
# - Action Action to execute
# Exit codes:
# 0 Failed
# 1 Success
# First of all check the password
if [ $1 = "secretpassword" ]
then
whoami
exit 1
else
echo "No access"
exit 0
fi
该文件具有以下权利:
0111
仅对一个帐户启用SSH访问。所以没有人可以执行脚本,除了我(和www-data)。 www-data现在可以通过执行以下操作来访问此文件:
exec('/usr/bin/sudo /var/private-www/bin/webadmin secretpassword', $output, $status);
这样安全吗?我怎样才能让它更安全?
答案 0 :(得分:0)
我想如果你的Apache服务器被破解,有人可以访问该脚本并执行它,但我可能错了。
我遇到过您可能想要阅读的资源,特别是在将脚本限制在内部网络时。
http://www.linuxsecurity.com/content/view/133913/171/
我希望这能回答你的问题。