Sudo Apache, com linha de comando? (não visudo)

0

Eu visudo-edited /etc/sudoers desta maneira:

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

APACHE  ALL = (ALL) NOPASSWD: FIREWALL

(Para permitir que o php execute iptables cmd).

Existe uma maneira de conseguir o mesmo, puramente com script de terminal / tty / cmdline AND / OR root ?

    
por ArchiT3K 04.09.2015 / 14:48

1 resposta

1

Claro. Você pode simplesmente descartar arquivos em /etc/sudoers.d em vez de editar o próprio arquivo 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

E eu acho que se você estivesse preso a um sudo realmente antigo sem suporte para o diretório sudoers.d , poderia concatenar isso para /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

(O if ! grep -q ... está lá para evitar concatenar isso várias vezes se o script for executado mais de uma vez)

    
por 04.09.2015 / 16:01