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)