Sudo Apache,使用命令行? (不是维苏多)

Sudo Apache,使用命令行? (不是维苏多)

/etc/sudoers我已经这样进行了 visudo 编辑:

User_Alias  APACHE = www-data
Cmnd_Alias  FIREWALL = /sbin/iptables, /sbin/ifconfig, /sbin/route

APACHE  ALL = (ALL) NOPASSWD: FIREWALL

(允许php运行iptablescmd)。

有没有一种方法可以实现相同的效果,纯粹使用terminal/tty/cmdline AND/OR root外壳脚本

答案1

当然。您可以将文件拖入其中,/etc/sudoers.d而不是编辑 sudoers 文件本身:

cat > /etc/sudoers.d/apache <<EOF
User_Alias  APACHE = www-data
Cmnd_Alias  FIREWALL = /sbin/iptables, /sbin/ifconfig, /sbin/route

APACHE  ALL = (ALL) NOPASSWD: FIREWALL
EOF
chmod 440 /etc/sudoers.d/apache

我想如果你遇到了一个非常旧的sudo而不支持sudoers.d目录的情况,你可以将其连接到/etc/sudoers

if ! grep -q APACHE /etc/sudoers; then
cat >> /etc/sudoers <<EOF
User_Alias  APACHE = www-data
Cmnd_Alias  FIREWALL = /sbin/iptables, /sbin/ifconfig, /sbin/route

APACHE  ALL = (ALL) NOPASSWD: FIREWALL
EOF
fi

if ! grep -q ...如果脚本运行多次,则可以防止多次连接)

相关内容