El comando sudo ( S uper U ser DO ) en Linux generalmente se usa como un prefijo de algún comando que solo el superusuario puede ejecutar. Si agrega el prefijo «sudo» a cualquier comando, ejecutará ese comando con privilegios elevados o, en otras palabras, permitirá que un usuario con los permisos adecuados ejecute un comando como otro usuario, como el superusuario. Este es el equivalente de la opción «ejecutar como administrador» en Windows. La opción de sudo nos permite tener múltiples administradores.
Estos usuarios que pueden usar el comando sudo deben tener una entrada en el archivo sudoers ubicado en «/etc/sudoers». Recuerda que para editar o ver el archivo sudoers tienes que usar el comando sudo. Para editar el archivo sudoers se recomienda usar el comando «visudo».
De forma predeterminada, sudo requiere que los usuarios se autentiquen con una contraseña que es la contraseña del usuario, no la contraseña de root en sí.
archivo sudoers:
Sintaxis:
sudo -V | -h | -l | -v | -k | -K | -s | [-H] [-P] [-S] [-b] |
[-p indicador] [-c clase|-] [-a auth_type] [-r rol] [-t tipo]
[-u nombre de usuario|#uid] commandsudo -V | -h | -l | -L | -v | -k | -K | -s | [-H] [-P] [-S] [-b] |
[-p indicador] [-c clase|-] [-a auth_type] [-r rol] [-t tipo]
[-u nombre de usuario|#uid] comando
Opciones
1. -V: La opción -V (versión) hace que sudo imprima el número de versión y salga. Si el usuario que invoca ya es root, la opción -V imprimirá una lista de los valores predeterminados con los que se compiló sudo.
2. -l: La opción -l (lista) imprimirá los comandos permitidos (y prohibidos) al usuario en el host actual.
Esto muestra que el usuario actual puede usar todos los comandos como sudo.
3. -h o –help: La opción -h (ayuda) hace que sudo imprima un mensaje de uso y salga.
4. -v: Si, dada la opción -v (validar), sudo actualizará la marca de tiempo del usuario, solicitando la contraseña del usuario si es necesario. Esto extiende el tiempo de espera de sudo por otros 5 minutos (o como se indica en sudoers) pero no ejecuta un comando. Esto no da ninguna salida.
5. -k: la opción -k (matar) para sudo invalida la marca de tiempo del usuario. Por lo tanto, la próxima vez que se ejecute sudo se requerirá una contraseña. Esta opción no requiere una contraseña y se agregó para permitir que un usuario revoque los permisos de sudo de un archivo .logout.
6. -K: similar a la opción -k, la opción -K (eliminación segura) se usa para eliminar la marca de tiempo del usuario por completo. Asimismo, esta opción no requiere contraseña.
7. -b: La opción -b (fondo) le dice a sudo que ejecute el comando dado en segundo plano. Tenga en cuenta que si usa la opción -b no puede usar el control de trabajo de shell para manipular el proceso.
8. -p: La opción -p (solicitud) le permite anular la solicitud de contraseña predeterminada y usar una personalizada. Se admiten los siguientes escapes de porcentaje (‘%’):
%u se expande al nombre de inicio de sesión del usuario que invoca;
%U se expande al nombre de inicio de sesión del usuario con el que se ejecutará el comando (que por defecto es root);
%h se expande al nombre de host local sin el nombre de dominio;
%H se expande al nombre de host local, incluido el nombre de dominio (solo si el nombre de host de la máquina está totalmente calificado o la opción sudoers «fqdn» está configurada);
%% (dos caracteres % consecutivos) se contraen en un solo carácter %.
Normalmente obtenemos esto para un comando sudo:
Usando sudo -p obtenemos,
9. -n: use la opción -n como se muestra a continuación, que ejecutará el comando sin solicitar la contraseña. Esto es muy útil cuando queremos ejecutar algunos de los comandos sudo como trabajos en segundo plano (o en un script de shell), donde no queremos que sudo solicite la contraseña. La opción -n significa no interactivo.
10. -u: la opción -u (usuario) hace que sudo ejecute el comando especificado como un usuario que no sea root. Para especificar un uid en lugar de un nombre de usuario, use #uid.
11. -s: la opción -s (shell) ejecuta el shell especificado por la variable de entorno SHELL si está configurada o el shell como se especifica en el archivo passwd.
12. -H: la opción -H (HOME) establece la variable de entorno HOME en el directorio de inicio del usuario de destino (raíz de forma predeterminada) como se especifica en passwd. Por defecto, sudo no modifica HOME.
13. -S: La opción -S (stdin) hace que sudo lea la contraseña desde la entrada estándar en lugar del dispositivo terminal.
14. -a: La opción -a (tipo de autenticación) hace que sudo use el tipo de autenticación especificado al validar al usuario, según lo permite /etc/login.conf. El administrador del sistema puede especificar una lista de métodos de autenticación específicos de sudo agregando una entrada «auth-sudo» en /etc/login.conf.
15. –: El indicador — indica que sudo debe dejar de procesar los argumentos de la línea de comandos. Es más útil junto con el indicador -s.
Variables de entorno
Estas variables de entorno son utilizadas por sudo
Etiqueta | Descripción |
---|---|
EDITOR |
Editor predeterminado para usar en modo -e (sudoedit) si VISUAL no está configurado |
HOGAR |
En el modo -s o -H (o si sudo se configuró con la opción –enable-shell-sets-home), establecer en homedir del usuario de destino
|
SENDERO |
Establézcalo en un valor sensato si la opción sudoers de ruta segura está configurada .
|
CAPARAZÓN |
Se usa para determinar que el shell se ejecute con la opción -s
|
SUDO_PROMPT |
Se utiliza como solicitud de contraseña predeterminada
|
SUDO_COMMAND |
Establecer en el comando ejecutado por sudo
|
SUDO_USUARIO |
Establecido en el inicio de sesión del usuario que invocó sudo
|
SUDO_UID |
Establecido en el uid del usuario que invocó sudo
|
SUDO_GID |
Establecido en el gid del usuario que invocó sudo
|
SUDO_PS1 |
Si se establece, PS1 se establecerá en su valor
|
USUARIO |
Establecido para el usuario de destino (raíz a menos que se especifique la opción -u )
|
VISUAL |
Editor predeterminado para usar en modo -e (sudoedit) |