Objetivo:
Aprender a diferenciar y utilizar los comandos sudo y su para ejecutar tareas de administración y cambiar de usuario en Linux, comprender el papel del grupo sudo y del fichero /etc/sudoers, y conocer comandos de identificación de sesión como id, logname y who.
Escenario:
- Herramientas: Terminal de Linux y un sistema Debian o basado en Debian.
- Conceptos clave: superusuario, root, sudo, sudoers, grupo sudo, cambio de usuario, entorno de sesión, autenticación temporal.
Instrucciones:
Fase 1: El comando sudo
- Consulta la ayuda del comando
sudo: - Ejecuta un comando cualquiera con
sudo(por ejemplo, listar el contenido de un directorio protegido) e introduce tu contraseña cuando se solicite. - Ejecuta inmediatamente después otro comando con
sudoy observa si el sistema vuelve a pedirte la contraseña o no.
sudo -h
Fase 2: El grupo sudo y el fichero /etc/sudoers
- Consulta el contenido del fichero que gestiona los permisos de administración:
- Localiza la línea que hace referencia al grupo
sudoy observa el símbolo de porcentaje que precede a su nombre. - Comprueba si tu usuario pertenece a ese grupo consultando el fichero de grupos:
- Comprueba que, al pertenecer a dicho grupo, puedes ejecutar comandos administrativos como leer el fichero de contraseñas del sistema:
sudo cat /etc/sudoers
cat /etc/group | grep sudo
sudo cat /etc/shadow
Fase 3: Identificación de la sesión actual
- Consulta tu identidad actual, tu UID y los grupos a los que perteneces:
- Consulta el nombre del usuario con el que iniciaste sesión originalmente:
- Consulta qué usuarios tienen actualmente una sesión abierta en el sistema:
id
logname
who
Fase 4: Cambio de usuario con su -
- Asigna primero una contraseña a otro usuario existente en tu sistema, usando privilegios de administrador:
- Cambia completamente a ese usuario, creando una nueva sesión de login con su propio entorno:
- Comprueba tu nueva identidad y tu entorno con:
- Sal de esa sesión y vuelve a tu usuario original:
sudo passwd nombre_usuario
su - nombre_usuario
id logname
exit
Fase 5: Diferencia entre su nombre_usuario y su -, y el acceso como root
- Cambia de nuevo a ese mismo usuario, pero esta vez sin el guión:
- Comprueba con
idylognamesi el entorno y el directorio de trabajo han cambiado igual que en la fase anterior, o si se conservan los de tu usuario original. - Sal de nuevo con
exit. - Ejecuta el comando
susin ningún usuario indicado y comprueba que el sistema te pide la contraseña de administración del sistema (la deroot) en lugar de tu propia contraseña: - Sal de nuevo con
exit.
su nombre_usuario
su
Preguntas de reflexión:
- ¿Por qué no se recomienda utilizar directamente el usuario root para el trabajo diario en Linux?
- ¿Qué usuario asume por defecto el comando
sudosi no se le indica ninguno con la opción correspondiente? - Durante cuánto tiempo aproximadamente permanece activa la autorización de
sudodespués de introducir la contraseña por primera vez? - ¿Qué indica el símbolo de porcentaje (
%) delante de un nombre en el fichero/etc/sudoers? - ¿Cómo puede un usuario obtener permisos administrativos con
sudosin aparecer directamente en el fichero/etc/sudoers? - ¿Qué diferencia existe entre el comando
idy el comandologname? - ¿Qué diferencia existe entre ejecutar
su usuarioysu - usuario? - ¿Qué ocurre si se ejecuta
susin especificar ningún nombre de usuario? - ¿Qué contraseña solicita el sistema al ejecutar
susin usuario, y en qué se diferencia de la contraseña que pidesudo? - ¿Por qué es importante el orden en que se eliminan usuarios y grupos, según se observó al comprobar el directorio home tras convertirse en otro usuario?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Por qué no usar directamente root?
Porque el usuario root tiene todos los permisos sobre el sistema, y trabajar habitualmente con él aumenta considerablemente el riesgo de cometer errores graves o irreversibles sobre el sistema operativo.
2. ¿Qué usuario asume sudo por defecto?
Si no se le indica ningún usuario, sudo ejecuta el comando como si fuera el usuario root.
3. ¿Cuánto dura la autorización de sudo?
Por defecto, en la mayoría de las distribuciones, la autorización dura unos 15 minutos desde que se introduce la contraseña, aunque este valor puede configurarse a nivel de administración.
4. ¿Qué indica el símbolo % en /etc/sudoers?
Indica que la línea hace referencia a un grupo y no a un usuario individual; todos los usuarios que pertenezcan a ese grupo heredan el permiso indicado en esa línea.
5. ¿Cómo obtener permisos de sudo sin estar en /etc/sudoers directamente?
Perteneciendo al grupo sudo, ya que dicho grupo suele estar autorizado en /etc/sudoers mediante una línea con el símbolo de porcentaje, de modo que cualquier miembro del grupo obtiene esos permisos sin necesidad de aparecer individualmente en el fichero.
6. ¿Diferencia entre id y logname?
id muestra la identidad efectiva actual (UID, GID y grupos), que puede cambiar si nos hemos convertido en otro usuario. logname muestra siempre el nombre del usuario con el que se inició sesión originalmente en el sistema, aunque nos hayamos convertido en otro usuario mientras tanto.
7. ¿Diferencia entre su usuario y su - usuario?
su - usuario crea una sesión de login completamente nueva, con el entorno y las variables propias de ese usuario. su usuario, sin el guión, cambia de usuario pero conserva el entorno y las variables del usuario desde el que se ejecutó el comando.
8. ¿Qué ocurre si se ejecuta su sin usuario?
El sistema entiende que se quiere acceder como el usuario root, por lo que solicita la contraseña de administración del sistema.
9. ¿Qué contraseña pide su sin usuario?
Pide la contraseña propia del usuario root, que suele ser distinta de la contraseña del usuario habitual. En cambio, sudo pide la contraseña del propio usuario que ejecuta el comando, siempre que ese usuario tenga permisos de administración.
10. ¿Por qué importa el orden al eliminar usuarios y grupos?
Porque si se elimina el grupo de un usuario antes que el propio usuario, o se elimina el directorio home de otro modo, ese usuario puede quedar con un grupo o un directorio home inexistentes, provocando avisos o comportamientos inesperados al iniciar sesión o al convertirse en ese usuario con su.
Ficha de Laboratorio: sudo, su y Gestión de Sesiones de Usuario en Linux
Instrucciones de entrega:
- Rellena los campos y responde en este formulario desde tu navegador.
- Pulsa el botón de imprimir al final de la página.
- Selecciona "Guardar como PDF" en el diálogo de impresión.
- Entrega el archivo PDF en el aula virtual.
Alumno/a: Fecha:
Grupo:
Completa la ficha realizando las siguientes actividades:
- Ejecuta un comando administrativo con sudo dos veces seguidas.
Escribe el comando utilizado:
Indica si el sistema te pidió la contraseña la segunda vez:
Explica por qué ha ocurrido esto:
- Localiza en /etc/sudoers la línea referida al grupo sudo y comprueba si perteneces a dicho grupo.
Escribe el comando utilizado para comprobar tu pertenencia al grupo:
Copia aquí la salida obtenida:
Explica qué significa el símbolo % delante del nombre del grupo en /etc/sudoers:
- Consulta tu identidad actual con id, logname y who.
Copia aquí las salidas obtenidas de los tres comandos:
Explica qué información aporta cada uno de los tres comandos:
- Cámbiate a otro usuario con su - y comprueba tu nueva identidad.
Escribe el comando utilizado:
Copia aquí la salida de id y logname tras el cambio:
Explica qué diferencia observas entre lo que muestra id y lo que muestra logname:
- Repite el cambio de usuario esta vez sin el guión (su usuario) y compara.
Escribe el comando utilizado:
Indica si el entorno o el directorio de trabajo cambiaron respecto a la fase anterior:
Explica con tus palabras la diferencia entre las dos formas de usar su:
- Ejecuta su sin especificar usuario y observa qué contraseña te pide.
Indica qué contraseña te ha solicitado el sistema:
Explica la diferencia con la contraseña que pide sudo: