
Quiero ejecutar un script que incorpore comandos que requieran un usuario root de mi cuenta no root sin hacer sudo:
/usr/local/bin/dodo
#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid
Lo que hice fue convertirlo en root y configurar el bit SUID:
chown root:root /usr/local/bin/dodo
chmod a+xrs /usr/local/bin/dodo
Pero cuando intento ejecutarlo, el resultado es:
$ /usr/local/bin/dodo
This utility may only be run by the root user.
También probé una solución sudoer agregando el archivo /etc/sudoers.d/dodo
:
%family ALL = (root) NOPASSWD: /usr/local/bin/dodo
Lo cual se supone, si no me equivoco, autorizar a los usuarios del grupo familiar a ejecutar dodo como root sin contraseña. Pero el resultado es el mismo.
¿Qué extraño por favor? Estoy en Debian Jessie
EDITAR: En el último caso, sudo dodo
funciona sin contraseña.
Respuesta1
Desde el enlace de AlexP y las diferentes respuestas allí, esto es lo que funciona bien:
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
Luego para cualquier persona del grupo familiar:
dodo
ejecuta sincronización y pm-suspend-hybrid sin contraseña ni sudo