Title: Que hay en un archivo
1Que hay en un archivo?
2- El formato de un archivo es determinado por los
programas que lo usan - El tipo de archivo no es determinado por el
sistema de archivos - El kernel no sabe nada acerca del tipo de archivo
- Cada archivo es simplemente una secuencia de bytes
3 file /bin /bin/ed /c/amort.c /bin
directory /bin/ed
ELF 32-bit LSB executable, Intel 80386, version 1
(SYSV), dynamically linked (uses shared libs),
for GNU/Linux 2.6.9, stripped /home/fcordoba/c/am
ort.c ASCII C program text
4Directorios y archivos
ls junk pwd /home/fcordoba/you mkdir
recipes cd recipes pwd /home/fcordoba/you/reci
pes mkdir pie cookie cd .. tree . --
junk -- recipes -- cookie -- pie 3
directories, 1 files
5PERMISOS
6- Cada archivo tiene permisos
- Cada usuario tiene un password
- El archivo /etc/passwd es el archivo de passwords
7 grep fcordoba /etc/passwd fcordobax500501Fr
ank Cordoba/home/fcordoba/bin/tcsh
ls -l /etc/passwd -rw-r--r-- 1 root root 1763
2008-04-11 1330 /etc/passwd
8 ls -ld you drwxrwxr-x 3 fcordoba fcordoba 4096
2008-08-04 1518 you/ la opcion -d indica
que queremos informacion sobre los permisos del
directorio en si. r significa que el directorio
se puede leer, esto es podemos ver que archivos
se encuentran en este directorio. w significa
que podemos crear y borrar archivos en el
directorio. El permiso para borrar un archivo es
independiente de los permisos del archivo en
si. Finalmente x no significa ejecutable sino
que significa que podemos buscar en el
directorio. Por ejemplo, podemos crear un
directorio con permisos - - x para el resto del
mundo, de tal forma que un usuario puede accesar
un archivo que sabe que esta alli pero no puede
ver que archivos se encuentran en este
directorio. De la misma manera, un directorio
con permisos r - - permite a los ususarios ver lo
que se encuntra en el directorio pero no pueden
usar los archivos del directorio.
9Cambio de Permisos
- chmod permisos archivos ...
- Seria conveniente si pudieramos nada mas
hacer chmod rw-rw-rw junken lugar
de chmod 666 junk - Pero no se puede. El modo octal se especifica
como 4 para read, 2 para write y 1 para
execute
10Cambio de Permisos
- chmod x programa
- chmod -w archivo
- Si uno puede escribir a un directorio (w)
entonces uno puede remover archivos sin importar
los permisos de los archivos. - Para proteger tus archivos quitale el permiso de
escribir al directorio a el resto del mundo.
11Inodes
12Inodes
- Un archivo tiene varios componentes nombre
contenido informacion administrativa
tiempos en que el archivo fue modificado - Esta informacion no se almacena en el archivo
sino en una estructura conocida como inode - El inode contiene que tan largo es el archivo, en
que parte del disco esta guardado, el tiempo en
que el archivo se modifico, la ultima vez que se
uso, el tiempo que el inode se modifico, etc. - En cierto sentido el inode es el archivo
13Inodes
- En UNIX es posible desplegar el contenido de un
directorio - En Linux (Fedora en particular) no es posible.
- Los primeros dos octetos de cada
entrada('entry) de un directorio contienen el
numero del inode. - Esta es la unica coneccion entre el nombre del
archivo y su contenido. - Por lo tanto, al nombre del archivo en un
directorio se le llama una liga (link) porque
liga el nomber al inode e indirectamente a los
datos del archivo. - El mismo numero del inode puede aparecer en
varios directorios.
14Desplegar los numeros de los inodes (esto es
valido en UNIX y Linux)? ls -i 15768
junk 15274 recipes (este es un
directorio)? 15852 x
15Desplegar el contenido del directorio en si
(esto es valido en UNIX per no en Linux)? od
-c . 0000000 4 . \0 \0 \0 \0 \0 \0 \0 \0
\0 \0 \0 \0 \0 0000020 273 ( . . \0 \0 \0 \0
\0 \0 \0 \0 \0 \0 \0 \0 0000040 252 r e c
i p e s \0 \0 \0 \0 \0 \0 \0 0000060 230
j u n k \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000100
354 x \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
\0 0000120 od -d . 0000000 15156 00046 00000
00000 00000 00000 00000 00000 0000020 10427 11822
00000 00000 00000 00000 00000 00000 0000040 15274
25970 26979 25968 00115 00000 00000 00000 0000060
15768 30058 27502 00000 00000 00000 00000
00000 0000100 15852 00120 00000 00000 00000 00000
00000 00000 0000120 rm x od -d . 0000000
15156 00046 00000 00000 00000 00000 00000
00000 0000000 10427 11822 00000 00000 00000 00000
00000 00000 0000040 15274 25970 26979 25968 00115
00000 00000 00000 0000060 15768 30058 27502 00000
00000 00000 00000 00000 0000000 00000 00120 00000
00000 00000 00000 00000 00000 0000120
16Inodes
- El comando rm no remueve inodes.
- Solamente remueve entradas (entries) en el
directorio esto es solamente remueve ligas
(links)? - Solamente cuando la ultima a un archivo
despaparece el sistema remueve el inode y por lo
tanto el archivo en si. - Si el numero del inode en la entrada (entry) en
el directorio es cero, esto significa que la liga
(link) ha sido removida pero no necesariamente
el contenido del archivo ya que puede haber otra
liga al archivo en algun otro directorio. - El proximo archivo creado en el directorio
ocupara el lugar vacante y tendra un nuevo numero
de inode.
17Inodes
- El comando ln crea una liga (link) ln
nombre_viejo nombre_nuevoo mas comunmente
ln -s nombre_viejo nombre_nuevo - El primero crea un hard link y el segundo crea
un symbolic link
18 cat junk Este es el archivo junk. ls -l total
20 -rw-rw-r-- 1 fcordoba fcordoba 26 2008-08-20
1718 junk drwxrwxr-x 4 fcordoba fcordoba 4096
2008-04-23 1333 recipes/ -rw-rw-r-- 1 fcordoba
fcordoba 0 2008-08-20 1719 typescript ln
junk hardlink ls -l total 28 -rw-rw-r-- 2
fcordoba fcordoba 26 2008-08-20 1718
hardlink -rw-rw-r-- 2 fcordoba fcordoba 26
2008-08-20 1718 junk drwxrwxr-x 4 fcordoba
fcordoba 4096 2008-04-23 1333 recipes/ -rw-rw-r--
1 fcordoba fcordoba 0 2008-08-20 1719
typescript cat hardlink Este es el archivo
junk. ln -s junk symlink cat symlink Este es
el archivo junk. ls -l total 32 -rw-rw-r-- 2
fcordoba fcordoba 26 2008-08-20 1718
hardlink -rw-rw-r-- 2 fcordoba fcordoba 26
2008-08-20 1718 junk drwxrwxr-x 4 fcordoba
fcordoba 4096 2008-04-23 1333 recipes/ lrwxrwxrwx
1 fcordoba fcordoba 4 2008-08-20 1720
symlink -gt junk -rw-rw-r-- 1 fcordoba fcordoba
0 2008-08-20 1719 typescript rm junk ls
-l total 24 -rw-rw-r-- 1 fcordoba fcordoba 26
2008-08-20 1718 hardlink drwxrwxr-x 4 fcordoba
fcordoba 4096 2008-04-23 1333 recipes/ lrwxrwxrwx
1 fcordoba fcordoba 4 2008-08-20 1720
symlink -gt junk -rw-rw-r-- 1 fcordoba fcordoba
0 2008-08-20 1719 typescript cat symlink cat
symlink No such file or directory cat hardlink
Este es el archivo junk.