Objetivo
El objetivo de esta práctica ser capaz de modificar los permisos de acceso a los ficheros y a los directorios con el fin de asegurar la confidencialidad de los datos almacenados en el sistema de ficheros GNU Linux.
Duración: 10 h.
Entrega y presentación
La entrega de esta práctica debe ser un documento PDF con un nombre en el siguiente formato “<Apellidos>_<Nombre>_P<NúmeroDeLaPrácticaConDosDígitos>.pdf”. Por ejemplo, en mi caso el nombre del documento PDF sería “RuizGarcía_Marcos_P<NúmeroDeLaPrácticaConDosDígitos>.pdf”.
Asegúrate de que el documento PDF cumple con los siguientes parámetros:
- Debe contener una portada con título, nombre de la asignatura, curso, autor y fecha de realización.
- Debe tener un índice actualizado con hiperenlaces a las diferentes secciones y el número de página donde están.
- Debe tener cada página numerada.
- Cada actividad debe estar numerada.
- Cada actividad debe tener el enunciado en negrita y la respuesta en texto normal.
- Cada imagen debe tener un pie de foto la cual tenga el siguiente formato: “Figura <número>: <BreveDescripciónDeLaFigura>”.
- El documento no debe contener faltas ortográficas.
- Los comandos y ficheros de configuración que hayas utilizado deben quedar reflejados en el PDF de la entrega en texto para que permitirte copiar y pegar el día del examen todos los comandos de una manera rápida.
- Los comandos y documentos de configuración que se muestren en el documento PDF deben tener un estilo de letra monospace como puede ser el tipo de letra Consolas o Courier New. Por ejemplo:
$ sudo apt install neofetch
.
Actividades
A continuación se listan las actividades que se deben realizar para esta práctica.
Preguntas previas
- Un usuario ordinario se caracteriza por:
- Un UID igual a 0.
- Un grupo principal users.
- Un UID generalmente superior o igual a 500.
- Una contraseña simple.
- ¿Qué significan los permisos r, w y x asociados a un archivo ordinario?
- ¿Qué significan los permisos r, w y x asociados a un directorio?
- Convertir los permisos siguientes a notación octal:
rwxr-xr--
- Convertir los permisos siguientes a notación simbólica: 640
- ¿Qué permiso autoriza la ejecución de un programa bajo la identidad del propietario del archivo en lugar de la identidad del usuario que lo ejecuta?
- x.
- SUID.
- SGID.
- Sticky bit.
Cuentas de usuario y grupos
Duración estimada: 5 minutos
- Conéctese a la segunda consola virtual texto como el usuario “<tuNombreDeUsuario>”, otra con “<tuNombreDeUsuario>2” y otra con el usuario “root”.
- Visualice su nombre de conexión y su UID. Proceda del mismo modo para las cuentas “<tuNombreDeUsuario>2” y root. Utilice el comando
id
. - Visualice los grupos a los que pertenece. Proceda del mismo modo para las cuentas “<tuNombreDeUsuario>2” y root. Utilice el comando
groups
.
Permisos por defecto
Duración estimada: 15 minutos
- En su directorio personal, cree un directorio con el nombre capítulo5. Utilice el comando
mkdir
. - Muestra los permisos del directorio capítulo5. Vaya a su directorio capítulo5. Utilice el comando
ls
y el comandocd
. - Visualice la máscara que define los permisos por defecto en la creación de ficheros. ¿Qué significa el valor visualizado? Utilice el comando
umask
. - Cree un fichero vacío fic1 y un directorio dir1. Utilice los comandos
touch
ymkdir
. - ¿Los permisos del fichero fic1 y del directorio dir1 corresponden al valor de la máscara visualizada anteriormente?
- Modifique su máscara que define los permisos por defecto al valor 27. ¿Qué significa?
- Cree un fichero vacío fic2 y un directorio dir2.
- Verifique que los permisos del fichero fic2 y del directorio dir2 corresponden al nuevo valor de la máscara. ¿Los permisos del fichero fic1 y del directorio dir1 han cambiado?
Permisos de los directorios
Duración estimada: 15 minutos
- Dé los permisos r, w y x a otros usuarios al directorio dir1 utilizando la notación simbólica. Utilice el comando
chmod
. - Dé los mismos permisos que al directorio dir1 a dir2 utilizando la notación octal. Utilice el comando
chmod
. - Cree el directorio /tmp/<tuNombreDeUsuario>. Dele también los mismos permisos que a los directorios dir1 y dir2 precedentes.
- Cree el fichero secret en el directorio /tmp/<tuNombreDeUsuario>.
- Modifique los permisos del fichero secret dejando únicamente el permiso de lectura al usuario <tuNombreDeUsuario>.
- Conéctese a otro emulador de consola como usuario <tuNombreDeUsuario>2.
- Como usuario <tuNombreDeUsuario>2, ¿puede leer el fichero secret de <tuNombreDeUsuario>?
- Siempre como usuario <tuNombreDeUsuario>2, puede suprimir el fichero secret de <tuNombreDeUsuario>? ¿Por qué?
Permisos y vínculos
Duración estimada: 20 minutos
- Vuelva a la identidad del usuario <tuNombreDeUsuario> y vuelva al directorio /home/<tuNombreDeUsuario>/capítulo5.
- Establezca su máscara al valor 002.
- Cree el directorio docperso y asígnele los permisos 700.
- Vaya al directorio docperso, cree los ficheros fica, ficb, ficc y ficd. Luego liste de forma detallada el contenido del directorio.
- Cree un vínculo duro (“hard link”) /tmp/vínculofica hacia el fichero fica, y un vínculo simbólico (“soft link”) /tmp/vínculoficb hacia el fichero ficb. Utilice el comando
ln
. - Vuelva a la identidad del usuario <tuNombreDeUsuario>2 en la tercera consola virtual (tty3) e intente listar el contenido del directorio /home/<tuNombreDeUsuario>/capítulo5/docperso. ¿Es posible y por qué?
- Visualice el contenido del fichero /tmp/vínculofica. ¿Es posible y por qué?
- Visualice el contenido del fichero /tmp/vínculoficb. ¿Es posible y por qué?
SUID, SGID y Sticky Bit
Duración estimada: 20 minutos
- Vuelva a la identidad del usuario <tuNombreDeUsuario>.
- ¿Cuáles son los permisos del comando
passwd
y del fichero /etc/shadow? ¿Por qué son así? El fichero correspondiente al comandopasswd
se encuentra generalmente en el directorio /usr/bin. - Copie el comando id en /tmp. El fichero correspondiente al comando
id
se encuentra generalmente en el directorio /usr/bin. - Establezca el permiso SUID en el fichero /tmp/id copiado anteriormente. Utilice el comando
chmod
. - Vuelva a la identidad del usuario <tuNombreDeUsuario>2 en la tercera consola virtual (tty3) y liste los permisos del fichero /tmp/id.
- Como usuario <tuNombreDeUsuario>2, ejecute el comando id, después el fichero /tmp/id. ¿Qué observa?
- ¿Cuáles son los permisos del comando write y del fichero de dispositivo /dev/tty2? ¿Por qué son así? El fichero correspondiente al comando
write
se encuentra generalmente en el directorio /usr/bin. - Siempre como usuario <tuNombreDeUsuario>2, intente suprimir el fichero /tmp/vínculofica creado anteriormente por el usuario <tuNombreDeUsuario>. ¿Es posible? Liste los permisos del directorio /tmp.
Disquetes DOS
Duración estimada: 10 minutos
Las cuestiones siguientes necesitan de la presencia del paquete mtools
en el conjunto de software instalado en el sistema. Además, siguiendo los permisos acordados por el administrador en el fichero /etc/fstab, los usuarios pueden no estar autorizados a efectuar un montaje; será necesario entonces conectarse como root.
- Vuelva a la identidad del usuario <tuNombreDeUsuario> y cree el fichero permisos con los permisos 740 en su directorio personal.
- Inserte un disquete DOS en el lector de la máquina y copie el fichero permisos. Utilice el comando
mount
con el punto de montaje predefinido por su sistema en el fichero /etc/fstab (generalmente /mnt/floppy o /media/floppy). Para insertar un disquete virtual en la máquina virtual deberá apagar la máquina virtual e ir a su configuración, hacer click en “Añadir nuevo controlador de almacenamiento”, hacer click en “I82078 (disquete)”, click en “Añadir unidad de disquete”, click en “crear”, click en “Create”, click en “Seleccionar” y “Aceptar”. Posteriormente deberá iniciar la máquina y hacer click en [F12] para seleccionar el dispositivo desde el que desea hacer el inicio. - Suprima el fichero permisos de su directorio personal.
- Vuelva a copiar el fichero permisos del disquete en su directorio personal. ¿Cuáles son sus permisos? ¿Por qué?