Administración de Permisos y Usuarios en Linux: Ejercicios Prácticos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 10,66 KB
Creación y Permisos de Archivo para el Grupo DIRECCION
Crea dentro del directorio "compartido_con_todos" un archivo llamado "contactos.txt", que contendrá los datos personales de los profesores. Otorga permisos a este archivo para que solo los usuarios pertenecientes al grupo DIRECCION puedan modificarlo.
Pasos y Comandos:
- Acceder como
jefeestudios(si no lo estás):su jefeestudios - Crear el archivo
contactos.txt:touch /home/jefeestudios/compartido_con_todos/contactos.txt - Añadir contenido al archivo:
echo "Sergio González Rubio, email: [email protected]" > /home/jefeestudios/compartido_con_todos/contactos.txt - Establecer permisos (lectura/escritura para propietario y grupo, sin permisos para otros):
chmod 660 /home/jefeestudios/compartido_con_todos/contactos.txtNota: Para que el grupo
DIRECCIONpueda modificarlo, el archivo debe pertenecer a este grupo o el usuariojefeestudiosdebe ser miembro deDIRECCIONy elumaskpermitirlo, o se debe cambiar el grupo del archivo conchgrp DIRECCION /ruta/al/archivo.
Archivo de Pendientes para Jefe de Estudios con Acceso Restringido
Crea dentro del directorio "compartido_con_todos" un archivo llamado "pendientejefeestudios.txt". Configura los permisos para que solo el usuario jefeestudios pueda modificarlo, y el grupo DIRECCION pueda leerlo. Otros usuarios no deben tener ningún tipo de acceso.
Pasos y Comandos:
- Acceder como
jefeestudios(si no lo estás):su jefeestudios - Crear el archivo
pendientejefeestudios.txt:touch /home/jefeestudios/compartido_con_todos/pendientejefeestudios.txt - Establecer permisos (640):
chmod 640 /home/jefeestudios/compartido_con_todos/pendientejefeestudios.txtExplicación:
640significa:- Propietario (
jefeestudios): Lectura y escritura (6). - Grupo (
DIRECCION): Solo lectura (4). - Otros: Sin permisos (
0).
- Propietario (
Archivo Personal de Jefe de Estudios con Permisos Exclusivos
Crea dentro del directorio "compartido_con_todos" un archivo llamado "personaljefeestudios.txt". Asigna permisos para que solo el usuario jefeestudios pueda modificarlo. Ningún otro usuario debe tener acceso de lectura o escritura.
Pasos y Comandos:
- Acceder como
jefeestudios(si no lo estás):su jefeestudios - Crear el archivo
personaljefeestudios.txt:touch /home/jefeestudios/compartido_con_todos/personaljefeestudios.txt - Establecer permisos (600):
chmod 600 /home/jefeestudios/compartido_con_todos/personaljefeestudios.txtExplicación:
600significa:- Propietario (
jefeestudios): Lectura y escritura (6). - Grupo: Sin permisos (
0). - Otros: Sin permisos (
0).
- Propietario (
Permisos de Directorio vs. Permisos de Archivo: El Rol de la Ejecución
Pregunta: Si un usuario tiene permiso de lectura sobre un archivo, pero el directorio que lo contiene no le otorga permiso de lectura, ¿podrá leer el archivo? Realicemos la prueba.
Escenario 1: Directorio sin Permiso de Lectura (u-r)
Como usuario jefeestudios, eliminamos el permiso de lectura para el propietario (nosotros mismos) en el directorio "compartido_con_todos":
chmod u-r compartido_con_todos/Intento de Lectura Directa del Archivo:
Si intentamos leer el archivo contactos.txt usando su ruta absoluta:
cat /home/jefeestudios/compartido_con_todos/contactos.txtResultado: El contenido del archivo se mostrará.
Intento de Acceso al Directorio y Listado:
Sin embargo, si intentamos acceder al directorio y listar su contenido:
cd compartido_con_todos/Luego, al ejecutar ls:
jefeestudios@omega:~$ cd compartido_con_todos/
jefeestudios@omega:~/compartido_con_todos$ ls
ls: no se puede abrir el directorio .: Permiso denegadoExplicación: No podemos listar el contenido del directorio porque no tenemos permiso de lectura sobre él. Sin embargo, pudimos leer el archivo con la ruta absoluta porque el permiso de ejecución (x) en un directorio es lo que permite acceder a él o atravesarlo (usar una ruta absoluta que lo incluya). Es decir, el permiso de ejecución nos permite hacer cd compartido_con_todos (aunque no listar su contenido).
Escenario 2: Directorio sin Permiso de Ejecución (u-x)
Ahora, eliminamos el permiso de ejecución para el propietario en el directorio "compartido_con_todos":
chmod u-x compartido_con_todos/Intento de Lectura Directa del Archivo:
Si intentamos leer el archivo contactos.txt con su ruta absoluta:
cat /home/jefeestudios/compartido_con_todos/contactos.txtResultado: Se producirá un error de permisos y no podremos acceder a su contenido.
Conclusión:
El permiso de ejecución (x) en un directorio es fundamental, ya que es el que permite entrar en él y acceder a sus contenidos (si se conocen las rutas absolutas), incluso si no se tiene permiso de lectura para listar dichos contenidos.
Establecer Contraseña de un Usuario a partir de Otro (Método Avanzado)
Tarea: Crear un nuevo usuario y asignarle la misma contraseña (hash) de otro usuario existente cuya contraseña ya conocemos. Explica el procedimiento.
Procedimiento (como usuario root):
- Editar el archivo
/etc/shadow: Este archivo contiene los hashes de las contraseñas de los usuarios. Se debe acceder con privilegios deroot. - Copiar el hash de la contraseña: Localiza la línea correspondiente al usuario cuya contraseña deseas copiar (por ejemplo,
administrador). Copia la sección del hash de la contraseña (la cadena de caracteres entre el primer y segundo colon, excluyendo el nombre de usuario y otros campos). - Asignar el hash al nuevo usuario: Pega el hash copiado en la línea correspondiente al nuevo usuario (por ejemplo,
administrador2) en el mismo archivo/etc/shadow. - Guardar y salir: Guarda los cambios en
/etc/shadow. - Verificar: Intenta iniciar sesión con el nuevo usuario (
administrador2) utilizando la contraseña del usuario original (administrador).
# Ejemplo de cómo se vería en /etc/shadow (simplificado)
# administrador:$6$salt$HASH_DEL_ADMINISTRADOR:18700:0:99999:7:::
# administrador2:!:18700:0:99999:7:::
# Después de copiar el hash:
# administrador:$6$salt$HASH_DEL_ADMINISTRADOR:18700:0:99999:7:::
# administrador2:$6$salt$HASH_DEL_ADMINISTRADOR:18700:0:99999:7:::Advertencia: Este método manipula directamente archivos críticos del sistema y debe usarse con extrema precaución y solo con fines educativos o de administración legítima, ya que implica un riesgo de seguridad si se usa indebidamente.
Cambio de Contraseña para un Usuario Específico
Tarea: Cambiar la contraseña del usuario xisca.
Comando:
passwd xiscaNota: Este comando solicitará la nueva contraseña dos veces para confirmación. Si se ejecuta como root, se puede cambiar la contraseña de cualquier usuario. Si se ejecuta como un usuario normal, solo se puede cambiar la propia contraseña.
Reubicación del Directorio Personal (Home) de un Usuario
Tarea: Crear un nuevo directorio personal para el usuario xisca en /Users/xisca, asegurando los permisos correctos. Luego, modificar el directorio de trabajo de xisca de /home/xisca a /Users/xisca utilizando el comando usermod, copiando previamente todos los datos del directorio original al nuevo para garantizar la funcionalidad.
Pasos y Comandos (ejecutar como root o con sudo):
- Acceder como
root(o usarsudo):su - - Crear el directorio base
/Users(si no existe):mkdir /Users - Crear el nuevo directorio personal para
xisca:mkdir /Users/xisca - Copiar los datos del directorio personal antiguo al nuevo:
cp -ax /home/xisca/. /Users/xisca/.Explicación:
-a: Modo archivo (preserva permisos, propietario, marcas de tiempo, etc.).-x: Permanece en el sistema de archivos actual (evita copiar directorios montados)..: Incluye archivos ocultos.
- Establecer el propietario y grupo correctos para el nuevo directorio:
chown -R xisca:PRIMARIA /Users/xisca/Nota: Se asume que
PRIMARIAes el grupo principal dexisca. Ajusta si es diferente. - Modificar el directorio personal del usuario
xisca:usermod -d /Users/xisca/ xiscaExplicación: El comando
usermod -dcambia el directorio personal de un usuario. Por defecto,usermodno mueve el contenido del directorio antiguo, por eso es crucial el paso decp -axprevio.