Este documento proporciona una introducción al sistema de archivos de Linux. Explica los conceptos de usuarios y grupos, permisos de archivos, y cómo usar los comandos ls, chmod y otros para ver y modificar los permisos. También cubre el formato y contenido de los archivos /etc/passwd y /etc/group que almacenan información sobre usuarios y grupos.
1. LINUX Básico
TAKASHI SUGASAWA
LINUX Básico (5. Comprensión del sistema de ficheros) 1
2. Programa del curso
1. Introducción a LINUX
2. Operación básica de LINUX
3. Operación de archivos y directorios
4. Editor vi
5. Comprensión del sistema de ficheros
6. Shells(1)
7. Shells(2)
8. Shells(3)
9. Otros comandos
LINUX Básico (5. Comprensión del sistema de ficheros) 2
3. LINUX Básico
5. Comprensión del sistema de ficheros
Índice
5.1 Usuarios y Grupos
5.2 Permisos de ficheros
5.3 inodo
5.4 Enlaces
LINUX Básico (5. Comprensión del sistema de ficheros) 3
4. 5.1 Usuarios y grupos
(1) Usuarios
/etc/passwd
• Este archivo tiene la información asociada a los
usuarios en el sistema.
• Sólo el súper usuario “root” puede modificarlo.
• Todos los usuarios pueden verlo.
• Cada línea tiene la información de un usuario.
(contraseña cifrada) descripción del usuario
usr001:x:501:501::/home/usr001:/bin/bash
nombre del usuario ID del grupo directorio base login shell
ID del usuario
LINUX Básico (5. Comprensión del sistema de ficheros) 4
5. Un ejemplo de /etc/passwd no se pueden usar para Login
[root@linuxpc usr001]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash súper usuario
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin usuarios
para
(omisión) servicios
del
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin sistema
ntp:x:38:38::/etc/ntp:/sbin/nologin
usr000:x:500:500::/home/usr000:/bin/bash
usr001:x:501:501::/home/usr001:/bin/bash
usr002:x:502:502::/home/usr002:/bin/bash
usr003:x:503:503::/home/usr003:/bin/bash
usr004:x:504:504::/home/usr004:/bin/bash
usr005:x:505:505::/home/usr005:/bin/bash usuarios
usr006:x:506:506::/home/usr006:/bin/bash ordinales
usr007:x:507:507::/home/usr007:/bin/bash
usr008:x:508:508::/home/usr008:/bin/bash
usr009:x:509:509::/home/usr009:/bin/bash
usr010:x:510:510::/home/usr010:/bin/bash
los usuarios ordinales que existen en el sistema
LINUX Básico (5. Comprensión del sistema de ficheros) 5
6. 5.1(2) Grupos
¿Qué es grupos?
• El grupo es un conjunto de los usuarios.
• Cada usuario es miembro de un grupo o grupos.
• A todos los miembros de un grupo se les puede dar mismo
capacidades o privilegios.
/etc/grupo
• Este archivo tiene la información acerca de grupos.
• Sólo el súper usuario puede modificarlo.
• Todos los usuarios pueden verlo.
• Cada línea tiene la información siguiente de un grupo.
(contraseña cifrada)
grupo1:x:1000:usr000,usr002,usr004,usr006,usr008,usr010
nombre del grupo identificador del grupo miembros del grupo
LINUX Básico (5. Comprensión del sistema de ficheros) 6
7. Un ejemplo de /etc/grupo
[usr001@linuxpc usr001]$ cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
(omisión) grupos para el sistema
xfs:x:43:
named:x:25:
ntp:x:38:
usr000:x:500:
usr001:x:501:
usr002:x:502: En RedHat LINUX, cuando se añade un usuario, un
usr003:x:503: grupo que tiene mismo nombre se crea al mismo tiempo.
usr004:x:504: Y el usuario va a ser el miembro del grupo
usr005:x:505: automáticamente. grupo “usr001”
usr006:x:506:
usr007:x:507: usuario “usr001”
usr008:x:508:
usr009:x:509:
usr010:x:510:
grupo1:x:1000:usr000,usr002,usr004,usr006,usr008,usr010
grupo2:x:1001:usr001,usr003,usr005,usr007,usr009
todos:x:1002:usr000,usr001,usr002,usr003,usr004,usr005,usr
006,usr007,usr008,usr009,usr010
LINUX Básico (5. Comprensión del sistema de ficheros) 7
8. Para este curso, creé los grupos siguiente.
grupo “todos”
grupo “grupo1”
“usr000”, ”usr002” , ”usr004” , número par
”usr006” , ”usr008” , ”usr010” , …
grupo “grupo2”
“usr001”, ”usr003” , ”usr005” , número impar
”usr007” , ”usr009” , …
LINUX Básico (5. Comprensión del sistema de ficheros) 8
9. 5.2 Permisos de ficheros
(1) Confirmación de permisos de ficheros
Para confirmar los permisos de los ficheros, utilizamos el
comando “ls -l”
[usr001@linuxpc usr001]$ ls -l
total 4
-rw-rw-r-- 1 usr001 usr001 9 ago 14 14:51 arch1
el nombre del fichero
una marca de tiempo
el tamaño (en bytes)
el grupo al que pertenece
el nombre del propietario
el número de enlaces que tiene última modificación
los permisos del fichero cambio de estado (-c)
último acceso (-u)
LINUX Básico (5. Comprensión del sistema de ficheros) 9
10. los permisos del fichero
-rwxrwxrwx
permisos para todos los demás
permisos para el grupo
permisos para el propietario
r: premiso de lectura
w: permiso de escritura
x: permiso de ejecución
el tipo de ficheros
-: Archivo ordinario
b: Archivo de bloque especial
c: Archivo de carácter especial
d: Directorio
l: Enlace simbólico
LINUX Básico (5. Comprensión del sistema de ficheros) 10
11. los permisos del fichero el nombre del propietario el grupo al que pertenece
-rw-rw-r-- 1 usr001 usr001
El propietario “usr001” tiene permisos
de lectura y escritura, no tiene permiso
de ejecución.
El miembro del grupo “usr001” tiene
permisos de lectura y escritura, no tiene
permiso de ejecución.
Todos los demás tienen permiso de
lectura, no tienen permisos de escritura
ni ejecución.
LINUX Básico (5. Comprensión del sistema de ficheros) 11
12. el usuario de ahora
[usr001@linuxpc usr001]$ cd /home/copropiedad
[usr001@linuxpc copropiedad]$ ls -lF
total 44
-r--r----- 1 root todos 23 ago 20 17:00 arch1
-r-------- 1 root todos 23 ago 20 17:00 arch2
-r--r--r-- 1 root root 23 ago 20 17:00 arch3
-r--r----- 1 root root 23 ago 20 17:00 arch4
-r--r----- 1 root grupo1 23 ago 20 17:00 arch5
-r--r----- 1 root grupo2 23 ago 20 17:00 arch6
drwxr-x--- 2 root todos 4096 ago 20 17:04 dir1/
drwxr----- 2 root todos 4096 ago 20 17:04 dir2/
drwx--x--- 2 root todos 4096 ago 20 17:04 dir3/
drwx------ 2 root todos 4096 ago 20 17:04 dir4/
drwxrwx--- 2 root todos 4096 ago 20 17:04 dir5/
[usr001@linuxpc copropiedad]$ cat arch1
El contenido de arch1.
[usr001@linuxpc copropiedad]$ cat arch2 El usuario
cat: arch2: Permiso denegado “usr001”
[usr001@linuxpc copropiedad]$ cat arch3 pertenece al
El contenido de arch3. grupo “grupo2”,
[usr001@linuxpc copropiedad]$ cat arch4 no pertenece a
cat: arch4: Permiso denegado
[usr001@linuxpc copropiedad]$ cat arch5 “grupo1”
cat: arch5: Permiso denegado
[usr001@linuxpc copropiedad]$ cat arch6
El contenido de arch6.
LINUX Básico (5. Comprensión del sistema de ficheros) 12
13. drwxr-x--- 2 root todos 4096 ago 20 17:04 dir1/
drwxr----- 2 root todos 4096 ago 20 17:04 dir2/
drwx--x--- 2 root todos 4096 ago 20 17:04 dir3/
drwx------ 2 root todos 4096 ago 20 17:04 dir4/
drwxrwx--- 2 root todos 4096 ago 20 17:04 dir5/
Cada directorio tiene un archivo que se llama “arch”.
Todos los archivos “arch” iguales. (“El contenido de arch.”)
-r--r----- 1 root todos 22 ago 20 17:04 arch
/home/copropiedad dir1 arch
dir2 arch
dir3 arch
dir4 arch
dir5 arch
LINUX Básico (5. Comprensión del sistema de ficheros) 13
14. drwxr-x--- 2 root todos 4096 ago 20 17:04 dir1/
drwxr----- 2 root todos 4096 ago 20 17:04 dir2/
drwx--x--- 2 root todos 4096 ago 20 17:04 dir3/
drwx------ 2 root todos 4096 ago 20 17:04 dir4/
drwxrwx--- 2 root todos 4096 ago 20 17:04 dir5/
dir1 dir2 dir3 dir4 dir5
r_x r__ __x ___ rwx
1 cd dir□ O X O X O
2 ls -l dir□ O △ X X O
3 ls -l dir□/arch O X O X O
4 cat dir□/arch Creación del O X O X O
5 rm dir□/arch un fichero X X X X O
6 date > dir□/nuevo X X X X O
7 mv dir□/arch dir□/nuevo X X X X O
8 vi dir□/arch X X X X X?
Modificación del archivo Cambio del nombre No ejecuten, por favor.
LINUX Básico (5. Comprensión del sistema de ficheros) 14
15. 5.2 (2) Cambio de permisos de ficheros
Para cambiar los permisos de los ficheros, usamos el
comando “chmod”.
(23) chmod cambiar los permisos de los ficheros.
(ej.) chmod 640 arch
la sintaxis absoluta
chmod g-w arch
la sintaxis relativa
Los permisos de ficheros sólo los puede
cambiar el propietario o el administrador "root".
LINUX Básico (5. Comprensión del sistema de ficheros) 15
16. Sintaxis absoluta
-R: cambia permisos de manera recursiva de
los directorios y de su contenido.
chmod [opciones] modo fichero1 [fichero2 … ]
• el modo numérico en octal que significa todos
los permisos del fichero.
• cada número octal puede tener un valor de 0-7.
• (ej.) 000, 400, 644, 777
Permisos para el propietario
Permisos para el grupo
Permisos para todos los demás
LINUX Básico (5. Comprensión del sistema de ficheros) 16
17. Permisos octales absolutos
100 Permiso de ejecución.
200 Permiso de escritura. para el propietario
400 Permiso de lectura.
010 Permiso de ejecución.
020 Permiso de escritura. para el grupo
040 Permiso de lectura.
001 Permiso de ejecución.
002 Permiso de escritura. para todos los demás
00 4 Permiso de lectura.
LINUX Básico (5. Comprensión del sistema de ficheros) 17
18. Permisos octales absolutos
100 Permiso de ejecución
200 Permiso de escritura para el propietario
400 Permiso de lectura
010 Permiso de ejecución
020 Permiso de escritura para el grupo
040 Permiso de lectura
001 Permiso de ejecución
002 Permiso de escritura para todos los demás
004 Permiso de lectura
754
el modo numérico
LINUX Básico (5. Comprensión del sistema de ficheros) 18
19. Ejemplos
Creación de un
[usr001@linuxpc usr001]$ pwd archivo nuevo.
/home/usr001
[usr001@linuxpc usr001]$ date > arch
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 usr001 29 ago 26 10:30 arch
[usr001@linuxpc usr001]$ chmod 754 arch
[usr001@linuxpc usr001]$ ls -l arch
-rwxr-xr-- 1 usr001 usr001 29 ago 26 10:30 arch
Permisos Comando
--------- chmod 000 arch
rwxrwxrwx chmod 777 arch
rwxr--r-- chmod 744 arch
rwxr-xr-x chmod 755 arch
rw-r----- chmod 640 arch
r-------- chmod 400 arch
LINUX Básico (5. Comprensión del sistema de ficheros) 19
20. Creación de un
[usr001@linuxpc usr001]$ pwd
/home/usr001 archivo nuevo.
[usr001@linuxpc usr001]$ date > arch
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 usr001 29 ago 26 10:25 arch
[usr001@linuxpc usr001]$ cat arch
jue ago 26 10:25:23 ECT 2004
[usr001@linuxpc usr001]$ chmod 600 arch Se puede modificar el archivo.
[usr001@linuxpc usr001]$ ls -l arch
-rw------- 1 usr001 usr001 29 ago 26 10:25 arch
[usr001@linuxpc usr001]$ date >> arch
[usr001@linuxpc usr001]$ ls -l arch Adición de información al archivo.
-rw------- 1 usr001 usr001 58 ago 26 10:26 arch
[usr001@linuxpc usr001]$ cat arch
jue ago 26 10:25:23 ECT 2004 Se ha modificado.
jue ago 26 10:26:09 ECT 2004
[usr001@linuxpc usr001]$ chmod 400 arch Permiso sólo de lectura
[usr001@linuxpc usr001]$ ls -l arch
-r-------- 1 usr001 usr001 58 ago 26 10:26 arch
[usr001@linuxpc usr001]$ date >> arch
-bash: arch: Permiso denegado No se puede modificar.
[usr001@linuxpc usr001]$ cat arch
jue ago 26 10:25:23 ECT 2004
jue ago 26 10:26:09 ECT 2004
[usr001@linuxpc usr001]$ chmod 000 arch Ningún permiso
[usr001@linuxpc usr001]$ ls -l arch
---------- 1 usr001 usr001 58 ago 26 10:26 arch
[usr001@linuxpc usr001]$ cat arch
cat: arch: Permiso denegado No se puede leer.
LINUX Básico (5. Comprensión del sistema de ficheros) 20
21. Sintaxis relativa
-R: cambia permisos de manera recursiva de
los directorios y de su contenido.
chmod [opciones] formula fichero1 [fichero2 … ]
Quién Operador Permiso[, …]
Quién
Permiso
u el propietario.
r Establece a lectura.
g el grupo.
w Establece a escritura.
o todos los demás.
x Establece a ejecución.
a todos los usuarios. Operador
+ Agrega el modo.
- Retira el modo.
= Establece el modo absoluto.
LINUX Básico (5. Comprensión del sistema de ficheros) 21
22. Ejemplos
Creación de un
[usr001@linuxpc usr001]$ pwd archivo nuevo.
/home/usr001
[usr001@linuxpc usr001]$ date > arch
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 usr001 29 ago 26 12:39 arch
[usr001@linuxpc usr001]$ chmod o+w arch
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-rw- 1 usr001 usr001 29 ago 26 12:39 arch
Permisos anteriores Comando Permisos posteriores
rw-rw-r-- chmod o+w arch rw-rw-rw-
chmod o=rw arch
rw-rw-rw- chmod g-rw arch rw----rw-
chmod g= arch
rw----rw- chmod u-w,o-w arch r-----r--
chmod a-w arch
chmod u=r,o=r arch
r-----r-- chmod u+wx,o-r rwx------
chmod u=rwx,o=
LINUX Básico (5. Comprensión del sistema de ficheros) 22
23. 5.2 (3) Cambio de la propiedad del fichero
Para cambiar la propiedad del fichero, usamos el
comando “chown”.
Pero en LINUX, la propiedad del fichero sólo la puede
cambiar el súper usuario "root".
(24) chown cambiar la propiedad del fichero.
(ej.) chown usr001 arch1
LINUX Básico (5. Comprensión del sistema de ficheros) 23
24. 5.2 (4) Cambio de la propiedad de grupo del fichero
Para cambiar la propiedad de grupo del fichero, usamos
el comando “chgrp”.
(25) chgrp cambiar la propiedad de grupo del fichero.
(ej.) chgrp todos arch1
La propiedad de grupo del fichero sólo la puede
cambiar el propietario o el súper usuario "root".
Un usuario ordinario no puede cambiar la propiedad
de grupo al grupo al que no pertenece.
LINUX Básico (5. Comprensión del sistema de ficheros) 24
25. [usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 usr001 29 ago 26 13:40 arch
[usr001@linuxpc usr001]$ chgrp todos arch
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 todos 29 ago 26 13:40 arch
[usr001@linuxpc usr001]$ chgrp grupo1 arch
chgrp: cambiando el grupo de `arch': Operaci・ no permitida
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 todos 29 ago 26 13:40 arch
[usr001@linuxpc usr001]$ chgrp grupo2 arch
[usr001@linuxpc usr001]$ ls -l arch
-rw-rw-r-- 1 usr001 grupo2 29 ago 26 13:40 arch
El usuario “usurio1”
pertenece a los grupos
“todos” y “grupo2”,
no pertenece a
“grupo1”
LINUX Básico (5. Comprensión del sistema de ficheros) 25
26. 5.2 (5) Permisos de ficheros que se crean
• Los permisos de los archivos que se crean son
normalmente “rw_rw_r__”.
[usr000@linuxpc usr000]$ date > arch1
[usr000@linuxpc usr000]$ ls -l arch1
-rw-rw-r-- 1 usr000 usr000 29 sep 16 11:44 arch1
• Los permisos de los directorios que se crean son
normalmente “rwxrwxr_x”.
[usr000@linuxpc usr000]$ mkdir dir1
[usr000@linuxpc usr000]$ ls -ld dir1
drwxrwxr-x 2 usr000 usr000 4096 sep 16 11:47 dir1
• El valor de umask controla los permisos que se crean.
• Para saber el valor de umask actual, usamos el
comando “umask” sin parámetros.
LINUX Básico (5. Comprensión del sistema de ficheros) 26
27. (26) umask Especifica los permisos de los ficheros que
se crean, o informa los valores actuales.
(ej.) umask
umask 022
[usr000@linuxpc usr000]$ umask
0002
En el caso de archivos En el caso de directorios
666 sustracción de 777
-002 los permisos -002
==== ====
664 “rw_rw_r__” 775 “rwxrwxr_x”
• Para cambiar el valor de umask, usamos el comando
“umask” también.
[usr000@linuxpc usr000]$ umask 022
[usr000@linuxpc usr000]$ umask
0022
LINUX Básico (5. Comprensión del sistema de ficheros) 27
28. [usr000@linuxpc usr000]$ umask
0002
[usr000@linuxpc usr000]$ date > arch1
[usr000@linuxpc usr000]$ mkdir dir1
[usr000@linuxpc usr000]$ ls -ld arch1 dir1
-rw-rw-r-- 1 usr000 usr000 29 sep 16 12:49 arch1
drwxrwxr-x 2 usr000 usr000 4096 sep 16 12:49 dir1
[usr000@linuxpc usr000]$ chmod 750 arch1 dir1
[usr000@linuxpc usr000]$ ls -ld arch1 dir1
-rwxr-x--- 1 usr000 usr000 29 sep 16 12:49 arch1
drwxr-x--- 2 usr000 usr000 4096 sep 16 12:49 dir1
[usr000@linuxpc usr000]$ umask 037
[usr000@linuxpc usr000]$ umask
0037
[usr000@linuxpc usr000]$ cp arch1 arch2
[usr000@linuxpc usr000]$ cp -r dir1 dir2
[usr000@linuxpc usr000]$ ls -ld arch2 dir2
-rwxr----- 1 usr000 usr000 29 sep 16 13:01 arch2
drwxr----- 2 usr000 usr000 4096 sep 16 13:01 dir2
sustracción de
750 5 = r w x
los permisos
-0 3 7 - 3 = r w x
====== ============
740 “rwxr_____” 4 = r w x
LINUX Básico (5. Comprensión del sistema de ficheros) 28
29. 5.3 inodo
(1) inodo y número del inodo
• En el sistema LINUX, a cada fichero se le asigna una estructura
única llamada inodo.
• Cada inodo tiene un número único.
• El inodo se guarda en la tabla de inodos, que se asigna al
formatear el disco. Cada disco o partición física tiene su propia
tabla de inodos.
• Un inodo contiene toda la información concerniente a un archivo,
incluida la dirección de la información en el disco y el tipo de
archivo.
• Para saber el número del inodo de cada fichero, usamos el
comando "ls" con la opción "-i".
[usr001@linuxpc usr001]$ ls -iaF /
2 ./ 223553 etc/ 351368 mnt/ 207585 tmp/
2 ../ 351364 home/ 351369 opt/ 319361 usr/
12 .autofsck 351365 initrd/ 1 proc/ 159681 var/
399337 bin/ 351366 lib/ 287425 root/
2 boot/ 11 lost+found/ 351370 sbin/
63873 dev/ 112318 misc/ 305294 tftpboot/
LINUX Básico (5. Comprensión del sistema de ficheros) 29
30. 5.3(2) Contenido del inodo
Cada inodo tiene las información siguientes.
• Archivo ordinario
• Directorio
• Vinculación simbólica
inodo • Archivo de bloque especial
• Archivo de carácter especial
Topo del fichero
• última modificación
Permisos • cambio de estado
ID del propietario • último acceso
ID del grupo bloque de datos
Tamaño bloque de datos
Fechas
Direcciones de bloque de datos
bloques de datos
; bloque de datos
LINUX Básico (5. Comprensión del sistema de ficheros) 30
31. 5.3(3) Estructura de inodos
Ejemplo número del inodo
dir1/ 10
arch1 11
dir2/ 12
arch2 13
Tabla de inodos bloque de datos
. 10
Direcciones de .. xx
bloques de datos arch1 11
10
dir2 12
11 (contenido
de "arch1")
12 . 12
13 .. 10
arch2 13
(contenido
de "arch2")
LINUX Básico (5. Comprensión del sistema de ficheros) 31
32. 5.4 Enlaces
• En LINUX/UNIX hay dos conceptos de enlace, enlace
duro (o físico) y enlace simbólico.
• Enlace simbólico es como "acceso directo" en el
Windows.
• Para crear cualquier enlace, usamos el comando "ln".
(27) ln Crea enlaces entre ficheros.
(ej.) ln original nuevo enlace duro
ln -s original nuevo enlace simbólico
LINUX Básico (5. Comprensión del sistema de ficheros) 32
33. 5.4(1) Enlace duro
• Un enlace duro es simplemente un otro nombre para un fichero, y
un fichero puede tener varios nombres.
• El número de nombres lo muestra el comando "ls -l".
[usr001@linuxpc usr001]$ ls -li
total 4
400935 -rw-rw-r-- 1 usr001 usr001 29 sep 5 20:10 arch1
[usr001@linuxpc usr001]$ cat arch1
dom sep 5 20:10:34 ECT 2004 hay un archivo.
[usr001@linuxpc usr001]$ ln arch1 arch2
[usr001@linuxpc usr001]$ ls -li
total 8 crea un enlace duro "arch2".
400935 -rw-rw-r-- 2 usr001 usr001 29 sep 5 20:10 arch1
400935 -rw-rw-r-- 2 usr001 usr001 29 sep 5 20:10 arch2
[usr001@linuxpc usr001]$ cat arch2
dom sep 5 20:10:34 ECT 2004 igual creado
• No existe el concepto de nombre original: todos tienen la misma
categoría.
• Comparten el mismo inodo.
LINUX Básico (5. Comprensión del sistema de ficheros) 33
34. número del inodo
dir1/ 10
arch1 11
Enlace duro
arch2 11
Tabla de inodos bloque de datos
. 10
Direcciones de .. xx
bloques de datos arch1 11
10
arch2 11
11 (contenido
de "arch1")
LINUX Básico (5. Comprensión del sistema de ficheros) 34
35. [usr001@linuxpc usr001]$ date >> arch2
[usr001@linuxpc usr001]$ ls -li modificación del "arch2".
total 8
400935 -rw-rw-r-- 2 usr001 usr001 58 sep 5 20:11 arch1
400935 -rw-rw-r-- 2 usr001 usr001 58 sep 5 20:11 arch2
[usr001@linuxpc usr001]$ cat arch2
dom sep 5 20:10:34 ECT 2004
dom sep 5 20:11:21 ECT 2004 "arch1" también
[usr001@linuxpc usr001]$ cat arch1 se ha cambiado.
dom sep 5 20:10:34 ECT 2004
dom sep 5 20:11:21 ECT 2004
• Se borra del disco solamente cuando se elimine el último nombre.
[usr001@linuxpc usr001]$ ls -li
total 8
400935 -rw-rw-r-- 2 usr001 usr001 58 sep 5 20:11 arch1
400935 -rw-rw-r-- 2 usr001 usr001 58 sep 5 20:11 arch2
[usr001@linuxpc usr001]$ rm arch1
[usr001@linuxpc usr001]$ ls -li
total 4
400935 -rw-rw-r-- 1 usr001 usr001 58 sep 5 20:11 arch2
[usr001@linuxpc usr001]$ rm arch2
[usr001@linuxpc usr001]$ ls -li
total 0
LINUX Básico (5. Comprensión del sistema de ficheros) 35
36. • Todos los nombres tienen que estar en la misma partición del
disco. Un enlace duro cruzado entre dispositivos no permitido.
• En el LINUX, no podemos hacer un enlace duro a un directorio,
solamente a un archivo. En algún UNIX, se permite el súper
usuario esto.
LINUX Básico (5. Comprensión del sistema de ficheros) 36
37. 5.4(2) Enlace simbólico
• Un enlace simbólico es un ficherito especial que contiene un
nombre de camino, como "acceso directo" en el Windows.
• Para crear un enlace simbólico, usamos el comando "ln" con la
opción "-s".
[usr001@linuxpc usr001]$ ls -l hay un archivo.
total 4
-rw-rw-r-- 1 usr001 usr001 29 sep 5 21:42 arch1
[usr001@linuxpc usr001]$ cat arch1
dom sep 5 21:42:16 ECT 2004
[usr001@linuxpc usr001]$ ln -s arch1 arch2
[usr001@linuxpc usr001]$ ls -l
total 4 crea un enlace simbólico "arch2".
-rw-rw-r-- 1 usr001 usr001 29 sep 5 21:42 arch1
lrwxrwxrwx 1 usr001 usr001 5 sep 5 21:42 arch2 -> arch1
indica el enlace simbólico. creado
• Cuando se accede a un enlace simbólico, el núcleo del sistema
operativo reemplaza una referencia al enlace con una referencia al
fichero nombrado en el nombre de camino.
[usr001@linuxpc usr001]$ cat arch2
dom sep 5 21:42:16 ECT 2004
LINUX Básico (5. Comprensión del sistema de ficheros) 37
38. número del inodo
dir1/ 10
arch1 11
arch2 12 Enlace simbólico
Tabla de inodos bloque de datos
. 10
Direcciones de
bloques de datos .. xx
10 arch1 11
11 (contenido
de "arch1")
12
arch1
LINUX Básico (5. Comprensión del sistema de ficheros) 38
39. • Algunos comandos manejamos el mismo enlace.
[usr001@linuxpc usr001]$ ls -l
total 4
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:46 arch1
lrwxrwxrwx 1 usr001 usr001 5 sep 6 10:47 arch2 -> arch1
[usr001@linuxpc usr001]$ cp arch2 arch3
[usr001@linuxpc usr001]$ ls -l copia la referencia de
total 8 "arch2" a "arch3"
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:46 arch1
lrwxrwxrwx 1 usr001 usr001 5 sep 6 10:47 arch2 -> arch1
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:49 arch3
[usr001@linuxpc usr001]$ mv arch2 arch4
[usr001@linuxpc usr001]$ ls -l traslada el mismo enlace
total 8
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:46 arch1
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:49 arch3
lrwxrwxrwx 1 usr001 usr001 5 sep 6 10:47 arch4 -> arch1
[usr001@linuxpc usr001]$ rm arch4
[usr001@linuxpc usr001]$ ls -l borra el mismo enlace
total 8
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:46 arch1
-rw-rw-r-- 1 usr001 usr001 29 sep 6 10:49 arch3
• Los enlaces simbólicos cruzados entre dispositivos son posibles.
LINUX Básico (5. Comprensión del sistema de ficheros) 39
40. • El nombre de camino puede ser absoluto o relativo.
[usr001@linuxpc usr001]$ ls -lFR
.:
total 4
drwxrwxr-x 2 usr001 usr001 4096 sep 6 11:05 dir1/
./dir1: ambos apuntan a "arch1". relativo
total 4
-rw-rw-r-- 1 usr001 usr001 29 sep 6 11:04 arch1
lrwxrwxrwx 1 usr001 usr001 5 sep 6 11:04 arch2 -> arch1
lrwxrwxrwx 1 usr001 usr001 25 sep 6 11:05 arch3 -> /home
/usr001/dir1/arch1
[usr001@linuxpc usr001]$ cp -r dir1 dir2 absoluto
[usr001@linuxpc usr001]$ ls -lFR
.:
total 8
drwxrwxr-x 2 usr001 usr001 4096 sep 6 11:05 dir1/
drwxrwxr-x 2 usr001 usr001 4096 sep 6 11:10 dir2/
./dir1:
total 4
-rw-rw-r-- 1 usr001 usr001 29 sep 6 11:04 arch1
lrwxrwxrwx 1 usr001 usr001 5 sep 6 11:04 arch2 -> arch1
lrwxrwxrwx 1 usr001 usr001 25 sep 6 11:05 arch3 -> /home
/usr001/dir1/arch1
./dir2: creados
total 4
-rw-rw-r-- 1 usr001 usr001 29 sep 6 11:10 arch1
lrwxrwxrwx 1 usr001 usr001 5 sep 6 11:10 arch2 -> arch1
lrwxrwxrwx 1 usr001 usr001 25 sep 6 11:10 arch3 -> /home
/usr001/dir1/arch1
LINUX Básico (5. Comprensión del sistema de ficheros) 40
41. ¡ Muchas gracias por su atención !
¡ Hasta pronto !
En la próxima hora, vamos a aprender “6. Shells(1)”.
LINUX Básico (5. Comprensión del sistema de ficheros) 41