Ejecutar un comando como si fueras otro usuario: sudo
Esta receta explica cómo ejecutar comandos del sistema con los permisos de otro usuario.
Introducción
El principal objetivo de sudo es reemplazar al comando su. En algunas situaciones puede reemplazar al SUID. La principal ventaja de utilizar sudo es que no es necesario conocer la password de otro usuario para ejecutar comandos con permisos “especiales”.
Configuración
Lo primero será editar el fichero /etc/sudoers. Existe un comando llamado visudo que directamente edita el fichero con vi. Pero si alguno no sabe utilizar vi, puede utilizar cualquier otro editor. El fichero tiene el formato siguiente:
En el podemos ver como el usuario root tiene permiso de todo al igual que el usuario fulanito. Muchos administradores opinan que hacer esto es “peligroso” si los usuarios son noveles, pero ese no es mi caso :-P.
El fichero se divide en tres secciones:
- Definiciones de alias
- Ajuste de opciones por defecto
- Reglas de acceso
La sección más importante son las reglas de acceso, que tienen esta forma:
En el ejemplo de antes se ha utilizado un alias especial ALL que engloba a todos los comandos, usuarios y demás historias. Para hacer una configuración más afinada lo mejor es que cada uno se cree sus propios alias y configuraciones. El nombre de usuario privilegiado que se pone entre paréntesis es opcional, si no se pone es root
por defecto.
Otro punto a comentar es que cuando se ejecuta cualquier comando con sudo, al usuario se le pide su propia password. Esto impide que si un usuario deja una consola abierta otra persona puede realizar operaciones privilegiadas utilizando su sesión. Puedes evitar la comprobación de clave si escribes la palabra NOPASSWD
antes del comando.
Por ejemplo, la siguiente línea permite al usuario webmaster parar y reiniciar el servidor web sin tener que poner su clave:
Para evitar esto lo mejor es añadir al usuario en cuestión al grupo sudo. Eso se puede conseguir editando el fichero /etc/group
O ejecutando:
Referencias
- Iniciación de sudo para bisoños
- man sudo