sudoers config para permitir a edição de arquivos no diretório particular (e filhos)

3

Como posso fornecer sudo access para um usuário, mas restringi-lo apenas à edição de arquivos e somente a arquivos que estejam em um diretório nomeado. Por exemplo, eu gostaria que o usuário abc fosse capaz de editar todos os arquivos em /var/www/vhosts/hostabc/ e seus filhos.

    
por Jonathan Day 29.11.2010 / 01:41

3 respostas

4

Você pode usar sudoedit :

%editors_group ALL=(root) sudoedit /var/www/vhosts/hostabc/*

Adicione todos os editores ao editors_group

    
por 29.11.2010 / 03:23
2

Parece que não há um caminho direto. Uma antiga postagem na lista de discussão indica que esse recurso foi discutido há alguns anos , mas uma olhada no atual changelog mostra que o pessimismo do post está certo, e nada aconteceu.

Você pode alterar a propriedade do grupo desses arquivos? Se puder, você pode usar chmod g+S /var/www/vhosts/hostabc e, em seguida, novos arquivos também obterão esse grupo. Como alternativa, e talvez melhor, embora menos transparente, você poderia usar ACLs. Essas abordagens permitem que você evite usar sudo .

    
por 29.11.2010 / 02:04
1

Ou, para estender a sugestão do mattdm, não se esqueça de que o sudo pode ser usado para conceder acesso a usuários que não sejam o root. Você poderia criar um usuário personalizado apenas para esse propósito, chown -R customuser:customgroup /var/www/vhosts/hostabc , em seguida, dar privilégios userabc sudo ao usuário customuser. O usuário não é usado para mais nada, então é razoavelmente seguro fazer isso.

Você também não precisa se preocupar em usar o chmod + S para garantir herança, já que as edições serão feitas como o usuário do usuário personalizado.

    
por 29.11.2010 / 02:38