Como sudo como outro usuário, sem especificar o nome de usuário

3

Atualmente, estou tentando criar um arquivo sudoers, mas encontrei algo que não consigo entender.

O resultado final que estou procurando é que eu quero que os usuários façam algo como:

sudo /usr/sbin/script.pl

Mas, em vez de executar como root, gostaria que o script fosse executado como "other_user".

Eu examinei o arquivo sudoers e tentei adicionar uma linha como:

pedro      ALL = (other_user) /usr/sbin/script.pl

Mas isso só funciona se eu especificar o usuário fazendo sudo -u other_user /usr/sbin/script .

Existe uma maneira (fácil) de executar o script como um usuário específico, sem precisar especificá-lo na linha de comando?

    
por Pedro 21.06.2012 / 22:54

3 respostas

11

Eu não acho que exista um parâmetro de configuração para fazer isso. Você pode hackear o código-fonte e recompilá-lo. Você também pode usar um alias, por exemplo.

alias sudo='sudo -u pedro'

mas você teria que lembrar de um \ infront do sudo para qualquer outra coisa

\sudo somecommand 
    
por 21.06.2012 / 23:28
5

aqui é algo que pode funcionar:

alias sudop='sudo -u pedro'
alias sudoa='sudo -u alice'

Você ainda precisa especificar algo além do sudo, mas é profundamente concatenado e flui muito facilmente para ser digitado. Eu uso uma variação disso para comandos sudo comuns que preciso executar.

    
por 21.06.2012 / 23:26
0

Do sudo chown other_user /usr/sbin/script; sudo chmod 6777 Isto irá mudar o dono do script para other_user, então irá defini-lo como editável e executável por todos, e finalmente configurá-lo para ser executado como other_user.

sudo chown other_user /usr/sbin/script; sudo chmod 6555 // mesmo que acima, mas somente leitura sudo chown other_user /usr/sbin/script; sudo chmod 6755 // mesmo que 6777 mas só pode ser editado por other_user

Veja man chmod e man chown para mais detalhes

    
por 22.06.2012 / 05:35

Tags