configuração sudoers de granulação fina (argumentos de linha de comando permitidos)

20

existe uma maneira direta de permitir que um usuário rode (por exemplo)

/usr/bin/pacman -S -u

como root, sem permitir que ele seja executado

/usr/bin/pacman -S -u some_package

?

A linha

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

permite que ambos e

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

parece ser semanticamente equivalente.

    
por nisc 26.07.2010 / 01:13

2 respostas

27

Para o seu caso, tente algo assim:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

Você pode usar padrões de shell glob como [a-z], [0-9], * etc. em seu arquivo sudoers para excluir pacotes que correspondam a um determinado padrão.

    
por 26.07.2010 / 12:55
3

Escreva um script que faça o que você quer e dê acesso ao sudo.

Certifique-se também de que o ambiente em que isso é executado não tenha acesso à rede, ou que eles possam usar seus próprios dns para falsificar o espelho e executar código arbitrário como root quando ele for instalado pelo pacman.

    
por 26.07.2010 / 03:28