Executar comando com sudo por padrão

4

Eu preciso de um usuário do Linux (vamos chamá-lo de "bob") que tem permissão para executar uma lista de comandos que exigem privilégios de root. Portanto, ele deve executar /sbin/firstcommand e /sbin/secondcommand (que fazem parte do infame bob-daemon¹) como raiz, como em sudo firstcommand . Sem ter que inserir uma senha.

Isso foi o que eu fiz até /etc/sudoers até agora:

Cmnd_Alias BOBCOMMANDS = /sbin/firstcommand, /sbin/secondcommand
bob        ALL=(root) NOPASSWD:BOBCOMMANDS

Isso faz com que bob$ sudo firstcommand e bob$ sudo secondcommand sejam executados com êxito como root, mas não é possível executar, por exemplo, bob$ sudo mount ... ... , mesmo com o fornecimento de uma senha, o que parece perfeito para mim.

Agora, quero que o bob-daemon¹ mencionado acima seja executado como usuário bob em vez de root , porque ele só precisa desses privilégios para o BOBCOMMANDS . Na verdade, sempre que o bob$ firstcommand for emitido, eu quero que bob$ sudo firstcommand seja executado.

Parecia que um alias poderia corrigir isso: bob$ alias firstcommand="sudo firstcommand"; alias secondcommand="sudo secondcommand" realmente funcionou, mas não consegui tornar os aliases persistentes sem que o bob tenha um diretório inicial.

A última coisa que devo mencionar é que isso deve ser facilmente implantável em várias máquinas, então eu preferiria não tocar nos arquivos de sistema existentes do linux, além de ter que criar bob e alterar sudoers .

Alguma solução?

¹ simplificado por mim

    
por LDericher 28.10.2014 / 00:43

1 resposta

0

Se isso é para um daemon, a maneira padrão de fazer as coisas é colocar algo parecido com isto no arquivo de script de inicialização:

USER=bob
...
su -c '/command/to/start/actual/daemon' "$USER"

No arquivo de script que deve ser executado como bob , basta colocar sudo na frente dos comandos pertinentes.

Além disso, leia esta sobre a ativação da expansão de alias em shells Bash não interativos (por exemplo, aqueles iniciados por um script ou daemon).

    
por 28.10.2014 / 01:37