Sie sind auf Seite 1von 13

URACCAN

Sistemas Operativos
Práctica No 3
Sistema de ficheros
Contenido
▪ Niveles de acceso a la información.
▪ Órdenes para el manejo de ficheros y directorios.
▪ Enlaces
Un fichero o archivo se puede definir como un conjunto de datos con un nombre asociado.

Un sistema de ficheros es la parte del sistema operativo responsable de la administración de los


datos en dispositivos de almacenamiento secundario y proporciona los medios necesarios para el
acceso, almacenamiento y seguridad de la información.

En UNIX los ficheros están organizados en lo que se conoce como directorios.

Un directorio es un fichero especial, el cual contiene información que permite localizar en el dispositivo
otros ficheros.

A la estructura resultante de esta organización se la conoce con el nombre de estructura en árbol


invertido.

raiz (“/”) : Todos los ficheros y directorios de un sistema UNIX cuelgan de un directorio principal llamado
"raíz", que se representa como "/". La raíz es el único directorio que no tiene directorio padre.

(/home): Es el directorio hogar de los usuarios, aquí se almacena un directorio por cada usuario del sistema.

(/media): Aquí se montan las unidades de CD, DVD y USB.

(/boot): Archivos fundamentales para el arranque del sistema, aquí es donde se encuentra el Grub.

/bin : Aquí se encuentran los programas de uso más común para los usuarios (Ej ls, cat, cp, etc).
/etc : Este directorio contiene órdenes y archivos de configuración empleados en la administración del
sistema. Estas pueden ser ejecutadas por usuarios
privilegiados (Ejemplo root (administrador)).

/dev : Contiene los ficheros de dispositivos empleados


para la comunicación con dispositivos periféricos
(impresora, discos, terminales, etc).
• Directorio raíz (/)
Todos los ficheros y directorios dependen de un único
directorio denominado directorio raíz, el cual se representa
por el símbolo /. En el caso de que en el sistema tengamos
varios dispositivos físicos de almacenamiento secundario
(normalmente discos), todos deben depender del directorio
raíz, y el usuario tratará cada uno de los discos como un
subdirectorio que depende del directorio raíz.
1
URACCAN
Sistemas Operativos

• Directorio de conexión (~)


Se trata de un directorio que el administrador del sistema crea o asigna cuando crea un usuario. El
propósito de este directorio es suministrar un punto en la jerarquía de directorios del sistema de ficheros
UNIX a partir del cual el usuario puede almacenar y estructurar sus propios ficheros y directorios. Se
representa mediante el símbolo ~.
Para saber tu directorio de conexión puedes ejecutar:
$ echo $HOME

• Directorio de trabajo (.)


El directorio de trabajo o actual es el directorio en el que nos encontramos operando en cada momento
de la sesión. Se representa mediante un punto .
Asociado al concepto de directorio de trabajo está el concepto de directorio padre, que se representa
mediante .. y que sirve para denotar al directorio del que depende el directorio de trabajo.
Para conocer tu directorio de trabajo (print working directory) ejecuta la orden:
$ pwd

1) Ejercicios:
a. Averigua tu directorio de conexión.
b. Averigua tu directorio de trabajo.
c. Entra al directorio raíz con: cd /
d. Averigua de nuevo tu directorio de conexión y directorio de trabajo, hay
algún cambio con las preguntas 1 y 2?

• Trayectorias o Nombres de camino


Los ficheros se identifican en la estructura de directorios por lo que se conoce como nombre de
camino, trayectoria o path name.

Camino absoluto o completo. Consistente en el conjunto de nodos por los que hemos
de pasar, partiendo del directorio raíz, para llegar al fichero o directorio que queremos
referenciar.
Ejemplo: /usr/bin/troff

Camino relativo. Tenemos dos formas de acceder a un fichero usando una trayectoria
relativa, según tomemos en consideración el directorio de trabajo o el directorio de
conexión:

2
URACCAN
Sistemas Operativos
1. Respecto del directorio de trabajo:
a) Suponiendo que nuestro directorio de trabajo es /usr:
Camino relativo al directorio de trabajo (situados desde usr a troff): bin/troff

b) Suponiendo que nuestro directorio de trabajo es /usr/bin/troff:


Camino relativo al directorio de trabajo (situados desde troff a /usr/local/bin):
../../local/bin

NOTA: Para el camino relativo se pueden utilizar la cadena ".." para ascender en el
árbol.

2. Respecto del directorio de conexión.


Ejemplo1:
- Suponiendo que nuestro directorio de conexión actual es /usr, el camino relativo a troff
seria ~/bin/troff

Ejemplo 2:
- Suponiendo que nuestro directorio de conexión actual es /users/ssp, la referencia al
fichero o directorio anterior seria ~/../../usr/bin/troff

3
URACCAN
Sistemas Operativos
Ejercicio:

2) Mediante el dibujo escribe:


- Camino completo a documento2.txt
- Camino completo a arch2.txt
- Camino completo a arch4.txt
- Camino relativo a documento5.txt desde carpeta3.
- Camino relativo a arch1.txt desde carpeta2
- Camino relativo a documento1.txt si el directorio de conexión es /home/usuario
- Camino relativo a arch3.txt el directorio de conexión es /home/usuario

• Nombre de fichero
El nombre de un fichero en UNIX puede tener hasta 255 caracteres y aunque no existe el concepto
de extensión de un fichero es posible incluir el carácter . tantas veces como se desee, la única
consideración a tener en cuenta en este sentido, es la referente a los nombres de fichero cuyo primer
carácter es . a los que históricamente se denominan ficheros ocultos ya que por defecto no son
mostrados por la orden ls. Una denominación más precisa para estos ficheros sería la de ficheros sin
interés habitual, ya que se suelen utilizar para configurar aplicaciones y normalmente el usuario no tiene
interés en verlos.
Es importante tener en cuenta que los intérpretes de comandos de UNIX (denominados shell) consideran
distintos los caracteres en mayúsculas de los caracteres en minúscula. Por lo tanto no son equivalentes
los ficheros: programa.c y Programa.c. Ej:
programa, programa.c, programa.c.primera_version, base_datos.1992

4
URACCAN
Sistemas Operativos
3) Ejercicio:
- utiliza: ls –al ¿Existe algún fichero oculto en su directorio de conexion?
- Cree en su directorio de conexión un directorio oculto ( mkdir .dir1)
(ponerle un punto al principio del nombre lo hace oculto).

Caracteres comodín y especiales


Existe en UNIX un conjunto de caracteres cuya combinación permite que el intérprete de órdenes los
substituya por un grupo de símbolos. Estos caracteres se denominan caracteres comodín. De entre los
existentes destacamos los siguientes:

"*" Representa cualquier conjunto de símbolos. Por ejemplo, sabiendo que el comando ls permite listar
el contenido de un directorio;
$ ls * # lista todos los ficheros del directorio de trabajo
$ ls ab* # lista los ficheros que empiecen por ab

"?" Representa un símbolo arbitrario.


$ ls a?b # lista los ficheros cuyos nombres tengan
tres caracteres, el primero sea una a y el
último una b

"[...]" Representan un símbolo del conjunto.


$ ls ab[123] # imprime (si existen) los ficheros ab1, ab2 y ab3

"[!...]" Representa un símbolo NO contenido en el conjunto.


$ ls [!ab]* # imprime los ficheros cuyo nombre NO comienza por ni por a ni por b

Aparte de los caracteres comodín, existen otros caracteres cuyo significado es especial para la shell.
Entre estos: < , > , | , &.

4) Ejercicio:
- Listar todos los ficheros del directorio /etc que comiencen por “i” y terminen
por “b” . ¿Qué ficheros tienen como segunda letra una “ s” ? ¿Qué ficheros
tienen como tercera letra una consonante?
Listado de ficheros
La orden ls se utiliza para visualizar el contenido de un directorio. Su sintaxis es la siguiente:
ls [parámetros] [path_name]

Si no indicamos path_name, se presentará el contenido del directorio de trabajo actual. Según los
parámetros utilizados en la orden (campo parámetros en la sintáxis), obtendremos distintos tipos de
información acerca de los ficheros. Especialmente relevantes son los siguientes:
-a permite visualizar los ficheros ocultos (aquellos que empiezan por .).
-l lista los ficheros en formato largo, incluyendo información adicional completa acerca de cada uno de
ellos.

5
URACCAN
Sistemas Operativos

odo del fichero: El primer carácter del campo “derechos de acceso” se refiere a:

Derechos de acceso (rwxrwxrwx):


Informan de los permisos del fichero. Para ello, cada fichero lleva asociada una cadena de 9 caracteres,
donde el carácter “-“ supone que dicho permiso (rwx) NO está habilitado.

Niveles de acceso a la información


Estos son tres:
• Nivel de usuario. Son los modos de acceso a la información permitidos para el propietario del fichero.
• Nivel de grupo. Modos de acceso a la información permitidos para cualquier usuario que pertenezca al
mismo grupo que el del propietario del fichero.
• Nivel de otros. Modos de acceso a la información permitidos para los usuarios del sistema que ni son
el propietario del fichero ni pertenecen a su mismo grupo.

Cada nivel tiene tres modos de acceso diferentes:


* Acceso para lectura "r".
* Acceso para escritura "w".
* Acceso para ejecución "x".

6
URACCAN
Sistemas Operativos
Cada usuario del sistema tiene un número identificador (UID) único dentro del sistema y también pertenece a
un grupo de usuarios identificado unívocamente dentro del sistema por un número (GID). Cada fichero lleva
asociado el identificador de usuario propietario y la del grupo al que pertenece.

Orden id
La orden id devuelve el identificador (número) de usuario y de grupo del usuario que le indiquemos. La
opción -u visualiza sólo el UID (identificador del usuario) y la opción -g visualiza únicamente el GID
(identificador del grupo).
Su sintaxis es: $ id [-ug] [usuario]

5) Ejercicio:
- ¿Cuáles son sus identificadores de usuario y de grupo?
- Haga un recorrido por los directorios más importantes del sistema, visualizando
los ficheros contenidos en ellos. Localice algún fichero ordinario, directorio,
especial modo carácter, especial modo bloque y algún enlace simbólico.

La orden chmod (change mode):


Permite cambiar los permisos de un fichero. La utilización de esta función está restringida exclusivamente al
propietario del fichero o al administrador del sistema.
La sintaxis es la siguiente:
chmod modo fichero1 [fichero2 ... ]

donde modo supone el modo de acceso al fichero que se desea asignar.

Para utilizar la orden:


Consiste en fijar con un número de tres dígitos los permisos de los tres niveles de la jerarquía de
usuarios. Para ello, la cadena de 9 caracteres que indican los permisos de acceso al fichero que se
quieren asignar, se convierten a dígitos binarios, poniendo un 1 en el caso de que se quiera activar el
campo (rwx) o un 0 en el caso de querer desactivarlo.
Ejemplo:

Para poder realizar operaciones sobre cualquier directorio (leer o escribir) será necesario
siempre, tener otorgado además el permiso de ejecución.
7
URACCAN
Sistemas Operativos

Apis:~$ pwd
/home/arq005
Apis:~$ ls -l prog.c
-rw-r----- 1 arq005 users 1024 Sep 3 14:58 prog.c
Apis:~$ chmod 754 prog.c
Apis:~$ ls -l
-rwxr-xr-- 1 arq005 users 1024 Sep 3 14:58 prog.c

Orden cd
Se utiliza para cambiar de directorio de trabajo actual.
Su sintaxis es la siguiente:
cd [path_name]
Cuando se utiliza sin parámetros, el directorio de trabajo actual pasa a ser el directorio propio (el del
arranque), también conocido como directorio HOME, dicho de otro modo, si nuestro directorio actual
es /usr/local, dando la orden cd nos colocamos en nuestro directorio HOME, directorio en el que
iniciamos sesión de trabajo, es decir el directorio que tenemos al entrar en el sistema.
Tanto cd, como pwd son órdenes internas del intérprete, no existe ningún fichero ejecutable en el que
estén programadas.

6) Ejercicio:
- Cree un directorio que se llame Dir1 colgando de su directorio de conexión. ¿Con que
permisos se crea?
- Cree un archivo que se llame texto.txt dentro de Dir1 ¿Con que permisos se crea?
- Modifique los permisos del archivo con 000. Intente leer o escribir ¿Qué ocurre?
- Habilite los permisos de lectura a todos. Intente leer o escribir ¿Qué ocurre?
- Habilite los permisos de lectura y escritura solo al propietario. Intente leer o escribir ¿Qué
ocurre?
- Modifique los permisos del directorio Dir1 con 000. Intente entrar(cd) , leer(ls) o escribir
(mkdir) ¿Qué ocurre?
- Habilite los permisos de lectura a todos. Intente leer(ls), escribir (mkdir) o entrar(cd) ¿Qué
ocurre?
- Habilite los permisos de lectura y escritura solo al propietario. Intente leer(ls), escribir
(mkdir) o entrar(cd) ¿Qué ocurre?
- Habilite los permisos rwx para el propietario. Intente leer(ls), escribir (mkdir) o entrar(cd)
¿Qué ocurre?
- Que función realiza el permiso de ejecución en un directorio?

8
URACCAN
Sistemas Operativos
Mascara de permisos: es el valor de los permisos por defecto que se asignan a un nuevo
archivo o directorio.
La orden umask permite modificar la máscara de permisos. Su sintaxis es:
umask [###]

• Llamado sin parámetros, el resultado son tres dígitos octales que indican de izquierda a derecha el
valor de la máscara que determina los permisos iniciales para el propietario, el grupo y para el resto
de usuarios.

.----------- Permisos especiales (siempre es 0 en umask)


| .--------- usuario (propietario)
| | .------- grupo
| | | .----- otros
| | | |
↓ ↓ ↓ ↓

0 0 2 2

• Para poder realizar operaciones sobre cualquier directorio (leer o escribir) será necesario
siempre, tener otorgado además el permiso de ejecución.
• No puede asignarse el permiso de ejecución por defecto a los archivos (el sistema lo elimina).

Para cambiar la máscara debemos utilizar la orden umask seguido de tres dígitos octales que
representan los permisos que deseamos NEGAR!!

$ umask xxx

donde xxx es un número octal de tres dígitos cuyos valores van de 0 a 7, e indican:

Valor Permisos para fichero Permisos para directorio


0 rw- rwx
1 rw- rw-
2 r-- r-x
3 r-- r--
4 -w- -wx
5 -w- -w-
6 --- --x
7 --- ---

9
URACCAN
Sistemas Operativos

Ejemplo:
$umask
022
Permisos de:
Directorios= rwx r-x r-x
Archivos= rw- r - - r - -

$umask 016
Los directorios y archivos que se creen desde ahora, tendrán los siguientes permisos:
Directorios= rwx rw- - -x
Archivos= rw- rw- - - -

7) Ejercicios:
- Cuál es la máscara de permisos en su sistema?
- Cree un directorio Dir2 y un archivo texto2.txt. Cuáles son los permisos para
cada uno?
- Modifique la máscara de permisos a 042. Cuál será el resultado en ficheros y
directorios?
- Cree un directorio Dir3 y un archivo texto3.txt. Cuáles son los permisos para
cada uno?
- Restablezca la máscara de permisos a su valor original.
Comando de administrador: sólo el root puede cambiar el propietario o grupo de un archivo o directorio.
Está restringido el cambio de propietario o grupo para usuarios normales por motivos de seguridad.

- Cambio del propietario de un fichero. Orden chown


La sintaxis de chown es la siguiente:
$ sudo chown propietario_nuevo ficheros

- Cambio del grupo de un fichero. Orden chgrp


La sintaxis de chgrp es la siguiente:
$ sudo chgrp grupo_nuevo ficheros

Es necesario pertenecer al grupo_nuevo para poder cambiarlo. La orden groups permite conocer a qué grupos
pertenece un usuario.

8) Ejercicio:
- Cree un directorio Dir1 y un archivo arch.txt.
- Cree un usuario tempo2.
- Cambie de propietario y grupo, Dir1 y arch.txt por tempo2 (utilice sudo).
- Inicie sesión como tempo2 e intente crear el directorio Dir3 en Dir1 y modificar
arch.txt, que ocurre?, explique.

10
URACCAN
Sistemas Operativos
Visualización y manejo de ficheros
En UNIX existe un conjunto de órdenes que permiten visualizar el contenido de ficheros.
Orden cat
La sintaxis es:
cat [nombre_fichero]
Se utiliza para visualizar el contenido de un fichero de texto por la pantalla.

Órdenes head y tail


Las órdenes head y tail se pueden utilizar para visualizar las primeras o las últimas N líneas de un
fichero de texto.
Su sintaxis es:
head [-N] fichero1
tail [-N] fichero1

Ordenes básicas para la gestión de ficheros bajo UNIX


Orden cp
Se utiliza para copiar ficheros. Su sintaxis es:
$ cp fichero_origen destino
Como mínimo necesita dos argumentos. El primero es el fichero existente que queremos copiar en otro
lugar, y el segundo es el nombre del fichero destino. Las rutas de ambos ficheros se pueden dar tanto en
forma absoluta como relativa.

Orden rm
Se utiliza para borrar un conjunto de ficheros. Su sintaxis es:
$ rm [-irf] fichero1 fichero2 ...
Esta orden es especialmente peligrosa.
Las opciones tienen el siguiente significado:
$ rm –irf directorio
Borra el directorio con sus archivos y subdirectorios.
-i (interactive) antes de borrar cada uno de los ficheros, rm preguntará si realmente queremos
hacerlo.
-r (recursivo) borra ficheros y subdirectorios.
-f (force) fuerza el borrado de los ficheros, incluso si estos están protegidos contra escritura (el
fichero debe pertenecer al usuario que quiere borrarlo).

Orden mv
Su funcionalidad es idéntica a cp, salvo que mv provoca que los ficheros o directorios origen
desaparezcan de su localización inicial. Su sintaxis es:
$ mv origen1 [origen2 ...] destino

Orden which
Esta orden se emplea para buscar en los directorios especificados en el PATH de usuario el fichero que
le especifiquemos. Como resultado, visualiza en forma de camino absoluto el nombre del fichero.
Su sintaxis es:
$ which fichero

11
URACCAN
Sistemas Operativos
Orden whereis
La orden whereis acepta como parámetro únicamente el nombre de una orden. Devuelve el
directorio donde reside dicha orden y la página correspondiente donde se encuentra en el manual. Los
flags -b -m y -s se utilizan para limitar la búsqueda a binario, pagina del manual o código fuente,
respectivamente.
Su sintaxis es:
$ whereis [-b -m -s] orden

Orden su
La orden su permite cambiar nuestro identificador de usuario. Cuando se invoca, nos pide la palabra
clave del usuario al que queremos cambiar. Si a su no le pasamos como parámetro ningún nombre de
usuario, asumirá que deseamos convertirnos en root. Obviamente, si no conocemos la palabra clave del
usuario, la orden fallará.
Su sintaxis es:
$ su [nombre del usuario]

Órdenes para manejar directorios

Las dos órdenes que necesitamos para manipular directorios son mkdir y rmdir.
mkdir nom_directorio
rmdir nom_directorio
mkdir (make directory) permite crear un nuevo directorio.
rmdir (remove directory) lo elimina. Para eliminar un directorio vacío.

La orden pwd se utiliza para mostrar nuestro directorio actual de trabajo, tal y como indican sus iniciales ( print
working directory ).
Su sintaxis es la siguiente:
$pwd

9) Ejercicios:
- Cree un directorio Dir3.
- Copie en Dir3 el archivo passwd que se encuentra en /etc.
- Visualice el archivo. (cat)
- Visualice las 2 primeras líneas del archivo y las dos ultimas,
- Cree un segundo directorio hermano de Dir3 de nombre Dir4.
- Copie en Dir3 y Dir4 el archivo /etc/apt/sources.list
- Cree un tercer directorio hermano de Dir3 y Dir4, de nombre Dir5.
- Mueva su copia de passwd a Dir4.
- Elimine el directorio Dir5.
- Elimine el directorio Dir4.
- Renombre el archivo sources.list por orígenes.list.
- Localice con (whereis) la orden sudo.
- Localice con (which) el archivo texto.txt
- Cual es su directorio de trabajo actual?

12
URACCAN
Sistemas Operativos

Orden ln (Enlaces):
Enlaces Fuertes o duros:
Se utiliza para permitir que un mismo fichero aparezca en el sistema de ficheros bajo dos nombres diferentes, es
decir que se crea otro nombre de fichero que hace referencia al mismo fichero físico. Si eliminamos alguna de
sus referencias, solo eliminaremos el nombre pero no el fichero. Este solo será eliminado si eliminamos todos
los vínculos. El numero de enlaces de un fichero lo indica el segundo campo de la información que obtenemos
con la orden ls –l. Los enlaces fuertes no son aplicables a directorios.
Ejemplo:

enlaceF3
enlaceF1
enlaceF2

Enlaces Débiles o suaves:


Con este tipo de enlaces se hace copia del fichero origen y ambos archivos están enlazados como en un reflejo.
Por esto es posible utilizar enlaces suaves en ficheros que se encuentran en diferentes sistemas de ficheros. Para
crear enlaces simbólicos se utiliza la orden ln con la opcion –s (soft).
enlaceS1

arch

Nota: Utilice ls –i nombre_archivo, para ver los inodes (numero asignado por Linux para identificar a cada
fichero del sistema) de los archivos.

10) Ejercicios:
- Cree en su directorio de conexión un directorio que se llame p02.
- Copie el fichero PASSWD del sistema (se localiza en /etc) en el directorio p02.
- Cree un enlace fuerte a un fichero situado en su directorio de conexión y compare el número de
enlaces que tiene ahora y los que tenía antes de realizar esta operación.
- Realice de nuevo la misma operación pero en este caso sobre un directorio. ¿Puede realizar un
enlace blando sobre un directorio?
- Borre el fichero original. ¿Puede acceder a los datos a través del soft-link? ¿y a través del hard-
link? ¿Qué ocurre si creamos un fichero con el mismo nombre que el que hemos borrado? ¿Puede
acceder a los datos a través del soft-link? ¿y a través del hard-link?
- Intente realizar un enlace fuerte sobre el fichero de contraseñas del sistema. ¿Qué ocurre? ¿Por
qué? Realice un enlace blando. ¿Qué ocurre? ¿Por qué?
13

Das könnte Ihnen auch gefallen