Como configurar sudoers com curingas de caminho?

4

Eu preciso de sudo para um comando para qualquer caminho em uma área específica. Exemplo:

sudo mycommand /opt/apps/myapp/...

Qual é a sintaxe dos sudoers para permitir que esse comando seja executado em qualquer caminho que esteja em / opt / apps / myapp? Este é o Solaris 10 sudo.

Obrigado pela sua resposta, mas não preciso de curingas para o caminho para os comandos, mas curingas para os argumentos dos comandos.

Por exemplo, queremos fazer algo como ...

sudo mycmd /opt/userarea/area1
sudo mycmd /opt/userarea/area1/area2
sudo mycmd /opt/userarea/area1/area2/area3

Até agora, o uso de curingas para os argumentos em sudoers é assim:

/opt/userarea/*
/opt/userarea/*/*

E parece que, se queremos ter N níveis de diretórios, precisamos de N linhas em sudoers! Existe uma maneira melhor de incluir todos os N níveis em uma linha em sudoers? Obrigado.

    
por C. Lee 10.04.2010 / 00:11

2 respostas

1

O sudo é controlado pelo arquivo /etc/sudoers , que diz o que pode e não pode fazer. Eu não sei se você pode conseguir o que quer pela mesma razão que eu mencionei abaixo, no entanto, você pode criar um grupo de comandos assim:

Cmnd_Alias TESTAPPS = /opt/dev/myapp/myapp1, /opt/dev/myapp/myapp2

Você pode permitir que determinados grupos executem o sudo usando apenas esses comandos. Eu tenho esse conjunto no meu:

root    ALL=(ALL)       ALL
%wheel  ALL=(ALL)       ALL

Você também pode adicionar:

%development    ALL=(TESTAPPS)   ALL

Confusamente, o ALL no primeiro caso indica TODOS os hosts dos quais você está efetuando login, portanto você pode evitar que o sudo seja executado a partir de determinados hosts.

Apenas um aviso rápido - se você fizer isso e ativar o acesso de gravação a essa área, o usuário pode simplesmente copiar os comandos de / bin, / usr / bin ou qualquer outra coisa e executar o que eles gostam como root. Então eu poderia executar sudo /opt/apps/myapp/rm -rf / e isso funcionaria. Você também precisa restringir onde esses comandos podem ser executados.

    
por 10.04.2010 / 00:17
0

Eu estava procurando fazer a mesma coisa e encontrei essa (reconhecidamente antiga) pergunta ...

Conforme eu pesquisei mais, descobri que a página de manual do sudoers deixa claro que ele não corresponderá a barras em uma correspondência de curinga para um nome de comando / caminho. Dos sudoers (5) (na seção "wildcards"):

Note that a forward slash (‘/’) will not be matched by wildcards used in the path name.

Ele não diz isso na página man, mas eu acho que isso é muito claramente para manter alguém com acesso para executar comandos em /opt/userarea/* de tentar executar algo como /opt/userarea/../../bin/sh , o que obviamente seria ruim ...

Então, não, não funcionará como você quer (e como eu queria) - por design.

    
por 23.06.2014 / 18:06

Tags