¿Cómo puedo limitar mi usuario para ejecutar comandos selectivos solamente? Tengo un usuario tomc en el grupo tomc. Necesito que este usuario sea sudo y luego tenga bash restringido. He intentado seguir el código en el /etc/sudoers
archivo, pero no funciona, ya que el usuario puede ejecutar otros comandos como mkdir
,rm
%tomc ALL=/bin/bash,/usr/bin/vim /*
sudo bash
es equivalente en la mayoría de los casos a tener la contraseña de root. Desde unsudo bash
shell pueden ejecutar cualquier comando de administración, instalar o eliminar software, eliminar usuarios y directorios, etc.Respuestas:
Puede que vayas a esto por el camino equivocado. En lugar de darle a un usuario un shell bash 'restringido', solo debe darle acceso a los comandos que necesitaría para ejecutar como root. Por ejemplo, en su archivo sudoers:
Tenga cuidado al permitir que los usuarios ejecuten vim como root. Vim tiene muchas características integradas, como escapes a shell y la capacidad de ejecutar comandos desde vim. Dependiendo de su distribución, puede tener
sudoedit
disponible. Esto funciona igual que un Vim normal, excepto que está diseñado para manejar escapes de shell y demás.fuente
vim
puedes ejecutar comandos de shell arbitrarios. ¡Y la segunda línea probablemente lo permitaless /var/log/myapp/../../../etc/shadow
! ¡Según mis experimentos, usar sudo de forma segura es difícil ! Pero si puede evitar*
el uso de sy ensudoedit
lugar de eso,vim
entonces puede estar bien.*
no es suficiente! Una vez que estéless
comoroot
usuario, intente escribir!tail /var/log/secure
. ¿Cómo se siente eso? Estudia laNOEXEC
etiqueta. Pero tome en serio el mensaje de @joeytwiddle: la seguridad de sudo es realmente difícil.En mi Synology Diskstation que ejecuta DSM 6, solo los usuarios administradores pueden ingresar constantemente (los usuarios no administradores tienen shell como / sbin / nologin en / etc / passwd; puede configurar esto en / bin / sh para permitir temporalmente ssh, pero al reiniciar el archivo / etc / passwd se restablece). Por esta razón, se necesita algún tipo de restricción de sudo para una cuenta que de otro modo solo existe para ejecutar, por ejemplo, / sbin / poweroff. Las siguientes líneas en / etc / sudoers me funcionaron:
Traducción: no permita todos los comandos, luego permita solo el comando deseado (sin pedir contraseña en este caso).
Con esta configuración, sudo solicita la contraseña y luego falla para los comandos que no sean la lista blanca:
fuente