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 usará con bastante frecuencia.
Usar sudo en lugar de iniciar sesión como root es más seguro porque puede otorgar privilegios administrativos limitados a usuarios individuales sin que conozcan la contraseña de root.
En este tutorial, explicaremos cómo usar el sudo
comando.
Instalando Sudo (comando sudo no encontrado) #
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 su consola, escriba sudo
y presione Enter
. Si ha instalado Sudo en el sistema, aparecerá un breve mensaje de ayuda. De lo contrario, verá algo como 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 usuario a Sudoers #
De forma predeterminada, 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 sudoers
expediente. 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 al grupo, ejecute:
usermod -aG wheel username
En Debian, Ubuntu y sus derivados, miembros del grupo sudo
se les otorga 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 recomienda a los usuarios que realicen tareas administrativas del sistema mediante 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 con el que inició sesión ya tenga privilegios de sudo.
Para permitir que un usuario específico ejecute solo ciertos programas como sudo, en lugar de agregar al usuario al grupo sudo, agregue los usuarios a los sudoers
archivo.
Por ejemplo, para permitir que el usuario linuxize
para ejecutar solo el mkdir
comando como sudo, escriba:
sudo visudo
y agregue la siguiente línea:
linuxize ALL=/bin/mkdir
En la mayoría de los sistemas, el visudo
El comando abre /etc/sudoers
archivo con el editor de texto vim. Si no tiene experiencia con vim, consulte nuestro artículo sobre cómo guardar un archivo y salir del editor de vim.
También puede permitir que los usuarios ejecuten comandos sudo sin ingresar la contraseña:
linuxize ALL=(ALL) NOPASSWD: ALL
Cómo usar Sudo #
La sintaxis de sudo
El comando es el siguiente:
sudo OPTION.. COMMAND
El sudo
El comando tiene muchas opciones que controlan su comportamiento, pero generalmente se usa en su forma más básica, sin ninguna opción.
Para usar sudo, simplemente prefije el comando con sudo
:
sudo command
Donde command
es el comando para el que desea utilizar sudo.
Sudo leerá el /etc/sudoers
file y verifique si el usuario que invoca tiene sudo evaluación. La primera vez que use sudo en una sesión, se le pedirá que ingrese la contraseña de usuario y el comando se ejecutará como root.
Por ejemplo, para enumerar todos los archivos en /root
directorio que usaría:
sudo ls /root
[sudo] password for linuxize:
. .. .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 sudoers
expediente. Abra el archivo con visudo
:
sudo visudo
Establezca el tiempo de espera predeterminado agregando la línea a continuación, 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
Ejecutar un comando como un usuario que no sea raíz #
Existe una percepción errónea de que sudo
se usa solo para proporcionar permisos de raíz a un usuario normal. En realidad, puedes usar sudo
para ejecutar un comando como cualquier usuario.
El -u
La opción le permite ejecutar un comando como un usuario específico.
En el siguiente ejemplo, estamos usando sudo
para ejecutar el whoami
comando como usuario “richard”:
sudo -u richard whoami
El whoami
El comando imprimirá el nombre del usuario que ejecuta el comando:
richard
Cómo redirigir con Sudo #
Si intenta redirigir la salida de un comando a un archivo en el que su usuario no tiene permisos de escritura, obtendrá un error de "Permiso denegado".
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
Esto sucede porque la redirección “>
” de la salida se realiza con el usuario con el que inició sesión, no con el usuario especificado con sudo. La redirección ocurre antes de sudo
se invoca el comando.
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 canalizar la salida como un usuario regular al tee
comando, como se muestra a continuación:
echo "test" | sudo tee /root/file.txt
Conclusión #
Has aprendido a usar el sudo
comando y cómo crear nuevos usuarios con privilegios sudo.
Si tiene alguna pregunta, no dude en dejar un comentario.