z Actividades - GNU/Linux - Administración de equipos <pre> ![GNU/Linux](assets/gnulinux.png) [![cc-by-sa](assets/cc-by-sa.png)](http://creativecommons.org/licenses/by-sa/4.0/) 2016 - IES Luis Vélez de Guevara - Écija - Spain La versión más actualizada de este documento se encuentra en [jamj2000.github.io](http://jamj2000.github.io/gnulinux/1/actividades) </pre> <hr> <a name="indice"></a> # Índice #### [Introducción](#introduccion) #### [Sistemas de archivos](#sistemas_archivos) #### [Interfaces de usuario](#interfaces) #### [Comandos](#comandos) <pre> </pre> # <a name="introduccion"></a> [Introducción](#indice) 1. __¿Quién inició el proyecto GNU?__ <hr> 1. __¿Quién inició el núcleo o kernel de Linux?__ <hr> 1. __¿Cuáles son las libertades que proporciona el software libre a los usuarios? __ <hr> 1. __Nombra varias licencias para software libre. ¿Dónde se utilizan?__ <hr> 1. __Nombra 3 distribuciones derivadas de Debian.__ <hr> 1. __Nombra 3 distribuciones derivadas de RedHat.__ <hr> 1. Consulta la página [Distros españolas](https://es.wikipedia.org/wiki/Anexo:Distribuciones_GNU/Linux_de_Espa%C3%B1a) o página similar e __indica las distribuciones utilizadas en las siguientes comunidades autónomas: __ - Andalucía - Extremadura - Madrid - Comunidad Valenciana - Cataluña - Castilla - Galicia - Asturias <hr> 1. Consulta la página [distrowatch](http://distrowatch.com) y __haz un resumen de las siguientes distros, indicando procedencia, formato de paquetes y tipo de escritorio soportado: __ - Guadalinex - Knoppix - Wifislax - Fedora - Linux Mint - openSUSE - Scientific Linux <hr> 1. __En una máquina virtual realiza la instalación de Lubuntu para un entorno doméstico.__ Crea una partición separada para el directorio /home. <hr> 1. __En una máquina virtual realiza la instalación de Fedora para un entorno doméstico.__ Crea una partición separada para el directorio /home. <hr> 1. __En una máquina virtual realiza la instalación de Debian para un entorno empresarial.__ Crea una partición separada para el directorio /var. <hr> ### Actividades de ampliación 1. __Resumen brevemente en qué consiste las licencia GPL __ <hr> 1. Consulta la página [distrowatch](http://distrowatch.com) o página similar__ y haz un resumen de las siguientes distros, indicando procedencia, formato de paquetes y tipo de escritorio soportado: __ - Korora - Damm Small Linux - Mageia - Manjaro - FreeBSD - ROSA - Kylin - CentOS - Chakra - PCLinuxOS - Kali <hr> 1. __En una máquina virtual realiza la instalación de openSuSE para un entorno doméstico.__ Crea una partición separada para el directorio /home. <hr> 1. __En una máquina virtual realiza la instalación de Linux Mint para un entorno doméstico.__ Crea una partición separada para el directorio /home. <hr> <pre> </pre> # <a name="sistemas_archivos"></a> [Sistemas de archivos](#indice) 1. __Nombra 4 tipos de formato para particiones__ <hr> 1. __¿Cuál es el formato por defecto actualmente para particiones de GNU/Linux?__ <hr> 1. __¿Qué formato de sistema de archivos se utiliza por defecto en GNU/Linux?__ <hr> 1. __¿Qué formato de sistema de archivos utiliza GNU/Linux para la partición de intercambio?__ <hr> 1. __¿Cuál es el tamaño adecuado para la partición swap?__ <hr> 1. __Para el siguiente particionado, indica__ - Partición raíz: nombre, tamaño y punto de montaje - Partición de usuarios: nombre, tamaño y punto de montaje - Partición de intercambio: nombre, tamaño y punto de montaje ![particiones](assets/particiones.png) <hr> 1. __¿Dónde se monta la partición swap?__ <hr> 1. __¿Está soportado el sistema de archivos FAT en GNU/Linux?__ <hr> 1. __¿Está soportado el sistema de archivos NTFS en GNU/Linux?__ <hr> 1. __Ejecuta los siguientes comandos para ver información acerca de las particiones.__ ```sh fdisk -l blkid df ``` <hr> 1. __¿Cuántas particiones necesitamos para instalar GNU/Linux?__ Explica la respuesta. <hr> 1. __Indica qué tipos de archivos se almacenan en:__ - /bin - /usr/sbin - /sbin - /usr/sbin <hr> 1. __Para el ejercicio anterior, busca 3 archivos importantes dentro de cada directorio.__ Usa `ls /bin` o similar para ver el contenido de cada directorio. <hr> 1. __Indica qué tipos de archivos se almacenan en:__ - /etc - /var - /tmp - /usr - /opt <hr> 1. __Para el ejercicio anterior, busca 3 archivos o subdirectorios importantes dentro de cada directorio.__ Usa `ls /etc` o similar para ver el contenido de cada directorio o realiza una búsqueda en internet. <hr> 1. __Indica qué tipos de archivos se almacenan en:__ - /home - /root <hr> 1. __Para el ejercicio anterior, busca 3 archivos o subdirectorios importantes dentro de cada directorio.__ Usa `ls /root` o similar para ver el contenido de cada directorio o realiza una búsqueda en internet. <hr> 1. __Indica qué tipos de archivos se almacenan en:__ - /mnt - /media <hr> 1. __Indica qué tipos de archivos se almacenan en:__ - /boot - /dev - /lib <hr> ### Actividades de ampliación 1. __¿Qué utilidades vienen en el paquete __ntfs-3g__?__ ``` apt-get install apt-file apt-file list ntfs-3g | egrep /s?bin ``` <hr> 1. __Comprueba que vienen las siguientes aplicaciones en el paquete anterior?__ ``` /sbin/mkfs.ntfs /sbin/mkntfs /sbin/mount.ntfs /sbin/ntfsclone /sbin/ntfslabel /sbin/ntfsresize ``` <hr> 1. __¿Por qué crees que todos los comandos anteriores estan bajo el directorio /sbin?__ <hr> 1. Busca información. __¿Para qué se utilizan las particiones de tipo exFAT?__ <hr> 1. __¿Qué utilidades vienen en el paquete __exfat-utils__?__ ``` apt-cache show exfat-utils ``` <hr> 1. Busca información. __¿Para qué sirven los comandos mkswap y swapon/swapoff?__ <hr> 1. Busca información. __¿Qué es FHS referido al sistema de archivos GNU/Linux?__ <hr> <pre> </pre> # <a name="interfaces"></a> [Interfaces de usuario](#indice) 1. __Inicia sesión en cada terminal virtual (tty1, tty2, tty3, tty4, tty5, tty6).__ Recuerda que has de pulsar la combinación de teclas __Ctrl+Alt+F1 ... Ctrl+Alt+F6__ para acceder a cada terminal virtual. Para volver al terminal gráfico pulsa Ctrl+Alt+F7. __Ejecuta el comando `who` en uno de los terminales y muestra la salida que obtienes.__ <hr> 1. __Cierra la sesión que iniciaste en cada uno de los terminales virtuales (tty1, tty2, tty3, tty4, tty5, tty6).__ Recuerda que has de pulsar la combinación de teclas __Ctrl+Alt+F1 ... Ctrl+Alt+F6__ para acceder a cada terminal virtual. Para volver al terminal gráfico pulsa Ctrl+Alt+F7. __Ejecuta el comando `who` en uno de los terminales y muestra la salida que obtienes.__ <hr> 1. __En el entorno gráfico (Ctrl+Alt+F7) inicia 3 ventanas de terminal. Ejecuta el comando `who` en una de las ventanas de terminal (pseudoterminales) y muestra la salida que obtienes.__ <hr> 1. __¿Cuál es la diferencia entre un terminal virtual y un pseudoterminal?__ <hr> 1. __¿Cuál es la diferencia entre un terminal virtual y un pseudoterminal?__ <hr> 1. __Inicia 3 sesiones en Guake. Ejecuta el comando `who` o `w` para ver los pts en los que hay una sesión abierta.__ <hr> 1. __¿Qué combinación de teclas se utiliza en un pseudoterminal para copiar texto?__ <hr> 1. __¿Qué combinación de teclas se utiliza en un pseudoterminal para pegar texto?__ <hr> 1. __¿Cuál es el gestor de sesiones y el gestor de ventanas en GNOME?__ <hr> 1. __¿Cuál es el gestor de sesiones y el gestor de ventanas en KDE?__ <hr> 1. En el __escritorio GNOME__, nombra las aplicaciones predeterminadas para: - Explorador archivos - Editor de texto - Compresor archivos - Grabador CD/DVD - Visor PDF - Visor imágenes - Reproductor música - Reproductor vídeo <hr> 1. En el __escritorio KDE__, nombra las aplicaciones predeterminadas para: - Explorador archivos - Editor de texto - Compresor archivos - Grabador CD/DVD - Visor PDF - Visor imágenes - Reproductor música - Reproductor vídeo <hr> 1. ¿Es posible instalar una aplicación de un escritorio en otro tipo de escritorio?. Pon un ejemplo. <hr> 1. ¿Qué combinación de teclas se utiliza para lanzar un comando? <hr> 1. ¿Qué combinación de teclas se utiliza para cerrar una ventana? <hr> 1. __¿Qué escritorio trae por defecto la distribución Ubuntu?__ <hr> 1. __Obten una captura de pantalla (en internet o en tu equipo) para cada uno de los siguientes escritorios: __ - GNOME - KDE (Plasma) - Unity - XFCE - LXDE - Enlightenment - Cinnamon <hr> ### Actividades de ampliación 1. __Busca información en Internet acerca de cuál es el explorador de archivos por defecto para cada uno de los escritorios anteriores.__ <hr> 1. __Busca información en Internet acerca de cuál es el editor de texto por defecto para cada uno de los escritorios anteriores.__ <hr> 1. __Busca información acerca del escritorio LXQt.__ Responde las siguientes cuestiones: - ¿Por qué recibe este nombre? - ¿Cuál es la página oficial del proyecto? - ¿Es un escritorio ligero? - Muestra una captura de pantalla de este escritorio. <hr> <pre> </pre> # <a name="comandos"></a> [Comandos](#indice) ## Conceptos 1. __Indica 20 comandos externos.__ ¿Para qué sirven? <hr> 1. __Indica 10 comandos internos.__ ¿Para qué sirven? <hr> 1. __Consulta la página de manual del comando ls.__ ¿Cuál es la opción para hacer un listado en orden inverso? <hr> 1. __Consulta la ayuda del comando echo.__ ¿Cuál es la opción para mostrar un mensaje sin salto de línea final? <hr> 1. __¿Qué tipo de ayuda (`man` o `help`) has utilizado para el comando `echo`?__ <hr> 1. __El comando `echo`, ¿es un comando interno o externo?__ Puedes averiguarlo con `type echo`. <hr> 1. __En el caso de que el comando `echo` sea un comando interno, ¿por qué funciona entonces la ayuda `man echo`?.__ <hr> 1. __Haciendo uso del comando `type`, indica si los siguientes comandos son internos o externos:__ - ls - cd - cp - bg - fg - jobs - mv - rm - mkdir - touch - nano - less - man - clear - reset - adduser - deluser - pwd - help - echo - kill - history - exit - logout - type <hr> 1. De los comandos externos anteriores, ¿cuáles se guardan en la carpeta /bin? ¿Y en la carpeta /usr/sbin? <hr> 1. Para obtener __ayuda acerca de un comando externo__ usamos la orden: <hr> 1. Para obtener __ayuda acerca de un comando interno__ usamos la orden: <hr> ### Actividades de ampliación 1. __Consulta las páginas de manual del comando `ls`.__ ¿Cúal es la opción que debemos usar para hacer un listado en orden alfabético inverso. <hr> 1. __Consulta las páginas de manual del comando `touch`.__ ¿Cuál es la opción que debemos usar para ver la versión de dicho comando. <hr> 1. __Consulta la ayuda del comando `exit`.__Muestra cuál es su salida. <hr> 1. __Consulta la ayuda del comando `logout`.__Muestra cuál es su salida. <hr> ## Comandos básicos Teniendo en cuenta el siguiente árbol de directorios y que __nuestro directorio actual es /home/usuario__ ![arbol](assets/linux-filesystem.png) 1. __Ejecuta comando para ver el directorio actual__ <hr> 1. __Si no estamos en el directorio /home/usuario, ¿qué comandos podemos usar para situarnos en él?__ <hr> 1. __(Actividad resuelta) Indicar ruta absoluta para listar contenido de directorio /bin.__ ```sh ls /bin ``` <hr> 1. __(Actividad resuelta) Indicar ruta relativa para listar contenido de directorio /bin.__ ```sh ls ../../bin ``` <hr> 1. __Indicar ruta absoluta para listar contenido de directorio /usr/bin.__ <hr> 1. __Indicar ruta absoluta para listar contenido de directorio /usr/sbin.__ <hr> 1. __Indicar ruta relativa para listar contenido de directorio /usr/bin.__ <hr> 1. __Indicar ruta relativa para listar contenido de directorio /usr/sbin.__ <hr> 1. __Indicar ruta absoluta para listar contenido de directorio /home/usuario/Descargas.__ <hr> 1. __Indicar ruta relativa para listar contenido de directorio /home/usuario/Descargas.__ <hr> 1. __Indicar ruta relativa para listar contenido de directorio /home/usuario/Descargas/Apuntes.__ <hr> 1. __Indicar ruta relativa para listar contenido de directorio /home/usuario/Descargas/Apuntes/ISO.__ <hr> 1. __Indicar ruta relativa para listar contenido de directorio /usr/share/doc.__ <hr> 1. __Indica qué hacen los siguientes comandos.__ - `cd /` - `cd` - `cd ~` - `cd -` <hr> 1. __Indica como podemos hacer un listado de los archivos del directorio /usr/bin cuyo nombre __ - tiene 5 letras - tiene 6 letras - empieza por letra 'a' - empieza por letra 'a' y tiene 5 letras - termina por letra 'a' - termina por letra 'a' y tiene 5 letras - empieza por letra 'a', 'b' o 'c' - empieza por letra 'a', 'b' o 'c' y tiene 5 letras <hr> 1. __Crea el siguiente alias.__ Necesitarás conexión a Internet. alias tiempo="curl -4 http://wttr.in/Ecija" <hr> 1. __Indica 4 formas distintas de ver el contenido del archivo /etc/passwd.__ <hr> 1. __Indica comando para limpiar el terminal de texto.__ <hr> 1. __Indica comando para ver el historial del terminal de texto.__ <hr> 1. __Indica comando para ver el espacio ocupado en disco del directorio /usr.__ <hr> 1. ¿Qué significa la __opción -R__ en los siguientes comandos? - ls - cp - rm - chown - chmod <hr> 1. __Realiza un tarball .tar.gz de tu directorio Descargas.__ <hr> 1. __Haz listado del tarball creado anteriormente.__ <hr> 1. __Copia el tarball anterior a tu directorio Documentos. Realiza la extracción ahí.__ <hr> 1. __Realiza un tarball .tar.bz2 de tu directorio Escritorio.__ <hr> 1. __Haz listado del tarball creado anteriormente.__ <hr> 1. __Copia el tarball anterior a tu directorio Documentos. Realiza la extracción ahí.__ <hr> 1. __Instala el paquete `xaos`.__ Una vez instalado, pulsa `Alt+F2` y escribe `xaos`. Pulsa `Intro` para lanzar la aplicación. <hr> 1. __Pulsa `Alt+F4` para cerrar la ventana de `xaos`.__ <hr> 1. __Instala los siguientes paquetes:__ - vlc (reproductor de vídeo) - ubuntu-restricted-extras (codecs privativos -mp3, flash, ...-) - unrar rar p7zip-full unace unzip (programas de compresión más comunes) ```sh apt-get install vlc ubuntu-restricted-extras unrar rar p7zip-full unace unzip ``` Puede ser que algunos paquetes los tengas ya instalados. <hr> 1. __Comprueba si tienes instalado VirtualBox.__ Si no lo tienes instalado, busca el nombre exacto del paquete e instálalo. ```sh apt-cache search virtualbox apt-get install virtualbox ``` <hr> 1. __Instala el paquete `gdebi`.__ Busca información acerca de para qué sirve este paquete. <hr> 1. La aplicación `Master PDF` es una aplicación de la empresa _Code Industry_ para la edición de archivos PDF. __Descarga el paquete .deb adecuado a tu S.O. (32 o 64 bits) desde la web oficial y realiza la instalación con gdebi.__ ![gdebi gráfico](assets/gdebi.png) <hr> 1. __Muestra el valor de la variable de entorno $PATH.__ Ejecuta `echo $PATH`. <hr> 1. __Muestra el valor de la variable de entorno $HOME.__ <hr> 1. __Muestra el valor de la variable de entorno $USER.__ <hr> 1. __Muestra el valor de la variable de entorno $SHELL.__ <hr> 1. __Muestra el valor de la variable de entorno $PS1.__ <hr> 1. __Muestra el valor de la variable de entorno $PS2.__ <hr> 1. __Muestra el valor de todas las variables de entorno.__ Ejecuta `env`. <hr> 1. __Muestra el valor de todas las variables de entorno relacionadas con PWD.__ Ejecuta `env | grep PWD`. <hr> 1. __Muestra el valor de todas las variables de entorno relacionadas con LANG.__ Ejecuta `env | grep LANG`. <hr> 1. __¿Para qué sirve la variable de entorno $PATH?__ <hr> 1. __¿Para qué sirve la variable de entorno $PS1?__ <hr> 1. __Visita la página [bashrcgenerator -PS1 Generator-](http://bashrcgenerator.com/) y diseña un prompt PS1 igual al mostrado en la imagen.__ ![PS1](assets/ps1.png) <hr> 1. __Copia el código obtenido en el ejercicio anterior `export PS1=" ... "` en un terminal de texto y ejecútalo.__ Haz un captura donde se muestre como queda el indicador de sistema o prompt. <hr> 1. __Visita la página [bashrcgenerator -PS1 Generator-](http://bashrcgenerator.com/) y diseña un prompt PS1 igual al mostrado en la imagen.__ ![PS1](assets/ps1-color0.png) <hr> 1. __Copia el código obtenido en el ejercicio anterior `export PS1=" ... "` en un terminal de texto y ejecútalo.__ Haz un captura donde se muestre como queda el indicador de sistema o prompt. <hr> ### Actividades de ampliación 1. __Para que los cambios realizados en la variable de entorno $PS1 se guarden debemos editar el archivo ~/.bashrc. __ Haz una copia de este archivo (`cp ~/.bashrc ~/.bashrc.orig`) y modifícalo de la siguiente forma. ![PS1](assets/ps1-color.png) En las siguientes sesiones de terminal que inicies debería aparecer el nuevo prompt o indicador. <hr> 1. __Prompt o indicador distinto para los usuarios y para root.__ Para los usuarios sin privilegios edita el archivo /home/`usuario`/.bashrc. ![ps1 distinto](assets/ps1-user-root.png) ```sh PS1="\[$(tput bold)\]\[\033[38;5;255m\]\[\033[48;5;22m\] \h \[\033[48;5;0m\] \w \[\033[48;5;20m\] \u \[$(tput sgr0)\] " ``` Haz un captura de pantalla para comprobar como queda el resultado. <hr> 1. __Prompt o indicador distinto para los usuarios y para root.__Para el usuario root edita el archivo /root/.bashrc. ![ps1 distinto](assets/ps1-user-root.png) ```sh PS1="\[$(tput bold)\]\[\033[38;5;255m\]\[\033[48;5;22m\] \h \[\033[48;5;0m\] \w \[\033[48;5;88m\] \u \[$(tput sgr0)\] " ``` Haz un captura de pantalla para comprobar como queda el resultado. <hr> 1. __Si queremos que todos los usuarios nuevos que demos de alta tengan el nuevo prompt debemos modificar los archivos `/etc/profile` y/o `/etc/bash.bashrc` o similar (dependiendo de la distro utilizada).__ Busca información acerca de como hacerlo. Si deseas realizar cambios, recuerda hacer dos cosas previamente: - Utiliza una máquina virtual - Saca copia de seguridad de los archivos originales (P. ej. `cp /etc/profile /etc/profile.orig`) <hr> 1. __Pásate por la página [Después de Instalar Ubuntu Vivid Vervet (15.04)](http://glatelier.org/2015/04/23/despues-de-instalar-ubuntu-vivid-vervet-15-04/) y realiza los cambios que estimes oportunos. Recuerda realizar todos los cambios en una máquina virtual.__ <hr> 1. __¿Para qué sirve el comando `apt-get upgrade`?__ Consulta la página de manual de apt-get (`man apt-get`) <hr> 1. __¿Para qué sirve el comando `apt-get dist-upgrade`?__ Consulta la página de manual de apt-get (`man apt-get`) <hr> 1. __¿Qué son los repositorios PPA?. ¿Qué función tienen?__ <hr> ## Usuarios 1. __¿Cuál es la aplicación para iniciar sesión en terminal de texto?__ <hr> 1. __¿Cuál es el comando para cerrar una sesión en terminal de texto?__ <hr> 1. __¿Cuál es el Display Manager para iniciar sesión en GNOME?__ <hr> 1. __¿Cuál es el Display Manager para iniciar sesión en KDE?__ <hr> 1. __Da de alta a usuario1 y usuario2.__ La contraseña será igual al nombre de usuario. <hr> 1. __Inicia sesión como usuario1. Ejecuta el comando `id`.__ Escribe el resultado. ¿Qué UID tiene? ¿Qué GID tiene? ¿Cuál es su grupo primario? <hr> 1. __Inicia sesión como usuario2. Ejecuta el comando `id`.__ Escribe el resultado. ¿Qué UID tiene? ¿Qué GID tiene? ¿Cuál es su grupo primario? <hr> 1. __Inicia sesión como usuario1. Cambia la contraseña de dicho usuario por la de 'prueba'.__ <hr> 1. __Inicia sesión con tu usuario normal. Modifica desde esta sesión la contraseña del usuario anterior dejándola como 'usuario1'.__ <hr> 1. __Inicia sesión con el usuario que utilizas regularmente. Ejecuta el comando `id`.__ Escribe el resultado. ¿Qué UID tiene? ¿Qué GID tiene? ¿Cuál es su grupo primario? ¿Y sus grupos secundarios? <hr> 1. __Añade usuario1 a los mismos grupos secundarios a los que pertenece el usuario que utilizas regularmente.__ <hr> 1. __Añade usuario2 a los mismos grupos secundarios a los que pertenece el usuario que utilizas regularmente.__ <hr> 1. __Inicia sesión con usuario1 y comprueba que puede utilizar el comando `sudo`. Haz lo mismo con el usuario2.__ <hr> 1. __¿Cuál de los grupos secundarios permite que un usuario pueda ejecutar el comando sudo?.__ <hr> 1. __¿Cuál sería el comando completo para eliminar el usuario1 y su carpeta personal?.__ No lo elimines, puesto que nos hará falta más adelante. <hr> ### Actividades de ampliación 1. __Edita el archivo /etc/shadow.__ Edita la línea `root:!: ...`. Elimina el carácter `!` del segundo campo. Debe quedar así `root:: ...`. Los puntos suspensivos representan el resto de campos que debes dejar tal cual estaban. Pulsa `Ctrl+Alt+F1` e inicia sesión como usuario `root`. ¿Qué sucede?. Cierra la sesión. <hr> 1. __Vuelve a editar el archivo /etc/shadow.__ Deja la línea `root:: ...` como estaba, es decir, vuelve a poner `!` en el segundo campo. Debe quedar así `root:!: ...`. Los puntos suspensivos representan el resto de campos que debes dejar tal cual estaban. Pulsa `Ctrl+Alt+F1` e inicia sesión como usuario `root`. ¿Qué sucede?. <hr> 1. __Abre el archivo `/etc/sudoers`.__ Este archivo guarda los usuarios y grupos que pueden ejecutar el comando `sudo`. ¿Qué usuarios pueden ejecutar este comando? Además, ¿qué grupos de usuarios pueden hacerlo? <hr> ## Archivos 1. __¿Qué archivos del directorio /bin son ejecutables binarios (ELF - Executable and Linkable Format)?__ Ejecuta la orden ```sh file /bin/* | grep ELF ``` <hr> 1. __¿Qué archivos del directorio /bin son ejecutables de script?__ Ejecuta la orden ```sh file /bin/* | grep script ``` <hr> 1. Cuando hacemos un listado largo, en la columna de permisos, la primera letra indica el tipo. __¿Qué letra aparece para cada uno de los siguientes tipos?__ - directorio (directory) - archivo regular - enlace simbólico (link) - dispositivo de caracteres (char) - dispositivo de bloques (block) - tubería con nombre (pipe) - socket con nombre (socket) <hr> 1. __¿Cuál es el código octal para los siguientes permisos?__ - `rwx rwx rwx` --> 777 (resuelto) - `rwx r-- ---` --> 740 (resuelto) - `rw- rw- rw-` - `rwx r-- r--` - `r-- r-- r--` - `r-- r-- ---` - `r-x r-x r--` - `rwx r-x r--` <hr> 1. Para los siguientes códigos en octal, indica cuáles son los permisos asociados. - 777 --> `rwx rwx rwx` (resuelto) - 740 --> `rwx r-- ---` (resuelto) - 664 - 440 - 755 - 754 - 550 <hr> 1. __Indica comando completo para dar de forma recursiva los permisos 755 a la carpeta /usr/share/doc.__ <hr> 1. __Indica comando completo para dar de forma recursiva los permisos 750 a la carpeta /usr/share/doc.__ <hr> 1. __Indica 3 formas de añadir el permiso de ejecución para todo el mundo sobre el archivo `/bin/sleep`.__ <hr> 1. __Indica como añadimos el permiso de ejecución sólo para el propietario sobre archivo `/bin/sleep`.__ <hr> 1. __Indica como añadimos el permiso de ejecución sólo para el grupo sobre archivo `/bin/sleep`.__ <hr> 1. __Indica como añadimos los permisos de lectura y escritura sólo para el propietario sobre archivo `/bin/sleep`.__ <hr> 1. __Accede a la página http://file-permissions.ninja. Pon los máximos permisos.__ ![file-permissions.ninja.png](./assets/file-permissions.ninja.png) Escribe cuál es la representación - numérica - binaria - simbólica <hr> 1. __Activa el SETUID bit.__ Escribe cuál es la representación - numérica - binaria - simbólica <hr> 1. __Activa el SETGID bit.__ Escribe cuál es la representación - numérica - binaria - simbólica <hr> 1. __Activa el STICKY bit.__ Escribe cuál es la representación - numérica - binaria - simbólica <hr> 1. __Desactiva el bit EXECUTE del propietario.__ Escribe cuál es la representación - numérica - binaria - simbólica <hr> 1. __Desactiva el bit EXECUTE del grupo.__ Escribe cuál es la representación - numérica - binaria - simbólica <hr> 1. __Desactiva el bit EXECUTE del resto de usuarios.__ Escribe cuál es la representación - numérica - binaria - simbólica ### Actividades de ampliación ## Procesos 1. __Ejecuta el siguiente comando y pulsa Ctrl+C para finalizarlo__ ```sh ping 8.8.8.8 ``` <hr> 1. __Ejecuta el siguiente comando en segundo plano (background) y pulsa Ctrl+C para finalizarlo__ ```sh ping 8.8.8.8 & ``` ¿se puede finalizar el proceso? <hr> 1. __Para finalizar adecuadamente sigue estos pasos.__ Escribe ```sh fg 1 ``` para traerlo a primer plano (foreground) y luego pulsa __Ctrl+C para finalizar el proceso__ <hr> 1. __Vuelve a ejecutar__ ```sh ping 8.8.8.8 ``` pulsa __Ctrl+Z para detener el proceso__ <hr> 1. __El proceso está detenido, pero no finalizado__. Ejecuta ```sh jobs ``` para ver las tareas activas. <hr> 1. __Para que el proceso continue funcionando en segundo plano (background) ejecuta__ ```sh bg 1 ``` <hr> 1. __Para finalizarlo, lo pasamos a primer plano (foreground)__ ```sh fg 1 ``` y pulsamos __Ctrl+C para finalizar el proceso__ <hr> 1. __Ejecuta los siguientes comandos e indica qué ejecutables tienen el bit SETUID.__ ```sh ls -lR directorio | tr -s ' ' | cut -d ' ' -f 1,9- | grep ^...s...... ``` Para los siguientes directorios: - /bin - /usr/bin - /sbin - /usr/sbin <hr> 1. __Ejecuta los siguientes comandos e indica qué ejecutables tienen el bit SETGID.__ ```sh ls -lR directorio | tr -s ' ' | cut -d ' ' -f 1,9- | grep ^......s... ``` Para los siguientes directorios: - /bin - /usr/bin - /sbin - /usr/sbin <hr> 1. __Ejecuta los siguientes comandos e indica qué ejecutables tienen el bit STICKY.__ ```sh ls -lR directorio | tr -s ' ' | cut -d ' ' -f 1,9- | grep ^.........t ``` Para los siguientes directorios: - /bin - /usr/bin - /sbin - /usr/sbin <hr> 1. __Ejecuta los siguientes comandos e indica qué archivos o directorios tienen el bit STICKY.__ ```sh ls -lR directorio | tr -s ' ' | cut -d ' ' -f 1,9- | grep ^.........t ``` Para los siguientes directorios: - /tmp <hr> ### Actividades de ampliación 1. __Prueba el siguiente comando con el pendrive montado.__¿Qué muestra en pantalla?. Abre un archivo del pendrive. Vuelve a ejecutar el comando. ¿Qué aparece ahora? ```sh ps `fuser -m /dev/sdb1 2> /dev/null | tr -s ' '` ``` NOTA: Si el dispositivo _sdb1_ no se asigna al pendrive, prueba con _sdc1_, o _sdd1_. <hr>