permitindo ao sudo excluir certos arquivos

1

Gostaria de permitir a exclusão de determinados arquivos no diretório / tmp para usuários do sudo. Eu adicionei o Allow_Cmnd /usr/sbin/userdel para usuários do sudo, mas isso não exclui todos os arquivos / tmp associados ao usuário.

Então, como devo ajustar os sudoers para permitir que eles excluam determinados arquivos apenas no diretório / tmp. Eu pesquisei um pouco, mas aprendi que o regex pode ser uma aplicação. Eu tentei alguns ajustes, mas não está funcionando para mim.

Gostaria que os usuários tivessem capacidade de executar comandos como

find /tmp -uid 10002 | grep joeuser | xargs rm -rf 
    
por chandank 24.10.2012 / 17:55

2 respostas

2

A melhor coisa a fazer é escrever um script que faça o que você quer. Você pode fazer sanidade extensiva verificando lá, verifique se o usuário está fazendo apenas o que eles são permitidos, e assim por diante. E só permita que esse script seja executado a partir do sudo.

Alternativamente, você também pode permitir que eles sejam executados o comando como você descreveu: /bin/bash -c "find /tmp -uid 10002 | grep joeuser | xargs rm -rf" , ou mesmo mais simples find /tmp -uid 10002 -path \*joeuser\* -delete .

Como já foi dito, usar xargs desta maneira não é uma boa ideia. Você pode usar find -print0 | xargs -0 ou minha recomendação pessoal é: find /tmp -uid 10002 -path \*joeuser\* -depth -exec rm -rf {} + . Se a sua versão de find não for compatível com + , você poderá usar \; .

    
por 24.10.2012 / 18:06
1

Eu acredito que um roteiro bem escrito será sua melhor opção. No entanto, isso realmente depende do objetivo geral e de quão bem o design está planejado ... Você deseja que os arquivos em / tmp sejam excluídos que pertençam ao usuário que está executando o script ou o script deve aceitar parâmetros para UID e nome de usuário? / p>

Existem preocupações óbvias de segurança e você precisa ser muito cuidadoso. Durante o seu teste, eu não iria instituir a exclusão real, mas registrar (saída) os arquivos que "seriam" excluídos se o código de exclusão estivesse no lugar. Eu então testaria mais 3 vezes para ter certeza.

Por último, a outra opção, dependendo de suas necessidades, seria escrever um script mais genérico e programá-lo para ser executado em uma determinada data / hora através do cron para automatizar o processo.

BTW:

/ usr / sbin / userdel NÃO é o comando que você deseja. Isso é para excluir contas de usuários locais.

-Brendan

    
por 24.10.2012 / 22:16

Tags