test

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

Usar sudo en lugar de iniciar sesión como root es más seguro porque puede conceder privilegios administrativos limitados a usuarios individuales sin que éstos conozcan la contraseña de root.

En este tutorial, explicaré cómo usar el comando sudo.

Instalando SUDO

El paquete sudo está preinstalado en la mayoría de las distribuciones GNU/Linux, pero no en todas. En algunas, aunque sudo esté instalado, no te reconocerá. Lo veremos todo.

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:

En la mayoría de los sistemas, el comando visudo abre el archivo /etc/sudoers con el editor de texto vim. Si no tienes experiencia con vim, usa nano.

También puedes permitir a los usuarios ejecutar comandos sudo sin autenticarse:

Cómo usar sudo

sudo Opción.. Comando

El comando sudo tiene muchas opciones que controlan su comportamiento pero normalmente se usa en su forma más básica, sin ninguna opción.

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 accseso. 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 cinco minutos de inactividad de sudo. Puedes cambiar el tiempo de espera predeterminado editando el archivo sudoers. Abre el archivo con nano:

nano

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

timestamp

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

Copy

bash: /root/file.txt: Permiso denegado

Esto ocurre porque la redirección “>” de la salida se realiza bajo el usuario con el que estás conectado, no bajo el usuario especificado por sudo. La redirecció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'

Copy

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

Sudo es un comando muy potente, pero a la vez es algo con lo que hay que tener cuidado.

 

Fuente: maslinux

¿Quién está en línea?

Hay 15554 invitados y ningún miembro en línea