
Quero executar um script que incorpora comandos que exigem um usuário root da minha conta não root sem sudo:
/usr/local/bin/dodo
#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid
O que fiz foi torná-lo root e definir o bit SUID:
chown root:root /usr/local/bin/dodo
chmod a+xrs /usr/local/bin/dodo
Mas quando tento executá-lo, o resultado é:
$ /usr/local/bin/dodo
This utility may only be run by the root user.
Eu tentei também uma solução sudoer adicionando o arquivo /etc/sudoers.d/dodo
:
%family ALL = (root) NOPASSWD: /usr/local/bin/dodo
O que supostamente, se não me engano, autoriza os usuários do grupo family a executar dodo como root sem senha. Mas o resultado é o mesmo.
O que estou sentindo falta, por favor? Estou no Debian Jessie
EDIT: No último caso, sudo dodo
funciona sem senha
Responder1
A partir do link do AlexP e das diferentes respostas lá, aqui está o que funciona bem:
cat /usr/local/bin/dodo
#!/bin/bash
/bin/sync
exec sudo /usr/sbin/pm-suspend-hybrid
_
ls -l /usr/local/bin/dodo
-rwxr-xr-x 1 laurent family 60 déc. 18 17:47 /usr/local/bin/dodo
_
cat /etc/sudoers.d/dodo
%family ALL = (root) NOPASSWD: /usr/sbin/pm-suspend-hybrid
Então, para qualquer pessoa do grupo familiar:
dodo
executa sincronização e pm-suspend-hybrid sem senha nem sudo