3 Sistemas de ficheros, CLI, usuarios FS, CLI...Compartir ficheros entre directorios Enlaces durosUn...

Post on 17-Jun-2020

8 views 0 download

Transcript of 3 Sistemas de ficheros, CLI, usuarios FS, CLI...Compartir ficheros entre directorios Enlaces durosUn...

3 Sistemas de ficheros, CLI,usuarios

Introduccion a los Sistemas Operativos,2019-2020

Pablo Gonzalez Nalda

Depto. de Lenguajes y Sistemas InformaticosEU de Ingenierıa de Vitoria-Gasteiz,

UPV/EHU

18 de febrero de 2020

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Contenidos de la presentacion

1 Sistemas de Ficheros

2 Permisos

3 Operacion sobre permisos y ficheros

4 ¿Mas preguntas?

2 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

1 Sistemas de Ficheros

2 Permisos

3 Operacion sobre permisos y ficheros

4 ¿Mas preguntas?

3 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

¿�e es un Sistema de Ficheros?

El sistema de ficheros es un arbol cuyos nodos son losdirectorios y las hojas los ficheros.

Un camino o ruta (path) es la enumeracion de directorios hastanombrar al final el fichero.

Si es respecto al directorio actual, es relativo:../Escritorio/pruebas/hola.c desde el directorioactual /home/pablo/Documentos/

Si es respecto a la raız del sistema, es absoluto:/home/pablo/Escritorio/pruebas/hola.c

cp /home/pablo/Escritorio/pruebas/hola.c .

Unix solo tiene una raız para todo el sistema, mientras queWindows tiene una raız por particion.

4 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Gestion de ficheros

Ficheros: almacenamiento de informacion de formapermanente, no volatil. El Sistema de Ficheros (FS) es unaestructura de datos creada en el dispositivo para representarlos ficheros y otra informacion.

Nombre [+extension]

Directorios ⇒ organizacion jerarquica. Enlaces

Operaciones sobre ficheros: crear, leer, escribir, posicionar,borrar, ejecutar

Permisos de acceso

Acceso concurrente para ciertas operaciones

Un fichero es un conjunto de registros logicos. Accesosecuencial (leyendo desde el principio del fichero) odirecto.

5 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Gestion de ficheros

Bloque: unidad de acceso y ubicacion. El dispositivo es unatabla unidimensional de bloques. Cada fichero es unsubconjunto ordenado de bloques dentro de un dispositivo oparticion.

Aplicacion → regs. logicos (posicion y longitud en bytes) →bloques → sectores CPS → dispositivo hardware

UNIX: pipes o tuberıas y los buzones y los dispositivos de E/Sson ficheros especiales

6 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Gestion de los atributos

Dos metodos de gestion de los metadatos o atributos de unfichero:

Interna en Directorio la informacion esta en la estructura dedatos de todo el directorio (FAT)

Estructura externa la informacion esta en una estructura(inodo) y el directorio solo contiene elnombre del fichero y un enlace duro alinodo (el numero de inodo)

7 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Compartir ficheros entre directorios

Enlaces duros Un enlace duro referencia un inodo desdeun directorio, y el inodo almacena elnumero de enlaces duros. Al llegar a cero(unlink) el fichero se borra. No sepermiten enlaces duros a directorios, paraevitar ciclos.

Enlaces simbolicos Fichero especial que contiene el camino aun fichero (directorios incluidos). Loscomandos y aplicaciones deciden el ficheroal abrirlo. En entorno Windows se llamanaccesos directos.

8 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Traduccion de direcciones

Un acceso a un registro logico de un fichero se convierte en unacceso a ciertos bytes. Esos bytes pueden estar en memoria onecesitar leer varios bloques, ademas de obligar a una escriturapara librar un bufer del sistema.

El sistema pasara de bytes a bloques de fichero, segun eltamano de bloque (definido al formatear), y de bloque relativode fichero a bloque absoluto de disco, consultando el FS.

El controlador o driver (manejador) traducira de bloqueabsoluto de disco a cilindro, pista y sectores.

9 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Traduccion de direcciones

10 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Modos de ubicacion

Correspondencia entre bloque relativo de fichero y bloqueabsoluto de dispositivo:

Contigua: los bloques de ficheros se ubicanconsecutivamente, por lo que solo se necesita unpuntero al primer bloque y el nº de bloques delfichero. Crece de forma muy dificultosa, por loque es interesante para CD-ROM y otrosdispositivos de solo lectura.

Encadenada: bloques dispersos, los ficheros son listas debloques. Si el puntero al siguiente bloque esta enlos bloques, hay que leer los bloques anteriores alque queremos acceder, y esto produce muchosfallos. Si la lista se implementa externa a losbloques se evitan estos problemas, como haceFAT.

11 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Modos de ubicacion

Correspondencia entre bloque relativo de fichero y bloqueabsoluto de dispositivo:

Indexada: Los apuntadores se almacenan separados enbloques para cada fichero, para cargar la ubicacionde solo los ficheros que estan abiertos.Los bloques de punteros pueden formar una lista oun arbol.

12 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Contigua

13 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Encadenada

14 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Indexada

15 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Gestion del espacio libre

Gestion del espacio libre: bloques de tamano fijo ⇒ mapa debits (excepto ubicacion contigua, que se puede pensar que losficheros son las unidades de uso del disco)

Ya que el acceso a los ficheros es normalmente secuencial, lomas eficiente es ubicarlos de forma contigua (cabezales,rotacion). Por ello se usan listas de huecos (tiras de bloqueslibres) en vez de o junto a los mapas de bits.

Tiene sentido hablar de fragmentacion externa y necesidad decompactacion, ya que compactando no se optimiza en espacio,sino en tiempo de acceso.

16 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

FAT

17 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

inodo

18 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Sistemas multiusuario

Gestion de personas usuarias y sus datos.

Uso compartido, simultaneo o alternado

Identificacion de usuarias, autenticacion (contrasena)

Mecanismos de seguridad en el acceso a la informacion:ficheros y procesos

19 / 43

Contenidos

Sistemas deFicheros¿�e es un Sistema deFicheros?

Gestion de ficheros

Representacion de losdirectorios

Compartir ficheros entredirectorios

Traduccion de direcciones

Modos de ubicacion

Gestion del espacio libre

Gestion de sistemasmultiusuario

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?

Gestion de sistemas multiusuario

Contabilidad (reparto (cuotas), cobro, parametrizacion)

Seguridad: Confidencialidad, Integridad y Disponibilidad

Privilegios en el acceso a recursos

20 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

1 Sistemas de Ficheros

2 Permisos

3 Operacion sobre permisos y ficheros

4 ¿Mas preguntas?

21 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Dominios de proteccion

Formalizacion del sistema de permisos.

Dominios: grupos de elementos actores (procesos, usuarios)

Recursos: informacion o dispositivos

Operaciones: acciones permitidas para ese Dominio sobre eseRecurso

Ejemplo: el grupo alumno (Dominio) tiene permitida laoperacion de acceso de lectura sobre el Recursofichero.txt

22 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Dominios en Unix

Privilegios posibles: ninguno, conocimiento, ejecucion,acceso, lectura, adicion, escritura, borrado. . .

UNIX: Lectura, Escritura y Ejecucion

Dominios: Propietario, Grupo y Resto/Otrosu:rwx,g:rwx,o:rwx

La informacion de proteccion se encuentra en el inodo oi-node.

23 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Estructura del inodo

Contenido de cada inodo:

Tipo de fichero: ordinario, directorio, dispositivo decaracteres, dispositivo de bloques, tuberıa, enlacesimbolico, socket.Permisos u:rwx,g:rwx,o:rwxPropietario y GrupoTamano del ficheroFechas de acceso, modificacion y creacionnumero de enlaces duros (numero de nombres en elsistema de ficheros)otros datos (Sticky Bit, SUID, SGID)http://thegeekdiary.com/what-is-suid-sgid-and-sticky-bit/Estructura de datos que contiene los numeros de losbloques del disco donde estan los datos del fichero.

24 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Datos del inodo

Datos del inodo:

1 $ stat xFichero: ((x))Tamano: 7251 Bloques: 16

4 Bloque E/S: 4096 fichero regularDispositivo: 801h/2049d Nodo-i: 3666Enlaces: 2

7 Acceso: (0755/-rwxr-xr-x)Uid: ( 1001/ pablo) Gid: ( 1001/ pablo)Acceso: 2016-02-15 01:08:46.508050011 +0100

10 Modificacion: 2016-02-14 22:18:16.641342925 +0100Cambio: 2016-02-15 00:56:33.103508887 +0100Creacion: -

25 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Estructura del inodo

El inodo contiene ademas una estructura de datos que contienelos numeros de los bloques del disco donde estan los datos delfichero.

Por ejemplo, tenemos una particion que lo forman 230 bloques(un “GigaBloque” 1 ) de 4KB (en total, 4TB).

Una particion es una matriz unidimensional de bloquesnumerados con un entero (30 bits). Se identifica con, porejemplo, /dev/sda1

Un fichero de 38 KB ocupara 10 bloques. Depende del sistemade ficheros si los bloques son contiguos o no, en la tabla que esel disco.

1 210=1K 220=1M 230=1G 240=1T 250=1P 260=1E26 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Estructura del inodo

27 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Estructura del inodo

28 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Control de los permisos sobre un fichero

El control de los permisos sobre un fichero se realiza al abrir elfichero.

29 / 43

Contenidos

Sistemas deFicheros

PermisosDominios de proteccion

Dominios en Unix

Estructura del inodo

Operacion sobrepermisos yficheros

¿Mas preguntas?

Control de los permisos sobre un fichero

El control de los permisos sobre un fichero se realiza al abrir elfichero.

30 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

1 Sistemas de Ficheros

2 Permisos

3 Operacion sobre permisos y ficheros

4 ¿Mas preguntas?

31 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Lınea de comandos

mkdir directoriols -ali

3 stat nombrefichero.txttouch ficheronuevo.txtumask ---> 0002

6 ls -l ficheronuevo.txt -->-rw-rw-r-- 1 pablo pablo 0 feb 16 18:46 fich...

9 rwx rwx rwx rwx rwx rwx110 110 110 111 100 0006 6 6 7 4 0

32 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Lınea de comandos

1 chown pablo:pablo fichero.txtchgrp pablo fichero.txtchmod u+rwx fichero.sh

4 chmod a+x fichero.shchmod 740 fichero.sh

7 bash fichero.sh. fichero.sh./fichero.sh

33 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Programa de ejemplo de Llamadas al Sistema

Programa de ejemplo de Llamadas al Sistema

#include <stdio.h>#include <sys/types.h>

3 #include <sys/stat.h>#include <fcntl.h>#include <unistd.h>

6 int main(){int fd; // entrada en la tabla de canalesfd=open("hola.txt", O_WRONLY|O_CREAT, 0666);

9 write(fd, "Hola...\n",8);close(fd);return 0; // Para verlo,

12 // echo $? en la lınea de comandos}

34 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Programa de ejemplo con E/S de C

Programa de ejemplo con E/S de C, compatible para todos losSO.

#include <stdio.h>2 #include <stdlib.h>

int main () {5 FILE * fp;

fp = fopen ("fichero.txt", "w+");8 fprintf(fp, "Hola...\n");

fclose(fp);11

return(0);}

35 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Llamadas al Sistema

Apertura/lectura/escritura/ubicacion

int open (char *camino,int flags,int perm);2 int open (char *camino, int flags);int creat(char *camino, int perm);

36 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Llamadas al Sistema

Banderas (flags):

O_RDONLY O_WRONLY O_RDWR O_NDELAYO_APPEND O_SYNC O_CREAT O_EXCL O_TRUNC

3

numdescriptordefichero = open ("fich.c",O_WRONLY|O_CREAT|O_TRUNC, 0666);

close(numdescriptordefichero);6 fd = creat("fich.c", 0666);

Control de ficheros-directorios

int mkdir (char *path, mode_t mode);

37 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Llamadas al Sistema

Ficheros y control de dispositivos

int stat (char *path, struct stat *sbuf);2 int fstat (int fd, struct stat *sbuf);

struct stat {5

dev_t st_dev; /* ID of device containing file */ino_t st_ino; /* inode number */

8 mode_t st_mode; /* protection */nlink_t st_nlink; /* number of hard links */uid_t st_uid; /* user ID of owner */

11 gid_t st_gid; /* group ID of owner */dev_t st_rdev; /* device ID (if special file) */off_t st_size; /* total size, in bytes */

14 blksize_t st_blksize;/* blocksize filesystem I/O */blkcnt_t st_blocks; // num. 512B blocks allocatedstruct timespec st_atim; /* last access */

17 struct timespec st_mtim; /* last modification */struct timespec st_ctim; /* last status change */

20 };38 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Llamadas al Sistema

Multiusuario: permisos

1 int chmod (char *path, int modo);int chown (char *path,int propietario,int

grupo);

4 modo: R_OK, W_OK, X_OK, F_OK

int access (char *path, int modo);7 int umask (int modo);

uid_t getuid(void); uid_t geteuid(void);10 gid_t getgid(void); uid_t getegid(void);

39 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficherosLınea de comandos

Llamadas al Sistema

¿Mas preguntas?

Llamadas al Sistema

Multiusuario: contrasenas

struct passwd *getpwnam(const char * nombre);2 struct passwd *getpwuid(uid_t uid);

struct passwd {5 char *pw_name; /* username */

char *pw_passwd;/* user password */uid_t pw_uid; /* user ID */

8 gid_t pw_gid; /* group ID */char *pw_gecos; /* user information */char *pw_dir; /* home directory */

11 char *pw_shell; /* shell program */};

40 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?¿Mas preguntas?

1 Sistemas de Ficheros

2 Permisos

3 Operacion sobre permisos y ficheros

4 ¿Mas preguntas?

41 / 43

Contenidos

Sistemas deFicheros

Permisos

Operacion sobrepermisos yficheros

¿Mas preguntas?¿Mas preguntas?

¿Mas preguntas?

¿Mas preguntas?

42 / 43

3 Sistemas de ficheros, CLI,usuarios

Introduccion a los Sistemas Operativos,2019-2020

Pablo Gonzalez Nalda

Depto. de Lenguajes y Sistemas InformaticosEU de Ingenierıa de Vitoria-Gasteiz,

UPV/EHU

18 de febrero de 2020