Como la mayoría de las cosas en Linux, el comando sudo es muy configurable. Puede hacer que sudo ejecute comandos específicos sin pedir una contraseña, restringir usuarios específicos a solo comandos aprobados, ejecutar comandos de registro con sudo y más.
El comportamiento del comando sudo está controlado por el archivo / etc / sudoers en su sistema. Este comando debe editarse con el comando visudo, que realiza una verificación de sintaxis para asegurarse de que no rompa accidentalmente el archivo.
Especificar usuarios con permisos de Sudo
La cuenta de usuario que crea al instalar Ubuntu está marcada como una cuenta de administrador, lo que significa que puede usar sudo. Cualquier cuenta de usuario adicional que cree después de la instalación puede ser una cuenta de administrador o una cuenta de usuario estándar. Las cuentas de usuario estándar no tienen permisos de sudo.
Puede controlar los tipos de cuentas de usuario gráficamente desde la herramienta Cuentas de usuario de Ubuntu. Para abrirlo, haga clic en su nombre de usuario en el panel y seleccione Cuentas de usuario o busque Cuentas de usuario en el tablero.
Haz que Sudo olvide tu contraseña
De forma predeterminada, sudo recuerda su contraseña durante 15 minutos después de escribirla. Es por eso que solo tiene que escribir su contraseña una vez al ejecutar varios comandos con sudo en rápida sucesión. Si está a punto de permitir que otra persona use su computadora y desea que sudo solicite la contraseña cuando se ejecute a continuación, ejecute el siguiente comando y sudo olvidará su contraseña:
sudo –k
Siempre pida una contraseña
Si prefiere que se le pregunte cada vez que use sudo, por ejemplo, si otras personas tienen acceso a su computadora con regularidad, puede deshabilitar por completo el comportamiento de recordar contraseñas.
Esta configuración, como otras configuraciones de sudo, está contenida en el archivo / etc / sudoers. Ejecute el comando visudo en una terminal para abrir el archivo y editarlo:
sudo visudo
A pesar de su nombre, este comando toma de forma predeterminada el nuevo editor nano fácil de usar en lugar del editor vi tradicional en Ubuntu.
Agregue la siguiente línea debajo de las otras líneas predeterminadas en el archivo:
Valores predeterminados timestamp_timeout = 0
Presione Ctrl + O para guardar el archivo y luego presione Ctrl + X para cerrar Nano. Sudo ahora siempre le pedirá una contraseña.
Cambiar el tiempo de espera de la contraseña
Para establecer un tiempo de espera de contraseña diferente, ya sea uno más largo como 30 minutos o uno más corto como 5 minutos, siga los pasos anteriores pero use un valor diferente para timestamp_timeout. El número corresponde a la cantidad de minutos que sudo recordará su contraseña. Para que sudo recuerde su contraseña durante 5 minutos, agregue la siguiente línea:
Valores predeterminados timestamp_timeout = 5
Nunca pida una contraseña
También puede hacer que sudo nunca solicite una contraseña; siempre que esté conectado, cada comando que prefiera con sudo se ejecutará con permisos de root. Para hacer esto, agregue la siguiente línea a su archivo sudoers, donde username es su nombre de usuario:
nombre de usuario ALL = (ALL) NOPASSWD: ALL
También puede cambiar la línea% sudo, es decir, la línea que permite que todos los usuarios del grupo sudo (también conocidos como usuarios administradores) usen sudo, para que todos los usuarios administradores no requieran contraseñas:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
Ejecute comandos específicos sin una contraseña
También puede especificar comandos específicos que nunca requerirán una contraseña cuando se ejecuten con sudo. En lugar de utilizar "TODOS" después de NOPASSWD anterior, especifique la ubicación de los comandos. Por ejemplo, la siguiente línea permitirá que su cuenta de usuario ejecute los comandos apt-get y shutdown sin una contraseña.
nombre de usuario ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
Esto puede ser particularmente útil cuando se ejecutan comandos específicos con sudo en un script.
Permitir que un usuario ejecute solo comandos específicos
Si bien puede incluir en la lista negra comandos específicos y evitar que los usuarios los ejecuten con sudo, esto no es muy efectivo. Por ejemplo, puede especificar que una cuenta de usuario no pueda ejecutar el comando de apagado con sudo. Pero esa cuenta de usuario podría ejecutar el comando cp con sudo, crear una copia del comando shutdown y apagar el sistema usando la copia.
Una forma más eficaz es incluir comandos específicos en la lista blanca. Por ejemplo, puede otorgar permiso a una cuenta de usuario estándar para usar los comandos apt-get y shutdown, pero no más. Para hacerlo, agregue la siguiente línea, donde standarduser es el nombre de usuario del usuario:
usuario estándar TODOS = / usr / bin / apt-get, / sbin / shutdown
El siguiente comando nos dirá qué comandos puede ejecutar el usuario con sudo:
sudo -U standarduser –l
Registro de acceso a Sudo
Puede registrar todos los accesos a sudo agregando la siguiente línea. / var / log / sudo es solo un ejemplo; puede utilizar cualquier ubicación de archivo de registro que desee.
Archivo de registro predeterminado = / var / log / sudo
Vea el contenido del archivo de registro con un comando como este:
sudo cat /var/log/sudo
Tenga en cuenta que, si un usuario tiene acceso a sudo sin restricciones, ese usuario tiene la capacidad de eliminar o modificar el contenido de este archivo. Un usuario también podría acceder a un indicador de root con sudo y ejecutar comandos que no se registrarían. La función de registro es más útil cuando se combina con cuentas de usuario que tienen acceso restringido a un subconjunto de comandos del sistema.