Está en la página 1de 3

SUDO

En GNU/Linux (y Unix en general), hay un super-usuario llamado root. El equivalente en Windows


para root es el Administrador.
Por defecto, la contraseña del root está bloqueada en Ubuntu. Esto significa que no podrás hacer login
como root o usar el comando su. En lugar de ello, el instalador configurará el comando sudo para
permitir que el usuario creado durante la instalación pueda ejecutar todos los comandos de
administración.
Instalando SUDO
El paquete sudo está pre-instalado en la mayoría de las distribuciones GNU/Linux, pero no en todas.
En algunas, aunque sudo esté instalado, no te reconocerá.
Para comprobar si el paquete sudo está instalado en tu sistema, abre la consola, escribe sudo y pulsa
Enter. Si tienes sudo instalado, el sistema mostrará un breve mensaje de ayuda, de lo contrario verás
algo como sudo command not found. Si sudo no está instalado, puedes instalarlo fácilmente usando el
gestor de paquetes de tu distribución.

Adición de usuarios a los usuarios de Sudoers


Por defecto en la mayoría de las distribuciones GNU/Linux, la concesión de acceso a sudo es tan
simple como añadir el usuario al grupo sudo definido en el archivo sudoers en /etc. Los miembros de
este grupo podrán ejecutar cualquier comando como root. El nombre del grupo puede variar de una
distribución a otra.
En las distribuciones basadas en RedHat como CentOS y Fedora, el nombre del grupo sudo es wheel.
Para añadir el usuario a la ejecución del grupo:
usermod -aG wheel Pedro

En Debian, Ubuntu y sus derivadas, los miembros del grupo sudo tienen acceso a sudo:
usermod -aG sudo Pedro

La cuenta de usuario root en Ubuntu está desactivada por defecto 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ás ejecutando Ubuntu, es muy
probable que el usuario con el que hayas iniciado sesión ya tenga privilegios de sudo.
Si desea permitir que un usuario específico ejecute sólo ciertos programas como sudo, en lugar de
añadir el usuario al grupo sudo, añade los usuarios al archivo sudoers.
Por ejemplo, para permitir que el usuario alumno ejecute sólo el comando mkdir como sudo, escribe:
sudo visudo

y añade la siguiente línea:


alumno ALL=/bin/mkdir
En la mayoría de los sistemas, el comando visudo abre el archivo /etc/sudoers con el editor de texto
vim.
También puedes permitir a los usuarios ejecutar comandos sudo sin autenticarse:
alumno ALL=(ALL) NOPASSWD: ALL

Cómo usar sudo


sudo opcion.. comando

Para usar sudo, simplemente prefija el comando con sudo:


sudo comando

Donde comando es el comando para el que quieres usar sudo.


Sudo leerá el fichero /etc/sudoers y comprobará si al usuario que invoca se le concede acceso. La
primera vez que utilices sudo en una sesión, se te pedirá que introduzcas la contraseña de usuario y el
comando se ejecutará como root.
Por ejemplo, para listar todos los archivos en el directorio /root se usaría:
sudo ls /root

Tiempo de espera de la contraseña


Por defecto, sudo te pedirá que vuelvas a introducir tu contraseña después de 5 minutos de inactividad
de sudo. Puedes cambiar el tiempo de espera predeterminado editando el archivo sudoers.
Establece el tiempo de espera predeterminado añadiendo la siguiente línea, donde 15 es el tiempo de
espera especificado en minutos:
Defaults timestamp_timeout=15

Si deseas cambiar el tiempo sólo para un usuario específico, añade la siguiente línea, donde user_name
es el usuario en cuestión.
Defaults:user_name timestamp_timeout=15

Ejecutar un comando como un usuario distinto de root


Existe una percepción errónea de que sudo se utiliza sólo para proporcionar permisos de root a un
usuario normal. En realidad, puedes usar sudo para ejecutar un comando como cualquier otro usuario.
La opción -u te permite ejecutar un comando como un usuario específico.
En el siguiente ejemplo estamos usando sudo para ejecutar el comando whoami como usuario alumno:
sudo -u alumno whoami

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


Alumno
Cómo redirigir con sudo
Si intentas redirigir la salida de un comando a un archivo que tu usuario no tiene permisos de escritura,
obtendrás el error Permiso denegado.
sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permiso denegado

Esto ocurre porque la re-dirección > de la salida se realiza bajo el usuario con el que estás conectado,
no bajo el usuario especificado por sudo. La re-dirección ocurre antes de que se invoque el comando.
Una solución es invocar una nueva 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 comando tee como se muestra a
continuación:
echo "test" | sudo tee /root/file.txt

También podría gustarte