Dar ao usuário regular sudo
acesso a um editor como vi
ou vim
é arriscado. Veja esta pergunta para um em - explicação detalhada .
Com uma versão moderna de sudo
, você pode especificar em sudoers
:
%pusers ALL=(ALL) sudoedit /etc/httpd/conf/*
Em seguida, os usuários podem especificar o editor escolhido usando as variáveis de ambiente VISUAL ou EDITOR (como de costume) e, em seguida, usar
$ sudoedit /etc/httpd/conf/httpd.conf
ou
$ cd /etc/httpd/conf
$ sudoedit httpd.conf
Em vez de sudoedit
, sudo -e
também pode ser usado.
O sudo moderno reconhece sudoedit
como um comando embutido em sudo
e, quando você o usa, sudo
entende que os argumentos devem ser nomes de caminho dos arquivos a serem editados (apenas) e, em seguida, nomes de caminho relativos tornam-se possíveis.
Em um caso geral (= quando não estiver usando a palavra-chave sudoedit
), sudo
não presumirá saber nada sobre os parâmetros de comando, portanto, se você especificar um comando com parâmetros específicos no arquivo sudoers
, apenas correspondência de strings "mudo" é possível.
Estritamente falando, você nem precisa mesmo de sudo
para conceder acesso aos arquivos de configuração do Apache. O Apache não se importa particularmente com as permissões do arquivo de configuração, desde que o próprio Apache possa lê-las (e se o Apache usar portas < 1024, ele normalmente inicia como root, portanto, a leitura de arquivos não é um problema). Então, como você já tem um grupo, pode fazer isso:
chgrp -R pusers /etc/httpd/conf
chmod g+rws /etc/httpd/conf
chmod g+rw /etc/httpd/conf/*
O RHEL7 até usa o sistema "usergroups" por padrão, portanto os valores de umask
dos usuários já devem ser 002 ou 007. Se isso for verdade, essas configurações únicas simples são tudo o que você precisa para que seus usuários gravem acesso aos arquivos de configuração do Apache. Seus usuários podem até criar novos arquivos no diretório de configuração e obter automaticamente a propriedade e as permissões de grupo corretas.
Na verdade, a maneira mais provável de atrapalhar acidentalmente as permissões dos arquivos de configuração nesse esquema seria adicionar novos arquivos a ele como root: o usuário root geralmente tem umask sem o bit de gravação de grupo (tradicionalmente 022 ou mais restrito 077), e o poder root também pode truncar o bit setgid
nos diretórios.
Você pode ter que aprender alguns novos hábitos, mas, neste caso, desaprender "você deve ser root para configurar o Apache" pode realmente ser uma coisa boa. (E se você acha que sudo
fornece mais trilha de auditoria, então realmente considere colocar os arquivos de configuração sob o Git ou algum outro sistema de controle de versão.)