- Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
- 104.1 Creación de particiones y sistemas de archivos
- 104.2 Mantener la integridad de los sistemas de archivos
- 104.3 Controlar el montaje y desmontaje de los sistemas de archivos
- 104.4 Eliminado
- 104.5 Administración de los permisos y los propietarios de los archivos
- 104.6 Crear y cambiar enlaces duros y simbólicos (Hard link and symbolic link)
- 104.7 Encontrar archivos de sistema y ubicar archivos en el lugar correspondiente
swap file: es el fichero que se utiliza cuando esta la memoria ram llena.
fdisk
- se utiliza para modificar particiones basadas en MBR
gparted
- se utiliza para modificar particiones basadas tables de particiones GPT
parted
-
mkswap
- comando para usado para formatear una partcion swap
swapoff
- deshabilita una partición de swap
Para añadir una partición al arranque tenemos que modificar el fichero /etc/fstab/
Añadir una nueva partición de SWAP, añadimos al fichero fstab
la siguiente información:
LABEL=SWAP swap swap defaults 0 0
df
- (diskfree) nos muestra el espacio dispoible de un sistema de ficheros
du
- (diskusage) nos muestra la cantidad del disco utilizada.
inode
- indice de nodos, guarda información de los ficheros y carpetas, como permisos, propietarios, tipo de ficheros, casi todos los sistemas de ficheros tienen un limite de inodos.
mount /dev/sdb1 /opt
Para hacer que un punto de montaje sea permanente tenemos que modificar el fichero /etc/fstab
LABEL=opt /opt ext4 defaults 1 2
mount
man mount
- para buscar el la ayuda utilizamos el caracter /
o introducimos el número de la linea a la que queremos ir. Linea 412 para las opciones de montado.
umount
Mostrar unicamente un sistema de ficheros concreto, por ejemplo ext4.
sergio@Lenovo-ideapad-710S-Plus-13IKB ~ mount -t ext4
/dev/nvme0n1p2 on / type ext4 (rw,relatime,errors=remount-ro)
El contenido del comando mount es el mismo que el fichero:
cat /etc/mtab
que no es mas que un enlace simbólico a /proc/self/mounts
Montar un sistema de ficheros especificando opciones concretas
-L
- para indicar la etiqueta
-t
para indicar el sistema de ficheros a utilizar
-o
para indicar las opciones de montado
rw
- lectura y escritura
noexec
- no permite la ejecución de archivos binarios en la unidad montada.
mount -L OPT -t xfs -o rw,noexec /opt
Para que sea permanente:
Editamos el fichero /etc/fstab
LABEL=OPT /opt xfs rw,exec,suid,auto 1 2
Más información sobre fstab aquí
Una vez añadido en el fichero /etc/fstab podemos utilizar el comando mount -a
para actualizar la lista que hayamos añadido.
Ejercicio: Montar una imagen iso
mount /root/install.iso -o ro,loop /media
ro
- para especificar que es de solo lectura.
loop
- para emular que es un cdroom
chow
: cambia el usuario propietario de un fichero o directorio.
chgrp
: cambiar el grupo propietario de un fichero o directorio.
chmod
: cambia el modo de acceso a los ficheros o directorios con la simbología 777 o 775.
-
Primer dígito: permisos para propietario
-
Segundo dígito: permisos para grupo.
-
Tercer dígito: Permisos para otros.
Lectura: 4 Escritura: 2 Ejecución: 1
0: Sin permisos 1: Ejecución 2: Escritura 3: Lectura y escritura 4: Lectura 5: Lectura y ejecución 6: Lectura y escritura 7: Lectura, escritura y ejecución
Si queremos establecer un permiso de escritura usaremos el 6 (4 + 2 = Lectura + Escritura)
Si queremos que un usuario pueda ejecutar usaremos el 7 (4 + 2 + 1= Lectura + Escritura + Ejecución)
Los tipos de permisos más comunes, o su combinación, son los siguiente:
666 ( RW / RW / RW) |
---|
Esta opción permite que todos los usuarios puedan leer y escribir en un archivo. |
777 ( RWX / RWX /RWX) |
---|
Esta opción permite que todos los usuarios puedan leer y escribir en un archivo. |
777 ( RWX / RWX /RWX) |
---|
Esta opción permite que todos los usuarios puedan leer, escribir y ejecutar en el archivo o carpeta. |
755 (RWX / RW / RW) |
---|
Con este permiso el propietario del archivo puede leer, escribir y ejecutar en el archivo mientras que los demás leer y escribir en el archivo mas no ejecutar. |
644 (RW / R / R) |
---|
Con este permiso el propietario puede leer y escribir en el archivo mientras los demás solo pueden leer. |
700 (RWX /---) |
---|
Con este permiso el propietario tiene el control total del archivo mientras que los demás usuarios no tendrán acceso de ningún tipo al archivo. |
Ejercicio: Dar permisos de lectura y escritura recursivamente a una carpeta
sudo chmod 666 -R /opt/myapp/*
Unix nos ofrece a parte una serie de permisos especiales, se trata de los bits de permanencia (1000), SGID (2000) y SUID (4000).
Sticky bit El bit sticky bit se activa sobre un fichero o directorio añadiendo 1000
Se utiliza para permitir que cualquiera pueda escribir y modificar archivo o directorio, pero que solo su propietario pueda eliminarlo, por ejemplo /tmp puede ser utilizado por todos pero solo el propietario puede eliminarlo.
Al directorio con el Sticky Bit aplicado se le agrega la t
al final del descriptor de permisos.
sergio@Lenovo-ideapad-710S-Plus-13IKB ~/test_command chmod 1755 sticky.md
sergio@Lenovo-ideapad-710S-Plus-13IKB ~/test_command la
total 132K
-rwxr-xr-t 1 sergio sergio 0 may 22 10:54 sticky.md
También se puede añadir este permiso de la siguiente forma;
sergio@Lenovo-ideapad-710S-Plus-13IKB ~/test_command chmod +t sticky.md
sergio@Lenovo-ideapad-710S-Plus-13IKB ~/test_command la
total 132K
-rwxr-xr-t 1 sergio sergio 0 may 22 10:54 sticky.md
SUID - Special User ID El bit de SUID o setuid se activa sobre un fichero añadiéndole 4000
El bit SUID activado sobre un fichero indica que todo aquél que ejecute el archivo va a tener durante la ejecución los mismos privilegios que quién lo creó.
SGID - Special Group ID Cuando un directorio tenga activado el bit de SGID(2) todos los permisos que se creen en el perteneceran al grupo del propietario sin importar cual sea el grupo del usuario que cree el directorio.
El uso que mas se utiliza es para que un fichero o dictorio pueda ser utilizado por todos pero solo el administrador pueda eliminarlo. En este caso se indica al sistema operativo que, aunque los permisos `normales' digan que cualquier usuario pueda crear y eliminar ficheros (por ejemplo, un 777 octal), sólo el propietario de cierto archivo y el administrador pueden borrar un archivo guardado en un directorio con estas características. Se utiliza principalmente en directorios del sistema de ficheros en los que interesa que todos puedan escribir pero que no todos puedan borrar los datos escritos, como /tmp/ o /var/tmp/
La diferencia entre un enlace simbólico (soft) y uno hard, es que el hard no crea un nuevo inodo y el soft si. El hard es el mismo dato en el disco duro.
Los hard links son especialmente importantes para ficheros 'permanentes' que por ejemplo un fichero que tiene que ser solamente accesible por el administrador lincado a un fichero que nunca debe ser modificado.
Los enlaces simbólicos ln -s
permiten cruzar sistemas de ficheros, sin embargo los hard links no. Esto ocurre porque un enlace simbólico consiste en crear un nuevo fichero que apunta a otro, sin embar un enlace duro lo que hace es crear un puntero, y el espacio ocupado en el disco es el mismo.
Para localizar los hard symbolik links:
- Buscamos el numero del inodo del fichero
- Buscamos los ficheros que existen con ese numero de inodo
[cloud_user@ip-10-0-0-142 ~]$ ls -i docs/services
25165940 docs/services
[cloud_user@ip-10-0-0-142 ~]$ find . -inum 25165940
./docs/services
./services
[cloud_user@ip-10-0-0-142 ~]$ ls -i services
25165940 services
locate
: busca en la base de datos local ficheros y carpetas que concuerden con el criterio de búsqueda.
updatedb
: actualiza la base de datos del comando locate.
[sergio@hostingsoriano ~]$ locate updatedb
/etc/updatedb.conf
/usr/bin/updatedb
/usr/share/man/man5/updatedb.conf.5.gz
/usr/share/man/man8/updatedb.8.gz
whereis
: este comando localiza los archivos binarios, código fuente y paginas del manual de un comando.
[sergio@hostingsoriano ~]$ whereis top
top: /usr/bin/top /usr/share/man/man1/top.1.gz
[sergio@hostingsoriano ~]$ whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
[sergio@hostingsoriano ~]$