¿Cómo configurar sudoers para permitir ejecutar el comando sudo bajo otro grupo y nombre de usuario?

¿Cómo configurar sudoers para permitir ejecutar el comando sudo bajo otro grupo y nombre de usuario?

Cómo configurar sudoerspara evitar tener el Sorry, user ****** is not allowed to executemensaje de error.

Fondo

Con el fin de probar cómo funciona un script de Python en un usuario con menos privilegios y una cuenta de demonio de grupo, es necesario ejecutar:

$ sudo -u _denyhosts -g _denyhosts python /usr/local/bin/denyhosts.py 
-c /usr/share/denyhosts/denyhosts.cfg -n --purge --sync --verbose

El resultado es:

Sorry, user ****** is not allowed to execute 
'/usr/bin/python /usr/local/bin/denyhosts.py -c /usr/share/denyhosts/denyhosts.cfg 
-n --purge --sync --verbose' as _denyhosts:_denyhosts on ***.***.***.

La suposición es que este comando falla debido a una configuración adicional requerida en sudoers.

$ sudo -l
Matching Defaults entries for *** on this host:
    editor=/usr/bin/nano, env_reset, env_keep+=BLOCKSIZE, env_keep+="COLORFGBG
    COLORTERM", env_keep+=__CF_USER_TEXT_ENCODING, env_keep+="CHARSET LANG
    LANGUAGE LC_ALL LC_COLLATE LC_CTYPE", env_keep+="LC_MESSAGES LC_MONETARY
    LC_NUMERIC LC_TIME", env_keep+="LINES COLUMNS", env_keep+=LSCOLORS,
    env_keep+=SSH_AUTH_SOCK, env_keep+=TZ, env_keep+="DISPLAY XAUTHORIZATION
    XAUTHORITY", env_keep+="EDITOR VISUAL", env_keep+="HOME MAIL"

User *** may run the following commands on this host:
    (ALL) ALL

Ya intenté agregar el grupo _denyhostsejecutando e sudoersinsertando sudo visudola línea:

%_denyhosts    ALL=(ALL) ALL

Guardar y volver a intentarlo no mejora.

Respuesta1

La línea %_denyhosts ALL=(ALL) ALLsignifica que los usuarios del _denyhostsgrupo pueden ejecutar cualquier comando como cualquier usuario. Esto no es lo que estás intentando hacer: debes permitir que el usuario ******ejecute comandos como usuario _denyhostsy grupo _denyhosts. Algo como:

****** ALL = (_denyhosts : _denyhosts) ALL

Respuesta2

Deberá asegurarse de que, aunque los usuarios de _denyhosts se hayan agregado al archivo sudoers, los usuarios que desea que puedan ejecutar este comando se agreguen al grupo _denyhosts en /etc/group.

$ sudo vi /etc/group
*snip*
_denyhosts:x:###:username1,username2,username3

Guarde el archivo 'grupo' y vuelva a intentarlo.

información relacionada