Cómo usar el comando Sudo en Linux

27 feb 2021 3 min di lettura
Cómo usar el comando Sudo en Linux
Indice dei contenuti

Introducción

El comando sudo le permite ejecutar programas como otro usuario, por defecto el usuario root. Si pasa mucho tiempo en la línea de comandos, sudo es uno de los comandos que utilizará con bastante frecuencia.

Usar sudo en lugar de acceder como root es más seguro porque puede otorgar privilegios administrativos limitados a usuarios individuales sin conocer la contraseña de root.

En este tutorial, explicaremos cómo usar el comando sudo

Instalar Sudo

El paquete sudo está preinstalado en la mayoría de las distribuciones de Linux.

Para verificar si el paquete sudo está instalado en su sistema, abra la consola, escriba sudo y presione Enter. Si ha instalado sudo, el sistema mostrará un breve mensaje de ayuda; de lo contrario, verá algo como el sudo command not found.

Si sudo no está instalado, puede instalarlo fácilmente usando el administrador de paquetes de su distribución.

Instalar Sudo en Ubuntu y Debian

apt install sudo

Instalar Sudo en CentOS y Fedora

yum install sudo

Agregar un usuario al grupo Sudo

Por defecto en la mayoría de las distribuciones de Linux, otorgar acceso a sudo es tan simple como agregar el usuario al grupo sudo definido en el archivo sudoers Los miembros de este grupo podrán ejecutar cualquier comando como root. El nombre del grupo puede diferir de una distribución a otra.

En distribuciones basadas en RedHat como CentOS y Fedora, el nombre del grupo sudo es wheel. Para agregar el usuario a la ejecución grupal:

usermod -aG wheel username

En Debian, Ubuntu y sus derivados, los miembros de la sudo grupo tienen acceso sudo:

usermod -aG sudo username

La cuenta de usuario raíz en Ubuntu está deshabilitada de forma predeterminada por razones de seguridad y se anima a los usuarios a realizar tareas administrativas del sistema utilizando sudo. El usuario inicial creado por el instalador de Ubuntu ya es miembro del grupo sudo, por lo que si está ejecutando Ubuntu, es probable que el usuario al que ha iniciado sesión ya tenga privilegios de sudo.

Si desea permitir que un usuario específico ejecute solo ciertos programas como sudo, en lugar de agregar al usuario al grupo sudo, agregue los usuarios al archivo sudoers

Por ejemplo, para permitir que el noviello ejecute solo el mkdir como sudo, escriba:

sudo visudo

y agregue la siguiente línea:

noviello ALL=/bin/mkdir

En la mayoría de los sistemas, el visudo abre el /etc/sudoers con el editor de texto vim. Si es nuevo en vim, consulte nuestro artículo sobre cómo guardar un archivo y cerrar el editor de vim.

También puede permitir que los usuarios ejecuten comandos sudo sin ingresar la contraseña:

noviello ALL=(ALL) NOPASSWD: ALL

Cómo usar Sudo

La sintaxis del sudo es la siguiente:

sudo OPTION.. COMMAND

El comando sudo tiene muchas opciones que controlan su comportamiento, pero generalmente sudo se usa en su forma más simple, sin opciones.

Para usar sudo, simplemente agregue el comando de prefijo con sudo:

sudo command

¿Dónde está el command el que desea usar sudo?

Sudo leerá el /etc/sudoers y comprobará si el usuario invocado está autorizado con acceso a sudo. La primera vez que use sudo en una sesión, se le pedirá la contraseña del usuario y el comando se ejecutará como root.

Por ejemplo, para listar todos los archivos en el /root debe usar:

sudo ls /root
[sudo] password for noviello:....bashrc.cache.config.local.profile

Tiempo de espera de contraseña

De forma predeterminada, sudo le pedirá que ingrese su contraseña nuevamente después de cinco minutos de inactividad de sudo. Puede cambiar el tiempo de espera predeterminado editando los sudoers. Abra el archivo con visudo:

sudo visudo

Establezca el tiempo de espera predeterminado agregando la siguiente línea, donde 10 es el tiempo de espera especificado en minutos:

Defaults timestamp_timeout=10

Si desea cambiar la marca de tiempo solo para un usuario específico, agregue la siguiente línea, donde nombre_usuario es el usuario en cuestión.

Defaults:user_name timestamp_timeout=10

Ejecute un comando como un usuario que no sea root

Generalmente sudo solo se usa para otorgar permisos de root a un usuario normal. De hecho, puede usar sudo para ejecutar un comando como cualquier usuario.

La -u permite ejecutar un comando como un usuario específico.

En el siguiente ejemplo usamos sudo para ejecutar el whoami como usuario "piero":

sudo -u piero whoami

El whoami imprimirá el nombre del usuario que ejecuta el comando:

piero

Cómo redirigir con Sudo

Si intenta redirigir la salida de un comando a un archivo donde el usuario no tiene permisos de escritura, se mostrará el error "Permiso denegado".

sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied

Esto sucede porque la > se realiza bajo el usuario que inició sesión, no el usuario especificado por sudo. La redirección ocurre antes de que se invoque el comando sudo

Una solución es invocar un nuevo shell como root usando sudo sh -c:

sudo sh -c 'echo "test" > /root/file.txt'

Otra opción es conectar la salida del usuario normal al tee como se muestra a continuación:

echo "test" | sudo tee /root/file.txt

Conclusión

Aprendió a usar el sudo y a crear nuevos usuarios con privilegios de sudo.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.