No se pueden limitar los comandos que el usuario puede ejecutar como root en el shell habilitado para devtoolset-3

No se pueden limitar los comandos que el usuario puede ejecutar como root en el shell habilitado para devtoolset-3

Estamos usando devtoolset-3 en RHEL6.6. Los usuarios ejecutan scl enable devtoolset-3 bash para acceder a un entorno con todas las herramientas devtoolset-3.

Me gustaría permitir que los usuarios ejecuten un subconjunto de comandos como root. La forma normal de hacer esto es usar sudo con un archivo sudoers que contiene un alias de comando con una lista de comandos que desea que el usuario pueda ejecutar como root.

He probado varias combinaciones pero no encuentro la receta adecuada.

A continuación se muestran algunas de las cosas que he probado:

Intento 1:

Creo un alias de comando:

Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>

y luego permitir que los miembros de myGroup ejecuten esos comandos sin contraseña

%myGroup  ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS

Con esa configuración, si intento ejecutar sudo pkill obtengo:

Lo sentimos, el usuario no puede ejecutar '/usr/bin/scl enable devtoolset-3 'pkill' ''' como root

Intento 2:

Modifiqué el archivo sudoers para tener el comando completo:

Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/scl enable devtoolset-3 pkill <some_process_name>

pero sigo recibiendo el mismo error.

Intento 3:

Si lo enumero /usr/bin/sclcomo un comando permitido, entonces el usuario puede ejecutar cualquier comando como root en un entorno habilitado para scl.

¿Alguien puede encontrar una forma confiable de permitir a los usuarios ejecutar una determinada lista de comandos en un shell habilitado para scl?

Respuesta1

En caso de que alguien más tenga este problema, pensé en publicar aquí la respuesta que recibí del soporte de Red Hat.

Resulta que la versión devtoolset-3 de sudo no reproduce bien el formato de los alias de comando que puedes especificar en /etc/sudoers.

En su shell habilitado para devtoolset-3 puede crear un alias sudo=/usr/bin/sudo. Luego, sus usuarios ejecutarán el sudo estándar que maneja correctamente los alias de comandos.

Con ese alias implementado, todo funciona como se esperaba.

información relacionada