Administración Linux

Transcripción

Administración Linux
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Administración Linux
Administración Sistemas Archivos
Roberto Gómez Cárdenas
[email protected]
http://webdia.cem.itesm.mx/ac/rogomez
Roberto Gómez C.
Lámina 1
Los sistemas de archivos
Usuario
“FAT
(FAT-12 FAT-16 FAT-32
Disco
“VFAT
Usuario
“32-
BIT FAT
“New
Technologie File Systems NTFS
Version 1.1 / 4.0
“NTFS
“High
Versión
Performance File Systems
“BeOS
File Systems (BFS)
“De
propósito general (minix, xiafs, extfs,
ext2fs, efs, reiserfs, enh-fs)
“Sistema
Arhivos de Red (NFS, AFS,
Coda, nbd, GFS)
“Especiales
(tmpfs, swapfs, userfs, devfs)
“De
solo lectura (High Sierra, iso9660,
Rock Ridge, Joliet, Trivia, UDF)
Lámina 2
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
1
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Lo que debe de saber
•
•
•
•
Tipos sistemas archivos
Características FHS
Directorios dispositivos
Formatear y verificar sistemas archivos
– comando fdisk
• Formateo de una partición
– comando mkfs
• Análisis y reparación de particiones
– comando fsck
• El sistema de archivos ext2
Roberto Gómez C.
Lámina 3
Seguridad sistemas archivos
• Basada en el concepto de permisos
• Permisos permiten controlar quien puede acceder sus
archivos y directorios para lectura, escritura y
ejecución.
• Algunos permiten a ciertos programas operar con
permisos extras (e.g. super-usuario)
• En nuevos sistemas bits de permisos en directorios
pueden usarse para prohibir a usuarios que borren
archivos que no le pertenecen.
Lámina 4
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
2
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Los permisos de los archivos
• Archivos cuentan con permisos, el significado
varia un poco entre archivos y directorios
ejecución (propietario)
escritura (propietario)
lectura (propietario)
0
ejecución otros)
escritura (otros)
lectura (otros)
0
0
ejecución (grupo)
escritura (grupo)
0
0
0
0
0
0
lectura (grupo)
Roberto Gómez C.
Lámina 5
Significado permisos en
directorios
• r:
– autorización de leer el directorio ( comando ls )
• w:
– autorización de escribir en el directorio
– (creación, modificación o supresión de archivos)
• x:
– autorización para posesionarse en el directorio (
comando cd )
Lámina 6
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
3
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Comandos útiles para manejo
permisos archivos
• Comando ls -l
– despliega los bits de permisos asociado con un
archivo o directorio
emata@francia:34> ls -l
total 4
d r w x r - x r - x 1 cachafas
512 Oct 12 10:13 Sundraw
d r w x r - x r - x 1 cachafas
512 Dec 11 20:13 Sunpaint
- r w x r - x r - x 1 cachafas
512 Sep 15 18:13 toto
- r w - r - x - - x 1 cachafas
512 Jan 12 1999 curso.html
emata@francia:35>
Roberto Gómez C.
Lámina 7
Comandos útiles para manejo
permisos archivos
• Comando chmod
– permite cambiar los permisos
– permisos en formato octal o simbólico
emata@francia:34> la -lg e1
- r w - r w - r w - 1 toto
0 Oct 12 18:20 e1
emata@francia:36> chmod 755 e1
emata@francia:37> ls -l e1
- r w x r - x r - x 1 toto
0 Oct 12 18:20 e1
emata@francia:38> chmod a-x e1
emata@francia:39> ls -l e1
- r w - r - - r - - 1 toto
0 Oct 12 18:20 e1
emata@francia:40>
Lámina 8
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
4
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Comandos útiles para manejo
permisos archivos
• Comando: chown usuario archivo(s)
– cambia el propietario de un archivo o directorio.
– en BSD solo puede ejecutarlo el super-usuario
– en System V cualquier usuario puede ejecutarlo en
sus propios archivos
# ls -l
-rw-r-r-- 1
emata
19 May 1 18:09 arch1
# chown root arch1
# ls -l
-rw-r-r-- 1
#
root
19 May 1 18:09 arch1
Roberto Gómez C.
Lámina 9
Comandos útiles para manejo
permisos archivos
• Comando chgrp
– cambia el grupo de un archivo o directorio.
– sintaxis: chgrp grupo archivo(s)
– usuario puede ejecutarlo en los propios archivos
emata@francia:72> ls -lg
-rw-r-r-- 1 emata
40
19 May 1 18:09 arch1
emata@francia:73> chgrp 22 arch1
emata@francia:74> ls -lg
-rw-r-r-- 1 emata
22
emata@francia:75>
Lámina 10
Dr. Roberto Gómez Cárdenas
19 May 1 18:09 arch1
Roberto Gómez C.
5
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Permisos por default y umask
• Abreviación de user file creation mode mask
• El número octal de cuatro digitos que Unix usa para
determinar los permisos de los nuevos archivos
creados.
• Especifica los permisos que no se quiere que tengan
los nuevos archivos y directorios.
• Comando trabaja haciendo un AND de bits con el
complemento de umask
• Por default los archivos se crean con permiso 666 y
los directorios con 777
Roberto Gómez C.
Lámina 11
El comando umask
• Es un comando interno (built-in) de sh, ksh y csh
• Los valores más comunes son 022, 027 y 077
• Un valor de 022 permite que lea y escriba todos los
archivos recien creados, y el resto solo puede leerlos.
0666 (mode de creación por default)
0022 (valor de umask)
0644 (modo resultante)
• Con 077 solo el propietario puede leer y escribir los
archivos creados
0666 (mode de creación por default)
0077 (valor de umask)
0600 (modo resultante)
Lámina 12
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
6
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
El comando umask (cont)
• Una forma simple de calcular valores de umask es
recordar que:
– valor 2: apaga el permiso de escritura
– valor 7: apaga permisos lectura, escritura y ejecución
• Si se esta usando ksh, se puede asignar el valor de
umask de forma simbólica, tal y como se hace con el
comando chmod
emata@francia:7> umask u=rwx, g=x
emata@francia:8> umask 067
Roberto Gómez C.
Lámina 13
El sticky bit
• Aplicable en archivos ejecutables
• Le indica a Unix que deje el ejecutable en
memoria después de que esta haya terminado su
ejecución
• Dejando el programa en memoria, reduce el
tiempo para otros usuarios (en teoría)
• Fue una interesante idea hace tiempo, pero es
obsoleta hoy en día
– técnicas memoria virtual la hacen innecesaria
– paginación hace que ya no se use
Lámina 14
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
7
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Sticky bit y los directorios
• Si un usuario tiene permiso escritura en un directorio
puede renombrar o borrar archivos en él (aunque no le
pertenezcan)
• Varias nuevas versiones de Unix tiene una forma de
impedir lo anterior
• El propietario del directorio puede activar el sticky bit
• Los usuarios que pueden renombrar o borrar archivos
en dicho subdirectorio son:
– el propietario del archivo
– el propietario del directorio
– el superusuario
Roberto Gómez C.
Lámina 15
Ejemplo uso sticky bit en directorios
egarcia> mkdir proyecto
egarcia> chmod 777 proyecto
egarcia> ls -ld
drwxrwxrwx
2 egarcia profes
32 Sep 23 19:30 proyecto
/* usuario jvazquez borra un archivo que no le pertenece */
jvazquez> cd /home/usr/egarcia/proyecto
ls -lg
total 3
-rw-r--r-- 1 rogomez profes 120 Sep 23 19:23 data.rogomez
-rw-r--r-- 1 jvazquez profes 3421 Sep 24 20:03 data.jvazquez
-rw-r--r-- 1 egarcia
profes 728 Sep 25 01:34 data.egarcia
-rw-r--r-- 1 aortiz
profes 716 Sep 27 12:52 data.aortiz
jvazquez> rm data.aortiz
Lámina 16
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
8
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
jvazquez> ls -lg
total 2
-rw-r--r-- 1 rogomez
-rw-r--r-- 1 jvazquez
-rw-r--r-- 1 egarcia
profes 120 Sep 23 19:23 data.rogomez
profes
3421 Sep 24 20:03 data.jvazquez
profes 728 Sep 25 01:34 data.egarcia
egarcia> chmod 1777 proyecto
egarcia> ls -ld
drwxrwxrwxt
2 egarcia profes
32 Sep 23 19:30 proyecto
jvazquez> rm data.rogomez
data.rogomez: 644 mode ? y
rm: data.rogomez not removed
Permission denied
jvazquez>
Roberto Gómez C.
Lámina 17
Los usuarios y los procesos
• Procesos pertenecen a un solo y único
usuario
• El propietario es el que lanzó el proceso
– puede enviarle señales y, en consecuencia,
matarlo
• Para lanzarlo debe poseer los permisos de
ejecución del archivo que contiene el código
binario
Lámina 18
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
9
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
• La “propiedad” del archivo del código no influye
en la del proceso
– usuario toto ejecuta código de un archivo que pertenece
a cachafas
– el proceso pertenece a usuario toto
• Esto es limitativo
– se desea permitir a un usuario modificar el contenido de
un archivo sin darle derecho de escritura en él
– ejemplo archivo /etc/passwd, un usuario debe poder
cambiar su password sin poder modificar el archivo que
lo contiene
Roberto Gómez C.
Lámina 19
El bit Set UID (SUID)
• Derecho complementario de un proceso que
condiciona la propiedad del proceso que ejecuta
su código
• Retomando el ejemplo anterior:
– si usuario cachafas activa el bit SUID del archivo
– el usuario toto es el propietario del archivo, pero el
propietario efectivo es cachafas
– toto adquiere los derechos de cachafas durante el
tiempo que dure la ejecución del proceso
Lámina 20
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
10
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Cuidados del bit SUID
• El bit SUID puede representar un hoyo en la
seguridad del sistema
• Es necesario minimizar el número de archivos
que pertenezcan al super-usuario y que tengan
activado el bit SUID
• Algunas versiones de Unix ignoran el bit
SUID y SGID en scripts, solo programas
compilados pueden tenerlo activo
Roberto Gómez C.
Lámina 21
El bit Set Group ID (SGID)
• Mismo principio que SUID pero para grupos
• Ejecutar un archivo con bit SGID activo
asigna el ID de grupo del usuario al mismo
que el del archivo ejecutado, durante el
tiempo que dura la ejecución de este
• Archivos con SGID o SUID activo pierden
sus propiedades especiales cuando son
copiados
Lámina 22
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
11
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo bits SUID y SGID
rogomez@armagnac:3> ls -l /usr/bin/passwd /usr/bin/login
/usr/bin/mailx /etc/passwd
-rw-r--r-- 1 root
752 Oct 22 1998 /etc/passwd
-r-sr-xr-x 1 root
29192 Jul 15 1997 /usr/bin/login*
-r-x--s--x 1 bin
127540 Jul 15 1997 /usr/bin/mailx*
-r-sr-sr-x 3 root
96796 Jul 15 1997 /usr/bin/passwd*
rogomez@armagnac:4>
Roberto Gómez C.
Lámina 23
Comando chmod: SGID, SUID, sticky
bit
chmod n777 a1
Valor n
Efecto
Ejemplo
Resultado ls -l a1
1
Activar sticky bit
chmod 1777 a1
-rwxrwxrwt
2
Activar SGID
chmod 2777 a1
-rwxrwsrwx
4
Activar SUID
chmod 4777 a1
-rwsrwxrwx
6
Activar SUID y SGID
chmod 6777 a1
-rwsrwxswx
0
Desactivar sticky bit,
SUID y SGID
chmod 0777 a1
-rwxrwxrwx
Lámina 24
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
12
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Las listas de control de acceso (acl)
• Algunos sistemas que cumplen con el libro Naranja,
han cambiado el sistema de protección de permisos
al de listas de control de acceso.
• Se basa en el concepto de derechos sobreentendidos
• Se trata de afinar la noción de permiso a usuarios o
grupos específicos
• Se puede dotar de permisos de rwx a un
determinado usuario o grupo de usuarios
• Existen en Unix desde hace más de diez años
• No todas las versiones de Unix lo soportan
Roberto Gómez C.
Lámina 25
Comandos
• Dos comandos
– getfacl archivo
• despliega el ACL del archivo
– setfacl archivo
• opción -m: modificación del ACL
user:<user name>:rwx
group:<group name>:rwx
other:rwx
• opción -x: borrar entradas ACL
setfacl -x g:staff file
• Necesario montaje apropiado
mount -o remount,acl /
Lámina 26
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
13
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo uso ACLs
Desplegando permisos de forma normal:
root@cachafas:2# ls -l /usr/local/sshd
- -rwx------ 1 root bin
2616160 Apr 28 1997 /usr/local/sshd
root@cachafas:3#
Verificando permisos con comando getfacl:
root@cachafas:3# getfacl /usr/local/sshd
# file: /usr/local/sshd
# owner: root
# group: bin
user::rwx
group::--mask:--other:--root@cachafas:4#
Roberto Gómez C.
Lámina 27
Extendiendo los permisos
root@cachafas:4# setfacl -m user:toni:r-x /usr/local/sshd
root@cachafas:5# getfacl /usr/local/sshd
# file: /usr/local/sshd
# owner: root
# group: bin
user::rwx
user:toni:r-x
group::--mask:--other:--root@cachafas:6#
Lámina 28
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
14
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Advertencia ACLs
• ACLs no son un estándar entre las versiones de Unix.
• Es posible que no funcionen en un ambiente de
sistema de archivos en red.
• Sun planea soportar ACLs a través de extensiones en
NFS3, más que implementar ACLs en su
implementación.
• Hay que asegurarse que cualquier sistema que se
exporte esta protegido adecuadamente por los
permisos UNIX por default y las condiciones del
propietario
Roberto Gómez C.
Lámina 29
Respaldos (backups)
• Es una copia de los datos escrita en cinta u otro medio
de almacenamiento duradero.
• De manera rutinaria se recuerda a los usuarios de
computadoras que respalden su trabajo con frecuencia.
• Los administradores de sitios pueden tener la
responsabilidad de respaldar docenas o incluso de
cientos de máquinas
• Comandos en Unix:
– comandos de compresión
– comando tar
Lámina 30
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
15
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Comandos comprimir
Formato archivo
Comando para
comprimir/decomprimir
Comentarios
.Z
zcat / uncompress
Lempel -Ziv code
.z
pcat / unpack
Huffman Code
.zip
zip / unzip
Lempel-Ziv code
.gz
gzip/gunzip
versión GNU de zip
.rar
rar / unrar
unrar e -r archivo.rar
unrar x -r
.bzip
bzip / bunzip2
bzip2 archivo
unzip2 archivo.bz2
Roberto Gómez C.
Lámina 31
Ejemplo comandos compresión
toto@cachafas:2>ls -l
total 1080
-rw-r--r-- 1 rogomez 394751 Jan 26
-rw-r--r-- 1 rogomez 372670 Jan 26
-rw-r--r-- 1 rogomez 300325 Jan 26
toto@cachafas:3>gzip arch1.pdf
toto@cachafas:4>ls -l
total 1064
-rw-r--r-- 1 rogomez 382986 Jan 26
-rw-r--r-- 1 rogomez 372670 Jan 26
-rw-r--r-- 1 rogomez 300325 Jan 26
toto@cachafas:5>gunzip arch1.pdf.gz
toto@cachafas:6>ls -l
total 1080
-rw-r--r-- 1 rogomez 394751 Jan 26
-rw-r--r-- 1 rogomez 372670 Jan 26
-rw-r--r-- 1 rogomez 300325 Jan 26
toto@cachafas:7>
Lámina 32
Dr. Roberto Gómez Cárdenas
2001 arch1.pdf
2001 arch2.pdf
2001 arch3.pdf
2001 arch1.pdf.gz
2001 arch2.pdf
2001 arch3.pdf
2001 arch1.pdf
2001 arch2.pdf
2001 arch3.pdf
Roberto Gómez C.
16
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Comando tar
• Crea archivos de cinta, añade o extrae archivos.
• El comando archiva o extrae varios archivos en un
solo archivo con extensión .tar
• Sintaxis:
tar c [bBefFhiloPvwX [ 0-7]] [block ] [tarfile ][exclude-file ]
[ -I include-file ] [-C directory file | file ]...
tar r [bBefFhilvw [ 0-7]] [block ] [ -I include-file ] [-C directory file | file ]...
tar u [bBefFhilvw [ 0-7]] [block ] [tarfile ] file ...
tar t [bBefFhilvX [ 0-7]] [block ] [tarfile ][exclude-file ] [ -I include-file | file]...
tar x [BefFhilmopvwX [ 0-7]] [tarfile ][exclude-file ] [ -I include-file ] [ file ]...
Roberto Gómez C.
Lámina 33
Opciones comando tar
• c: crear archivo
• r: reemplazar
• u: actualizar. Los archivos son añadidos al
archivo tar si no existen
• x: extraer/ restablecer
• v: verbose, da información de lo que el
comando tar está haciendo
Lámina 34
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
17
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo comando tar
toto@cachafas:7> ls -l
-rw-r-r--
1
al444561
96
Jul 1 17:08 arch1
-rw-r-r--
1
al444561
456
May 1 18:09 arch2
-rw-r-r--
1
al444561
56
May 5 2:69 arch3
toto@cachafas:8> tar -cfv nuevo arch1 arch2
toto@cachafas:9> ls -l
-rw-r-r--
1
al444561
96
Jul 1 17:08 arch1
-rw-r-r--
1
al444561
456
May 1 18:09 arch2
-rw-r-r--
1
al444561
56
May 5 2:69 arch3
-rw-r-r--
1
al444561
680
Jul 1 17:10 nuevo.tar
toto@cachafas:10> rm arch1
toto@cachafas:11> rm arch2
toto@cachafas:12>
Roberto Gómez C.
Lámina 35
Ejemplo comando tar (cont)
toto@cachafas:12> ls -l
-rw-r-r--
1
al444561 56
-rw-r-r--
1
al444561
May 5 2:69 arch3
680 Jul 1 17:10 nuevo.tar
toto@cachafas:13> tar -xfv nuevo
toto@cachafas:14> ls -l
-rw-r-r--
1
al444561
-rw-r-r--
1
al444561 456 May 1 18:09 arch2
96 Jul 1 17:08 arch1
-rw-r-r--
1
al444561
56 May 5 2:69 arch3
-rw-r-r--
1
al444561
680 Jul 1 17:10 nuevo.tar
toto@cachafas:15>
Lámina 36
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
18
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Compresión y empaquetamiento
• Comando zip comprime y empaqueta,
– gzip ó bzip2 sólo comprimen archivos ,no directorios
• Para comprimir y empaquetar en un archivo al mismo
tiempo hay que combinar el tar y el gzip o el bzip2
• Archivos .tar.gz (tgz)
– Empaquetar y comprimir: tar -zvcf archivo.tgz directorio
– Desempaquetar y descomprimir:
tar -zvxf archivo.tgz
– Ver contenido:
tar -zvtf archivo.tgz
• Archivos tar.bz2 (tbz)
– Empaquetar y comprimir: tar -jvcf archivo.tbz directorio
Desempaquetar y descomprimir:
tar -jvxf archivo.tbz
– Ver contenido:
tar -jvtf archivo.tbz
Roberto Gómez C.
Lámina 37
El comando dump
• Construye una lista de los archivos que han sido
modificados desde el último dump.
– Posibilidad de acceder a multiples cintas
– Archivos de cualquier tipo (aún dispositivos) pueden ser
respaldados y restablecidos
– permisos, propiedades y estampillas tiempo son conservados
– respaldos pueden hacerse de forma incremental
• No es conveniente usar dump en un sistema de archivo
montado con actividad.
– la forma _canónica_ de usar dump es respaldar sistemas de
archivo _desmontados_; si no se puede desmontar, entonces
hacerlo a una hora en la cual no haya movimiento.
Lámina 38
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
19
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo comando dump
• Realizar respaldo de una partición /dev/sda1 en /dev/rmt0
# dump 0sfu 3600 /dev/rmt0 /dev/sda1
# dump 0sfu mis02: /dev/rmt0 /dev/sda1
• Segunda orden permite copia de seguridad de un disco sobre un
dispositivo remoto
– por ejemplo situado aquí sobre la máquina "mis02".
• Algunas opciones de dump:
– 0 a 9 : nivel de copia de seguridad. 0 corresponde a una copia de
seguridad completa, mientras que los otros niveles n corresponden a la
copia de seguridad de archivos que fueron modificados desde la enésima
copia de seguridad;
– s : tamaño de la cinta en pies;
– f : archivo. Puede estar compuesto de máquina:archivo;
– u : escritura de la fecha y del nivel de copia de seguridad en el archivo
/etc/dumpdate
Roberto Gómez C.
Lámina 39
Comando restore
• Para restaurar la cinta es necesario:
# restore -if /dev/rmt0
# restore -if mis02:/dev/rmt0
• Para restaurar completamente una cinta:
# restore -if /dev/rmt0
# restore -if mis02:/dev/rmt0
Lámina 40
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
20
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Monitoreando sistemas archivos
• Buscar anomalías
– comando find()
– usarlo para encontrar archivos no usuales o que no
deberían de estar en el sistema
• Eliminar anomalías
– comando rm
– comando rmdir
Roberto Gómez C.
Lámina 41
Comando find
• Util para encontrar un archivo que cumpla con
determinadas características
• El usuario no necesita de ningún privilegio para poder
ejecutar dicho comando
• Sintaxis:
– find pathname(s) expression(s) action(s)
– pathname
• path del directorio donde empezara la busqueda
– expression
• criterio de busqueda
• si la expresión es verdadera, la acción especificada se llevará a cabo
Lámina 42
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
21
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Expresiones comando find
Expresión
-name filename
Busca archivos que
concuerden con el nombre
-size [+|-] n
mayores que +n, menores –n o iguales a n
-atime [+|-] n
-user loginID
accedidos mas de +n días, menores –n
días y exactamente n días
modificados mas de +n días, menores –n
días y exactamente n días
tengan propietario a loginID
-type
concuerden con un tipo archivo (f,d,s)
- perm
cuenten con ciertos permisos
-mtime [+|-] n
Roberto Gómez C.
Lámina 43
Acciones comando find
Acción
Definición
-exec command {} \; ejecuta command a cada archivo encontrado.
Los corchetes { }, delimita donde se pasa el
archivo como argumento. Espacio, backslash
y punto y coma (\;) delimita el final del
comando
-ok command {} \;
especifica la forma interactiva de –exec.
Requiere entrada antes que find aplique el
command al archivo,
-print
imprime el path completo en la salida
estándar, es el default
-ls
imprime el pathname con todas sus
características
Lámina 44
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
22
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplos uso comando find
• Busqueda archivos llamado core, desde directorio raíz
$ find / -name core
• Busqueda archivos llamados core, desde directorio
hogar y borrarlos cuando se encuentran
$ find ~ -name core - exec rm {} \;
• Archivos, desde directorio trabajo, que no han sido
modificados en los últimos 90 días
$ find . - mtime +90
• Archivos mayores que 57 bloques (512-byte blocks) a
partir directorio hogar
$ find ~ -size +57
Roberto Gómez C.
Lámina 45
Borrando archivos: rm
• Sintaxis rm:
– rm [-firv ] archivo(s)
• borra el nombre de un archivo
• si ese nombre fuera el último (numero de ligas = 1), el
archivo será "físicamente" suprimido.
• opciones:
–
–
–
–
f: ignora archivos no existentes y nunca previene
i: interactivo, previene al usuario
r: borra contenido de directorios recursivamente
v: imprime nombre archivo antes de borrarlo
Lámina 46
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
23
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Borrando directorios
• Sintaxis:
– rmdir directorios
• Borra un directorio.
• No borra el directorio si este no se encuentra
vacío.
Roberto Gómez C.
Lámina 47
Borrando archivos curiosos
• ¿Cómo borrar archivos que comienzan con un
guión?
– rm -toto
– el - es considerado como una opción
– existen dos formas borrarlo:
emata@francia:7> rm ./-toto
emata@francia:8> rm - -toto
Lámina 48
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
24
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Borrando archivos curiosos
• ¿Cómo borrar archivos cuyo nombre incluye
caracteres de control?
– usar el comando rm con la opción -i y un asterisco
emata@francia:7> rm -i *
rm: remove faq.html (y/n)? n
rm: remove toto (y/n)? y
emata@francia:8>
Roberto Gómez C.
Lámina 49
Descubriendo archivos curiosos
• Usar la opción -q del comando ls
• los archivos con caracteres de control en sus
nombres apareceran con signos de interrogación
• se aconseja definir un alias
emata@francia:7> alias ls ls -q
emata@francia:8> ls f*
faq.html
fmMacros
fmdictionary
fo?o
faxmenu.sea.hqx
fmMacrosLog.backup
emata@francia:9>
Lámina 50
Dr. Roberto Gómez Cárdenas
fmfilesvisited
Roberto Gómez C.
25
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
NFS
Network File System
Roberto Gómez C.
Lámina 51
NFS: Network File System
• Desarrollado por Sun Microsystems en 1990.
• Diseñado para permitir que diferentes hosts
compartan archivos a través de la red.
• Uso común: permitir que estaciones diskless
almacenen información en un host central.
• Basado en paradigma cliente/servidor:
– servidor NFS exporta uno o más sistemas de archivos
– cliente puede montar el sistema de archivos o un sub-árbol
de él en su jerarquía de archivos tal y como si montara un
sistemas archivos local
Lámina 52
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
26
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Particiones disco y puntos de montaje
partición
de la raíz
/
}
}
/dev/hda1
/dev/hda2
tmp
etc
bin
punto
de
montaje
usr
users
bin
lib
include
hugo paco
/dev/hdb
luis
}
Roberto Gómez C.
Lámina 53
Los comandos mount/umount
• Sintaxis comando mount
mount -t sistema_archivos dispositivo directorio [-o opciones]
• Los argumentos de mount
– sistemas archivos: cualquiera de los siguientes:
Tipo
Descripción
ext2
Sistema de archivos de Linux.
msdos
Sistema de archivos de DOS.
vfat
Sistema de archivos de Windows 9X (nombres largos)
iso9660
Sistema de archivos de CD-ROM
nfs
Sistema de archivos compartido por red (``exportado'')
Lámina 54
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
27
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Montando sistemas archivos remotos
• Usar comando mount
• A través de las entradas en la tabla de sistema de
archivo: /etc/fstab
– estas entradas son leídas como respuesta a un comando
mount -a o mountall
• Usando el automounter, programa que monta un
sistema de archivos por demanda y los desmonta de
nuevo si no son accesados durante unos minutos
– operación controlada usando un conjunto de mapas de
automonteo que pueden ser archivos locales o mapas NIS
Roberto Gómez C.
Lámina 55
Sintaxis mount
mount -t sistema_archivos dispositivo directorio [-o opciones]
• dispositivo
– puede ser cualquier dispositivo del directorio /dev o, en el
caso de nfs, un directorio de otra computadora
• directorio
– directorio donde estará el contenido del dispositivo
• opciones
– pueden ser cualquiera de la tabla
– en el caso de no poner ninguna opción, mount utilizará las
opciones por defecto
• rw, suid, dev, exec, auto, nouser, async
Lámina 56
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
28
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Opciones comando mount
Opción
Descripción
rw
Lectura/escritura.
ro
Sólo lectura.
exec
Se permite ejecución.
user
Los usuarios pueden ``montar''/``desmontar''.
suid
Tiene efecto los identificadores de propietario y del grupo
auto
Se puede montar automáticamente.
async
Modo asíncrono.
sync
Modo síncrono.
dev
Supone que es un dispositivo de caracteres o bloques.
• Un ejemplo simple
mount /dev/dsk/ls0
/users
Roberto Gómez C.
Lámina 57
Ejemplos mount y umount
• Disquete de DOS:
# mount -t msdos /dev/fd0 /mnt/floppy -o rw,noexec
# umount /mnt/floppy
• Disquete de Windows 9X:
# mount -t vfat /dev/fd0 /mnt/floppy -o user,rw
# umount /mnt/floppy
• CD-ROM:
# mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro
# umount /mnt/cdrom
• Directorio exportado de host2:
# mount -t nfs host2:/tmp /mnt/host2
# umount /mnt/host2
Lámina 58
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
29
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo montajes
mount
local
mount
local
Máquina: toto
Máquina: cachafas
/
toto
donald
mimi
/
mount
remotos
cachafas
hugo paco
luis
toto
donald
mimi
cachafas
hugo paco
luis
• Los puntos montaje /toto /cachafas son nombrados después de la máquina
cuyo sistema de archivos es montado en ese punto
– no es esencial, pero es una convención que evita confusiones
• NFS no garantiza una consistencia global del sistema de archivos
Roberto Gómez C.
Lámina 59
El archivo fstab
• Archivo configuración que almacena información de
todas las particiones y dispositivos de almacenamiento
en la computadora.
– donde y como se van a montar las particiones/dispositivos
• Archivo localizado en /etc
– /etc/fstab
– en Solaris se conoce como /etc/vfstab
• Texto en claro, edición con cualquier editor y con
privilegios de root
• Archivo leído por el comando mount
Lámina 60
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
30
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Organización del archivo
• Dispositivo/partición a
montar
• Punto de montaje
• Tipo de sistema de
archivos
• Opciones de montaje
• Dump
• fsck
Roberto Gómez C.
Lámina 61
La primera columna
• Indican el dispositivo o partición y el punto de
montaje.
• El punto de montaje especificado para un dispositivo
en /etc/fstab es el punto de montaje por defecto.
• Es el directorio donde el dispositivo será montado,
sino se especifica cualquier otro punto de montaje.
• La mayor parte de las distribuciones Linux cuentan
con directorios especiales para puntos de montaje
– RedHat: directorio /mnt
– SySE: /media
Lámina 62
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
31
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Tipos de sistemas de archivos
• ext2, ext3, reiserfs
– sistemas de archivos estándar de Linux
– ext3 y reiserfs soportan “journalisation¨”
• swap
– partición de intercambio
• vfat y ntfs
– particiones Windows
• auto
– no es un sistema de archivos, significa que el sistema de archivos es
detectado automáticamente, p.e. floopy, CD-ROM
• otros
– adfs, affs, coda, coherent, cramfs, devpts, efs, hfs, hpfs, iso9660, jfs,
minix, msdos, ncpfs, nfs, proc, qnx4, romfs, smbfs, sysv, tmpfs, udf, ufs,
umsdos, xenix, xfs
Roberto Gómez C.
Lámina 63
Opciones de montaje …
• auto/noauto
– con la opción auto el dispositivo se monta automáticamente
– es la opción por defecto
– con la opcion noauto dispositivo solo se puede montar explicitamente
• user/nouser
– permite que usuarios comunes y corrientes monten el dispositivo
– nouser solo permite que el usuario root (opción por defecto)
– posible causa de que un usuario no pueda montar su CDROM, floppy,
particion Windows, etc
• exec/noexec
– exec permite ejeuctar binarios que se encuentran en dicha partición
– noexec usado en particiones que contienen binarios que no se desea, o no
se pueden, ejecutar (p.e. partición Windows)
Lámina 64
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
32
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Opciones de montaje (2)
• ro
– monta el sistema de archivos en solo lectura
• rw
– monta el sistema de archivos como de lectura/escritura
• suid/nosuid
– permite/bloquea la operación de los bits SUID y SGID
• dev/nodev
– permite/bloquea acceso a archivos especiales de dispositivos
• sync
– especifica como se debe hacer la entrada/salida en el sistema de archivos
– sync significa que debe hacer de forma síncrona
• defaults
– utiliza los opciones por defecto: rw, suid, dev, exec, auto, nouser, y
async
Roberto Gómez C.
Lámina 65
Columna dump y fsck
• Columna dump
– dump: utilería de respaldo
– utilería dump la verifica y usa el número para decidir si el
sistema de archivos debe respaldarse
– si cuenta con un valor de cero, dump ignora la partición
• Columna fsck
– fsck: utilidad de verificación de sistemas archivos
– comando fsck verifica el valor de la columna para
determinar el orden en que el sistema de archivos será
verificado
– si es cero, el sistema no es verificado
Lámina 66
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
33
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
El archivo /etc/exports
• Archivo que lista los archivos que se pueden exportar
a otros sistemas.
• Una línea en este archivo contiene el nombre del
sistema de archivos a exportar y una lista de hosts
que puede montarlo.
• Si no se especifica ningún host, cualquier host puede
montar el sistema de archivos.
• Se pueden usar grupos de hosts en lugar de hosts
individuales.
• Archivo en texto claro.
Roberto Gómez C.
Lámina 67
Sintaxis archivo /etc/export
directorio1
directorio2
maquina1(opciones) maquina2(opciones)
maquina1(opciones) maquina3(opciones)
• Contiene el directorio a exportar, las máquinas que pueden
usarlo y las opciones de cómo exportarlo
• Las líneas en blanco son ignoradas, se pueden comentar líneas
con el símbolo #
• Líneas largas pueden ser divididas con una barra invertida (\).
• Cada sistema de archivos exportado debe tener su propia línea.
• Las máquinas autorizadas debe estar separada por un espacio.
• Las opciones para cada uno de las máquinas deben ser
colocadas entre paréntesis directamente detrás del
identificador de la máquina, sin ningún espacio de separación
entre la máquina y el primer paréntesis.
Lámina 68
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
34
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Definiendo las máquinas
• Una sola máquina
– nombre completo de dominio, hostname o IP
• Comodines
– carácter * o ? para referenciar un grupo de hosts
– cuidado: *.gpo.com permite ventas.gpo.com, pero no toto.ventas.gpo.com
• Redes IP
– permite acceso a máquinas basadas en sus direcciones IP dentro de una red
más grande
– por ejemplo: 192.168.0.0/15 (192.168.0.0 - 192.168.0.15)
• Grupos de redes
– permite que un nombre de grupo de red NIS sea usada
– escrita como @<group-name>
– pone al servidor NIS controlando el acceso al sistema de archivos, donde
usuarios pueden ser borrados o añadidos de un grupo NIS
Roberto Gómez C.
Lámina 69
Opciones /etc/export …
• ro
– solo lectura
• rw
– lectura escritura
• aync / sync
– Permite al servidor escribir los datos en el disco cuando lo crea
conveniente
– host realiza cambios a sistema archivos rw y el servidor cae, datos se
pueden perder
– activando opción sync todos las escrituras deben ser confirmadas antes
de la que la petición del cliente sea completada
• wdelay / no_wdelay
– Provoca que el servidor NFS retrase el escribir a disco si sospecha que
otra petición de escritura es inminente.
– Esto puede mejorar el rendimiento reduciendo las veces que se debe
acceder al disco por comandos de escritura separados
Lámina 70
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
35
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Opciones /etc/export (2)
• root_squash / no_root_squash
– asigna a los usuarios root conectados remotamente los
privilegios del usuario nobody
– opción no_root_squash lo desactiva
• all_squash
– reconvierte a todos los usuarios, no solo a root
• anonuid anoigid
– permite especificar los ID de usuario y grupo para usar con
usuarios remotos desde una máquina particular
– se puede crear una cuenta especial para usuarios NFS
remotos para compartir y especificar
• anouid = <valor-uid> (valor-uid: numero del id del usuario)
• anongid = <valor-gid> (valor-gid: número del id del grupo)
Roberto Gómez C.
Lámina 71
Ejemplos archivos /etc/exports
• Un primer ejemplo
/
/projects
/usr
/home/joe
/pub
master(rw) trusty(rw,no_root_squash)
proj*.local.domain(rw)
*.local.domain(ro) @trusted(rw)
pc001(rw,all_squash,anonuid=150,anongid=100)
(ro,insecure,all_squash)
• Un segundo ejemplo
/home
/usr/X11R6
/usr/TeX
/
/home/ftp
vale(rw) vstout(rw) vlight(rw)
vale(ro) vstout(ro) vlight(ro)
vale(ro) vstout(ro) vlight(ro)
vale(rw,no_root_squash)
(ro)
• Cuidado con los espacios:
Lámina 72
/home bob.example.com(rw)
/home bob.example.com (rw)
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
36
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
NIS
Network Information Service
Roberto Gómez C.
Lámina 73
NIS: Network Information Service
• Antes formalmente llamada Yellow Pages,
– hoy en día coloquialmente se conoce con ese nombre o YP
– nombre se cambió por problemas de marca, pero comandos
tiene nombres yp…algo
• Desarrollado por Sun para facilitar la administración
de grandes grupos de estaciones
• Centraliza información en un máquina: master NIS
server
– programa servidor ypserv que corre en dicha máquina
responde peticiones de información de máquinas clientes
Lámina 74
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
37
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Términos y procesos relacionados
• Programa ypserv
– corre en el servidor y responde a peticiones de información
de máquinas cliente
• Dominio
– grupo de máquinas que comparten información de
configuración común, (están bajo un control de
administración común).
– cuenta con un nombre tipo texto
– por cada dominio se cuenta con una maquina servidora
– información a administrar se encuentra en forma de mapas
Roberto Gómez C.
Lámina 75
Términos y procesos relacionados
• Los mapas
– cada entrada en el mapa consiste en una llave y un valor,
ambos son strings de texto
– todos los mapas se encuentran en un directorio bien
conocido por el servidor NIS ypserv
• /var/yp
• Servidores esclavos
– opcionalmente pueden definirse servidores esclavos en el
dominio
– reducen la carga de trabajo del maestro
– proporcionan continuidad servicio si el maestro cae
Lámina 76
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
38
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Maestros, esclavos, mapas
Mapa YP
Archivo
configuración
traditional
e.g.
/etc/hosts
Servidor
maestro
Mapa YP
Mapa YP
Servidor
esclavo
Cliente
Servidor
esclavo
Cliente
Cliente
Roberto Gómez C.
Lámina 77
Términos y procesos relacionados
• Programa ypbind
– “asocia” un cliente con un servidor NIS.
– lee el nombre de dominio NIS del sistema y utilizando RPC
se conecta con el servidor.
– parte central de la comunicación cliente/servidor de NIS
• si ypbind muere en una máquina cliente, dicha máquina no podrá
acceder al servidor NIS.
• El portmap
– debe ejecutarse para que se activen las llamadas a
procedimientos remotos (RPC) utilizadas por NIS.
– si portmap no se está ejecutando no se podrá ejecutar ni
clientes ni servidores de NIS.
Lámina 78
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
39
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Los mapas del servidor
• Archivos texto usados para generar mapas son colectados en el
directorio /var/yp del servidor maestro del NIS.
• Mapas son construidos a partir del comando makedbm:
$makedbm infile outfile
• Cada línea en archivo texto infile genera un registro en el mapa.
– Primer campo de la línea es la llave del registro
– el resto es el valor asociado a esa llave
• Salida makedbm: par de archivos llamado oufile.dir y oufile.pag
– archivo .pag tiene los datos actuales y
– el archivo .dir contiene el indice hash.
– estos dos archivos forman el mapa.
• Todos los mapas de cada dominio están en un sólo directorio
– p.e mapas dominio cachafas son dejados en directorio /var/yp/cachafas
Roberto Gómez C.
Lámina 79
Construyendo e interrogando mapas
awk script
eddie 201.96.44.5
marvin 201.96.44.6
trillian 201.96.44.7
NIS
máquina
servidor
makedbm
.dir
Archivo original
/etc/hosts
201.96.44.5 eddie
201.96.44.6 marvin
201.96.44.7 trillian
mapa
hosts. byaddr
mapa
hosts. byname
.pag
makedbm
.dir
.pag
ypserv
NIS
máquina cliente
gethostbyname ( ) ?
gethostbyaddr ( ) ?
Aplicación cliente
Lámina 80
Dr. Roberto Gómez Cárdenas
llamada RPC
a ypserv
Roberto Gómez C.
40
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Configurando el servidor de NIS
• Estableciendo el nombre del dominio NIS
– /etc/sysconfig/network
– domainname
• Crear los mapas
– /var/yp/Makefile
– makedbm
• Inilicializar el servidor
– ypinit
• Lanzar el demonio de escucha
– /etc/yp.conf
– ypserv
Roberto Gómez C.
Lámina 81
Estableciendo el nombre del dominio
• Posible usar el comando domainname
– #/bin/domainname cachafas
– comando fija el nombre del dominio NIS en RAM
• Para hacer permanente el nombre es necesario
agregar la siguiente línea en el archivo
/etc/sysconfig/network
– NISDOMAIN=cachafas
• Esto entonces fijará el nombre del dominio del
NIS automáticamente en el siguiente arranque.
Lámina 82
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
41
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Creando los mapas
• Comando makedbm permite crear mapas
– convierte archivos texto en claro en archivos de formato
DBM
• No es necesario hacer esto con cada uno de los
archivos
• Usar el Makefile ubicado en /var/yp para lo anterior
– posible agregar estancias para crear mapas adicionales
– la línea más importante dentro del archivo es la que empieza
con la palabra all
• Para crear los mapas basta con ejecutar comando make
• Es necesario ejecutar este comando cada vez que se
modifiquen los archivos a partir de los cuales se crean
los mapas
Roberto Gómez C.
Lámina 83
/var/yp/Makefile
• Línea importante del Makefile
all: passwd hosts group netid networks protocols rpc services netgrp \
mail shadow ypservers publickey ethers # amd.home bootparams
ethers:
ethers.byname ethers.byaddr
hosts:
hosts.byname hosts.byaddr
services: services.byname
passwd: passwd.byname passwd.byuid
group: group.byname group.bygid
shadow: shadow.byname
• Creando/actualizando los mapas
rubis:/var/yp# make
make[1]: Entering directory `/var/yp/nis.lab'
Updating passwd.byname...
Updating passwd.byuid...
Updating netid.byname...
Updating shadow.byname...
make[1]: Leaving directory `/var/yp/nis.lab'
Lámina 84
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
42
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Inicializar el servidor
• La base de datos de NIS se crea con el comando
ypinit
• Por default (definido en el Makefile) lee los
archivos desde /etc y los escribe en /var/yp
• La opción -m le permite a usted inicializar el
servidor con datos en bruto (-m para el amo)
• La opción -s copia las bases de datos del amo a
los esclavos (-s como esclavos).
Roberto Gómez C.
Lámina 85
Ejemplo inicialización servidor
maestro
rubis:/var/yp# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. rubis is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: rubis
next host to add: toto1
next host to add: toto2
Updating group.byname...
The current list of NIS servers looks like this:
Updating group.bygid...
Updating hosts.byname...
rubis
Updating hosts.byaddr...
toto1
Updating rpc.byname...
toto2
Updating rpc.bynumber...
Updating services.byname...
Is this correct? [y/n: y]
Updating services.byservicename...
We need a few minutes to build the databases...
Updating netid.byname...
Building /var/yp/nis.lab/ypservers...
Updating protocols.bynumber...
Running /var/yp/Makefile...
Updating protocols.byname...
make[1]: Entering directory `/var/yp/nis.lab'
Updating passwd.byname...
Updating passwd.byuid...
Lámina 86
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
43
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Lanzando el demonio ypserv
• Antes lanzar ypserv es necesario configurar /etc/ypserv.conf.
– archivo ASCII con opciones de tipo [yes|no], comentarios (#) y reglas
adicionales
• Ahora podemos encender el servidor:
root@charly# /etc/rc.d/init.d/ypserv start
• Para arrancar el servidor automáticamente al arranque es
necesario editar el archivo rc.d
• Para verificar que todo este funcionando use:
root@charly# /usr/sbin/rpcinfo -u localhost ypserv
programa 100004 versión 1 lista y esperando
programa 100004 versión 2 lista y esperando
Roberto Gómez C.
Lámina 87
El archivo /etc/ypserv.conf
Lámina 88
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
44
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Servidor NIS esclavo
• Configuración más sencilla que la del maestro
• Establecer el nombre del dominio
– igual que en el caso del servidor maestro
• Al ejecutar ypinit es necesario usar la opción -s y el
nombre del servidor maestro
Lámina 89
# ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Roberto Gómez C.
Configurando cliente NIS
• Paquete yp-tools, que depende paquete ypbind
• Configurar el nombre del dominio
– igual que en el caso de los servidores
– ypwhich: regresa el nombre del servidor NIS
– nisdomainanme: regresa el nombre del dominio
• Editar archivo /etc/yp.conf
– asignar el nombre del dominio y del servidor
• Editar archivo /etc/nsswitch.conf
– lista orden en que las búsquedas se llevaran a cabo
• Arrancar el servico NIS del cliente
– /etc/init.d/ypbind start
Lámina 90
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
45
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo campos archivo /etc/yp.conf
# /etc/yp.conf - ypbind configuration file
# Valid entries are
#
#domain NISDOMAIN server HOSTNAME
#
Use server HOSTNAME for the domain NISDOMAIN.
#
#domain NISDOMAIN broadcast
#
Use broadcast on the local net for domain NISDOMAIN
#
#ypserver HOSTNAME
#
Use server HOSTNAME for the local domain. The
#
IP-address of server must be listed in /etc/hosts.
#
Roberto Gómez C.
Lámina 91
Ejemplo arranque cliente NIS
saphir:~# nisdomainname
nis.lab
saphir:~# ypwhich
rubis
saphir:~# ypcat hosts
127.0.0.1
localhost
192.168.1.7 saphir
192.168.1.4 rubis
saphir:~#
Lámina 92
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
46
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Obteniendo información desde el
cliente
• Comando ypbind asocia un cliente con un servidor
NIS, y comando ypwhich indica que servidor se usa
• Utilerías líneas comando para interrogar los mapas
$ypcat passwd.byname
$ypmatch cognac panza hosts.byname
• Funciones librerías llamadas resolvers, cada una
diseñada para interrogar un mapa en específico
getpwent(), getpwuid(), getpwnam()
gethostent(), gethostbyaddr(), gethostbyname()
• Funciones de bajo nivel de propósito general para
interrogación de mapas
Roberto Gómez C.
Lámina 93
Ejemplo utilerías de comando de línea
• ypcat y ypmatch disponibles para interrogar mapas
• ypmatch
– realiza una busqueda por una o más llaves en un mapa específico
$ ypmatch cognac panza hosts.byname
– buscará los hosts cognac y panza en el mapa hosts.byname, regresando
los valores asociados
• ypcat
– usado para leer el mapa entero
$ ypcat passwd.byname
– desplegará el mapa completo passwd.byname y es equivalente a teclear:
cat /etc/passwd
Lámina 94
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
47
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Librería resolvers
• Funciones disponibles para una aplicación de programador
• Como ejemplo se interrogaran mapas derivados de /etc/passwd
• Existen dos mapas:
– passwd.byname
– passwd.byuid
utiliza el nombre del usuario como llave
usa el id. númerico del usuario como llave
• Tres funciones resolver para interrogar:
– getpwid()
• toma id numérico como parámetro y regresa valor correspondiente del mapa
passwd.byuid
– getpwnam()
• toma nombre usuario como argumento y regresa el valor correspondiente del
mapa passwd.byname
– getpwent()
• no toma ningún argumento, llamándolo repetidamente regresa entradas
sucesivas entradas del mapa
• Funciones regresa un apuntador a la estructura passwd que
contiene la entrada del mapa
Roberto Gómez C.
Lámina 95
Estructura del password
struct passwd{
char *pw_name;
char *pw_passwd;
/* Nombre usuario*/
/* password encriptado */
/* Los siguientes dos son enteros en algunas versiones * /
uid_t pw-uid;
/* ID del usuario */
gid_t pw_gid;
/* ID del grupo */
char *pw_age;
char *pw_comment;
char *pw_ gecos;
char *pw_dir;
char *pw_shell;
/* Info personal acerca usuario */
/* Directorio home usuario */
/* Shell usuario*/
}
Campos estructura (a excepción de pw_age y pw_comment corresponden a los
campos en el archivo /etc/passwd:
toto:ESwxx94NP23V.:21:90: toto le_hero:/cognac/toto:/bin/tcsh
Lámina 96
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
48
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo uso getpwuid()
/* Programa que toma un ID numérico como argumento y muestra el correspondiente username */
# include <pwd.h>
main (int argc, char *argv [ ] )
{
struct password *pwp;
int id = atoi (argv [1]) ;
Ejemplo uso:
$ getusername 21
User ID 21 is toto
$
pwp = getpwuid (id) ;
if (pwp != 0)
printf (“User ID %d is % s \n”, id, pwp->pw_name) ;
else
printf (“User ID %d desconocido \n”, id) ;
}
Roberto Gómez C.
Lámina 97
Otros resolvers y sus mapas
Mapa
group
passwd
hosts
services
networks
rpc
Lámina 98
Dr. Roberto Gómez Cárdenas
Resolvers
getgrent(), getgrid(), getgrname()
getpwent(), getpwuid(), getpwnam()
gethostent(), gethostbyaddr(), gethostbyname()
getservent(), getservbyport(). getservbyname()
getnetent(), getnetbyaddr(), getnetbyname()
getrpcent(), getrpcbynumber(), getrpcbyname()
Estructura
group
passwd
hostent
servent
netent
rpcent
Roberto Gómez C.
49
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Funciones de bajo nivel
• Resolvers son construidos por encima funciones
cliente de bajo nivel
• Funciones proporcionan interfaz gráfica genérica al
servicio búsqueda de NIS
• Descritas en detalle en ypclnt(3)
• Ejemplos son:
– yp_get_default_domain()
• regresa el nombre default del dominio NIS de la máquina local
• necesaria para la llamada yp_match() y por otras funciones
– yp_match()
• especifica un dominio, un nombre de mapa y una llave regresa valor
asociado a esa llave
• regresa el valor como una cadena de caracteres, no sabe nada de la
estructura interna de la cadena
Roberto Gómez C.
Lámina 99
Otras rutinas
• yp_bind(char *indomain)
– asociar un proceso a un servidor NIS
• yp_unbind(char *domain)
– para desasociar un proceso y aprovechar el socket
• yp_first(char *indomain, char *inmap, char *outkey, int
*outkeylen, char **outval, int outvallen);
– regresa el primer valor de la llave del mapa del dominio
• yp_next(char *indomain, char *inmap, char *inkey, int
*inkeylen, char **outkey, int outkeylen, char **outval, int
outvallen);
– regresa el siguiente valor de llave en el mapa
• yp_all(char *indomain, char *inmap, struct ypall_cxallback
*incallback);
– proporciona una forma de transferir todo un mapa entero
Lámina 100
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
50
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Archivos configuración y NIS
Archivo
Función
/etc/passwd
base de datos de información de cuentas de usuarios
/etc/shadow*
contraseñas encriptadas de usuarios, caducidad de contraseñas
/etc/group
definición de grupos UNIX
/etc/hosts
mapeo de nombres a direcciones IP de máquinas
/etc/networks*
asocia nombres en texto con direcciones de red IP
/etc/services
lista los números de puerto para servicios de red bien conocidos
/etc/protocols
mapeo de nombres en texto a números de protocolos
/etc/ethers*
mapeo entre direcciones Ethernet y nombres de máquinas
/etc/aliases
nombres usados como alias para correo electrónico
/etc/rpc
lista los números de identificación de servicios RPC
/etc/netgroup*
define colecciones de usuarios, máquinas y redes
/etc/printcap
base de datos de información de impresoras
/etc/termcap
base de datos de tipos de terminal
* no usado en todos los sistemas
Lámina 101
Roberto Gómez C.
NIS y archivos locales
• Mayoría de los sistemas NIS puede ser suplementado
por la información local del cliente, al menos para
algunos archivos.
• Enfoque tradicional admite dos tipos situaciones:
– prioridad local: los archivos locales tienen precedencia sobre
NIS;
– prioridad global: NIS tiene precedencia sobre los archivos
locales.
• Usualmente, sólo /etc/passwd y /etc/group tienen
precedencia sobre NIS.
– necesario añadir, en ambos, un caraceter “+” al archivo para
que la información que no encuentre en el archivo local la
busque en el servidor de dominio
Lámina 102
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
51
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Archivos passwd y group en NIS
• En archivo /etc/passwd
– añadir +:::::: al final del archivo
– para HP-UX, añadir +::-2:60001::: para evitar que usuario se
conecte como +
– en otros Unix, añadir +::*:::: o +::0:0:::
– caracteres “+” y “-” para incluir/excluir o cambiar usuarios
– posible cambiar el shell, por ejemplo
+:*::::::/etc/NoShell
+:::::::/etc/csh
• En archivo /etc/group
– añadir +:::
• Versiones recientes, usan archivo /etc/nsswitch.nis
para definir prioridad entre archivos locales y NIS
Roberto Gómez C.
Lámina 103
Ejemplos archivo /etc/passwd con NIS
• Primer ejemplo
root:!.k:0:1:/:/usr/bin/csh
nobody:*:-2:-2::/:
daemon:*:1:1::/:
sys:*:2:2::/:/usr/bin/csh
bin:*:3:3::/usr/bin:
uucp:*:4:4::/var/spool/uucppublic:
news:*:6:6::/var/spool/news:/usr/bin/csh
+::0:0:::
cuentas locales, no se
pregunta a NIS por ellas
cuentas que no se encuentren en
este archivo se pregunta a NIS
• Segundo ejemplo
root:0AnhFBmriKvHA:0:3: :/:/bin/ksh
daemon:*:1:5::/:/bin/sh
bin:*:2:2::/bin:/bin/sh
adm:*:4:4::/usr/adm:/bin/sh
uucp:*:5:3::/usr/spool/uucppublic:/usr/lib/uucp/uucico
lp:*:9:7::/usr/spool/lp:/bin/sh
hpdb:*:27:1:ALLBASE:/:/bin/sh
+::-2:60001:::
Lámina 104
Dr. Roberto Gómez Cárdenas
cuentas locales, no se
pregunta a NIS por ellas
cuentas que no se encuentren en
Roberto Gómez
C.
este archivo se pregunta
a NIS
52
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
El archivo nsswitch.conf
• Network Services Switch
• Permite especificar en que orden será buscada
la información
– igual que /etc/host.conf
• Las posibles elecciones son
Campo
Donde busca
nisplus
via NIS+
nis
NIS
dns
DNS (Domain Name Server)
files
archivos locales
db
en la base de datos /var/db
Roberto Gómez C.
Lámina 105
Ejemplo archivo nsswitch.conf
• Modos de falla
– posible definir comportamiento ante una falla
• return o continue
– poner expresiones entre corchetes después de la opción
Condición
Significado
UNAVAIL
fuente no existe o esta abajo
NOTFOUND
fuente existe, pero no puede responder la petición
TRYAGAIN
fuente existe pero se encuentra ocupada
SUCCESS
fuente pudo contestar la petición
• Ejemplo
Lámina 106
Dr. Roberto Gómez Cárdenas
passwd:
shadow:
group:
hosts:
nis files nisplus
nis files nisplus
nis files nisplus
dns [NOTFOUND=return] nis
Roberto Gómez C.
53
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Ejemplo archivo /etc/nsswitch.nis
passwd:
group:
hosts:
networks:
protocols:
rpc:
ethers:
netmasks:
bootparams:
publickey:
netgroup:
automount:
aliases:
services:
sendmailvars:
files nis
files nis
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis [NOTFOUND=return] files
nis
files nis
files nis
files nis
files
Roberto Gómez C.
Lámina 107
Recomendación
• Se debe mantener al menos una cuenta local
(por ejemplo, una cuenta que no se importe a
través de NIS) en el archivo /etc/master.passwd
y además dicha cuenta debería ser miembro del
grupo wheel.
• Si algo va mal con el procedimiento descrito
esta cuenta se puede utilizar para entrar en la
máquina cliente de forma remota para
posteriormente convertirse en superusuario e
intentar solucionar el problema.
Lámina 108
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
54
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Archivo /var/yp/securenets
• En general cualquier usuario remoto puede realizar
peticiones para recuperar los contenidos de las
asociaciones de NIS siempre y cuando se conozca el
nombre de dominio
• Archivo securenets previene lo anterior
• Al arranque ypserv intenta leer contenido del archivo
• Cuando ypserv recibe una petición de una dirección
– si coincide con alguna de las reglas especificadas en el
archivo se procesa la petición.
– si no existe ninguna coincidencia la petición se rechaza y
se graba un mensaje de aviso.
– si el archivo /var/yp/securenets no existe ypserv acepta
conexiones de cualquier máquina.
Roberto Gómez C.
Lámina 109
Ejemplo archivo /var/yp/securenets
# admitir conexiones desde localhost -- obligatorio
127.0.0.1 255.255.255.255
# admitir conexiones desde cualquier host
# en la red 192.168.128.0
192.168.128.0 255.255.255.0
# admitir conexiones desde cualquier host
# de 10.0.0.0 a 10.0.15.255
# esto incluye las maquinas en el 'testlab'
10.0.0.0 255.255.240.0
Lámina 110
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
55
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Limitantes NIS
• NIS es altamente asimétrico con respecto a la lectura y escritura
de los mapas
– lectura es muy eficiente
– escritura no es soportada en el protocolo NIS e involucra muchas tareas
• No existe un control de acceso
– cualquier mapa NIS es accesible por cualquier cliente
• No hay un seguimiento faq, (peticiones más frecuentemente
hechas), del cliente
– ayuda a que todos los clientes vean copias consistentes de los datos
– ineficiente cada vez que un resolver es llamada: tráfico red es generado
• Mapas NIS están centralizados
– datos no están distribuido, se encuentran reunidos en un solo sistema
Roberto Gómez C.
Lámina 111
NIS+
• Un nuevo servicio de información de red, que fue
introducido por Sun
• Bastante complejo
• Principales ventajas
– definición de jerarquías
• NIS+ usa nombres de dominio jerárquico, similares a los de intenet
– concepto de tablas
• Mapas son substituidos por tablas
– múltiples criterios de busquedas
• p.e. [ name=toto, pais = francia ] de personal.ventas.cuervo.co
– seguridad
• autenticación RPC y varios permisos acceso
– posibilidad de sustituir el manejador de base de datos
Lámina 112
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
56
Admon. Linux: Sistemas Archivos
Sistemas Operativos II
Dominios NIS+ y tablas
widget.com
Dominio
sales .widget .com
eng.widget.com
Tabla
Subdominio
Tabla
Tabla
Tabla
Esquema
base datos
Número de columnas
:4
Columnas a buscar
:0,3
Máyusculas / Minúsculas : 0
Nombre
Sitio
Origen
ID
vodka
cognac
tequila
Rusia
Francia
México
centeno
uva
agave
1446
1070
0616
Tabla
Roberto Gómez C.
Lámina 113
Una última palabra sobre NIS+
• Lanzado por Sun principio 90s
• Más complejo que NIS y no ha gozado de la misma
popularidad que NIS
• No existe NIS+ para Linux
– existe cliente NIS+ en Linux pero no se encuentra bien
integrado en las distribuciones
• Punto vista cliente: NIS+ se ve igual que NIS
• Sun anunció que no iba a continuar con el soporte de
NIS+
• Se rumora que Sun no usa NIS+ internamente
Lámina 114
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
57