Permitir que ciertos invitados ejecuten ciertos comandos

19

Me gustaría crear un nuevo usuario en algunos de mis hosts Debian / Ubuntu que pueda actualizar el servidor usando los comandos apt-get updatey apt-get dist-upgrade, pero no quiero darles acceso completo a sudo para poder hacer cualquier otra cosa. es posible? ¿Quizás haya una manera de crear un script que no puedan editar pero que puedan ejecutar, que se ejecutará como usuario root?

Programador
fuente
2
Ver man sudoersy sudo cat /etc/sudoers.
Ricitos
Gracias @goldilocks Siempre pensé que el archivo sudoers era solo para permitir a las personas tener acceso a la raíz antes.
Programador

Respuestas:

30

Sudoy el /etc/sudoersarchivo no es solo para otorgar a los usuarios acceso completo a la raíz.

Puede editar el archivo sudoers con un usuario sudo existente, con el comando sudo visudo

Puede agrupar los comandos a los que desea otorgar acceso, como a continuación:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

Luego puede otorgar privilegios de usuario específicos a esos comandos de la siguiente manera:

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

Esto se puede ver en la imagen a continuación ingrese la descripción de la imagen aquí:

Ahora si lo intentas sudo apt-get updateo sudo apt-get dist-upgradeesos comandos se ejecutarán sin pedir una contraseña . Si desea que se le solicite una contraseña, elimine el NOPASSWDbit donde concede acceso a un usuario a los grupos de comandos.

Si intenta ejecutar cualquier otra cosa como sudousuario, se le pedirá una contraseña y fallará.

Referencias

Programador
fuente
66
Tenga en cuenta que otorgar a los usuarios el permiso para ejecutar apt-get, o incluso simplemente apt-get upgrade, ¡ les da acceso completo a la raíz ! Muchos scripts de actualización permiten al usuario interactivo ejecutar un shell, por ejemplo, cuando un archivo de configuración ha cambiado. Para estar seguro, restringir apt-getciertos comandos y forzarlo a que no sea interactivo. Consulte ¿Es seguro para mi usuario ssh recibir sudo sin contraseña para apt-get updatey apt-get upgrade?
Gilles 'SO- deja de ser malvado'
En mi caso tuve que poner la línea después%sudo ...
Aleksey
¿Hay alguna manera de hacerlo solo desde la línea de comandos?
Kamil Dziedzic