Documente Academic
Documente Profesional
Documente Cultură
Software Lbre
Admnstracn de
Sstemas GNU/Lnux:
Deban v0.2
Parte 1
|uo-Agosto 2008
Instructor: Enrque Carpenter
nfo@netynx.com.ve
abajo
w,W
Ir adelante, una palabra
b,B
Ir atrs, una palabra
e
Ir al final de la palabra actual
0
Ir al principio de la lnea
$
Ir al fin de la lnea
h
Ir a la parte superior de la pantalla
L
Ir a la parte inferior de la pantalla
C
Ir a la ltima lnea del archivo
Manual Administracin GNU/Linux 62
Unidad 4: Uso del Editor de Texto VI
Accin Teclear Comentarios
23C
Salta la lnea 23
Edicin
<esc>
Modo de Comandos
1
Modo de Insercin
<C1J>w w
Cambia a otra ventana
Borrar
x
Borra el carcter sobre el cursor (Supr)
d
Borra el carcter o lnea actual dependiendo del
siguiente movimiento del cursor
d
Borra el carcter a la derecha. Igual que x
dk
Borra la lnea actual y una lnea encima
d0
Borra desde el cursor hasta el comienzo de la lnea
d$
Borra desde el cursor hasta el final de la lnea.
c
Lo mismo que d pero empieza a insertar despus
ch
Borra 1 carcter atrs y cambia a modo insercin.
c
Borra la lnea actual y cambia a modo insercin.
C
Borra hasta el final de la lnea y cambia a modo
insercin.
dd
Borra la lnea actual
d3d, 3dd
Borra 3 lneas (incluyendo la lnea actual. funciona
igual con d2d, d5d, etc. con 2 lineas, 5 lineas etc.)
J
Unir dos lneas en una
Copiar al porta-
papeles y Pegar
yy
Copia la lnea actual al porta papeles
hyy
Copia h lneas al porta papeles
Manual Administracin GNU/Linux 63
Unidad 4: Uso del Editor de Texto VI
Accin Teclear Comentarios
p,P
Pega desde el porta papeles antes (p) y despus (P)
de la posicin actual del cursor
Inicio de edicin
(modo insercin)
1, a, A
Inserta texto antes (i) y despus (a) del cursor y al
final de la lnea (A)
o, 0
Abre una nueva lnea para insertar texto abajo (o) y
encima (O) del cursor
Deshacer acciones
u, <C1J>J
Deshace la ltima accin en modo de comandos
<A1>u
Deshace la ltima accin en modo de insercin
Guardar/cambiar
archivo
ZZ
Guarda el archivo y sale del editor
4.6 Comandos de ltima lnea
4.6.1 Generales
.q sa1J s1 ho hubo camb1os
.q! sa1J s1h guaJdaJ camb1os
.w guaJdaJ camb1os
.w! aJch1vo1 guaJdaJ e aJch1vo como aJch1vo1 {puede sobJeescJ1b1J)
.w! sobJeescJ1be e aJch1vo
.wq guaJdaJ camb1os y sa1J
.x guaJda e aJch1vo y sae de ed11oJ
.x aJch1vo1 guaJda e aJch1vo como aJch1vo1 {ho sobJeescJ1be)
.J aJch1vo2 1hseJ1aJ uh aJch1vo
.e aJch1vo2 abJe uh huevo aJch1vo s1 e ac1ua ha s1do guaJdado
.e! aJch1vo2 abJe uh huevo aJch1vo auh cuahdo e ac1ua ho haya s1do
guaJdado
.e! abJe a 11ma veJs1h guaJdada de aJch1vo ac1ua
.h mues1Ja e aJch1vo s1gu1eh1e
.h mues1Ja e aJch1vo ah1eJ1oJ
.1 mues1Ja e hombJe de aJch1vo ac1ua
.J aJch1vo1 Lee e 1hseJ1a e coh1eh1do de aJch1vo1 eh a pos1c1h ac1ua
de cuJsoJ
.J! comahdo 1hseJ1aJ sa1da de comahdo {Eecu1a e Jahgo de 1ex1o a 1Javs
de comahdo de she y Jeempaza e oJ1g1ha coh os
Jesu1ados)
.! comahdo Eecu1a eh uh she a 1hs1Jucc1h "comahdo" y vueve a a
ed1c1h de documeh1o ac1ua
.sp d1v1de a pah1aa eh dos veh1ahas
.she sa1J a she {vueve coh ex11)
Manual Administracin GNU/Linux 64
Unidad 4: Uso del Editor de Texto VI
4.6.2 De movimiento
.1 mueve a 1hea 1
.15 mueve a 1hea 15
.$ mueve a 11ma 1hea
4.6.3 Borrar y copiar texto
.1,10d BoJJa as 1heas 1 a a 10
.10,$d BoJJa as 1heas desde a hmeJo 10 has1a a 11ma
.,$d BoJJa as 1heas compJehd1das eh1Je a ac1ua y a 11ma
.,+5d BoJJaJ a 1hea ac1ua y as c1hco s1gu1eh1es
.1,y Cop1aJ desde a pJ1meJa 1hea has1a a ac1ua
.,$y Cop1aJ desde a 1hea ac1ua has1a e 11ha
.-2,+2y Cop1aJ desde dos 1heas ah1es de a ac1ua has1a dos despus
4.6.4 Opciones de vi
.se1 camb1o de opc1ohes
.se1 hu mos1JaJ hmeJos de 1hea
.se1 hohu ho mos1JaJ hmeJos de 1hea
.se1 showmode mos1JaJ modo ac1ua de v1
.se1 hoshowmode ho mos1JaJ modo ac1ua de v1
4.6.5 Sustitucin de palabras o expresiones
La sintaxis del comando de bsqueda y reemplazo es la siguiente:
.<desde>,<has1a>s/<buscaJ>/<JeempazaJ>/g
<desde>,<has1a> indican lneas en el archivo;
<buscaJ> y <JeempazaJ> son cadenas de caracteres o expresiones regulares;
/ es un separador,
s (sustituir) y g (global) son letras de comando para el manejo de expresiones regulares.
Ejemplo:
.1,$s/haJ1es/maJ1es/g
cambia Martes por martes en todo el archivo.
..,5s/ayuda/&hdo/g
cambia ayuda por ayudando desde lnea actual hasta la 5a. lnea.
Manual Administracin GNU/Linux 65
Unidad 5: Manejo de Particiones y Sistemas de Archivos
UNIDAD 5: MANEJO DE PARTICIONES Y SISTEMAS DE ARCHIVOS
5.1 Creando particiones en un disco
5.1.1 Herramientas para el particionado en Linux
Existen muchos programas para crear y eliminar particiones. La mayora de los sistemas operativos tienen
el suyo propio. En Debian existen varias herramientas para particionar que pueden adaptarse a diversas
arquitecturas soportadas.
1dsk: es una herramienta disponible en varios sistemas operativos que permite dividir en forma lgica
un disco duro, siendo denominado este nuevo espacio como particin. En GNU/Linux, fdisk permite
crear particiones en 94 sistemas de archivos distintos.
c1dsk: es similar a fdisk pero con una interfaz mas agradable a pantalla completa muy fcil de usar.
Recomendada para la mayora de los usuarios.
par1man:es la herramienta original de Linux para particionar discos. Es una especie de navaja suiza
que puede, adems de crear y eliminar particiones, ajustar el tamao de las particiones, crear sistemas de
archivos y asignarlos a sus respectivos puntos de montaje.
gpar1ed:es el editor de particiones de Gnome. Esta aplicacin es usada para crear, destruir,
redimensionar, inspeccionar y copiar particiones, como tambin sistemas de archivos. Esto es til para
crear espacio para nuevos sistemas operativos, para reorganizar el uso del disco y para crear imgenes de
un disco en una particin. QtParted, es la contraparte de GParted pero para entornos de escritorios KDE.
5.1.2 Usando Fdisk
La herramienta principal usada para crear particiones de disco es fdisk. La utilidad fdisk divide el disco
en particiones y escribe la tabla de particiones en el sector 0 (conocido como el superblock). Cuando se
utiliza sin parmetros, fdisk presenta un men de opciones con las que se puede interactuar. Se puede
evitar el men y ejecutar fdisk con alguna de las siguientes opciones:
-l: lista las tablas de particiones (Figura 5.i).
-v: Nos da nicamente la versin de fdisk.
Tambin es posible iniciar fdisk indicando un dispositivo sobre el que se quiere obtener informacin o
Manual de Administracin GNU/Linux 66
Unidad 5: Manejo de Particiones y Sistemas de Archivos
modificar. Por ejemplo, para arrancar fdisk con el tercer disco IDE, se debe poner:
$ 1d1sk /dev/hdc
Entonces, fdisk comprueba si el nmero de cilindros del dispositivo es mayor de 1024, avisa de ello, y
espera una instruccin (ver un ejemplo en la Figura 5.ii).
Una vez que la utilidad est iniciada, entrando m se presenta una ayuda en forma de men. En la Tabla
5.A se muestran algunas de las opciones listadas.
Figura 5.i: Tabla de particiones desplegada por el comando fdisk.
Figura 5.ii: Inicio del programa fdisk.
Manual de Administracin GNU/Linux 67
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Tabla 5.A: Algunas opciones de la herramienta de particionado fdisk.
Opcin Funcin
p Muestra informacin sobre la particin.
d Borra una particin.
n Crea una particin.
q Sale de la aplicacin sin guardar los cambios.
w Guarda los cambios y sale de la aplicacin.
m Muestra los comandos disponibles.
v Verifica la tabla de particiones.
a Cambia el indicador de estado de arranque de la particin.
Los siguientes ejemplos ilustran que se puede hacer con esta utilidad. Notar que no es posible ingresar a
las opciones de fdisk si no se tiene permisos de superusuario.
a) Ver la tabla de particiones: se debe introducir el comando p. El resultado ser parecido al
siguiente:
01sk /dev/hda. 16 head, 63 sec1oJs, 16383 cy1hdeJs
bh11s = cy1hdeJs o1 1008 + 512 by1es
0ev1ce Boo1 S1aJ1 Ehd BocksTd Sys1em
/dev/hda1 + 1 4063 2047720+ 83 L1hux
/dev/hda2 4064 4316 12751282 L1hux swap
/dev/hda3 4317 16383 6081768 83 L1hux
Se muestran tres particiones (de 1 a 3) en un nico disco IDE (hda). La primera particin es de arranque
(marcada como boot) , la segunda de swap, y la tercera es el resto del disco.
b) Modificar el sistema de archivos: Para, por ejemplo, cambiar la tercera particin por dos de
menor tamao, primero hay que entrar el comando <d> para borrar la particin. El prompt
preguntar qu particin (1 a 4). Se entra 3, y ya est.
Para crear una nueva particin, se entrar el comando <n>. Las siguientes opciones, desplegadas por el
prompt, sern:
e- extendida
p- particin primaria (1-4)
Manual de Administracin GNU/Linux 68
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Si ya se han creado algunas particiones, el prompt puede no aparecer. Por ejemplo, si ya se tiene una
particin extendida, no se puede crear otra. Si se entra <p> para una primaria, seguidamente se pedir el
nmero (1-4) para crearla; si se da un nmero ya usado, el comando falla ya que primero se debera haber
borrado la particin antes de volverla a aadir.
En este caso, suponiendo que se quieren crear dos particiones iguales en el espacio que antes ocupaba la
tercera particin, despus de entrar <p> la secuencia ser la siguiente (valores entrados en negrita):
hmeJo de paJ11c1oh {1-4). 3
PJ1meJ c11hdJo {4317-16383, de1ec1o 4317). {acep1ar)
bsahdo e vaoJ de de1ec1o 4317
b11mo c11hdJo o +s1ze o +s1zeh o +s1zeK _
{4317-16383, de1ec1o 16383). 16356
Commahd {m paJa ayuda). p
01sco /dev/hda. 16 head, 63 sec1oJs, 16383 cy1hdeJs
bh11s = cy1hdeJs o1 1008 + 512 by1es
0ev1ce Boo1 S1aJ1 Ehd BocksTd Sys1em
/dev/hda1 + 1 4063 2047720+ 83 L1hux
/dev/hda2 4064 4316 12751282 L1hux swap
/dev/hda3 4317 10350 3041136 83 L1hux
Commahd {m paJa ayuda). n
Commahd ac11oh
e ex1ehded
p pJ1maJy paJ1111oh {1-4)
hmeJo de paJ11c1h {1-4). 4
PJ1meJ c11hdJo {10531-16383, de1au1 10351). {acep1ar)
bsahdo e vaoJ de de1ec1o 10351
b11mo c11hdJo o +s1ze o +s1zeh o +s1zeK _
{10351-16383, de1ec1o 16383). {acep1ar)
bsahdo e vaoJ de de1ec1o 16383
Commahd {m paJa ayuda). p
01sco /dev/had. 16 head, 63 sec1oJs, 16383 cy1hdeJs
bh11s = cy1hdeJs o1 1008 + 512 by1es
0ev1ce Boo1 S1aJ1 Ehd BocksTd Sys1em
/dev/hda1 + 1 4063 2047720+ 83 L1hux
/dev/hda2 4064 4316 12751282 L1hux swap
/dev/hda3 4317 10350 3041136 83 L1hux
/dev/hda4 10351 16383 3040632 83 L1hux
Para cambiar la tercera particin a sistema de ficheros swap (rea de intercambio) la secuencia es:
Manual de Administracin GNU/Linux 69
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Commahd {m paJa ayuda). 1
hmeJo de paJ11c1h {1-4). 3
hex code { L paJa a 1s1a de cd1gos). 82
Camb1ado 11po de s1s1ema de a paJ11c1h 3 a 82 {L1hux swap)
Entonces, para cambiar la particin existente de swap (la 2) a una particin Linux, se debe hacer lo
mismo que se ha hecho, pero como cdigo hex el 83. Poniendo <L> cuando se pida el hex code se
mostrarn todos los sistemas de ficheros posibles (igual que poner <I> en el men principal de fdisk).
Despus de efectuar todos los cambios, se puede salir de fdisk y formatear las particiones que lo
necesiten. Si se guardan los cambios, aparecer una alerta indicando que la tabla de particiones ha sido
alterada y el disco ser sincronizado. Se deber reiniciar el sistema para asegurar que la tabla est
actualizada adecuadamente.
Se pueden hacer muchos cambios con fdisk y desecharlos si se usa la opcin <q>. Si se desea grabar los
cambios realizados, se deben salvar con <w>.
5.2 Aadiendo sistemas de archivos a las particiones creadas
5.2.1 Que es un sistema de archivos ?
Un sistema de archivos (filesystem en ingls) es un mtodo de estructuracin de la informacin guardada
en una unidad de almacenamiento (como discos duros y CD-ROM) de una computadora, que determina
la organizacin jerrquica de los archivos y los datos que estos contienen, y las posibilidades de
manipulacin, acceso, direccionamiento y recuperacin.
En general, los sistemas operativos tienen su propio sistema de archivos. En ellos, los sistemas de
archivos pueden ser representados de forma textual o grficamente utilizando un gestor o administrador
de archivos, el cual mantiene un registro de qu bloques pertenecen a qu archivos, qu bloques no se han
utilizado y las direcciones fsicas de cada bloque. Dos ejemplos de gestores de archivos populares son:
Nautilus (el gestor de archivos del proyecto Gnome) y Konqueror (gestor del proyecto KDE).
5.2.2 Tipos de sistemas de archivos
Los sistemas de archivos pueden ser clasificados en tres categoras:
a) Sistemas de archivos de discos: son diseados para el almacenamiento, acceso y manipulacin de
archivos en un dispositivo de almacenamiento que puede estar conectado directa o indirectamente
a la computadora.
Son sistemas de archivos de disco: ext2, ext3, ext4, fat (utilizado en DOS y algunas versiones de
Windows), umsdos (sistema de ficheros linux sobre uno fat), FFS (Berkeley Fast File System), hfs
Manual de Administracin GNU/Linux 70
Unidad 5: Manejo de Particiones y Sistemas de Archivos
(para Mac OS), ISO 9660 (sistema de archivos de solo lectura para CD-ROM), mfs (para Mac
OS), ntfs (sistema de archivos de Windows NT, XP y Vista), udf (usado en DVD y en algunos
CD-ROM), etc.
b) Sistemas de archivos de red: es un sistema de archivos que accede a sus archivos a travs de una
red. Dentro de esta clasificacin encontramos dos tipos de sistemas de archivos: los sistemas de
archivos distribuidos (no proporcionan I/O en paralelo) y los sistemas de archivos paralelos
(proporcionan una I/O de datos en paralelo).
Ejemplos de sistema de archivos distribuidos: CIFS (tambin conocido como SMB o Samba),
NFS (protocolo de nivel de aplicacin), etc.
Ejemplos de sistema de archivos paralelos: PVFS, PAFS.
c) Sistemas de archivos de propsito especial: son bsicamente aquellos que no caen en ninguna de
las dos clasificaciones anteriores.
En esta categora se incluyen: devfs (sistema de archivos virtual en UNIX que controla los
archivos de dispositivos), udev (sucesor de devfs en Linux), sysfs (sistema de archivos virtual
Linux que proporciona informacin sobre los dispositivos y sus controladores), swap, lustre
(sistema de archivos utilizado en clusters a gran escala), etc.
5.2.3 Usando mkfs
Una vez creadas las particiones, el sistema de ficheros debe ser aadido para que Linux pueda hacer uso
de este espacio. La utilidad mkfs se usa para crear sistemas de ficheros en particiones vacas.
La sintaxis para el uso de mkfs es la siguiente (ver opciones en la Tabla 5.B):
# mk1s -opc1ohes hombJe_paJ11c1oh
Las opciones usadas por mkfs estn seguidas por un argumento especificando la particin que debe ser
formateada. Despus de la ejecucin del comando, el cdigo de salida 0 (cero) indicar que se ha llevado
a cabo con xito mientras que el cdigo de salida 1 (uno) indicar fallo.
En la Tabla 5.C se pueden ver algunas de las utilidades prcticas de mkfs.
Manual de Administracin GNU/Linux 71
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Tabla 5.B: Opciones usadas con mkfs
Opcin Uso
-t tipo_de_sf Especifica el tipo de sistema de ficheros (sf) a crear. Por defecto se usa ext2.
En man fs (fs = file system) puede verse una lista de los tipos de sistemas de
archivos reconocidos por Linux.
opciones_sf Opciones especficas de sistema de ficheros para ser pasados al sistema real
de ficheros que se va a crear.
-c Comprueba el dispositivo en busca de bloques defectuosos antes de crear el
sistema de ficheros.
-l fichero Lee los bloques defectuosos del fichero.
-v (verboso) Produce una salida con ms informacin, incluyendo todos los comandos
especficos del sistema de ficheros concreto que se ejecutan. sto es
realmente slo til para comprobaciones.
Cuando se crea un sistema de ficheros con mkfs, se pueden utilizar muchos comandos para especificar el
tipo de sistema de ficheros. Estos comandos son accesibles slo para el usuario root.
Tabla 5.C: Utilidades para la creacin de Sistemas de Ficheros.
Comando Uso
mkfs.ext2 o mke2fs Crea un sistema de ficheros ext2
mkfs.msdos o mkdosfs Crea un sistema de ficheros MS-DOS
mkswap Crea un sistema de ficheros de Linux swap
mkraid Inicializa y actualiza cadenas de dispositivos RAID
mkfs.minix Crea un sistema de ficheros Minix
mkfs.bfs Crea un sistema de ficheros SCO BFS
Para obtener ms detalles de las opciones al crear cada tipo de sistemas de ficheros, se puede hacer uso de
las pginas man de Linux.
Para crear un sistema de ficheros debe ser usada la herramienta correcta especificada en la Tabla 5.C.
Por ejemplo, un uso apropiado de estas utilidades es crear una particin ext2 usando mkfs.ext2:
# mke21s /dev/hda3
Manual de Administracin GNU/Linux 72
Unidad 5: Manejo de Particiones y Sistemas de Archivos
5.3 Herramientas del sistema de archivos
5.3.1 Algunas utilidades de los sistemas de archivos
a) El comando debugfs es un depurador de sistemas de ficheros ext2.
Sintaxis:
debug1s | -b 1amao_boque ] | -s supeJboque ] | -1 11cheJo_comahdos ] | -R
pe11c1oh ] | -v ] | | -w ] | -c ] | -1 ] | d1spos111vo ] ]
Descripcin:
El programa debugfs es un depurador interactivo de sistemas de archivos. Puede utilizarse para
examinar y cambiar el estado de un sistema de archivos del tipo ext2. El <dispositivo> arriba mencionado
indica el fichero especial correspondiente al dispositivo que contiene el sistema de archivos ext2 (p.ej.
/dev/hdXX).
b) El comando dumpe2fs muestra informacin de un sistema de archivos.
Sintaxis:
dumpe21s | -b1h1xv ] | -ob supeJboque ] | -oB 1amao_boque ] d1spos111vo
Descripcin:
dumpe2fs muestra la informacin de grupo del superbloque y los dems bloques del sistema de
archivos existente en un dispositivo.
c) El comando tune2fs ajusta una variedad de los parmetros configurables en un sistema de
archivos ext2.
Sintaxis:
1uhe21s | - ] | -c coh1adoJ-max-moh1aes ] | -e compoJ1am1eh1o-eJJoJes ] | -1 ]
| -1 1h1eJvao-eh1Je-compJobac1ohes ] | - ] | -J opc1ohes-de-d1aJ1o ] | -m
poJceh1ae-boques-JeseJvados ] | -o |]opc1ohes-de-moh1ae|,...] ] | -J coh1adoJ-
boques-JeseJvados ] | -s spaJse-supeJ-1ag ] | -u usuaJ1o ] | -g gJupo ] | -C
coh1adoJ-moh1aes ] | -L hombJe-voumeh ] | -h d1Jec1oJ1o-u11mo-moh1ae ] | -0
|]caJac1eJ1s11ca|,...] ] | -T hoJa-u11ma-compJobac1oh ] | -b bbT0 ]d1spos111vo
5.3.2 Manteniendo la Integridad de los Sistemas de Archivos
Con el trascurso del tiempo los sistemas de archivos activos pueden terminar presentando problemas
Manual de Administracin GNU/Linux 73
Unidad 5: Manejo de Particiones y Sistemas de Archivos
como los siguientes:
Un sistema de archivos se llena hasta el lmite de su capacidad, causando que los programas o,
quizs, el sistema entero dejen de funcionar.
Un sistema de archivos se corrompe, seguramente por un corte de alimentacin o por una cada
del sistema.
Un sistema de archivos se queda sin inodos libres de tal forma que no se pueden crear nuevos
objetos en el mismo.
Monitorear y comprobar cuidadosamente y regularmente los sistema de archivos de Linux ayudar
mucho a prevenir o corregir estos problemas.
(a) Monitorear el espacio y los inodos libres del disco: comando df
Un sistema de lectura/escritura no sirve de mucho si crece hasta el punto en que no pueda admitir nuevos
ficheros. Esto podra ocurrir si el sistema de archivos se llena o si se queda sin inodos libres.
Los inodos son las estructuras de datos dentro del sistema de archivos que describen los ficheros en el
disco. Cada sistema de archivos contiene un nmero finito de inodos que se establece en el momento de
creacin del sistema de archivos. Este nmero es, a su vez, el mximo nmero de ficheros que un sistema
de archivos puede acomodar. Como los sistemas de archivos se crean con un nmero de inodos enorme,
probablemente nunca crears tantos ficheros como para agotar este nmero. No obstante, es posible
quedarse sin inodos libres en particiones que contengan muchos ficheros pequeos.
Es muy importante prevenir la escasez de inodos libres en las particiones del sistema. El comando df
proporciona informacin necesaria tanto sobre el uso del espacio en disco como de los inodos libres
(Tabla 5.D).
Sintaxis
d1 |opc1ohes] |d1Jec1oJ1os]
Descripcin
Muestra informacin general sobre el uso del disco en los sistemas de archivos montados en
directorios. Normalmente, en directorios indicamos ficheros de dispositivos de particiones como
/dev/hda1, pero si el usuario indica otro tipo de nombre de fichero o directorio, obtendr informacin
sobre la particin donde est ubicado dicho fichero o directorio. Omitiendo directorios, se mostrar la
informacin relativa a los sistemas de archivos montados en los dispositivos incluidos en /etc/fstab.
Manual de Administracin GNU/Linux 74
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Tabla 5.D: Opciones mas frecuentes del comando df
Opcin Uso
-h Muestra los resultados en un formato legible para las personas, incluyendo sufijos como
M (megabytes) y G (gigabytes).
-i Muestra informacin sobre los inodos libres en lugar de la informacin por defecto
sobre el espacio libre en disco.
Ejemplo 1:
Revisar el uso del espacio en disco en todos los sistemas de archivos:
$ d1 -h
F1esys1em S1ze bsed Ava1 bse houh1ed oh
/dev/sda1 387h 56h 311h 15 /
/dev/sda5 296h 5.2h 276h 2 /boo1
/dev/sda9 1.9C 406h 1.4C 22 /home
/dev/sda6 53h 12h 39h 23 /Joo1
/dev/sda10 99h 104k 93h 0 /1mp
/dev/sda8 972h 507h 414h 55 /usJ
/dev/sda7 296h 9.3h 272h 3 /vaJ
En este ejemplo se observa que en ninguno de los siete sistemas de archivos montados por defecto, el
espacio utilizado excede del 55 por ciento de su capacidad.
Ejemplo 2
Revisar el uso de inodos en los mismos sistemas de archivos:
$ d1 -1
F1esys1em Thodes Tbsed TFJee Tbse houh1ed oh
/dev/sda1 102800 7062 95738 7 /
/dev/sda5 78312 29 78283 0 /boo1
/dev/sda9 514000 934 513066 0 /home
/dev/sda6 14056 641 13415 5 /Joo1
/dev/sda10 26104 60 26044 0 /1mp
/dev/sda8 257040 36700 220340 14 /usJ
/dev/sda7 78312 269 78043 0 /vaJ
Entre estas particiones, el mayor consumo de inodos es slo de un 14 por ciento. Est claro que ninguno
de stos sistemas de archivos se est acercando en su consumo al mximo disponible. Observa que la
particin /usr (con el 14 por ciento de los inodos utilizados) ha consumido el 55 por ciento del espacio en
disco. Con sta tnica de utilizacin, lo ms probable es que el volumen /usr agote su capacidad en disco
antes de agotar los inodos libres.
Manual de Administracin GNU/Linux 75
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Ejemplo 3
Para determinar rpidamente en qu particin est situado el directorio de trabajo actual (puede
representarse, simplemente, por un punto):
$ d1 .
/dev/sda1 102800 7062 95738 7 /
Cuando un sistema de archivos est prximo a agotar su capacidad podemos, simplemente, eliminar
ficheros para obtener ms espacio libre. Sin embargo, en el caso improbable de una escasez de inodos,
deberamos volver a crear el sistema de archivos con un nmero mayor de inodos a menos que podamos
borrar una muy buena cantidad de ficheros.
(b) Monitorear el Uso del Espacio en Disco: comando du
Muchos usuarios se han preguntado alguna vez a donde va todo el espacio consumido en el disco. En
algunos sistemas operativos es bastante complicado obtener la respuesta a esta pregunta con las
herramientas nativas. En Linux, el comando <du> puede ayudar, mostrando directorio por directorio el
uso del espacio en disco, a responder a esta pregunta. El comando du examina los directorios
recursivamente y muestra informacin detallada o resumida sobre el espacio en disco consumido.
Sintaxis
du |opc1ohes] |d1Jec1oJ1os]
Descripcin
Muestra informacin sobre el uso del disco en los directorios. Si se omiten los directorios se
buscar en el directorio de trabajo actual (opciones en la Tabla 5.E).
Tabla 5.E: Opciones frecuentemente utilizadas por du
Opcin Uso
-a Muestra todos los ficheros, no solo los directorios.
-c Genera un gran total de todos los elementos listados.
-h Muestra los resultados en un formato legible para las personas, incluyendo sufijos como
M (megabytes) y G (gigabytes).
-s Visualiza un sumario para cada uno de los directorios especificados, en lugar de los
totales encontrados recursivamente en cada subdirectorio.
-S Excluye los subdirectorios de las sumas y los totales, limitndose a totalizar los
directorios.
Manual de Administracin GNU/Linux 76
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Ejemplo 1
Examinar el uso del disco en /etc/rc.d:
$ du /e1c/Jc.d
882 /e1c/Jc.d/1h11.d
1 /e1c/Jc.d/Jc0.d
1 /e1c/Jc.d/Jc1.d
1 /e1c/Jc.d/Jc2.d
1 /e1c/Jc.d/Jc3.d
1 /e1c/Jc.d/Jc4.d
1 /e1c/Jc.d/Jc5.d
1 /e1c/Jc.d/Jc6.d
904 /e1c/Jc.d
Ejemplo 2
Para averiguar el espacio en disco utilizado por ficheros, incluyendo los subdirectorios interiores, en /etc:
$ du -s /e1c
13002 /e1c
Ejemplo 3
Para mostrar el espacio en disco utilizado por ficheros, excluyendo los subdirectorios interiores, en /etc:
$ du -Ss /e1c
1732 /e1c
Ejemplo 4
Mostrar un resumen de todos los subdirectorios bajo /home, con una salida legible por las personas:
$ du -csh /home/*
42k /home/bsm11h
1.5h /home/h11pd
9.5h /home/deah
42k /home/doe
12k /home/os1+1ouhd
1.0k /home/samba
11h 1o1a
Este resultado muestra que se han utilizado 11 MB del espacio total del disco.
Ejemplo 5
Aqu se muestra el mismo sumario, pero ordenando los resultados de mayor a menor utilizacin:
$ du -cs /home/* ] soJ1 -hJ
11386 1o1a
9772 deah
1517 h11pd
42 doe
Manual de Administracin GNU/Linux 77
Unidad 5: Manejo de Particiones y Sistemas de Archivos
42 bsm11h
12 os1+1ouhd
1 samba
Este resultado muestra que el usuario jdean est consumiendo la mayor cantidad de espacio. Hay que
tener en cuenta que el formato legible por las personas no ordenara de esta forma ya que sort no
interpreta dicho formato.
(c) Comprobar la Integridad del Sistema de archivos
Independientemente de lo estables que sean, las computadoras terminan fallando, incluso por algo tan
simple como un cable de alimentacin desconectado por accidente. Desafortunadamente una interrupcin
de este tipo puede provocar daos en un sistema de archivos. Si se abortase una operacin de escritura en
disco antes de completarse, los datos implicados se perderan y las partes del disco que se reservaron para
ellos quedaran marcadas como en uso. Adems, las escrituras en el sistema de archivos no suelen ser
directas, sino que suelen pasar previamente por una cache de memoria, un corte de corriente o una cada
del sistema impedira al kernel sincronizar sta cache con el disco. Cualquiera de estos casos provocara
que se encontrase con inconsistencias en el sistema de archivos que debern ser corregidas para asegurar
un funcionamiento fiable del mismo.
Los sistemas de archivos se comprueban con fsck. Al igual que mkfs, fsck es una utilidad especfica al
tipo de sistema de archivos instalado, esto incluye fsck.ext2, que es un enlace al programa e2fsck (mirar
en las pginas man para ms informacin).
Una parte de la informacin almacenada en el disco para describir un sistema de archivos es la conocida
como superbloque que se encuentra en el bloque 1 de la particin. Si ste rea se corrompiese el sistema
de archivos quedara inaccesible. Debido a la importancia del superbloque, se realizan copias del mismo
en intervalos regulares del sistema de archivos, por defecto cada 8192. La primera copia del superbloque
se encuentra en el bloque 8193, la segunda en el bloque 16385, y as sucesivamente. La utilidad fsck
puede utilizar la informacin en las copias del superbloque para restaurar el superbloque principal (ver
opciones de fsck en la Tabla 5.F).
Sintaxis
1sck |opc1ohes] |-1 11po] |opc1ohes-1s] s1s1ema_de_aJch1vos
Descripcin
Comprueba si los sistemas de archivos tienen errores y, opcionalmente, los corrige. Por defecto,
fsck asume el tipo de sistema de archivos ext2 y funciona de modo interactivo interrumpiendo la
ejecucin para pedir permiso antes de aplicar las correcciones.
Manual de Administracin GNU/Linux 78
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Durante la comprobacin del sistema de fsck se hace lo siguiente:
1. Comprobar inodos, bloques y tamaos.
2. Comprobar la estructura de directorios.
3. Comprobar la conectividad de directorios.
4. Comprobar las referencias.
5. Comprobar el total de la informacin.
Tabla 5.F: Opciones frecuentemente utilizadas en fsck
Opcin Uso
-A Ejecuta comprobaciones en todos los sistemas de archivos incluidos en
/etc/fstab. Esta opcin est pensada para utilizarse en tiempo de carga del
sistema, antes de montar los sistemas de archivos.
-N No se ejecuta, pero muestra lo que debera hacerse.
-t tipo Especifica el tipo de sistema de archivo a comprobar; por defecto se asume ext2.
El valor de tipo determina que verificador especfico para el sistema de archivos
es utilizado.
-b superbloque Utiliza una copia del superbloque alternativa. En el modo interactivo, e2fsck
utiliza automticamente superbloques alternativos. Normalmente, para restaurar
un superbloque defectuoso, utilizars -b 8193 en el modo no interactivo.
-c Comprobar bloques defectuosos.
-f Fuerza una comprobacin, incluso si el sistema de archivos parece limpio.
-p Repara automticamente el sistema de archivos sin hacer preguntas.
-y Responde automticamente "yes" a todas las preguntas interactivas permitiendo
la utilizacin no interactiva de e2fsck.
Ejemplo 1
Comprobar el sistema de archivos del tipo ext2 en /dev/hda5 que, en este momento, no est montado:
$ 1sck /dev/hda5
|/sb1h/1sck.ex12 -- ] 1sck.ex12 /dev/hda5
PaJae1z1hg 1sck veJs1oh 1.14 {9-Jah-1999)
e21sck 1.14, 9-Jah-1999 1oJ EXT2 FS 0.5b, 95/08/09
/dev/hda5. ceah, 1011/34136 11es, 4360/136521 bocks
La particin estaba marcada como limpia, por tanto fsck no lleg a verificarla.
Manual de Administracin GNU/Linux 79
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Ejemplo 2
Forzando una comprobacin:
$ 1sck -1 /dev/hda5
PaJae1z1hg 1sck veJs1oh 1.14 {9-Jah-1999)
e21sck 1.14, 9-Jah-1999 1oJ EXT2 FS 0.5b, 95/08/09
Pass 1. Check1hg 1hodes, bocks, ahd s1zes
Pass 2. Check1hg d1Jec1oJy s1Juc1uJe
Pass 3. Check1hg d1Jec1oJy cohhec11v11y
Pass 4. Check1hg Je1eJehce couh1s
Pass 5. Check1hg gJoup summaJy 1h1oJma11oh
/dev/hda5. 1011/34136 11es {0.1 hoh-coh11guous),
4360/136521 bocks
Ejemplo 3
Forzando otra comprobacin, en este caso con salida de mensajes explcita:
$ 1sck -1v /dev/hda5
PaJae1z1hg 1sck veJs1oh 1.14 {9-Jah-1999)
e21sck 1.14, 9-Jah-1999 1oJ EXT2 FS 0.5b, 95/08/09
Pass 1. Check1hg 1hodes, bocks, ahd s1zes
Pass 2. Check1hg d1Jec1oJy s1Juc1uJe
Pass 3. Check1hg d1Jec1oJy cohhec11v11y
Pass 4. Check1hg Je1eJehce couh1s
Pass 5. Check1hg gJoup summaJy 1h1oJma11oh
1011 1hodes used {2)
1 hoh-coh11guous 1hodes {0.1)
# o1 1hodes w11h 1hd/d1hd/11hd bocks. 0/0/0
4360 bocks used {3)
0 bad bocks
1000 JeguaJ 11es
2 d1Jec1oJ1os
0 chaJac1eJ dev1ce 11es 0 bock dev1ce 11es
0 111os
0 1hks
0 symbo1c 1hks {0 1as1 symbo1c 1hks)
0 socke1s
--------
1002 11es
Ejemplo 4
Aqu se permitir que fsck realice automticamente todas las reparaciones en un sistema de archivos
daado, especificando la opcin -y:
$ 1sck -y /dev/hda5
PaJae1z1hg 1sck veJs1oh 1.14 {9-Jah-1999)
e21sck 1.14, 9-Jah-1999 1oJ EXT2 FS 0.5b, 95/08/09
Coudh`1 11hd ex12 supeJbock, 1Jy1hg backup bocks...
/dev/hda5 was ho1 ceahy uhmouh1ed, check 1oJced.
Pass 1. Check1hg 1hodes, bocks, ahd s1zes
Manual de Administracin GNU/Linux 80
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Pass 2. Check1hg d1Jec1oJy s1Juc1uJe
Pass 3. Check1hg d1Jec1oJy cohhec11v11y
Pass 4. Check1hg Je1eJehce couh1s
Pass 5. Check1hg gJoup summaJy 1h1oJma11oh
Bock b11map d111eJehces. +1 +2 +3 +4
F1x? yes
Thode b11map d111eJehces. +1 +2 +3 +4 +5 +6
F1x? yes
/dev/hda5. ***** FTLE SYSTEh WAS h00TFTE0 *****
/dev/hda5. 1011/34136 11es {0.1 hoh-coh11guous),
4360/136521 bocks
Cuando Linux carga, el kernel realiza una comprobacin de todos los sistemas de archivos incluidos en
/etc/fstab utilizando la opcin -A. Comprueba cualquier sistema de archivos que no hubiese sido
desmontado limpiamente (a menos que la entrada en /etc/fstab incluya la opcin noauto). Si dicha
comprobacin encontrase algn error significativo, el sistema se pondra en modo monousuario de tal
forma que se pueda ejecutar fsck de forma manual.
Algunos de los errores que pueden causar esto son:
Bloques solicitados por mltiples ficheros.
Bloques solicitados fuera del sistema de ficheros.
Detectados pocos enlaces.
Bloques no detectados.
Directorios que corresponden a inodos no localizados.
Errores de formato.
En los casos dnde el directorio padre de un fichero no pueda ser determinado, el fichero ser ubicado en
/lost+found. Los ficheros entonces se renombran con su nmero de inodo. Es til examinar el contenido
de este directorio despus de haber perdido ficheros a consecuencia de un error del sistema.
La informacin (cdigos) de finalizacin que nos da la utilidad fsck es til para determinar el resultado de
la operacin. Cada cdigo representa un tipo de condicin de finalizacin. El cdigo que nos retorna es la
suma de las condiciones de salida. Los cdigos de salida se muestran en la lnea de comandos cuando el
comando finaliza su operacin. Estos cdigos se detallan en la Tabla 5.G.
Tabla 5.G: Cdigos de finalizacin de fsck
Cdigo Significado
0 Sin error.
1 Errores del sistema de ficheros corregidos.
Manual de Administracin GNU/Linux 81
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Cdigo Significado
2 El sistema debera ser reiniciado.
4 Errores del sistema de ficheros sin corregir.
8 Error operacional.
16 Errores de sintaxis o uso.
128 Error en la librera compartida.
Desafortunadamente, a menos que tenga el usuario un conocimiento muy detallado del funcionamiento
interno del sistema de archivos, podr hacer muy poco aparte de permitir que fsck realice todas las
reparaciones. Por todo esto, lo ms normal es utilizar la opcin -y y confiar en la suerte.
5.4 Montando y Desmontando Sistemas de archivos
En GNU/Linux cada vez que necesitamos acceder a un dispositivo es necesario montarlo, aunque existen
utilidades que se encargan de montar los dispositivos automticamente cuando los necesitemos,
hacindonos el trabajo ms fcil. Montar un dispositivo, bsicamente, es asignar un sistema de archivos a
un directorio, para que a travs de este directorio podamos acceder y/o modificar los ficheros y
directorios contenidos en el dispositivo.
De esta tarea de montar y desmontar sistemas de ficheros se ocupan los comandos mount y umount,
respectivamente. El archivo /etc/fstab permite definir el punto de montaje y las opciones para los sistemas
de ficheros que vamos a montar.
5.4.1 Dispositivos en Linux
En Linux, los nombres de los discos y las particiones pueden ser diferentes que los usados en otros
sistemas operativos. Es necesario conocer los nombres que Linux emplea cuando crea y monta
particiones. A continuacin, se lista el esquema bsico de nombrado:
Unidades de disco flexible (disquete):
Primera unidad: /dev/fd0
Segunda unidad: /dev/fd1
Unidades de disco SCSI (Identificacin SCSI address-wise):
Primera unidad: /dev/sda
Segunda unidad: /dev/sdb
y as sucesivamente.
Manual de Administracin GNU/Linux 82
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Unidades de un CD-ROM SCSI:
Primera unidad: /dev/scd0, tambin conocida como /dev/sr0
Discos en el controlador IDE primario:
Maestro: /dev/hda
Esclavo: /dev/hdb
Discos en el controlador IDE secundario:
Maestro: /dev/hdc
Esclavo: /dev/hdd
Los nuevos controladores IDE pueden tener dos canales de lectura, actuando,
efectivamente, como 2 controladores.
Las particiones en cada disco son representadas aadiendo un nmero decimal al nombre del disco: sda1 y
sda2 representan a la primera y segunda particin en la primera unidad de disco SCSI en el sistema.
Por ejemplo, en un sistema con 2 discos SCSI, uno en la direccin SCSI 2 y el otro en la direccin SCSI
4, el primer disco (en la direccin 2) se llama entonces sda, y el segundo sdb. Si el dispositivo sda tiene 3
particiones, stas se llamarn sda1, sda2, y sda3 respectivamente. Lo mismo se aplica al disco sdb y sus
particiones.
Notar que si se tienen dos adaptadores de concentrador de bus SCSI (p. ej., controladores), el orden de las
unidades puede confundirse. La mejor solucin para este caso es revisar los mensajes de arranque del
sistema, asumiendo que los modelos de los dispositivos y/o las capacidades son conocidos.
5.4.2 Entendiendo el archivo /etc/fstab
Para que las diferentes particiones estn disponibles desde un primer momento es necesario montarlas
durante el inicio del sistema. Los sistemas de archivos de los dispositivos removibles (tales como CD-
ROM, diskettes, discos ZIP, etc), se unen a la raz (/) del sistema como directorios (o puntos de montaje).
En principio estos directorios destinados a los dispositivos deben estar vacos, a la espera de su montaje.
La informacin sobre cmo se montan las particiones de los dispositivos se guarda en el fichero /etc/fstab.
Los sistemas de archivos definidos en este fichero son revisados y montados durante el arranque del
sistema. Sus entradas se consultan como fuente de informacin por defecto cuando los usuarios quieren
montar dispositivos removibles.
Para visualizar el contenido del archivo /etc/fstab puede utilizarse cualquier editor de texto plano, por
ejemplo vi (para editarlo hay que tener privilegios de usuario root):
$ vi /etc/fstab
Dependiendo de la cantidad de dispositivos del sistema, se debera ver un archivo semejante al que se
Manual de Administracin GNU/Linux 83
Unidad 5: Manejo de Particiones y Sistemas de Archivos
muestra a continuacin (en la Figura 5.iii puede verse otro ejemplo).
# /e1c/1s1ab. s1a11c 11e sys1em 1h1oJma11oh.
#
# <11e sys1em> <mouh1 po1h1> <1ype> <op11ohs> <dump> <pass>
pJoc /pJoc pJoc de1au1s 0 0
/dev/hda5 hohe swap sw 0 0
/dev/hda2 / ex13 de1au1s,eJJoJs=Jemouh1-Jo 0 1
/dev/1d0 /mh1/1oppy au1o de1au1s,Jw,useJ,hoau1o 0 0
/dev/cdJom /med1a/cdJom 1so9660 de1au1s,Jo,useJ,hoau1o 0 0
/dev/hda1 /mh1/hda1 v1a1 au1o,useJs,hoexec,Jo,umask=000 0 0
/dev/hda6 /mh1/hda6 h11s au1o,useJs,hoexec,Jo,umask=000 0 0
El archivo tiene una estructura semejante a una tabla (de hecho, de ah toma su nombre) donde se definen
los siguientes parmetros para cada sistema de ficheros: file system, mount point, type, options, dump y
pass. Si una lnea comienza con # se ignora, siendo esto til para incluir comentarios en el archivo para
referencia del usuario. A continuacin se explica cada uno de los parmetros:
<file system>: Especifica la particin del dispositivo a montar, ejemplo: /dev/hda1. Este campo no
puede contener el dispositivo entero (/dev/hda)
<mount point>: Punto de montaje; especifica el directorio donde se montar el sistema de ficheros
indicado, ejemplo: /mnt/hda1.
<type>: Tipo de sistema de ficheros; especifica el tipo de sistema de ficheros, ejemplo: ext2, ext3,
vfat (fat16/fat32), ntfs, iso9660 (sistema de ficheros utilizado en los CDROMs), swap, etc.
<options>: Establece las opciones que se deben aplicar al sistema de ficheros especificados. El
orden en que se definen estas opciones es importante ya que si se especifica defaults como ltima
opcin esta sobrescribir el resto de las opciones que se hayan puesto antes que ella. Es
aconsejable poner defaults a todos los sistemas de ficheros aunque algunas de las opciones que
define necesitemos que sean sobrescritas por otras acorde a nuestras necesidades (ver algunas de
las opciones mas utilizadas en la Tabla 5.I, de la siguiente seccin).
<dump>: Determina si un sistema debe ser volcado a travs del comando dump (el cual inicia un
backup de la particin). Puede tomar valores de 0 o 1. Comnmente en todos los UNIX actuales
se establece 0 para que no sea volcado.
<pass>: Determina si el sistema de ficheros indicado debe ser comprobado cada vez que se monte,
es decir, si se debe utilizar el comando fsck que comprueba la integridad de los sistemas de
ficheros. Puede tomar valor 0 o 1. Se debe especificar 1 a todos los sistemas que se considere que
deben ser comprobados, por ejemplo el sistema raz /).
Se pueden aadir o modificar estas entradas en cada caso y segn las necesidades de cada uno.
Manual de Administracin GNU/Linux 84
Unidad 5: Manejo de Particiones y Sistemas de Archivos
5.4.3 Montar un sistema de archivos
Sintaxis
mouh1 |opc1ohes] d1spos111vo
mouh1 |opc1ohes] d1Jec1oJ1o
mouh1 |opc1ohes] d1spos111vo d1Jec1oJ1o
Descripcin: La primera y segunda entrada consultan al fichero /etc/fstab para montar los dispositivos y
as tomar las opciones que se le especifiquen en el /etc/fstab. La tercera opcin es independiente del
fichero /etc/fstab y monta el sistema de archivos en el directorio indicado.
Tabla 5.H: Opciones empleadas por el comando mount
Opcin Funcin
-a Hace que todos los sistemas de ficheros mencionados en fstab se monten
como se indique, excepto aqullos cuya lnea contenga la opcin noauto
Manual de Administracin GNU/Linux 85
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Opcin Funcin
-h Muestra un mensaje de ayuda
-o Especifica las opciones de montaje en la lnea de comandos.
-r Monta sistemas de archivos en modo de solo lectura
-t tipo_de_sf Especifica un tipo de sistema de archivos. El argumento que sigue a -t se
emplea para indicar el tipo del sistema de ficheros.
-v Salida interactiva
-w Monta sistemas de archivos en modo lectura/escritura
Las opciones de montaje (Tabla 5.I) pueden especificarse en el fichero /etc/fstab o bien en la lnea de
comandos con la opcin -o. Estas opciones modifican el modo de montaje del comando mount.
Tabla 5.I: Opciones del sistema de ficheros especificadas por el comando mount
Opcin Funcin
async Toda la E/S al sistema de ficheros debera hacerse asncronamente.
auto El sistema de ficheros ser montado automticamente al iniciar. Puede montarse
con la opcin -a
defaults Establece una serie de opciones por defecto: rw, suid, dev, exec, auto, nouser y
async. Es la opcin por defecto en sistemas ext2
dev Interpretar dispositivos especiales de caracteres o bloques en el sistema de
ficheros
exec Permitir la ejecucin de binarios
noauto Slo puede montarse explcitamente (esto es, la opcin -a no har que el sistema
de ficheros se monte). El sistema de ficheros no sera montado automticamente al
iniciar.
noexec No permitir la ejecucin de ningn binario en el sistema de ficheros montado.
Esta opcin puede ser til para un servidor que tiene sistemas de ficheros que
contienen binarios para otras arquitecturas distintas de la suya.
nosuid No permitir el efecto de los bits SUID ni SGID
nouser Prohibir a un usuario ordinario (esto es, distinto de root) montar el sistema de
ficheros. Esto es lo predeterminado
ro Montar el sistema de ficheros en modo de slo lectura.
Manual de Administracin GNU/Linux 86
Unidad 5: Manejo de Particiones y Sistemas de Archivos
Opcin Funcin
rw Montar el sistema de ficheros con lectura y escritura
suid Permitir el efecto de los bits SUID y SGID
sync Toda la E/S al sistema de ficheros debera hacerse sncronamente.
user Permitir a un usuario ordinario montar el sistema de ficheros
users Permite a cualquier usuario el montaje/desmontaje de el sistema de ficheros
Ejemplo 1: Aqu se monta un CD-ROM situado en /dev/hdc en el directorio existente /cdrom de slo
lectura:
# mouh1 -J1 1so9660 /dev/hdc /cdJom
Si se monta sin la opcin -r, se mostrar un aviso de que el CD-ROM est protegido contra escritura y se
montar como slo lectura. Esto sera el caso del comando:
# mouh1 -1 1so9660 /dev/hdc /cdJom
Ejemplo 2: Montar un diskette (/dev/fd0) con sistema MS-DOS en el directorio /floppy
# mouh1 -1 msdos /dev/1d0 /1oppy
Ejemplo 3: Si las particiones /home y /swap fueron desactivadas por algn motivo se podran volver a
montar con la opcin -a
# mouh1 -av
De este modo, montamos los sistemas de archivos que no lo estn y visualizamos la accin del comando
conforme se va ejecutando (opcin -v).
5.4.4 Desmontar un sistema de archivos
Los sistemas de archivos pueden ser desmontados usando el comando umount (opciones en Tabla 5.J). Al
ejecutar este comando el sistema operativo desmonta el sistema de ficheros siempre que no est en uso y
que se tengan los permisos suficientes. Un error muy comn es tratar de desmontar un sistema de
ficheros estando en el punto de montaje (por lo que este estara en uso), puede comprobar que no esta en
el punto de montaje ejecutando el comando pwd.
Quitar dispositivos removibles o CD-ROM sin antes desmontarlos puede ocasionar errores: perdida de
Manual de Administracin GNU/Linux 87
Unidad 5: Manejo de Particiones y Sistemas de Archivos
datos, corrupcin de los mismos, etc.
S1h1ax1s.
umouh1 |opc1ohes] dev1ce
umouh1 |opc1ohes] d1Jec1oJ1os
Tabla 5.J Opciones empleadas por el comando umount
Opcin Uso
-a Desmonta todos los sistemas de archivos descriptos en /etc/fstab. Este fichero est
mantenido por los comando mount y umount en tiempo real, se usa normalmente
cuando se apaga/reinicia el PC.
-t tipo_de_sf Desmonta slo los sistemas de archivos del tipo especificado
Ejemplo 1: Desmontar el cdrom montado en /cdrom
# umouh1 /cdJom
Ejemplo 2: Desmontar todos los sistemas de ficheros NFS
# umouh1 -a1 h1s
Manual de Administracin GNU/Linux 88
Unidad 6: Instalacin de paquetes
UNIDAD 6: INSTALACIN DE PAQUETES
Para instalar programas en GNU/Linux tenemos varios caminos:
1. A travs de repositorios,
2. A travs de paquetes, o
3. A travs del cdigo fuente
6.1 Paquetes en Debian
6.1.1 Formatos de paquetes
Cuando en Linux hablamos de instalar un programa, en general nos referimos a "instalar un paquete", lo
que implica que los programas vienen empaquetados en un archivo.
El formato de stos archivos o paquetes, depende de la distribucin de GNU/Linux de que se trate. Los
formatos mas comunes son:
.deb : utilizado por Debian, Ubuntu y dems distribuciones basadas en Debian.
.rpm : utilizados por Fedora Core, Red Hat, Mandriva.
De entre todas las distribuciones de GNU/Linux se puede decir, sin ningn tipo de duda, que el sistema
de gestin de paquetes de Debian GNU/Linux es el ms completo de todos, y el que ofrece las
herramientas ms interesantes al administrador de dichos sistemas.
Existen dos tipos de paquetes Debian:
Paquetes binarios, que contienen ejecutables, archivos de configuracin, pginas man/info,
informacin sobre derechos de autor y otra documentacin. Estos paquetes se distribuyen en un
formato de archivo especfico de Debian que se distingue por tener .deb como extensin de
archivo.
Paquetes fuentes, que consisten en un archivo .dsc que describe el paquete (incluyendo el nombre
de los archivos que siguen), un archivo .orig.tar.gz que contiene el cdigo fuente original sin
modificar en formato tar comprimido con gzip y, generalmente, un archivo .diff.gz que contiene
los cambios del cdigo fuente original especficos de Debian.
Manual de Administracin GNU/Linux 89
Unidad 6: Instalacin de paquetes
Estos paquetes incluyen otra informacin importante, adems del software mismo, como pueden ser:
nombre completo y nmero de versin, descripcin de su funcionalidad, distribuidor del software, suma
de verificacin (o checksum, el cual protege la integridad de los datos), y dependencias, una lista de
otros paquetes requeridos para el correcto funcionamiento del software. Esta meta-informacin se
introduce normalmente en una base de datos de paquetes local.
6.1.2 Dependencias de paquetes
Los programas a menudo utilizan los mismos archivos que otras aplicaciones. En vez de poner esos
archivos en cada paquete, se puede instalar un paquete separado para proporcionar esos archivos a todos
los programas que los necesiten. Por eso, al instalar programas que necesitan esos archivos, el paquete
que los contiene debe ser instalado. Cuando un paquete depende de otro de esa manera, esto se conoce
como dependencia de paquete. Especificando dependencias, los paquetes pueden ser ms pequeos y
simples, los archivos y programas duplicados pueden ser eliminados.
Cuando instalas un programa, las dependencias deben ser instaladas al mismo tiempo. Normalmente, la
mayora de las dependencias requeridas estarn instaladas, pero se pueden necesitar tambin unos cuantos
extra. Por eso, cuando instalas un paquete, que otros paquetes se instalen tambin.
6.2 Gestores de paquetes
Un gestor de paquetes es una herramienta que nos permite automatizar el proceso de instalacin,
actualizacin, configuracin y eliminacin de paquetes de software, as como resolver sus dependencias.
Debian cuenta con dos herramientas bsicas para administracin de paquetes:
1. dpkg : es la base del sistema de gestin de paquetes de Debian GNU/Linux. Se utiliza para
instalar, quitar, y proporcionar informacin sobre los paquetes .deb.
apt : Herramienta Avanzada de Empaquetamiento (Advanced Packaging Tool). No existe un
programa apt en s mismo, sino que APT es una biblioteca de funciones C++ que se emplea por
varios programas de lnea de comandos para distribuir paquetes. Existen tambin programas que
proporcionan un frontispicio (front-end) para APT, generalmente basados en apt-get, como
aptitude con una interfaz de texto ncurses, o Synaptic con una interfaz grfica GTK+.
En el principio existan los .tar.gz. Los usuarios tenan que compilar cada programa que quisieran usar en
su sistema GNU/Linux. Cuando Debian fue creado, fue imperante que el sistema incluyera un programa
que se encargara de manejar la paquetera instalada en la computadora. Este programa se llam dpkg. As
fue como naci el primer "paquete" en el mundo GNU/Linux, an antes de que Red Hat decidiera crear
Manual de Administracin GNU/Linux 90
Unidad 6: Instalacin de paquetes
su propio programa "rpm".
Rpidamente lleg un nuevo dilema a las mentes de los creadores de GNU/Linux. Ellos necesitaban un
modo fcil, rpido y eficiente de instalar programas, que manejara automticamente las dependencias y
se hiciera cargo de la configuracin mientras se actualizan. Nuevamente Debian fue pionero y cre el
APT, este programa fue diseado originariamente para trabajar con paquetes .deb, pero desde entonces ha
sido modificado para trabajar con paquetes rpm (apt-rpm), y para funcionar en otros sistemas operativos,
como Mac OS X y Open Solaris.
6.2.1 La herramienta bsica: dpkg
dpkg es la herramienta fundamental dentro del sistema de paquetes de Debian GNU/Linux. Es la
encargada de instalar o eliminar paquetes, y manejar la base de datos del sistema con la situacin de
paquetes, de forma que indique claramente estos cambios. Adems, dado que conoce las interioridades
del sistema de paquetes, no slo instala los ficheros que contienen los paquetes en los lugares
correspondientes, sino que tambin ejecuta en determinados momentos de la instalacin, los programas
que el desarrollador del paquete haya indicado. De esta forma, al instalar un paquete, llamar al programa
encargado de configurarlo. ste podr modificar slo unos pocos ficheros en el sistema, o mostrar al
usuario una interfaz para adaptar el programa que est instalando a su sistema. En la Tabla 6.A se
describen algunas opciones comunes del comando dpkg.
Tabla 6.A: Opciones comunes del comando dpkg
Opcin Descripcin
-i --install Instalar paquetes .deb
-r --remove Desinstalar paquetes .deb
--purge Borrar todo lo instalado por un paquete, incluyendo ficheros de configuracin.
--configure Configurar un programa. Esta tarea se hace siempre despus de la instalacin.
-s --status Ver la informacin de estado de un paquete.
-L --listfiles Obtener una lista de los ficheros que proporciona
-l --list Obtener una lista de los paquetes disponibles.
-I --info Obtener la informacin de los archivos de un paquete .deb
-c --contents Listar el contenido de un paquete .deb
Manual de Administracin GNU/Linux 91
Unidad 6: Instalacin de paquetes
Para llevar a cabo las funciones relacionadas con archivos en paquetes .deb, dpkg llama, de forma
transparente, a la aplicacin dpkg-deb.
Debian introduce en su sistema de paquetes una serie de interrelaciones que permiten a los
desarrolladores indicar cmo se comportan sus paquetes con el resto de los paquetes de la distribucin.
De sta forma el paquete adquiere otra entidad (quizs podra denominarse social dentro del mundillo de
paquetes), y el sistema de paquetes gana en complejidad. Pero, al mismo tiempo, facilita enormemente su
utilizacin al usuario ya que le avisa de determinadas situaciones, como puedan ser:
dependencias con otros paquetes, si no estn instalados stos no podr instalarse el paquetes
(Depends y Pre-Depends). Las dependencias tambin podrn ser menos fuertes (Recommends).
paquetes con los que entra en conflicto y que no pueden estar instalados cuando se instala ste
(Conflicts).
paquetes que mejoran el paquete que se est instalando y que, aunque no son necesarios para su
funcionamiento, se recomienda su instalacin (Suggests).
paquetes "virtuales" ofrecidos por el paquete (Provides)
paquetes a los que ste paquete reemplaza (Replaces).
Est clara su utilidad, ya que as un usuario evita instalar dos gestores de correo que, al configurarse,
entraran en conflicto entre s, "luchando" por los buzones de correo de los usuarios.
Sin embargo, aunque dpkg "entiende" las interrelaciones entre paquetes, no las gestiona. Esta tarea queda
a las interfaces y, actualmente, es gestionada por apt.
6.2.2 El gestor de interrelaciones: apt
Apt es el conjunto de herramientas ofrecido por Debian que permite decirle al sistema: "instala X", y ste,
apropiadamente configurado, buscar no solo el programa X, sino tambin sus dependencias (Y, W) y las
dependencias de stas (Z, V). Los instalar, quitar M (si M entra en conflicto) y dejar X totalmente
instalado!.
Es capaz de hacer esto gracias al sistema de dependencias, y a su conocimiento de ste.
Adems apt puede configurarse para acceder a distintas fuentes de paquetes (gestionadas a travs del
fichero de configuracin /etc/apt/sources.list; ver seccin 6.3.2). Estas fuentes podrn ser:
CD-ROMS de la distribucin, o actualizaciones de la misma.
Servidores en Internet por HTTP FTP.
Un disco duro local con los paquetes.
Manual de Administracin GNU/Linux 92
Unidad 6: Instalacin de paquetes
Las herramientas mas comnmente utilizadas por apt son dos:
apt-get : es un gestor de paquetes de lnea de comandos que le permite a los usuarios obtener,
desde una serie de repositorios en internet, una gran cantidad de paquetes de software, e
instalarlos junto con sus dependencias. En la Tabla 6.B se detallan algunos modificadores tiles
para apt-get.
apt-cache : realiza una serie de operaciones sobre la cach de paquetes de APT, no modifica el
estado del sistema pero proporciona operaciones de bsqueda en la informacin de los
paquetes, de las cuales se puede obtener informacin muy til. En la Tabla 6.C se detallan
algunas opciones para apt-cache.
Tabla 6.B: Modificadores para el comando apt-get
Opcin Descripcin
update Actualiza la lista de software instalado y el disponible en los repositorios. Es
conveniente realizar siempre este paso antes de instalar o remover paquetes.
install Instala el/los paquetes especificados.
reinstall install Reinstala un paquete, esto es til si por alguna razn se ha daado alguno.
remove
Quita un paquete. De esta forma tambin se quitan sus dependencias.
purge
Quita un paquete y sus archivos de configuracin si existen.
-h
Despliega la ayuda
-d
Indica descargar solamente, sin instalar un archivo
-s No actuar, mostrar una simulacin de la instalacin
-y
Asumir Yes en todas las preguntas de instalacin
-u Mostrar una lista de los paquetes actualizados
Tabla 6.C: Opciones tiles para usar el comando apt-cache
Opcin Descripcin
apt-cache show
Consultar la informacin de un programa
apt-cache showpkg
Consultar las dependencias de un programa
apt-cache search Buscar un texto determinado entre los programas disponibles
apt-cache depends Mostrar las dependencias con respecto a un programa
Manual de Administracin GNU/Linux 93
Unidad 6: Instalacin de paquetes
apt-get descarga los paquetes a instalar en un almacenamiento temporal, /var/cache/apt
Ejemplos de uso:
1. instalacin del gestor de archivos nautilus
# ap1-ge1 1hs1a hau11us
APT buscar en su base de datos para encontrar la versin ms reciente del paquete y lo descargar del
servidor correspondiente especificado en sources.list. Si este paquete necesitara otro para funcionar,
como en este caso, APT resolver las dependencias e instalar los paquetes necesarios. En este caso,
veremos lo siguiente:
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
The 1o11oWng ex1ra packages W11 be ns1a11ed:
bohobo 1bmedusa0 1bhau11us0
The 1o11oWng NEW packages W11 be ns1a11ed:
bohobo 1bmedusa0 1bhau11us0 hau11us
0 packages upgJaded, 4 hewy 1hs1aed, 0 1o Jemove ahd 1 ho1 upgJaded.
heed 1o ge1 8329kB o1 aJch1ves. A11eJ uhpack1hg 17.2hB w1 be used.
0o you wah1 1o coh11hue? |Y/h]
El paquete nautilus necesita las libreras compartidas mencionadas, as pues APT las descargar del
servidor. Si se especifican antes los nombres de esas libreras con el comando apt-get APT no pregunta, si
desea continuar o no; supone automticamente que se desean instalar esos paquetes. Esto significa que
APT slo pregunta por confirmacin cuando se van a instalar paquetes que no fueron especificados en la
lnea de comando.
2. Instalar varios programas a la vez
Pueden seleccionarse varios paquetes para instalar en una sola lnea. Los archivos descargados son
almacenados en el directorio /var/cache/apt/archives para su instalacin posterior.
# ap1-ge1 1hs1a bohobo 1bmedusa0 1bhau11us0 hau11us
3. Eliminar paquetes junto con la instalacin
Se puede especificar tambin que paquetes sern eliminados en la misma lnea. Slo agregue un "-"
inmediatamente despus del nombre del paquete que quiere eliminar, por ejemplo:
# ap1-ge1 1hs1a hau11us ghome-pahe-
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
Manual de Administracin GNU/Linux 94
Unidad 6: Instalacin de paquetes
The 1oow1hg ex1Ja packages w1 be 1hs1aed.
bohobo 1bmedusa0 1bhau11us0
The 1o11oWng packages W11 be ENvE:
ghome-appe1s ghome-pahe ghome-pahe-da1a ghome-sess1oh
The 1oow1hg hEW packages w1 be 1hs1aed.
bohobo 1bmedusa0 1bhau11us0 hau11us
0 packages upgJaded, 4 hewy 1hs1aed, 4 1o Jemove ahd 1 ho1 upgJaded.
heed 1o ge1 8329kB o1 aJch1ves. A11eJ uhpack1hg 2594kB w1 be used.
0o you wah1 1o coh11hue? |Y/h]
4. Reinstalar un programa
Si de alguna forma daa un paquete instalado, o simplemente desea reinstalar la versin ms nueva
disponible del paquete, puede utilizar la siguiente opcin:
# ap1-ge1 --Je1hs1a 1hs1a gdm
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
0 packages upgJaded, 0 hewy 1hs1aed, 1 rens1a11ed, 0 1o Jemove ahd 1 ho1
upgJaded.
heed 1o ge1 0B/182kB o1 aJch1ves. A11eJ uhpack1hg 0B w1 be used.
0o you wah1 1o coh11hue? |Y/h]
5. Eliminar paquetes
Si ya no se necesita utilizar cierto paquete, se lo puede eliminar del sistema utilizando APT como sigue:
# ap1-ge1 Jemove ghome-pahe
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
The 1o11oWng packages W11 be ENvE:
ghome-appe1s ghome-pahe ghome-pahe-da1a ghome-sess1oh
0 packages upgJaded, 0 hewy 1hs1aed, 4 1o Jemove ahd 1 ho1 upgJaded.
heed 1o ge1 0B o1 aJch1ves. A11eJ uhpack1hg 14.6hB w1 be 1Jeed.
0o you wah1 1o coh11hue? |Y/h]
Como se puede apreciar en el ejemplo anterior, APT se hace cargo de eliminar los paquetes dependientes
del paquete eliminado. No hay manera de eliminar un paquete utilizando APT sin eliminar los paquetes
que ste necesitaba.
Manual de Administracin GNU/Linux 95
Unidad 6: Instalacin de paquetes
Ejecutando apt-get como en el ejemplo causar que los paquetes sean eliminados, pero sus archivos de
configuracin, si existan, permanecern intactos en el sistema. Para una eliminacin completa del
paquete, ejecute:
# ap1-ge1 --puJge Jemove ghome-pahe
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
The 1o11oWng packages W11 be ENvE:
ghome-appe1s* ghome-pahe* ghome-pahe-da1a* ghome-sess1oh*
0 packages upgJaded, 0 hewy 1hs1aed, 4 1o Jemove ahd 1 ho1 upgJaded.
heed 1o ge1 0B o1 aJch1ves. A11eJ uhpack1hg 14.6hB w1 be 1Jeed.
0o you wah1 1o coh11hue? |Y/h]
Observe el "*" despus de los nombres. Esto indica que los archivos de configuracin de cada paquete
sern eliminados tambin.
Al igual que en el caso de la instalacin, puede utilizar un smbolo con la opcin de "remove" para
invertir el significado de un paquete en especial. En el caso de la eliminacin, si agrega un "+" despus
del nombre del paquete, el paquete ser instalado en vez de eliminarlo.
# ap1-ge1 --puJge Jemove ghome-pahe hau11us+
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
The 1o11oWng ex1ra packages W11 be ns1a11ed:
bohobo 1bmedusa0 1bhau11us0 hau11us
The 1oow1hg packages w1 be REh0vE0.
ghome-appe1s* ghome-pahe* ghome-pahe-da1a* ghome-sess1oh*
The 1o11oWng NEW packages W11 be ns1a11ed:
bohobo 1bmedusa0 1bhau11us0 hau11us
0 packages upgJaded, 4 neW1y ns1a11ed, 4 1o Jemove ahd 1 ho1 upgJaded.
heed 1o ge1 8329kB o1 aJch1ves. A11eJ uhpack1hg 2594kB w1 be used.
0o you wah1 1o coh11hue? |Y/h]
6. Actualizar paquetes
Las actualizaciones de los paquetes son un gran xito de APT. Pueden realizarse con tan slo un
comando:
# ap1-ge1 upgJade
Puede utilizar esa opcin para actualizar los paquetes de la distribucin actual, o bien para actualizar a
Manual de Administracin GNU/Linux 96
Unidad 6: Instalacin de paquetes
una nueva distribucin, aunque el siguiente comando es una mejor opcin para este caso:
# ap1-ge1 d1s1-upgJade
Este comando es muy til con la opcin -u. Esta opcin muestra la lista completa de paquetes que APT
actualizar. Sin ella, se estara actualizando a ciegas. APT descargar las versiones ms recientes de cada
paquete y las instalar de la manera ms apropiada. Es muy importante ejecutar siempre apt-get update
antes de probar esto.
# ap1-ge1 -u upgJade
Read1hg Package L1s1s... 0ohe
Bu1d1hg 0epehdehcy TJee... 0ohe
The 1oow1hg packages have beeh kep1 back
cpp gcc 1o
The 1o11oWng packages W11 be upgraded
adduseJ ae ap1 au1ocoh1 debhepeJ dpkg-dev esouhd esouhd-commoh
11p 1hdeh1 1pcha1hs 1saphp1oos 1baud1o11e-dev 1baud1o11e0
1besd0 1besd0-dev 1bg1k1.2 1bg1k1.2-dev 1bock11e1
1bhew10 1boJb11-dev 1boJb110 1bs1dc++2.10-g1bc2.2
1b11113g 1b11113g-dev modcoh1 oJb11 pJocps psm1sc
29 packages upgJaded, 0 hewy 1hs1aed, 0 1o Jemove ahd 3 ho1 upgJaded.
heed 1o ge1 5055B/5055kB o1 aJch1ves. A11eJ uhpack1hg 1161kB w1 be used.
0o you wah1 1o coh11hue? |Y/h]
El proceso es muy fcil. Note que en las primeras lneas apt-get menciona que algunos paquetes fueron
conservados. Esto significa que hay versiones nuevas de estos paquetes mas no fueron actualizados por
alguna razn. Algunas razones pueden ser dependencias fallidas (el paquete del cual depende no tiene
una versin nueva para actualizar) o nuevas dependencias (el paquete ahora depende de nuevos paquetes
que la versin anterior).
6.2.3 Aptitude: la interfase de texto mas usada
Aptitude es una interfaz del sistema APT basada en texto. Muchas de las funciones tpicas de gestin de
paquetes, como la instalacin, desinstalacin y actualizacin, se realizan con Aptitude mediante rdenes
de una sola tecla, normalmente letras minsculas.
Estas interfaces tienen como objetivo el facilitar al usuario la gestin diaria del sistema de paquetes, de
Manual de Administracin GNU/Linux 97
Unidad 6: Instalacin de paquetes
manera que pueda ver, de forma integrada, los paquetes disponibles, sus descripciones, y sus
interrelaciones. Aptitude hace una mejor gestin de las dependencias que apt, ya que puede ofrecer una
serie de alternativas cuando sea posible para que el usuario elija la que le conviene (apt sin embargo, elije
la que cree conveniente que puede no ser la ms acertada, sobre todo en el caso de paquetes "virtuales").
Es conveniente usar aptitude sobretodo en entornos de terminales no grficas para garantizar el correcto
funcionamiento de las teclas de comandos.
Aptitude puede usarse tanto en la interfaz visual como desde la lnea de comandos. Las opciones mas
comunes para lnea de comandos se describen en la Tabla 6.D.
Tabla 6.D: Modificadores tiles de aptitude en lnea de comandos
Opcin Descripcin
update Actualiza la lista de software instalado y el disponible en los repositorios.
upgrade Actualiza los paquetes ya instalados
install Instala el/los paquetes especificados.
remove Quita un paquete. De esta forma tambin se quitan sus dependencias.
reinstall Reinstala un paquete
purge Quita un paquete y sus archivos de configuracin si existen
search Busca paquetes
Para ingresar a la interfaz visual, se utiliza el comando:
# sudo ap111ude
Esto despliega una pantalla con una barra de men en la parte de arriba y dos paneles debajo de esta
barra. El panel superior contiene las categoras de los paquetes, tal como Nuevos Paquetes y Paquetes No
Instalados. El panel inferior contiene informacin relativa a los paquetes y categoras de paquetes.
6.2.4 Synaptic, interfaz grfica del gestor de paquetes
Synaptic es la versin grfica de apt-get. En esta versin, el equivalente al comando sudo apt-get update
es hacer click en el botn Recargar. El equivalente al comando sudo apt-get install, esta dividido en 2
etapas. Primero se marcarn las aplicaciones que se desean instalar y luego se deber hacer click en el
botn Aplicar. Entonces se descargarn e instalarn los paquetes seleccionados.
Manual de Administracin GNU/Linux 98
Unidad 6: Instalacin de paquetes
6.3 Empaquetar y Comprimir archivos
6.3.1 Que es empaquetar y comprimir?
Dos conceptos importantes de entender son empaquetar y comprimir:
Empaquetar es agrupar en un solo archivo o paquete varios archivos y/o directorios. Tener varios
archivos relacionados en un solo paquete simplifica la organizacin en muchas situaciones, de las
cuales la ms comn es respaldar.
Comprimir significa aplicar a un archivo o directorio un algoritmo (un conjunto de frmulas
matemticas para representar redundancias en un archivo) que reducir el espacio requerido para
almacenar ese archivo o directorio.
6.3.2 Programas utilizados para empaquetar y comprimir archivos
Tar y GNU zip son dos programas utilizados para empaquetar y comprimir ficheros respectivamente,
que suelen incluirse en distribuciones Linux y estn disponibles en mquinas Unix.
El programa tar fue desarrollado con la intencin de realizar copias de seguridad en cinta magntica (de
modo que tiene varios aos ya), pero actualmente se sigue usando con otros fines, como crear paquetes
de archivos. Los paquetes creados tienen el formato .tar.
GNU zip, tambin conocido como Gzip, es un programa peculiar que se encarga de comprimir o
descomprimir ficheros o paquetes de ficheros. Slo puede comprimir uno cada vez, y el archivo resultante
tiene el formato .gz.
Bzip2 es otro programa incluido en la mayora de las distribuciones y se puede decir que es una evolucin
de Gzip. Posee un potente motor interno con algoritmos de compresin mucho ms complejos que
consiguen que los ficheros ocupen menor espacio que los comprimidos mediante Gzip.
6.3.3 Como utilizar Tar, Gzip y Bzip2?
Lo primero, es navegar hacia el directorio donde se encuentran los ficheros o carpetas a empaquetar. Una
vez dentro, utilizar los comandos segn la accin que se quiera realizar.
Manual de Administracin GNU/Linux 99
Unidad 6: Instalacin de paquetes
Comandos bscos Tar
1aJ cv1 hombJe_aJch1vo.1aJ
aJch1vo1 aJch1vo2 aJch1vo3
Crea un archivo .tar
1aJ 1v1 hombJe_aJch1vo.1aJ
Ver contenido
1aJ xv1 hombJe_aJch1vo.1aJ
Extraer contenido
Comandos bscos Gzp
gz1p hombJe_11cheJo
Comprime a un archivo .gz
gz1p *
Comprime todo, NO los
directorios
guhz1p hombJe_11cheJo.gz
Descomprime
Empaquetar y comprmr aI msmo tempo con Tar y Gzp
1aJ czv1 11cheJo.1aJ.gz
11cheJo1 11cheJo2 11cheJo3
Crea un fichero .tar.gz
1aJ 1zv1 11cheJo.1aJ.gz
Muestra contenido
1aJ xzv1 11cheJo.1aJ.gz
Extrae contenido
Bzp2
bz1p2 hombJe_11cheJo
Comprime a un archivo .bz2
buhz1p2 hombJe_11cheJo.bz2
Extrae contenido
Tar.bz2 o tbz2
1aJ cv1 hombJe_11cheJo.1aJ.bz2
Crea un fichero .tbz2
1aJ xv1 hombJe_11cheJo.1aJ.bz2
descomprimir un fichero .tbz2
1aJ 1v1 hombJe_11cheJo.1aJ.bz2
ver contenido de ficheros .tbz2
Tambin existen descompresores para otros tipos de archivo como zip, rar, 7z, etc.
Manual de Administracin GNU/Linux 100
Unidad 6: Instalacin de paquetes
6.4 Instalacin de programas a travs de los repositorios
6.4.1 Que es un repositorio?
Es un lugar donde se centraliza todo el software que existe para cada distribucin de GNU/Linux, por lo
que tienes que utilizar slo los repositorios de tu distribucin.
Existe un repositorio central con ms de 21.000 paquetes apt utilizados por apt-get y programas derivados
para descargar e instalar aplicaciones directamente desde Internet, conocida como una de las mejores
cualidades de Debian.
6.4.2 El archivo /etc/apt/sources.list
Como parte de su funcionamiento, APT utiliza un archivo que enlista las "fuentes" o repositorios en
donde se encuentran los paquetes. Este archivo es:
/e1c/ap1/souJces.1s1
El contenido de este archivo, normalmente sigue este formato:
deb h11p.//hos1/deb1ah d1s1J1buc1h secc1h1 secc1h2 secc1h3
deb-sJc h11p.//hos1/deb1ah d1s1J1buc1h secc1h1 secc1h2 secc1h3
La primera palabra en cada lnea, deb o deb-src, indican el tipo del archivo: ya sea que contenga paquetes
binarios (deb), esto es, los paquetes pre-compilados que normalmente se usan, o los paquetes fuente (deb-
src), que son los cdigos originales, ms el archivo de control de Debian (.dsc) y el diff.gz que contienen
los cambios necesarios para adaptar el programa a Debian.
Generalmente se encuentra lo siguiente por defecto en el archivo /etc/apt/sources.list:
# See souJces.1s1{5) 1oJ moJe 1h1oJma11oh, espec1ay
# RemembeJ 1ha1 you cah ohy use h11p, 11p oJ 11e bRTs
# C0R0hs aJe mahaged 1hJough 1he ap1-cdJom 1oo.
deb h11p.//h11p.us.deb1ah.oJg/deb1ah s1abe ma1h coh1J1b hoh-1Jee
deb h11p.//hoh-us.deb1ah.oJg/deb1ah-hoh-bS s1abe/hoh-bS ma1h coh1J1b hoh-1Jee
Manual de Administracin GNU/Linux 101
Unidad 6: Instalacin de paquetes
deb h11p.//secuJ11y.deb1ah.oJg s1abe/upda1es ma1h coh1J1b hoh-1Jee
# bhcommeh1 11 you wah1 1he ap1-ge1 souJce 1uhc11oh 1o woJk
#deb-sJc h11p.//h11p.us.deb1ah.oJg/deb1ah s1abe ma1h coh1J1b hoh-1Jee
#deb-sJc h11p.//hoh-us.deb1ah.oJg/deb1ah-hoh-bS s1abe/hoh-bS ma1h coh1J1b hoh-1Jee
stas son las lneas necesarias para una instalacin bsica de Debian. La primer lnea deb apunta al
archivo en el servidor oficial, la segunda lnea apunta hacia el archivo del servidor non-US y la tercera
lnea apunta hacia el archivo del servidor de actualizaciones de seguridad.
Las dos ltimas lneas estn deshabilitadas con el smbolo "#" al inicio, as que apt-get las ignora. stas
son las lneas de deb-src, esto es, apuntan hacia los paquetes fuente de Debian. Si frecuentemente
descarga paquetes fuente para probar o recompilar, habiltelas (borrando el "#" al inicio de la lnea).
El archivo /etc/apt/sources.list puede contener varios tipos de lneas. APT sabe como interpretar lneas
del tipo http, ftp, file (archivos locales, p.e., un directorio que contiene un CD-ROM) y ssh.
Para agregar nuevos repositorios a la lista, es posible editar el archivo /etc/apt/sources.list con permisos
de administrador. Algunas opciones que pueden agregarse son:
deb h11p.//deb1ah.uhesJ.edu.ve/deb1ah/ e1ch ma1h
deb-sJc h11p.//deb1ah.uhesJ.edu.ve/deb1ah/ e1ch ma1h
#e1ch 11p
deb h11p.//11p.us.deb1ah.oJg/deb1ah/ e1ch ma1h coh1J1b hoh-1Jee
deb-sJc h11p.//11p.us.deb1ah.oJg/deb1ah/ e1ch ma1h coh1J1b hoh-1Jee
#e1ch secuJ11y upda1es
deb h11p.//secuJ11y.deb1ah.oJg/ e1ch/upda1es ma1h coh1J1b
deb-sJc h11p.//secuJ11y.deb1ah.oJg/ e1ch/upda1es ma1h coh1J1b
#e1ch ma1h coh1J1b hoh-1Jee
deb h11p.//h11p.us.deb1ah.oJg/deb1ah/ e1ch ma1h coh1J1b hoh-1Jee
deb-sJc h11p.//h11p.us.deb1ah.oJg/deb1ah/ e1ch ma1h coh1J1b hoh-1Jee
Manual de Administracin GNU/Linux 102
Unidad 6: Instalacin de paquetes
#e1ch mu11med1a
deb h11p.//www.deb1ah-mu11med1a.oJg e1ch ma1h
#1ueh1es a1eJha11vas de paque1es deb
deb h11p.//deb1ah.og1c1hux.com/deb1ah/ e1ch ma1h
deb-sJc h11p.//deb1ah.og1c1hux.com/deb1ah/ e1ch ma1h
Cada vez que se mod111que e aJch1vo /e1c/ap1/souIces.1Is1, es hecesaJ1o eecu1aJ e
comahdo
# ap111ude upda1e
para permitir a APT obtener la lista de paquetes de los nuevos repositorios.
6.4.3 Actualizando la lista de paquetes disponibles
El sistema de paquetes utiliza una base de datos para llevar un monitoreo de los paquetes instalados, los
no instalados y cuales estn disponibles para su futura instalacin. Los programa aptitude y apt-get
utilizan esta base de datos para averiguar como instalar los paquetes que son requeridos por el usuario y
para indagar sobre que paquetes adicionales sern requeridos para que el paquete seleccionado funcione
correctamente.
Para actualizar la lista de paquetes en los repositorios, se utiliza el comando:
# ap111ude upda1e
Es una buena costumbre ejecutar este comando regularmente para mantenerse informado acerca de las
posibilidades de actualizacin para el sistema, particularmente las actualizaciones de seguridad.
6.4.4 Buscar un paquete en los repositorios
# ap1-cache seaJch hombJe_de_pJogJama
# ap111ude seaJch hombJe_de_pJogJama
Si no conocemos el nombre del programa, pero sabemos la descripcin del paquete, lo mejor es usar el
Manual de Administracin GNU/Linux 103
Unidad 6: Instalacin de paquetes
apt-cache search. El apt-cache hace una bsqueda completa de las palabras que indiquemos en el nombre o
las descripciones de los paquetes.
6.5 Instalar programas a travs de paquetes
6.5.1 Instalacin de programas que no estn en los repositorios
Si el programa que nos interesa instalar no est en los repositorios, podemos descargar el paquete .deb
que corresponda a nuestra distribucin.
Si buscamos paquetes .deb para Debian podemos bajarlos desde:
http://packages.debian.org
Si buscamos paquetes .deb para Ubuntu, desde:
http://packages.ubuntu.com
http://www.getdeb.net
En este caso, para instalar el paquete se utiliza el siguiente comando:
# dpkg -1 hombJe_de_paque1e.deb
Es necesario tener en cuenta que se debern resolver las dependencias manualmente.
6.6 Instalar programas desde el cdigo fuente
Una forma de instalar programas en GNU/Linux es desde el cdigo fuente del programa. Para esto
necesitamos el paquete que por lo general est en formato .tar.gz o .tar.bz2, y compilar el cdigo. Este
proceso se puede hacer en cualquier distribucin, solo necesitamos las herramientas de compilacin.
6.6.1 Qu es cdigo fuente?
El cdigo fuente es el programa tal como lo escribi el programador, no es ejecutable directamente por la
computadora. Normalmente est destinado a ser traducido a otro cdigo, llamado cdigo objeto, ya sea
lenguaje de mquina nativo para ser ejecutado por una computadora o bytecode para ser ejecutado por un
intrprete.
Este proceso se denomina compilacin y permite la realizacin de programas.
Tener el cdigo fuente es vital si se necesita modificar un programa y adaptarlo a las propias necesidades.
Manual de Administracin GNU/Linux 104
Unidad 6: Instalacin de paquetes
6.6.2 Descomprimir el cdigo fuente de un programa
En primer lugar, y una vez que hayamos conseguido el cdigo fuente, hay que extraerlo del archivo
comprimido en el que suele venir, ya sea ZIP, RAR o los ms habituales, TAR.GZ y TAR.BZ2. Aunque
las distribuciones ms usadas descomprimen con aplicaciones grficas, desde el terminal
descomprimiremos estos archivos con los siguientes comandos:
Archivos tar.gz: # tar -xvzf nombre_archivo.tar.gz
Archivos tar.bz2: # tar -xvjf nombre_archivo.tar.bz2
Archivos tar.bz: # tar -xvif nombre_archivo.tar.bz
Archivos rar: # unrar e -kb nombre_archivo.rar
Archivos zip: # unzip nombre_archivo.zip
6.6.3 Resolver las dependencias
Muchos paquetes de software, para que funcionen correctamente, dependen de otros paquetes o libreras
que tienen que estar instalados en el sistema.
La informacin sobre qu dependencias requiere el programa puede encontrarse en los archivos
README e INSTALL, ubicados dentro del directorio del cdigo fuente.
Las dependencias pueden ser libreras de lenguajes de programacin, como Python, Perl o C++. Otras
sern necesarias simplemente para compilar el cdigo, como make, cmake o gcc. Tambin las hay que
forman parte de nuestro Entorno de Escritorio, KDE o Gnome. Y otras, simplemente, son libreras que
realizan funciones por separado y en las que se apoya nuestro programa a compilar, como GTK (que usa
GIMP) o gstreamer (para reproducir vdeos).
El principal problema viene cuando el autor del programa no nos da ninguna instruccin de qu
dependencias requiere su creacin. Por suerte, en algunos casos al intentar compilar veremos mensajes de
error que, si nos fijamos bien, nos alertarn que faltan ciertos paquetes.
As pues, antes de compilar el cdigo fuente del programa a instalar tendremos que satisfacer las
dependencias. Podemos hacerlo desde el gestor de paquetes de nuestra distribucin, como Synaptic en
Debian/Ubuntu, o desde terminal.
Desde el terminal:
Manual de Administracin GNU/Linux 105
Unidad 6: Instalacin de paquetes
# sudo ap111ude 1hs1a 1bg1k-ava
Aptitude se encargar de buscar e instalar tambin las dependencias de este paquete. En caso de no saber
el nombre concreto del paquete, podramos buscar GTK y Java escribiendo:
# ap111ude seaJch g1k ava
Una vez resueltas las dependencias habr terminado el trabajo duro.
6.6.4 Compilar un programa desde el cdigo fuente
La extraccin y descompresin del archivo generar un directorio. Tenemos que ubicarnos dentro del
mismo:
# cd hombJe_d1Jec1oJ1o
Ahora que estamos dentro del directorio, podemos compilarlo. Hay que tener en cuenta que no todos los
paquetes se compilan de igual forma, es recomendable leer los archivos README e INSTALL, que se
encuentran dentro del directorio. Pero por lo general, la manera de compilarlo es as:
# sudo ./coh11guJe
# sudo make
# sudo make 1hs1a
Otras aplicaciones requieren pasos distintos. En lugar de make, pueden usar cmake o jam, y algunos,
programados en Python, se instalan simplemente con el comando:
# sudo py1hoh se1up.py 1hs1a
Manual de Administracin GNU/Linux 106
Unidad 6: Instalacin de paquetes
6.7 Cambiar formatos de paquetes en Linux
6.7.1 Utilizando Alien
Alien es un script en Perl que nos permite convertir entre diferentes formatos de paquetes binarios de
GNU/Linux, pudiendo pasar entre s cualquiera de estos formatos:
.rpm (RedHat)
.deb (Debian)
.slp (Stampede)
.tgz (Slackware)
.pkg (Solaris)
Usando alien podemos por tanto, convertir por ejemplo paquetes precompilados de debian (debian,
esware, etc) a .rpm (Red Hat, Conectiva, Mandrake, SuSE,), o paquetes .rpm a .tgz (muy sencillos
de descomprimir), de una forma sencilla, rpida y muy cmoda. Tambin soporta paquetes LSB.
Instalar Alien:
# sudo ap111ude 1hs1a a1eh
Opciones del comando Alien:
Las opciones son lo que dan funcionalidad y potencia al script. A pesar de ello, si no ponemos opciones,
Alien convertir de forma predeterminada cualquier paquete que le presentemos a formato .deb.
El formato de uso es:
# a1eh |opc1h] |hombJe_aJch1vo]
-d, --to-deb: Cualquiera de las dos formas vale. Esta opcin crea un paquete .deb (Debian) a partir
de otro tipo de paquete binario. Esta opcin es la opcin por defecto.
-r, --to-rpm: Cualquiera de las dos formas vale. Esta opcin crea un paquete .rpm (RedHat) a
partir de otro tipo de paquete binario.
-t, --to-tgz: Cualquiera de las dos formas vale. Esta opcin crea un paquete .tgz (Slackware) a
partir de otro tipo de paquete binario.
--to-slp: Esta opcin crea un paquete .slp (Stampede) a partir de otro tipo de paquete binario.
-p, --to-pkg: Cualquiera de las dos formas vale. Esta opcin crea un paquete .pkg (Solaris) a partir
de otro tipo de paquete binario.
Manual de Administracin GNU/Linux 107
Unidad 6: Instalacin de paquetes
-i, --install: Automticamente instalar cada paquete generado por la transformacin y
seguidamente eliminarlo una vez instalado.
--version=version: Permite especificar una versin para el paquete binario. Esto slo tiene un
efecto cuando se convierte un paquete .tgz, que pueden carecer de informacin de versin. Nota:
Si pasamos esta opcin sin argumentos se mostrar en su lugar la versin de alien.
-k, --keep-version: Por defecto, alien cambia la versin de cada paquete generado. Con esta
opcin, alien no cambia la versin del paquete generado.
--bump=number: En lugar de incrementar en 1 el nmero de versin de los paquetes convertidos,
lo incrementa en base al nmero que le damos.
-v, --verbose: Muestra por pantalla cada comando que alien ejecuta en el proceso de conversin
de un paquete binario.
--veryverbose: Muestra por pantalla cada comando que alien ejecuta en el proceso de conversin
de un paquete binario, junto con la salida resultante de la ejecucin de cada comando. Algunos
comandos pueden generar una salida muy extensa.
-h, --help: Se muestra un breve resumen de uso de alien.
-V, --version: Se muestra el nmero de versin de alien.
Los modificadores de alien pueden ir concatenados de distintas formas. Por ejemplo:
# a1eh -v -d -c paque1e.Jpm
o
# a1eh -vdc paque1e.Jpm
Cuando hacemos una conversin, en ningn caso se elimina el paquete original, si no que se crea un
paquete nuevo en el formato que deseamos. Pero si instalamos directamente (usamos la opcin -install), el
paquete generado s es eliminado.
Para instalar paquetes binarios propios de otras distribuciones, es ms recomendable hacer primero una
conversin y luego instalar el paquete convertido a travs de un gestor de paquetes binarios como apt-get,
ya que si surge cualquier problema, tendremos ms control sobre lo que vaya ocurriendo. Siempre ser
mejor trabajar paso a paso.
Manual de Administracin GNU/Linux 108
Unidad 6: Instalacin de paquetes
Ejemplo:
(a) Instalar pwgen (password generator): descargar el paquete en el escritorio y convertirlo de .rpm a
.deb
# cd /home/usuaJ1o/0esk1op
# a1eh -d pwgeh.Jpm
# dpkg -1 pwgeh.deb
6.8 Manejo de libreras
6.8.1 Libreras compartidas
Las libreras son partes de cdigo usados por muchos programas diferentes. Por esto, muchas veces
algunos paquetes requerirn otros paquetes del tipo lib*. Todos los ficheros de libreras que se instalan en
el sistema comienzan su nombre por lib debido a un antiguo convenio UNIX.
Los sistemas de paquetes binarios de las distribuciones (RPM y DEB) hacen una distincin con las
libreras. Podramos decir que un mismo conjunto de libreras, lo dividen en dos paquetes, por ejemplo,
libncurses y libncurses-dev. Para instalar software mediante paquetes que necesiten esta librera, bastara
con instalar generalmente slo el primer paquete. El segundo paquete (-dev en DEBs o -devel en RPMs),
se conoce como ficheros de desarrollo (development), y es necesario instalarlo si, por ejemplo, vamos a
compilar desde el cdigo fuente un paquete que necesite libncurses. As, es perfectamente posible que
haciendo un ./configure para instalar desde las fuentes se nos avise de que nos falta libncurses si
solamente tenemos el primer paquete instalado.
Las libreras compiladas (ya en cdigo de mquina), estn en /usr/lib si se instalaron desde paquetes de la
distribucin, y en /usr/local/lib si se instalaron desde fuentes, o un subdirectorio de estos dos, (aunque
con ./configure --help descubriremos opciones que nos permiten especificar tambin dnde queremos que
se instalen tanto los programas como las libreras). Su nombre suele ser libNOMBRE.so, o bien
libNOMBRE.so.VERSION. La extensin .so es simplemente un convenio y es abreviatura de Shared
Object (Objeto Compartido, ya sabemos por qu).
Manual de Administracin GNU/Linux 109
Unidad 6: Instalacin de paquetes
6.8.2 Utilidad ldconfig
En los sistemas Linux, la utilidad encargada de manejar la instalacin de las libreras y proveer al resto de
programas informacin sobre su localizacin en el sistema de ficheros es ldconfig. Esta utilidad tiene un
fichero de configuracin, /etc/ld.so.conf, donde se listan los directorios que contienen libreras, por
ejemplo:
# ca1 /e1c/d.so.coh1
/usJ/keJbeJos/1b
/usJ/X11R6/1b
/usJ/1b/q1-3.1/1b
/usJ/1b/mysq
/usJ/1b/kde3
/usJ/oca/1b
/usJ/1b/w1he
/usJ/1b
Aunque muchas veces la instalacin lo har por nosotros, cuando instalemos nuevas libreras
(especialmente desde cdigo fuente), es una buena costumbre aadir el directorio donde se han copiado
las libreras a este fichero de configuracin (si no est ah), y correr como root el comando ldconfig. Si no
lo hacemos as, es posible que al intentar instalar otros programas desde fuentes, se nos diga que no
puede encontrar tal o cul librera.
Manual de Administracin GNU/Linux 110
Unidad 7: Gestin de usuarios y grupos
Unidad 7: GESTIN DE USUARIOS Y GRUPOS
7.1 Tipos de Usuarios
Linux es un sistema multiusuario por lo que es necesaria la administracin (segura) de los distintos
usuarios que van a hacer uso de los recursos del sistema. De momento no se van a dar grandes nociones
de seguridad, pero s una introduccin a los tipos de usuarios y qu privilegios deben tener.
Dentro de un sistema existen al menos 3 tipos de usuarios:
1. Usuarios normales: Son generalmente inexpertos y propensos a causar problemas. Poseen un
directorio de trabajo, usualmente en /home, y solamente tienen privilegios completos sobre ese
directorio.
2. Usuarios de Sistema: son aquellos encargados de algunos de los servicios del sistema. Como para
Linux todo es un fichero, con un dueo y sus respectivos privilegios sobre ese fichero, es
necesario que para algunos servicios del sistema se creen usuarios (generalmente para demonios).
Como puede ser el caso de Mail, irc, etc., estos usuarios tendrn los privilegios necesarios para
poder hacer su tarea. Gestionar estos usuarios es de gran importancia. No obstante, este tipo de
usuarios no necesita que se les asigne un shell, puesto que simplemente poseern los demonios,
pero no ser necesario que hagan login en el sistema.
3. Usuario ROOT: es un superusuario o administrador. Es la nica cuenta de usuario con privilegios
sobre todo el sistema, acceso total a todos los archivos y directorios con independencia de
propietarios y permisos. En principio no hay restricciones para el usuario root (aunque algunos
programas avisarn que se esta haciendo una autntica burrada desde el punto de vista de la
seguridad). Es, por lo tanto, importante tener cuidado con lo que se hace al entrar en el sistema
como root.
Adems del criterio anterior, existe un criterio secundario para clasificar a los usuarios de un sistema. Ya
se va conociendo la tendencia de UNIX y Linux, primero, por hacer que casi todo sea un fichero, y
segundo, por hacer que absolutamente todo tenga un dueo, incluidos los procesos que se estn
ejecutando en el sistema (como se ir descubriendo con el uso del sistema, nada se deja al azar en este
aspecto). Otro concepto que lleva a esta segunda clasificacin es el de los usuarios de los servicios del
host. Este tipo de usuarios simplemente accede remotamente a algunos servicios de la mquina, tales
como correo electrnico o FTP. De esta manera, se definen:
1. Usuarios de login: Estos, pueden hacer login en el sistema y usar un shell en l. Es decir, tienen
un shell vlido de inicio (como se indica ms abajo), generalmente, /bin/bash.
2. Usuarios sin login: Este tipo de usuarios, bien son usuarios de sistema, o bien usuarios de los
Manual de Administracin GNU/Linux 111
Unidad 7: Gestin de usuarios y grupos
servicios del host. En ambos casos no pueden hacer login en el sistema directamente ni usar un
shell. En otras palabras, no tienen asignado un shell vlido. Su misin es "poseer" algunos
archivos y directorios del sistema, y manejarlos restringidamente a travs de algunos programas
(el servidor FTP, el servidor de correo electrnico, etc. darn a los usuarios de los servicios del
host los privilegios suficientes: almacenar mensajes, etc.). En el caso de los usuarios de sistema,
poseern adems algunos procesos.
7.1.1 El comando su
El comando su (del ingls Set User) est relacionado con el login de usuarios en el sistema y con los
permisos. El uso principal de este comando es para que un usuario normal adquiera los permisos de otro
usuario del sistema (incluido root) siempre y cuando conozca su contrasea.
Es muy comn que el "dueo" de la contrasea del usuario root, y por tanto la persona encargada de la
administracin del sistema, trabaje habitualmente como usuario normal por motivos de seguridad. Pero
ingrese como root para alguna tarea especfica (reiniciar el servidor web, modificar la configuracin del
sistema, etc), volviendo despus nuevamente a ser un usuario normal. En la Figura 7.i se muestra un
ejemplo de cambio de usuario normal a usuario root.
Figura 7.i: Inicio de sesin del superusuario. Ntese el cambio de
smbolo $, en la shell del usuario normal, por # en la shell de root.
su llamado "a secas", como en el ejemplo anterior, asume que el usuario actual quiere adquirir los
permisos del usuario root. Estos sern dados si se proporciona la contrasea adecuada. Ahora es posible
hacer las tareas de administracin que necesarias. Escribiendo exit se vuelve a "ser" usuario normal.
Hay gente que considera til tener siempre en segundo plano una shell con permisos de root. Esto se
puede conseguir con los comandos suspend y fg. Por ejemplo:
Manual de Administracin GNU/Linux 112
Unidad 7: Gestin de usuarios y grupos
$ su
PasswoJd. | PassWord de roo1 )
# suspend
|1]+ S1opped su
$ 1g 1
su
# ex1
$
suspend detiene la shell con permisos de root, iniciada anteriormente mediante su. El sistema informa que
se detuvo y asigna el nmero de referencia 1 para poder recuperarla posteriormente. El comando fg
permite recuperarla cada vez que se necesiten permisos de root, sin necesidad de teclear la contrasea de
nuevo. suspend y fg pueden usarse tantas veces como sea necesario, intercambiando entre un tipo de
usuario y otro. Para salir definitivamente de este sistema de shell en segundo plano y ubicarse otra vez en
la de usuario normal, tipear exit.
su permite tambin adquirir los permisos de otros usuarios del sistema, siempre que se tengan las
contraseas:
usuaJ1o_maqu1ha $ su o1ro_usuaro
PasswoJd. | PassWord de o1ro_usuaro )
o1Jo_usuaJ1o_maqu1ha $
o1Jou_usuaJ1o_maqu1ha $ ex1
usuaJ1o_maqu1ha $
A diferencia de su nombre_usuario, que permite adquirir permisos de otro usuario, la opcin su -
nombre_usuario, permite ingresar a una shell de nombre_usuario como si se hubiera hecho el login
desde el principio con ese usuario, cargando todas las variables de entorno. Esto tambin aplica para el
usuario root (sin especificar nombre de usuario: su -). La shell que arranca en este caso, se llama shell de
login, y como se puede comprobar, no es posible suspenderla como se hizo anteriormente.
El usuario root, desde esta shell, puede usar su o bien su sin necesidad de introducir contraseas para
adquirir en un shell los permisos de cualquier usuario del sistema (ver Figura 7.ii).
Figura 7.ii: Diferencias entre su y su -.
Manual de Administracin GNU/Linux 113
Unidad 7: Gestin de usuarios y grupos
7.2 Administracin de Usuarios
Dada la herencia UNIX, la administracin de usuarios se realiza en todas las distribuciones de manera
muy parecida. Segn la poltica que lleven lo pueden realizar de una manera u otra, por lo que aqu se
ver la forma interna de trabajar de los programas a la hora de aadir o quitar usuarios.
7.2.1 Estructura de los archivos que intervienen
Para aadir usuarios al sistema, es necesario modificar una serie de archivos, que se describen a
continuacin:
1./e1c/passWd
Este archivo mantiene la base de datos de los usuarios del sistema y tiene la siguiente forma:
hombJe_de_usuaJ1o.passwoJd.u1d.g1d.comeh1aJ1o.home_de_usuaJ1o.she
Donde:
a) nombre_de_usuario: es el nombre con el que el usuario entrar en el sistema.
b) password: es la contrasea necesaria para ingresar (cifrada). Si el sistema usa shadow, este
campo ser una x
c) uid: (User ID) nmero que identifica al usuario en el sistema. El UID del superusuario es 0.
Generalmente se asigna entre 1 y 100 para usuarios del sistema y un UID superior a 500 para
usuarios normales.
d) gid: (Group ID) nmero que identifica al grupo principal al que pertenece el usuario.
e) comentario: opcional, si es necesario aclarar algo, esto solo es para el administrador, pues el
sistema no lo usa.
f) home_del_usuario: ruta absoluta del directorio de trabajo del usuario.
g) shell: intrprete de comandos del usuario, que ser el que use inmediatamente despus de
entrar en el sistema, por defecto es /bin/bash. Para usuarios sin login, el shell no vlido tpico
para poner en este campo es /bin/false.
2. /e1c/group
En este archivo se almacena la informacin de los grupos del sistema; de su administracin y uso se
hablar en la seccin 7.4. Tiene la siguiente estructura:
hombJe_gJupo.passwoJd.g1d.1s1a_usuaJ1os
a) nombre_grupo: con los comandos habituales se crea, por defecto, un grupo con el mismo
nombre que el usuario creado, aunque pueden existir otros grupos con nombres especficos.
b) password: se usa para dar a una serie de individuos un mismo directorio con una cuenta
Manual de Administracin GNU/Linux 114
Unidad 7: Gestin de usuarios y grupos
comn.
c) gid: (Group ID) nmero de Identificacin en el Sistema del grupo.
d) lista_usuarios: lista los usuarios que pertenecen al grupo, separados por comas.
3. /e1c/shadoW
El archivo shadow es una medida de seguridad del sistema de usuarios. Los sistemas que no usan shadow
guardan las contraseas en /etc/passwd, este archivo debe ser legible por todo el mundo, si no, no podra ni
hacerse un ls. Esto quiere decir que /etc/passwd podra caer en manos de un usuario ilegtimo y este
ejercer tcnicas de crackeo sobre las claves. Como solucin al problema, es recomendable almacenar
todos los datos de los usuarios en /etc/passwd excepto sus contraseas, las cuales se almacenan en
/etc/shadow, archivo que tiene restringidos los permisos y no es accesible por los usuarios normales. Este
tiene la siguiente forma:
usuaJ1o.passwoJd.d1as de 11mo camb1o. d1as ah1es de camb1o.01as despus de
camb1o. 11empo de av1so.d1as ah1es de a 1hhab111ac1h. peJ1odo que eva
caducado.JeseJvado.
a) usuario: nombre del usuario
b) password: contrasea encriptada del usuario (un '*' indica cuenta de 'nologin').
c) das del ltimo cambio: das transcurridos desde el 1/ene/1970, comienzo de la era UNIX, hasta
la fecha en que la contrasea fue cambiada por ltima vez.
d) das antes del cambio: nmero de das que deben transcurrir hasta que la contrasea se pueda
volver a cambiar.
e) das hasta el cambio: nmero de das tras los cuales hay que cambiar la contrasea. (-1 significa
nunca). A partir de este dato se obtiene la fecha de expiracin de la contrasea.
f) tiempo del aviso: nmero de das antes de la expiracin de la contrasea en que se le avisar al
usuario al inicio de la sesin.
g) das antes de la inhabilitacin: das despus de la expiracin en que la contrasea se
inhabilitar, si es que no se cambia.
h) perodo caducado: fecha de caducidad de la cuenta. Se expresa en das transcurridos desde el
1/Enero/1970.
i) Campo reservado
7.2.2 Aadir nuevos usuarios al sistema
Una vez conocida la estructura de los archivos, es posible crear un nuevo usuario. Por razones de
seguridad, se utilizarn como editores de texto: vipw para el archivo /etc/passwd y vigr para editar /etc/group;
ambos usan como editor el que est en la variable $EDITOR del sistema y passwd para crear la contrasea.
A continuacin se detallan los pasos a seguir:
Manual de Administracin GNU/Linux 115
Unidad 7: Gestin de usuarios y grupos
1. Lo primero es entrar como root
$ su -
passwoJd.
2. Editar el archivo /etc/passwd
# v1pw /e1c/passwd
3. En el fichero /etc/passwd estarn las lneas de otros usuarios que ya estn creados. Esto que sigue
es un ejemplo:
pJueba.x.1005.1005../home/pJueba./b1h/bash
(a) prueba es un nombre cualquiera de usuario, x corresponde a la contrasea dado que es un
sistema con shadow. Si se quiere crear una cuenta sin contrasea, en lugar de la x no se pone
nada. ADVERTENCIA: Esto es un considerable riesgo de seguridad. Incluso una cuenta de
usuario puede usarse para hallar informacin til para posteriormente poder atacar un sistema.
4. Ahora hay que editar /etc/group para crear el grupo del usuario (todo usuario tiene un grupo
principal), en este caso, se asigna el mismo nombre que al usuario, y se coloca el mismo GID que
se haya definido antes para este usuario. Por supuesto, tanto los UID como los GID no pueden
repetirse entre usuarios distintos.
# v1gJ /e1c/gJoup
pJueba.x.1005.
5. Editamos /etc/shadow
pJueba.!.12173.0.99999.7...
(a) En el campo password se ha puesto ! porque ahora se dar una contrasea con el comando
passwd:
# passwd hombJe_de_usuaJ1o
i. Se introduce la contrasea para ese usuario (por razones obvias de seguridad no se ir
escribiendo nada a medida que se escribe la contrasea).
# Eh1eJ hew bhTX passwoJd.
ii. Hay que repetir el password
# Re1ype hew bhTX passwoJd.
iii. Si no hay error, listo.
6. Ahora, hay que crear el directorio de trabajo, por convenio los directorios de trabajo de los
usuarios normales estn bajo /home, y suelen ser /home/usuario.
# mkd1J /home/pJueba
Manual de Administracin GNU/Linux 116
Unidad 7: Gestin de usuarios y grupos
7. Se copian los archivos de inicio desde /etc/skel, que contiene principalmente archivos de
configuracin por defecto.
# cp /e1c/ske/.* /home/pJueba
8. Y por ltimo, se asigna la carpeta al usuario que ser dueo:
# chowh pJueba.pJueba -R /home/pJueba
(a) Cambiar a ser el usuario nuevo
# su - pJueba
Tambin es posible, en vez de usar su, hacer login en el shell directamente con el nuevo usuario creado
para comprobar que se hizo correctamente.
Esto es lo que se hace en cualquier distribucin de Linux para crear una cuenta. La forma de borrar un
usuario es igual de fcil, borrndolo en /etc/passwd, /etc/group y en /etc/shadow. Cualquier rastro del
usuario debera tambin ser eliminado. Sera bastante recomendable (si no necesario) hacer una bsqueda
de los archivos que el usuario mantiene. Esta bsqueda podra ser:
# 11hd / -u1d u1d_de_usuaJ1o > aJch1vos_de_usuaJ1o
De esta manera, se pueden guardar, revisar y hacer lo conveniente con los archivos.
7.3 Algunos Comandos de Administracin de Usuarios
Estos comandos permiten crear, borrar y modificar las cuentas de usuarios en el sistema.
7.3.1 adduser y useradd
adduser y useradd son dos comandos que hacen prcticamente lo mismo. El estndar es useradd, y
adduser puede, en algunas distribuciones ser un simple enlace a useradd, o simplemente no existir. El
comportamiento por defecto de useradd es muy subjetivo dependiendo de la distribucin de Linux que se
este usando. As, mientras que en algunas distribuciones har casi todos los pasos anteriores, en otras
slo aadir el usuario a /etc/passwd y /etc/shadow, teniendo que realizar los pasos restantes el
administrador. Aun as, las opciones que recibe useradd responden igual en todas las distribuciones. Estas
pueden ser consultadas desde un terminal mediante # man useradd, desplazndose con las teclas de
direccin y volviendo al shell pulsando la tecla Q.
Las opciones ms comunes para useradd son:
Manual de Administracin GNU/Linux 117
Unidad 7: Gestin de usuarios y grupos
# useJadd -g useJs -d /home/usuaJ1o -s /b1h/bash -m -k /e1c/ske usuaJ1o
-g Indica cul es el grupo principal al que pertenece el usuario; en este caso, users
-d Establece el que ser el directorio de trabajo del usuario, por convenio para usuarios normales, es
/home/nombre_de_usuario
-s Es el shell por defecto que podr usar el usuario despus de hacer login. Lo normal es que sea
/bin/bash, esto es, el shell bash.
-m -k Estas dos opciones se complementan. La primera, hace que se cree el directorio de trabajo del
usuario en el caso de que este no exista. La segunda, copia los ficheros del directorio especificado al que
se ha creado del usuario.
Por ltimo, usuario es el nombre del usuario que estamos creando.
-G Aunque esta opcin no est en el comando de ejemplo puesto arriba, es muy til, puesto que permite
especificar la lista de grupos a la que tambin pertenecer el usuario aparte del grupo principal. Por
ejemplo, -G audio,cdrom,dip aadido en el comando anterior hara que usuario perteneciese a estos grupos
adems de al suyo principal.
Siempre es posible matizar detalles en la creacin de usuarios editando los ficheros de configuracin ya
conocidos.
7.3.2 passwd y otras opciones mas
La cuenta del usuario no estar activada hasta que no se le asigne una contrasea. Esto se hace con el
siguiente comando:
# passwd hombJe_de_usuaJ1o
Cualquier usuario normal puede cambiar su contrasea una vez que haya ingresado al sistema, bastando
en este caso con escribir el comando passwd sin argumentos ni opciones.
Para desactivar una cuenta de usuario sin necesidad de borrarla del sistema, se puede editar /etc/passwd y
cambiar la x por un ! en el campo de la contrasea. La cuenta se habilitara asignando nuevamente una
contrasea con passwd o bien, volviendo a poner la x que haba, quedando la cuenta entonces con la
mismo contrasea que tena antes de deshabilitarla.
Aunque puede resultar ms cmodo utilizar las herramientas interactivas para crear usuarios (a veces
incluso existen interfaces grficas de ventanas para gestionar usuarios y grupos, solo accesibles por root),
siempre es conveniente saber el mtodo general de creacin de usuarios, ya que no cualquier distribucin
de Linux dispone de tales herramientas.
En algn momento se podra necesitar editar o borrar una cuenta de usuario creada. Existen tambin
comandos de administracin estndares para esto: son usermod y userdel (ver opciones en man).
Manual de Administracin GNU/Linux 118
Unidad 7: Gestin de usuarios y grupos
El comando whoami muestra el nombre de usuario que est dentro del sistema usando el shell desde el
que se le llama.
7.4 Grupos
En la administracin de grupos no es necesario gastar muchas energas ya que no es, en un nivel bsico,
algo excesivamente complejo.
Los grupos son una manera, en los sistemas multiusuario como Linux, de otorgar una serie de privilegios
a un conjunto de usuarios sin tener que drselos de forma individual a cada uno.
El archivo encargado de mantener los grupos del sistema es /etc/group, como se vio anteriormente.
Ahora, se vern los comandos que aaden, quitan y modifican los grupos; as como notas generales en la
gestin de grupos.
7.4.1 Notas generales
Se ha dicho que todo usuario tiene siempre un grupo principal al que pertenece. Hay dos posibilidades
para los usuarios normales: que todos tengan el mismo grupo principal (generalmente users) o que cada
usuario tenga un grupo principal especfico (casi siempre del mismo nombre que el usuario). Esto
responde a las necesidades de cada sistema. En el primer caso, los directorios de trabajo de los usuarios
suelen ser accesibles por el resto de usuarios (no es lo ms comn); mientras que en el caso de que cada
usuario tenga un grupo principal, lo normal es que los directorios de trabajo de cada usuario sean slo
accesibles por ese usuario (que s es lo ms comn).
Adems, en el sistema hay ms grupos que los principales de cada usuario. La misin de estos otros
grupos es la de otorgar unos permisos similares al conjunto de usuarios que forman parte de l ante un
directorio, un archivo, un dispositivo, etc.
Es muy comn la necesidad de dar a unos cuantos usuarios permisos para que puedan, por ejemplo, leer
los documentos de un directorio determinado (por ejemplo, informes de una empresa), al tiempo que al
resto de usuarios no. As, se podra crear un grupo llamado contables, y agregar los usuarios que son
contables a este grupo. Despus, se hara pertenecer el directorio mencionado a este grupo, y se le dara
permisos de lectura para el grupo.
Adems de grupos que permiten compartir archivos o directorios entre varios usuarios, existen grupos
como audio, cdrom, y similares. Dispositivos como la tarjeta de sonido, el grabador de CDs, etc. tienen
Manual de Administracin GNU/Linux 119
Unidad 7: Gestin de usuarios y grupos
como usuario "dueo" a root, y como grupo "dueo" a uno de estos grupos. As, para cada usuario que
queramos que pueda usar la tarjeta de sonido, debemos aadirlo al grupo audio.
7.4.2 Administracin de grupos
Ya se aprendi cmo establecer el grupo principal de un usuario; cmo hacer, a la hora de su creacin,
que pertenezca a otros grupos adicionales; y a manejar el fichero /etc/group. As que ya no queda mucho
en este aspecto.
Para aadir un usuario a un grupo de forma manual, todo lo que hay que hacer es editar /etc/group y
aadir al usuario a la lista del ltimo campo. Si ya hay usuarios, stos se separan con comas.
Si lo que se quiere es crear un nuevo grupo de forma manual, se aade otra entrada a este fichero con el
nombre del grupo, la x en el password, un GID que no est siendo usado y la lista de usuarios detrs.
Hay comandos que hacen esto mismo: groupadd, groupdel y groupmod.
groupadd sirve para crear un nuevo grupo:
# gJoupadd -g g1d gJupo
La opcin -g va seguida del Group ID (numrico) que se asignar al grupo, y grupo es el nombre del
grupo creado. Si no se indica la opcin -g, el sistema seleccionar un nmero GID que no est siendo
usado.
Lo que ya se sabe sobre la edicin (groupmod) y borrado (groupdel) de usuarios es aplicable a los
grupos. Lo ms fcil es editar el fichero /etc/group directamente; recordando que si se quita un grupo,
ningn usuario podr tener ese grupo como su grupo principal; y adems que habr que cambiar los
permisos de los archivos que perteneciesen a este grupo pues de no hacerlo quedaran asignados a un GID
inexistente para el sistema, y esto no es recomendable.
Un comando til es groups, que mostrar una lista de grupos a los que el usuario actual pertenece.
# gJoups usuaJ1o
usuaJ1o d1aou1 cdJom 1oppy aud1o
Manual de Administracin GNU/Linux 120
Unidad 7: Gestin de usuarios y grupos
7.5 Resumen de comandos y archivos
Comandos de administracin y control de usuarios
adduseJ
Permite aadir usuarios al sistema
chage
Permite cambiar o establecer parmetros de las fechas de control de la
contrasea.
chpasswd
Actualiza o establece contraseas en modo batch, mltiples usuarios a la vez.
(se usa junto con newusers)
1d
Muestra la identidad del usuario (UID) y los grupos a los que pertenece.
gpasswd
Administra las contraseas de grupos (/etc/group y /etc/gshadow).
gJoupadd
Aade grupos al sistema (/etc/group).
gJoupde
Elimina grupos del sistema.
gJoupmod
Modifica grupos del sistema.
gJoups
Muestra los grupos a los que pertenece el usuario.
hewuseJs
Actualiza o crea usuarios en modo batch, mltiples usuarios a la vez. (se usa
junto chpasswd)
pwcohv
Establece la proteccin shadow (/etc/shadow) al archivo /etc/passwd.
pwuhcohv
Elimina la proteccin shadow (/etc/shadow) al archivo /etc/passwd.
useJadd
Aade usuarios al sistema (/etc/passwd).
useJde
Elimina usuarios del sistema.
useJmod
Modifica usuarios.
Archivos de administracin y control de usuarios
.bash_ogou1
Se ejecuta cuando el usuario abandona la sesin.
.bash_pJo11e
Se ejecuta cuando el usuario inicia la sesin.
.bashJc
Se ejecuta cuando el usuario inicia la sesin.
/e1c/gJoup
Usuarios y sus grupos.
/e1c/gshadow
Contraseas encriptadas de los grupos.
/e1c/og1h.de1s
Variables que controlan los aspectos de la creacin de usuarios.
/e1c/passwd
Usuarios del sistema.
/e1c/shadow
Contraseas encriptadas y control de fechas de usuarios del sistema.
Manual de Administracin GNU/Linux 121
Unidad 8: Manejo de archivos y directorios
Unidad 8: Manejo de archivos y directorios
En este captulo se ver como gestionar y buscar ficheros en los sistemas de archivos de GNU/Linux,
tener actualizada la base de datos, saber en que paquete est cada comando, etc.
8.1 La Jerarqua del Sistema de archivos
8.1.1 Estndar de Jerarqua de Sistema de Ficheros (FHS)
El Estndar de Jerarqua de Sistema de Ficheros (FHS, Filesystem Hierarchy Standard) define los
directorios principales y sus contenidos en sistemas operativos GNU/Linux y otros sistemas de la familia
Unix. Se dise originalmente en 1994 para estandarizar el sistema de archivos de las distribuciones
GNU/Linux, basndose en la tradicional organizacin de directorios de los sistemas Unix. En 1995 se
ampli el mbito del estndar a cualquier Unix que se adhiriese voluntariamente.
8.1.2 Estructura de los Directorios
En el sistema de ficheros de UNIX (y similares), existen varias sub-jerarquas de directorios que poseen
mltiples y diferentes funciones de almacenamiento y organizacin en todo el sistema. Estos directorios
pueden clasificarse en:
Estticos: Contienen archivos que no cambian sin la intervencin del administrador (root), sin
embargo, pueden ser ledos por cualquier otro usuario (/bin, /sbin, /opt, /boot, /usr/bin).
Dinmicos: Contienen archivos que son cambiantes, y pueden leerse y escribirse (algunos slo
por su respectivo usuario y root), como ficheros de configuraciones, documentos, etc. Para estos
directorios, es recomendable una copia de seguridad con frecuencia, o mejor an, deberan ser
montados en una particin aparte en el mismo disco. Por ejemplo, es comn montar el directorio
/home en una particin del mismo disco, independiente de la particin principal del sistema; de
Manual de Administracin GNU/Linux 122
Unidad 8: Manejo de archivos y directorios
esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios
(/var/mail, /var/spool, /var/run, /var/lock, /home).
Compartidos: Contienen archivos que se pueden encontrar en una computadora y utilizarse en
otra, o incluso compartirse entre usuarios.
Restringidos: Contienen ficheros que no se pueden compartir, solo son modificables por el
administrador (/etc, /boot, /var/run, /var/lock).
8.1.3 rbol General de Directorio
El estndar FHS permite predecir a los usuarios y programas la localizacin de ficheros y directorios. El
directorio raz se representa por una barra vertical /. Todos los sistemas Debian incluyen los siguientes
directorios partiendo del directorio raz:
Directorio Contenido
b1h Binarios esenciales del sistema
boo1 Ficheros estticos utilizados por el cargador de arranque
dev Ficheros de dispositivos
e1c Ficheros de configuracin especficos del equipo
home Directorios de los usuarios
1b Bibliotecas compartidas esenciales y mdulos del ncleo
med1a Puntos de montaje para medios extrables
mh1 Punto de montaje temporal para un sistema de ficheros
pJoc Directorio virtual que contiene informacin del sistema (ncleos de la serie 2.4 y 2.6)
Joo1 Directorio del usuario administrador del equipo
sb1h Binarios esenciales del sistema
sys Directorio virtual que contiene la informacin del sistema (ncleos de la serie 2.6)
1mp Ficheros temporales
usJ Jerarqua secundaria
vaJ Datos variables
sJv Datos de los servicios ofrecidos por el sistema
op1 Paquetes de programas y aplicaciones opcionales instalados manualmente
Manual de Administracin GNU/Linux 123
Unidad 8: Manejo de archivos y directorios
8.2 Comandos para Buscar Archivos
Otra de las capacidades necesarias en un sistema Linux es la localizacin de archivos. Afortunadamente,
Linux dispone de una gran variedad de mtodos para buscar archivos. Los comandos find, locate, which y
where son muy tiles para estas tareas.
8.2.1 find
La utilidad 1nd se usa para buscar archivos. Esta herramienta comienza buscando por un directorio
especificado y contina por todos los subdirectorios que estn bajo el mismo, en busca de nombres de
archivos que coincidan con el patrn especificado. Cuando no se especifica ningn directorio, la utilidad
find, comienza por el directorio actual (con el comando pwd se puede saber cul es) y contina por todos
los subdirectorios dentro de ste. La sintaxis correcta del comando es la siguiente:
$ 11hd /d1Jec1oJ1o expJes1h
Las bsquedas por medio de la utilidad find pueden ser lentas y utilizar muchos recursos del sistema,
dependiendo de la bsqueda requerida. La Tabla 8.A muestra algunas de las opciones que se pueden
utilizar al usar el comando find. Algunos ejemplos de su uso son:
$ 11hd /home/ahg1e -hame aJch1vo
$ 11hd /home/ahg1e -useJ Joo1
Tabla 8.A: Opciones del comando find
Opcin Uso
-a11me
Bsqueda basada en el nmero de das desde el ltimo acceso.
-c11me
Bsqueda basada en el nmero de das desde el ltimo cambio en la entrada del directorio.
-gJoup
Bsqueda de archivos pertenecientes al grupo especificado.
-heweJ
Bsqueda de archivos ms recientes que el archivo especificado.
-hame
Bsqueda de archivos cuyo nombre coincida con la cadena especificada.
-useJ
Bsqueda de archivos pertenecientes al usuario especificado.
8.2.2 locate
El comando locate proporciona un mtodo seguro para indexar y buscar rpidamente archivos en el
Manual de Administracin GNU/Linux 124
Unidad 8: Manejo de archivos y directorios
sistema. Utiliza codificacin incremental para comprimir su base de datos y hacer las bsquedas ms
veloces, pero tambin almacena los permisos y propietarios del archivo, de modo que los usuarios que no
puedan ver esos archivos, no podrn acceder a ellos. El comando locate utiliza por defecto la base de
datos slocate para encontrar los archivos. Es posible especificar otra base de datos para ser usada. La
sintaxis del comando es la siguiente:
$ oca1e -opc1ohes aJgumeh1os
La base de datos se actualiza por medio del comando updatedb, sin argumentos. Slo el usuario root est
autorizado a utilizar este comando en el sistema.
El comando locate utiliza las opciones que se muestran en la Tabla 8.B:
Tabla 8.B: Opciones del comando locate
Opcin Uso
-u
Comienza por el directorio raz / cuando se crea la base de datos slocate.
-b /PATh
Comienza por el directorio especificado cuando se crea la base de datos slocate.
-e 0TR
Excluye los directorios especificados cuando se crea la base de datos slocate.
-c
Analiza el archivo /etc/updatedb.conf cuando se crea la base de datos slocate.
-1
Busca sin tener en cuenta maysculas y minsculas.
-o FTLE
Especifica el archivo de salida a crear.
-d PATh
Especifica la ruta a las bases de datos a buscar.
8.2.3 which
El comando which toma uno o ms argumentos. Para cada uno de sus argumentos, muestra por la salida
estndar (stdout) la ruta completa a los ejecutables que se pueden ejecutar cuando dicho argumento se
escribe en la lnea de comandos. sto lo hace buscando ficheros ejecutables o scripts en los directorios
especificados en la variable de entorno PATH, utilizando el mismo algoritmo que bash.
Esta utilidad nos permite ver la ruta completa a un comando antes de ejecutarlo. Puede ser til para
comprobar que estamos haciendo uso del comando que queremos ejecutar. La utilidad utiliza la siguiente
sintaxis:
$ wh1ch -opc1ohes hombJe_de_pJogJama
Manual de Administracin GNU/Linux 125
Unidad 8: Manejo de archivos y directorios
8.2.4 whereis
El comando whereis busca un archivo especfico dentro de archivos fuente, binarios y pginas del
manual. Los nombres especificados, antes de ser buscados, se separan de la definicin de la ruta y de las
extensiones del tipo .ext (por ejemplo .c). Finalmente, la utilidad whereis trata de encontrar los programas
deseados dentro de las localizaciones de cdigo. La Tabla 8.C resume las opciones utilizadas con
whereis.
Tabla 8.C: Opciones del comando whereis
Opcin Uso
-b
Bsqueda de binarios.
-m
Bsqueda de entradas manuales.
-s
Bsqueda de fuentes.
-u
Bsqueda de entradas inusuales que no tienen una entrada por cada tipo.
El siguiente es un ejemplo del uso de whereis para localizar informacin sobre el comando ls:
$ wheJe1s s
s. /b1h/s /usJ/mah/mah1/s..gz
8.3 Creando enlaces a ficheros
En este captulo se ver como crear y administrar enlaces fuertes y simblicos a ficheros, como
identificarlos, copiar ficheros a travs de enlaces y usar enlaces a ficheros para tareas administrativas.
A veces es til o necesario tener un mismo fichero en varias localizaciones del sistema de ficheros, por
ejemplo, para acceder con diferentes permisos sobre un fichero dependiendo de su localizacin. En Linux
existe una solucin para eso: los enlaces o links. Estos pueden ser de dos tipos:
1. Enlaces Duros o Hard Links, o
2. Enlaces Suaves o Simblicos, Symbolic Links o Symlinks.
Los Enlaces Duros:
Estos enlaces comparten el inodo del fichero original. De hecho, un hard link es indistinguible del
original y por eso los cambios en el link afectan al fichero original, excepto en el borrado. Borrar el link
no elimina al original ni a la inversa. Este tipo de enlace conserva los permisos del original y marcas de
tiempo. Desafortunadamente, no se pueden usar para hacer enlaces a directorios ni pueden extenderse a
Manual de Administracin GNU/Linux 126
Unidad 8: Manejo de archivos y directorios
otros sistemas de ficheros. Su sintaxis es como sigue:
# h /Ju1a/compe1a/11cheJo hombJe_ehace
Los Enlaces Simblicos:
Estos enlaces pueden extenderse a otros sistemas de ficheros. Tambin pueden hacer referencia a
directorios, de hecho, pueden referenciar hasta ficheros inexistentes. La lectura y escritura, as como la
copia del enlace, afectan al fichero objetivo, mientras que el borrado afecta al propio enlace. Borrar el
fichero objetivo tampoco elimina el enlace automticamente. Su sintaxis es como sigue:
# h -s /Ju1a/compe1a/11cheJo hombJe_ehace
8.4 Permisos y Dueos de Archivos y Directorios
8.4.1 Usuarios y Grupos Dueos
Todos y cada uno de los elementos del sistema / de Linux tienen dueo, ya sean ficheros, directorios, o
enlaces a dispositivos. Por un lado, tienen un usuario dueo, y por otro, un grupo dueo. El usuario y el
grupo que son dueos de un elemento no tienen porque guardar una relacin (el usuario no necesita
pertenecer al grupo). Son totalmente independientes. As, puede existir un fichero que tenga como
usuario propietario a useJhame, un usuario normal, y tener como grupo propietario al grupo Joo1.
Cuando se trabaja en el sistema, los programas "hacen dueos" de los ficheros creados durante la sesin
al usuario de esa sesin y a su grupo principal por defecto; aunque esto puede cambiarse. Es lgico, que
los ficheros que estn bajo el directorio de trabajo de un usuario le pertenezcan.
Siempre que se trate con permisos y con dueos de elementos, hay que tener presente el hecho de que el
sistema de ficheros de Linux es jerrquico; esto implica que los cambios que se hagan, por ejemplo, en
un directorio, pueden influir en el resto de los elementos que estn contenidos en un nivel inferior a ste
(los archivos que contiene, los directorios que contiene, los archivos que contienen esos otros directorios,
y as sucesivamente).
Con un simple 1s -1 en cualquier parte del sistema, podemos ver en la forma usuaro grupo los dueos
de cada elemento que sale en el listado largo (Figura 8.i).
Manual de Administracin GNU/Linux 127
Unidad 8: Manejo de archivos y directorios
Figura 8.i: Listado desplegado por la opcin ls -l donde muestra los dueos
de los directorios presentes en /home
El comando choWn (CHange OWNer, cambiar propietario) permite cambiar el propietario de los
elementos del sistema de archivos. Pero es lgico que si somos un usuario normal no podremos cambiar
de propietario los elementos que pertenecen a root o a otros usuarios. En cambio, como root podremos
cambiar el propietario de cualquier cosa. Aqu describimos las opciones ms usadas de este comando,
pero se pueden ver mas opciones en las pginas del manual del sistema.
# chowh usuaJ1o eemeh1o{s)
Con este comando, el usuario dueo de elementos(s) ser cambiado a usuario. El grupo dueo de
elemento(s) no cambiar, sino que se conservar el que estuviera antes de introducir este comando.
# chowh usuaJ1o.gJupo eemeh1o{s)
Este comando acta exactamente igual que el anterior, con la pequea diferencia que tambin cambiar el
grupo dueo de elemento(s) pasando a ser grupo.
Si slo se quiere cambiar el grupo de un elemento o lista de ellos, podemos usar el comando chgrp.
# chgJp gJupo eemeh1o{s)
elemento(s) puede ser una lista de archivos y directorios, o simplemente uno de ellos. Podemos usar los
wildcards conocidos (como por ejemplo el asterisco: *) para indicar varios archivos con una sola
expresin. La importante opcin - permite cambiar dueos de directorios y de todo lo que tengan
debajo, es decir, recursivamente:
# chowh -R usuaJ1o.gJupo d1Jec1oJ1o/
Este comando cambiar el usuario y grupo dueos tanto de directorio/ como de todo lo que contenga
hasta cualquier nivel, es decir, todo lo que est "debajo" de directorio, y el directorio mismo cambiarn de
dueo.
Y para qu todo esto de los dueos de archivos y directorios? Para poder asignar permisos
adecuadamente.
Manual de Administracin GNU/Linux 128
Unidad 8: Manejo de archivos y directorios
Un archivo tiene distintos niveles de permisos: lectura, escritura y ejecucin. Los permisos sobre un
archivo (o directorio) pueden ser distintos para el usuario dueo, para los usuarios pertenecientes al grupo
dueo, y por ltimo para el resto de los usuarios del sistema. As, es posible hacer que el usuario dueo
pueda leer, escribir, y ejecutar un fichero; que el grupo dueo solo pueda leerlo, y que el resto de usuarios
del sistema no tengan ningn permiso sobre l, por ejemplo.
Una buena asignacin de dueos de elementos junto con una poltica adecuada de permisos sobre estos
elementos, permiten obtener dos cosas: un sistema multiusuario, y un sistema seguro.
8.4.2 Como funcionan los Permisos
Los permisos determinan quin puede acceder a los archivos y directorios dependiendo del tipo de acceso
que tengan. Los primeros 10 caracteres de un listado ls -l de cualquier entidad se parecen a lo siguiente
(ver Figura 8.i): -JwxJwxJwx
El primer carcter se identifica con el tipo de entidad:
- para un archivo estndar,
d para un directorio,
b para un grupo de recursos (tales como una unidad de cinta),
c para un carcter del recurso,
l para un link, o
p para una tubera (pipe).
El resto de los nueve caracteres se dividen en 3 grupos, como se indica en la Tabla 8.D.
Cuando un usuario intenta acceder a un archivo, el primer control confirma si el es el propietario del
archivo. Si lo es, se le aplica el primer tipo de permisos. Si no lo es, el segundo control confirma si es un
miembro del grupo propietario del archivo. Si es un miembro del grupo, se le aplica el tipo intermedio de
permisos. Si no es propietario del archivo, y no es miembro del grupo propietario, se le aplica el tercer
tipo de permisos.
Tabla 8.D: Permisos
-
Propietario Grupo Otros
Manual de Administracin GNU/Linux 129
rwx rwx rwx
Unidad 8: Manejo de archivos y directorios
8.4.3 Permisos estndar
Los permisos que se pueden aplicar a una entidad (propietario, grupo u otro) son:
r : Permite la lectura de un archivo. ste es el nico permiso necesario para copiar un archivo. Cuando se
aplica a un directorio, se pueden leer (ver) sus archivos.
w : Permite escribir en un archivo. Con l se pueden cambiar, modificar o sobreescribir los contenidos
del archivo. Cuando se aplica en un directorio, este permite borrar y mover archivos (incluso si no se
tiene el permiso de escritura especfico sobre el archivo individual).
x : Permiso de ejecucin, permite ejecutar el archivo si contiene los scripts necesarios o puede ser
ejecutado por el sistema. Aplicado a un directorio, este permite el acceso al mismo. Cuando se aplica a un
conjunto con permisos de lectura dentro de un escritorio, este permite buscar dentro de dicho directorio.
- : (guin) Indica la ausencia de permiso. Por ejemplo, r-x indica que ese usuario puede leer y ejecutar,
pero no escribir.
Los 10 campos de permisos se resumen en:
Tipo de entidad (archivo, directorio, otro)
El propietario puede leer
El propietario puede escribir
El propietario puede ejecutar
El grupo puede leer
El grupo puede escribir
El grupo puede ejecutar
Usuario (no pertenece al grupo y al propietario) puede leer
Usuario puede escribir
Usuario puede ejecutar
Estos permisos tienen valores numricos como se muestran en la Tabla 8.E.
Tabla 8.E: Correspondencias entre la simbologa de permisos y sus valores numricos
Permiso Valor numrico
r 4
w 2
x 1
- 0
Manual de Administracin GNU/Linux 130
Unidad 8: Manejo de archivos y directorios
Los valores numricos hacen posible aadir permisos a la vez y expresarlo de un modo sencillo. Por
ejemplo, si un archivo permite al usuario rwx, el valor numrico sera 4(r)+2(w)+1(x)=7. El formato del
conjunto de los permisos de un archivo se muestra en la Tabla 8.F. La Tabla 8.G muestra la conversin
numrica de un conjunto de distintos permisos.
Tabla 8.F: Valores numricos para los permisos de archivo.
4+2+1 4+0+1 4+0+0
754
Tabla 8.G: Conversin numrica
Valor numrico Permisos
1 --------x
2 -------w-
3 -------wx
4 ------r--
5 ------r-x
6 ------rw-
7 ------rwx
10 -----x---
11 -----x--x
22 -----w--w-
33 ----wx-wx
55 ---r-xr-x
77 ---rwxrwx
100 --x------
101 --x-----x
111 --x--x--x
Manual de Administracin GNU/Linux 131
rwx r-x r--
Unidad 8: Manejo de archivos y directorios
Valor numrico Permisos
222 -w--w--w-
311 -wx--x--x
322 -wx-w--w-
400 r--------
444 r--r--r--
511 r-x---x--x
544 r-xr--r--
644 rw-r--r--
666 rw-rw-rw
755 rwxr-xr-x
777 rwxrwxrwx
Los permisos por defecto para todos los nuevos archivos creados son 666 (rw-rw-rw-) y para los
directorios son 777 (rwxrwxrwx). Este nmero puede ser modificado mediante la variable umask. La
variable umask indica la cantidad sustrada al permiso por defecto hasta llegar a los permisos que se le
aplicarn al usuario.
Para ver el valor de umask, se teclea en la lnea de comandos:
$ umask
022
Con un umask de 022, los permisos asignados a los nuevos archivos sern 644 (rw-rr--) y a los
directorios 755 (rwxr-xr-x), como se muestra en la Tabla 8.H.
Tabla 8.H: Clculo de los valores de las nuevas entidades despus de sustraer el valor de umask.
Archivos Directorios
666 -rw-rw-rw-
- 022 ----w--w-
777 dwxrwxrwx
- 022 ----w--w-
644 -rw-r--r-- 755 dwxr-xr-x
Se pueden cambiar los valores de umask especificando un valor diferente en la lnea de comandos (umask
15, por ejemplo), y este valor es el usado para la sesin. La variable se define en la informacin de inicio
Manual de Administracin GNU/Linux 132
Unidad 8: Manejo de archivos y directorios
de sesin y se recupera (toma el valor inicial) al comienzo de la misma.
8.4.4 Cambiando Valores
Para cambiar los permisos de un archivo o directorio, se puede usar la utilidad chmod. Los argumentos
pueden ser nmeros o letras. Por ejemplo, para modificar los permisos de un archivo que permita a todos
leer y escribir en l, se deber entrar lo siguiente:
$ s - 1uJbo
-Jw-J--J-- 1 Joo1 Joo1 14 Sep 6 22.42 1uJbo
$ chmod 666 1uJbo
$ s - 1uJbo
-Jw-Jw-Jw- 1 Joo1 Joo1 14 Sep 6 22.42 1uJbo
En formato simblico, u significa usuario, g grupo y o es otro. Se puede elegir y aadir segn los
permisos existentes:
$ s - 1uJbo
-Jw-J--J-- 1 Joo1 Joo1 14 Sep 6 22.42 1uJbo
$ chmod go+w 1uJbo
$ s - 1uJbo
-Jw-Jw-Jw- 1 Joo1 Joo1 14 Sep 6 22.42 1uJbo
o especificar los permisos directamente:
$ s - 1uJbo
-Jw-J--J-- 1 Joo1 Joo1 14 Sep 6 22.42 1uJbo
$ chmod ugo=Jw 1uJbo
$ s - 1uJbo
-Jw-Jw-Jw- 1 Joo1 Joo1 14 Sep 6 22.42 1uJbo
Se puede utilizar el signo + para aadir a los permisos existentes y el - para borrarlos. El signo = ignora
la existencia de permisos y fija el valor indicado. La opcin -c indica a chmod que devuelva los nombres
de los archivos que han cambiando, y la -f elimina la visualizacin por pantalla de los mensajes de error.
Manual de Administracin GNU/Linux 133
Unidad 8: Manejo de archivos y directorios
8.4.5 Permisos especiales
Pueden ser utilizados 3 tipos de permisos en determinadas circunstancias. Aparte de los siempre
aplicables de lectura, escritura y ejecucin, algunas veces es necesario algo ms para un archivo o
directorio. Estos permisos especiales son los 3 siguientes:
Asignar ID de usuario (set user ID): SUID
Asignar ID de grupo (set group ID): SGID
Sticky bit
8.4.5.1 SUID
La asignacin de ID de usuario se aplica cuando se desea que un determinado usuario ejecute un
programa que de otro modo no podra. Por ejemplo, slo el usuario root sera capaz de ejecutar la funcin
xyz (comenzar backups, restaurar el sistema, entrar en otros recursos, etc) a causa de las ramificaciones
de seguridad, pero se necesita que los usuarios ejecuten un shell script para realizar esta accin, porque
no se dispone del tiempo necesario para hacerlo personalmente. Se puede crear este shell script como root
y asignar el permiso SUID de modo que el usuario que ejecute el script sea root slo dentro de ese script.
Antes y despus del manuscrito, es nicamente un usuario, pero durante la ejecucin del script es como si
fuera root.
El permiso numrico de SUID 4000, es sumado al valor de otros permisos. Una vez aplicado este,
cambia la x en el campo del ejecutable para el propietario de los permisos a una s:
$ s - 1uJbo2
$ chmod 4777 1uJbo2
$ s - 1uJbo2
Recordar: El objetivo de la utilizacin de este permiso es que el proceso sea ejecutado por la persona que
lo cre (root en este caso) y no por la persona que lo ejecuta. Sintaxis:
$ chmod u+s 1uJbo2
8.4.5.2 SGID
Similar en la naturaleza a SUID, el permiso de la identificacin de grupo del sistema se aplica cuando es
necesario que la persona que ejecuta el archivo sea un miembro del grupo que posee el archivo (y no el
propietario). Esto cambia el x en el permiso del grupo a un s, y el valor numrico es 2000:
Manual de Administracin GNU/Linux 134
Unidad 8: Manejo de archivos y directorios
$ s - 1uJbo2
$ chmod 2777 1uJbo2
$ s - 1uJbo2
La sintaxis del comando es:
$ chmod g+s 1uJbo2
8.4.5.3 Sticky Bit
Este permiso no trabaja como los otros permisos especiales. Con un valor numrico de 1000, el sticky bit
tiene un uso principal en Linux y un uso histrico notable.
Por defecto, cualquier usuario que tenga permiso de escritura en un directorio puede suprimir archivos
dentro de ese directorio, incluso si no tiene el permiso de escritura de ese archivo. Cuando el sticky bit
est aplicado a un directorio, evita que los usuarios supriman archivos de las carpetas que les conceden el
permiso de escritura, a menos que sean el propietario del archivo.
Histricamente en Unix cuando se aplica sobre un archivo, el archivo se convierte en sticky
(bloqueado). La primera vez que se accede o se ejecuta el archivo y se carga en memoria, permanece
cargado en memoria fsica (RAM) o espacio swap de modo que pueda funcionar ms rpidamente que si
se lee desde el disco.
Si el archivo no es ejecutable, el ltimo bit de permiso ( para otra categoria) se convierte en T. Si el
archivo es un fichero ejecutable, o el permiso se aplica a un directorio, el bit pasado se convierte en una t.
Cuando se aplica el permiso chmod y las letras, aparece t de todos modos (sea archivo o directorio).
En todos los sistemas derivados de Unix (Linux, BSD, Solaris, etc) el sticky suele tiene un
comportamiento distinto.
8.5 Administrar cuotas de disco para los usuarios
La administracin del espacio en disco puede ser una tarea problemtica. El espacio disponible es un
recurso limitado que muy a menudo se consume a un ritmo alarmante provocando que un sistema de
archivos bien proporcionado se vuelva insuficiente al cabo del tiempo. En los sistemas multiusuario no
importa lo grande que sea el sistema de archivos, los usuarios siempre terminarn llenndolo. Una forma
de prevenir que sto ocurra es el establecimiento de cuotas de disco, de esta forma podrn establecerse
Manual de Administracin GNU/Linux 135
Unidad 8: Manejo de archivos y directorios
lmites a la cantidad de espacio en disco consumido por usuarios independientes o por grupos de stos.
Tpicamente un tamao de cuota es mucho menor que el espacio libre del sistema de archivos donde se
configura, de esta forma se puede evitar que un usuario o un grupo consuma demasiado espacio. Pueden
configurarse cuotas para cada sistema de archivos incluido en /etc/fstab, aunque normalmente solo se
aplican en aquellos sistema de archivos donde los usuarios finales guardan sus archivos (esto se ubica en
/home/nombre_usuario). No es necesario establecer una cuota en /usr, por ejemplo, ya que los usuarios
finales no pueden guardar ficheros all. Pueden configurarse cuotas para los usuarios individuales
incluidos en /etc/passwd y para los grupos en /etc/group.
8.5.1 Cuotas de Limitacin
Pueden establecerse hasta cinco tipos de cuotas de limitacin por cada sistema de archivos. Estas
limitaciones se especifican en bloques de disco, normalmente de 1024 bytes cada uno:
Lmite hard por usuario:
El lmite hard es la mxima cantidad de espacio en disco que un usuario puede disponer en el sistema.
Una vez que el usuario alcanza este lmite ya no se le permitir realizar nuevas escrituras en el disco.
Lmite soft por usuario:
Cada usuario puede almacenar datos libremente en el sistema de archivos hasta que alcance el lmite soft.
ste lmite acta como una especie de zona de aviso, advirtiendo al usuario que debe ir limpiando sus
directorios pero, a diferencia del lmite hard se le permite seguir trabajando. Cuando el espacio
consumido por un usuario supera el lmite soft pero no el lmite hard se envan mensajes de aviso al
terminal del usuario advirtindole que est excediendo su cuota pero las operaciones de escritura
terminarn correctamente.
Lmite hard por grupo:
Se trata del lmite final asignado a un grupo por el sistema de cuotas. Una vez que se alcanza este lmite,
ninguno de los miembros de dicho grupo podrn realizar escrituras en el disco, incluso aunque no hayan
excedido sus lmites individuales.
Lmite soft por grupo:
Este lmite se comporta de la misma forma que el de usuario pero se controla en base al espacio
consumido por el grupo en lugar de por el usuario individual.
Periodo de gracia:
Una vez que se alcanza el lmite soft comienza el periodo de gracia para el usuario o el grupo. Cuando
Manual de Administracin GNU/Linux 136
Unidad 8: Manejo de archivos y directorios
expira ste periodo de gracia, el lmite soft se convierte en lmite hard hasta que se hayan eliminado los
ficheros suficientes para que se resuelva el exceso de cuota. El periodo de gracia puede ajustarse para
cualquier nmero de meses, semanas, das, horas, minutos o segundos. Un valor tpico es el de siete das.
Todos estos lmites pueden establecerse utilizando el comando edquota, que se detallar a continuacin.
Cuando una escritura en disco excede un lmite hard o un lmite soft con el periodo de gracia expirado,
solo se completar una parte de la operacin de escritura dejando un fichero truncado, y probablemente
inservible.
Nota: Puede que el usuario no haya podido ver los mensajes de fin de cuota porque la aplicacin haya
ocultado la shell y los mensajes de dicha aplicacin lo lleven a confusin al indicarle que el disco est
lleno o protegido de escritura.
8.5.2 Manejar y Consultar Cuotas de Disco
Linux proporciona una serie de comandos para gestin y consulta de las cuotas en los sistemas de
archivos:
(a) quo1a
Muestra las limitaciones de cuota en usuario o en grupo. La opcin -u est activada por defecto. Solo el
superusuario puede utilizar la opcin -u seguido del nombre de usuario para ver las limitaciones de otros
usuarios. El resto de los usuarios podrn usar la opcin -g seguida del nombre del grupo para ver
solamente las limitaciones de los grupos de los que sean miembros, siempre y cuando tengan permiso de
lectura en los ficheros quota.group (ver mas opciones en la Tabla 5.K).
Sintaxis:
quo1a |-u] |opc1ohes] usuaJ1o
quo1a -g |opc1ohes] gJupo
Tabla 5.K: Opciones de uso frecuente del comando quota
Opcin Funcin
-q
Establece el modo silencioso que solo muestra las situaciones de exceso de cuota.
-v
Establece el modo explcito que muestra las cuotas incluso cuando no se ha consumido
ningn espacio en disco o no se hayan definido.
Ejemplo 1:
Siendo root, se pueden examinar todas las cuotas de un usuario:
Manual de Administracin GNU/Linux 137
Unidad 8: Manejo de archivos y directorios
# quo1a -uv hombJe_usuaJ1o
01sk quo1as 1oJ useJ hombJe_usuaJ1o {u1d 500).
F1esys1em bks quo1a 1m11 gJace 11es quo1a 1m11 gJace
/dev/sda9 9456 10000 10200 32 0 0
/dev/hda1 23 0 0 17 0 0
Este ejemplo muestra que el usuario est cerca de consumir su lmite soft de 10.000 bloques, con un
lmite hard de 10.200 bloques en /dev/sda9, y que no tiene cuota establecida en /dev/hda1. La lnea
correspondiente /dev/hda1 se muestra debido a la utilizacin de la opcin -v. No se muestran los valores
correspondientes al perodo de gracia porque aun no se ha excedido el lmite soft.
Ejemplo 2:
Un usuario comn, examina las cuotas para el grupo finanzas, del cual es miembro:
$ quo1a -gv 11hahzas
01sk quo1as 1oJ gJoup 11hahzas {g1d 501).
F1esys1em bks quo1a 1m11 gJace 11es quo1a 1m11 gJace
/dev/sda9 1000* 990 1000 6days 34 3980 4000
/dev/hda1 0 0 0 0 0 0
En este caso, el grupo finanzas ha excedido el escaso lmite soft de 990 bloques y ha alcanzado su lmite
hard de 1000 bloques. (Probablemente no se pudo completar la operacin de escritura que escribi el
bloque nmero 1000.) El periodo de gracia original en este ejemplo se estableci en siete das de los
cuales quedan seis das restantes, lo que quiere decir que ha pasado un da desde que se excedi el lmite
soft.
(b) quo1aoh
Activa las cuotas configuradas previamente en uno o ms sistemas de archivos (ver Tabla 5.L).
Sintaxis:
quo1aoh |opc1ohes] |s1s1ema de aJch1vos]
quo1aoh |opc1ohes] -a
Tabla 5.L: Opciones de uso frecuente del comando quotaon
Opcin Funcin
-a
Activa las cuotas en todos los sistemas de archivos incluidos en /etc/fstab y que
estn marcados como de lectura-escritura y con cuotas. Normalmente se utiliza en
el proceso de arranque para activar las cuotas.
-g
Activa las cuotas de grupo. Esta opcin no es necesaria si se utiliza -a ya que sta
otra activa tanto las cuotas de usuario como las de grupo.
Manual de Administracin GNU/Linux 138
Unidad 8: Manejo de archivos y directorios
Opcin Funcin
-u
Activa las cuotas de usuario; esta es la opcin por defecto.
-v
Establece el modo explcito de tal forma que se muestra un mensaje por cada
sistemas de archivos en el que se han activado las cuotas.
Ejemplo 1:
Para activar todas las cuotas definidas en /etc/fstab:
# quo1aoh -av
Ejemplo 2:
Para activar las cuotas de usuario slo en el directorio /home:
# quo1aoh -uv /home
(c) quo1ao11
Desactiva las cuotas de disco en uno o ms sistemas de archivos (Tabla 5.M).
Sintaxis:
quo1ao11 |opc1ohes] |s1s1ema de aJch1vos]
quo1ao11 |opc1ohes] -a
Tabla 5.M: Opciones de uso frecuente del comando quotaoff
Opcin Funcin
-a
Desactiva las cuotas en todos los sistemas de archivos en /etc/fstab.
-g
Desactiva las cuotas de grupo. Esta opcin no es necesaria si se utiliza la -a ya
que sta ltima incluye tanto las cuotas de usuario como las de grupo.
-u
Desactiva las cuotas de usuario; esta es la opcin por defecto.
-v
Establece el modo explcito que mostrar un mensaje para cada sistemas de
archivos en el que se desactiven las cuotas.
Ejemplo:
Si se quieren desactivar todas las cuotas mostrando todos los mensajes:
# quo1ao11 -av
Manual de Administracin GNU/Linux 139
Unidad 8: Manejo de archivos y directorios
(d) quo1acheck
Examina los sistemas de archivos y compila las bases de datos de cuotas (ver opciones en Tabla 5.N). El
comando quotacheck -a debera ser ejecutado de forma regular (posiblemente semanalmente) por medio
de cron.
Sintaxis:
quo1acheck |opc1ohes] s1s1ema_de_aJch1vos
quo1acheck |opc1ohes] -a
Tabla 5.N: Opciones de uso frecuente del comando quotacheck
Opcin Funcin
-a Comprueba todas las cuotas de los sistemas de archivos incluidos en /etc/fstab.
Se comprobarn tanto las cuotas de usuario como las de grupo segn se
indique en las opciones usrquota y grpquota.
-g grupo Compila solamente la informacin de grupo.
-u usuario Compila solamente la informacin de usuario; sta es la opcin por defecto.
No obstante, si se especificase la opcin -g, entonces habra que incluir esta si
se desea que se procesen tambin las cuotas de usuario.
-v Establece el modo explcito que mostrar toda la informacin de lo que el
programa est haciendo. Esta opcin indica que el programa est activo
mediante un smbolo giratorio en el terminal. sto queda muy bonito pero
podra ser un problema si estamos conectados mediante un mdem lento.
Ejemplo 1:
Para inicializar todos los ficheros de cuotas:
$ quo1ao11 -a
$ quo1acheck -aguv
$ quo1aoh -a
Por supuesto, cuando los ficheros de bases de datos de cuotas son actualizados, se deben desactivar
primero las cuotas.
Ejemplo 2:
Con las cuotas activas, actualizar las cuotas de usuario en memoria para el directorio /home:
Manual de Administracin GNU/Linux 140
Unidad 8: Manejo de archivos y directorios
$ quo1acheck -v /home
(e) edquo1a
Modifica las cuotas de usuario o grupo (opciones en Tabla 5.O). Este es un comando interactivo que
utiliza un editor de texto para configurar los parmetros de cuotas para usuarios o grupos. Por defecto se
utiliza el editor vi a menos que las variables de entorno EDITOR o VISUAL apunten a otro editor como
emacs. Cuando se enva el comando, se ejecuta un editor con un fichero temporal que contiene las
opciones de cuotas. Al guardar el fichero temporal, el editor finaliza y los cambios se guardan en las
bases de datos de cuotas.
En la primera forma del comando, se modifica una lista de usuarios o grupos separados por espacios en
blanco especificados en el apartado nombres. Si se incluye la opcin -p y proto-usuario, las cuotas de ese
usuario o grupo se utilizarn para los nombres y no se lanzar ningn editor.
En la segunda forma del comando, con la opcin -t, se editarn interactivamente los lmites soft para cada
sistema de archivos.
Sintaxis:
edquo1a |-p pJo1o-usuaJ1o] |opc1ohes] hombJes
edquo1a |opc1ohes] -1
Tabla 5.O: Opciones de uso frecuente del comando edquota
Opcin Funcin
-g
Modifica las cuotas de grupo. Si se especifica -g, se asumir que todos los
nombres son grupos y no usuarios, incluso si se especificase tambin -u.
-p proto-usuario
Duplica las cuotas del usuario prototipo para cada grupo o usuario
especificado. Este es el mecanismo mas habitualmente utilizado para inicializar
al mismo tiempo las cuotas de varios usuarios o grupos.
-t
Modifica los lmites soft. Este comando interpreta unidades de sec (segundos),
min (minutos), hour (horas), day (das), week (semanas), y month (meses).
-u
Modifica las cuotas de usuario. Es la opcin por defecto, pero se ignorar si se
especificase la opcin -g
Los siguientes ejemplos muestran la salida de los comandos utilizando el editor vi.
Ejemplo 1:
Aqu se modifican las cuotas de usuario para fulanito:
# edquo1a -u 1uah11o
Manual de Administracin GNU/Linux 141
Unidad 8: Manejo de archivos y directorios
0uo1as 1oJ useJ 1uah11o.
/dev/sda9. bocks 1h use. 87, 1m11s {so11 = 99900,
haJd = 100000)
1hodes 1h use. 84, 1m11s {so11 = 0, haJd = 0)
/dev/hda1. bocks 1h use. 0, 1m11s {so11 = 0, haJd = 0)
1hodes 1h use. 0, 1m11s {so11 = 0, haJd = 0)
"/1mp/EdP.auhTZJ0" 5 1hes, 241 chaJac1eJs
En este ejemplo, a fulanito se le ha definido en /dev/sda9 un lmite soft de 99.900 bloques, un lmite hard
de 100.000 bloques, y ningn lmite de ficheros. No tiene ninguna limitacin en /dev/hda1.
Ejemplo 2:
Modificar los lmites soft para usuarios en todos los sistemas de archivos:
# edquo1a -1u
T1me uh11s may be. days, houJs, m1hu1es, oJ secohds
CJace peJ1od be1oJe eh1oJc1hg so11 1m11s 1oJ useJs.
/dev/sda9. bock gJace peJ1od. 7 days,
11e gJace peJ1od. 3 days
/dev/hda1. bock gJace peJ1od. 7 days,
11e gJace peJ1od. 3 days
"/1mp/EdP.a1TShJB" 5 1hes, 249 chaJac1eJs
En este caso se han establecido unos periodos de gracia de siete das para bloques (espacio en disco) y de
tres das para ficheros (inodos).
(I) Jepquo1a
Se utiliza para obtener un informe de la situacin de las cuotas (Tabla 5.P).
En la primera forma del comando, repquota mostrar un informe por usuario o por grupo de las cuotas de
los sistemas de archivos indicados.
En la segunda forma, la opcin -a har que se muestre un sumario de todos los sistemas de archivos con
cuotas. Este comando solo podr ejecutarlo el usuario root, a menos que los ficheros de bases de datos de
las cuotas tengan permisos de lectura universales. Para cada usuario se imprime el nmero de ficheros y
el espacio en disco utilizados en ese momento junto con las cuotas creadas con edquota.
Sintaxis:
Jepquo1a |opc1ohes] s1s1ema_de_aJch1vos
Jepquo1a -a |opc1ohes]
Manual de Administracin GNU/Linux 142
Unidad 8: Manejo de archivos y directorios
Tabla 5.P: Opciones de uso frecuente del comando repquota
Opcin Funcin
-a Hace informes de todas las cuotas de todos los sistemas de archivos de lectura-
escritura incluidos en /etc/fstab. Se mostrarn tanto las cuotas de usuario como las de
grupo segn se indique en las opciones usrquota y grpquota.
-g Muestra las cuotas de grupos.
-u Muestra las cuotas de usuarios; es la opcin por defecto.
-v Activa el modo explcito, el cual aade una cabecera descriptiva a la salida del
comando.
Ejemplo 1:
Aqu se informar de las cuotas de usuario para el directorio /home:
$ Jepquo1a -v /home
8.5.3 Como Habilitar las cuotas
Para poder utilizar las cuotas, en primer lugar hay que habilitarlas (el kernel debe estar compilado con
soporte para cuotas, en el caso improbable de que no fuese as, habra que recompilarlo con esta opcin).
Para aclarar un poco este proceso, en esta seccin se incluir un breve tutorial explicando como habilitar
las cuotas de usuario y de grupo en el sistema de archivos /dev/sda9 montado bajo /home. Hay que tener en
cuenta que pueden habilitarse cuotas solo de usuario, de grupo o ambas segn sea necesario.
Parte de la configuracin requerida para establecer las cuotas inicialmente ha de hacerse a mano y sin
ninguno de los comandos especficos de cuotas.
1. Hay que definir las opciones en /etc/fstab. En la lnea que contiene el sistema de archivos /home, aadir
las opciones usrquota y grpquota a la opcin defaults, como en este ejemplo:
/dev/sda9 /home ex12 de1au1s,usJquo1a,gJpquo1a 1 2
Estas opciones indican a las utilidades de configuracin de cuotas que particiones deben ser tratadas por
dichas utilidades cuando stas busquen en /etc/fstab.
2. Crear los ficheros quota.user y quota.group en la raz del sistema de archivos /home y dar permisos slo
para root:
# 1ouch /home/quo1a.useJ /home/quo1a.gJoup
# chmod 600 /home/quo1a.useJ /home/quo1a.gJoup
Manual de Administracin GNU/Linux 143
Unidad 8: Manejo de archivos y directorios
Estos dos ficheros son las bases de datos de las cuotas de usuarios y grupos. Cada sistema de archivos
con cuotas utilizar sus propias bases de datos. Al habilitar las cuotas, estos ficheros contendrn datos
binarios (no son ficheros de texto). Si se quisiera que los usuarios puedan examinar las cuotas de los
grupos a los que pertenecen, el fichero quota.group necesitar un permiso de 644 en lugar de 600.
3. Ejecutar quotacheck para inicializar las bases de datos:
# quo1acheck -avug
Scahh1hg /dev/sda9 |/home] dohe
Checked 236 d1Jec1oJ1es ahd 695 11es
bs1hg quo1a11e /home/quo1a.useJ
bs1hg quo1a11e /home/quo1a.gJoup
4. Ahora, verificar que los ficheros de bases de datos se han inicializado realmente. Para ello hay que
asegurar que su tamao no sea cero (en este ejemplo cada uno ocupa 16.192):
# s -a /home/quo1a.*
-Jw------- 1 Joo1 Joo1 16192 0ec 27 19.53 /home/quo1a.gJoup
-Jw------- 1 Joo1 Joo1 16192 0ec 27 19.53 /home/quo1a.useJ
5. Ejecutar quotaon para activar el sistema de cuotas:
# quo1aoh -a
6. Verificar que el script de inicializacin del sistema (/etc/rc.d/rc.sysinit o algo similar) activar las
cuotas cada vez que el sistema cargue.
Puede ser algo similar al ejemplo siguiente, aunque puede variar de sistema a sistema:
11 | -x /sb1h/quo1acheck ]
1heh
echo "Check1hg quo1as."
/sb1h/quo1acheck -avug
echo " 0ohe."
11
11 | -x /sb1h/quo1aoh ]
1heh
echo "TuJh1hg oh quo1as."
/sb1h/quo1aoh -avug
11
7. Aadir un script al directorio crontab del sistema (por ejemplo, /etc/crontab.weekly) para que se ejecute
quotacheck rutinariamente. El script del ejemplo puede ser vlido:
#!/b1h/bash
/sb1h/quo1acheck -avug
Manual de Administracin GNU/Linux 144
Unidad 8: Manejo de archivos y directorios
Alternativamente, podra ponerse /sbin/quotacheck en el fichero crontab de root (utilizando el comando
crontab -e) para su ejecucin semanal, como en este ejemplo:
# eecu1aJ quo1acheck semahameh1e
0 3 * * 0 /sb1h/quo1acheck -avug
En este momento, el sistema de archivos /home est listo para aceptar cuotas de usuario o de grupo,
controlarlas y emitir informes sobre ellas.
Manual de Administracin GNU/Linux 145
Unidad 9: Fundamentos de redes TCP/IP
UNIDAD 9: FUNDAMENTOS DE REDES TCP/IP
9.1 Protocolos de Internet
9.1.1 Familia de protocolos de Internet
La <familia de protocolos de internet> es un conjunto de protocolos de red, en la que se basa Internet,
que permite la transmisin de datos entre redes de computadoras. En ocasiones se la denomina <conjunto
de protocolos TCP/IP> en referencia a los dos protocolos ms importantes que la componen: Protocolo
de Control de Transmisin (TCP) y Protocolo de Internet (IP), que fueron los dos primeros en
definirse, y que son los ms utilizados de la familia. Existen tantos protocolos en este conjunto que llegan
a ser ms de 100 diferentes, entre ellos se encuentra el popular HTTP (HyperText Transfer Protocol), que
es el que se utiliza para acceder a las pginas web, adems de otros como el ARP (Address Resolution
Protocol) para la resolucin de direcciones, el FTP (File Transfer Protocol) para transferencia de
archivos, el SMTP (Simple Mail Transfer Protocol) y el POP (Post Office Protocol) para correo
electrnico, y TELNET (TELecommunication NETwork) para acceder a equipos remotos, entre otros.
El conjunto de protocolos TCP/IP es la base Internet, y sirve para enlazar computadoras que utilizan
distintos sistemas operativos, incluyendo PC, mini-computadoras y computadoras centrales sobre redes
de rea local (LAN) y rea extendida (WAN). TCP/IP fue desarrollado y demostrado por primera vez en
1972 por el departamento de defensa de los Estados Unidos, ejecutndolo en ARPANET, una red de rea
extendida del departamento de defensa.
La familia de protocolos de Internet puede describirse por analoga con el modelo de referencia de
Interconexin de Sistemas Abiertos (OSI, Open System Interconnection) que describe los niveles o
capas de la pila de protocolos
1
, aunque en la prctica no corresponde exactamente con el modelo en
Internet. En la pila de protocolos, cada nivel soluciona una serie de problemas relacionados con la
transmisin de datos, y proporciona un servicio bien definido a los niveles ms altos. Los niveles
superiores son los ms cercanos al usuario y tratan con datos ms abstractos, dejando a los niveles ms
bajos la labor de traducir los datos de forma que sean fsicamente manipulables.
El modelo de Internet fue diseado como la solucin a un problema prctico de ingeniera. El modelo
OSI, en cambio, fue propuesto como una aproximacin terica y tambin como una primera fase en la
evolucin de las redes de computacin. Por lo tanto, el modelo OSI es ms fcil de entender, pero el
modelo TCP/IP es el que realmente se usa. Ya que ambos modelos aplican los mismos principios, antes
de conocer TCP/IP, conviene entender el modelo OSI.
1 La pila de protocolos es un modelo conceptual que agrupa los protocolos en capas apiladas verticalmente.
Manual de Administracin GNU/Linux 146
Unidad 9: Fundamentos de redes TCP/IP
9.1.2 El Modelo de Referencia OSI
El siguiente diagrama intenta mostrar la pila OSI y otros protocolos relacionados con el modelo OSI
original (Tabla 9.A).
Tabla 9.A: Pila de protocolos del modelo de referencia de interconexin de sistemas abiertos.
7 Nivel de
Aplicacin
Servicios de red a aplicaciones. Ej. HTTP, DNS, SMTP, SNMP, FTP, Telnet, SSH y
SCP, NFS, RTSP, Feed, Webcal , POP3
6 Nivel de
Presentacin
Representacin de los datos. Ej. XDR, ASN.1, SMB, AFP
5
Nivel de Sesin
Comunicacin entre dispositivos de la red. Ej. TLS, SSH, ISO 8327 / CCITT X.225,
RPC, NetBIOS, TELNET
4 Nivel de
Transporte
Conexin extremo a extremo y fiabilidad de datos. Ej. TCP, UDP, RTP, SCTP, SPX
3
Nivel de Red
Determinacin de ruta e ip, direccionamiento lgico. Ej. IP, ICMP, IGMP, X.25, CLNP,
ARP, RARP, BGP, OSPF, RIP, IGRP, EIGRP, IPX, DDP
2 Nivel de Enlace
de datos
Direccionamiento fsico (MAC y LLC). Ej. Ethernet, Token Ring, PPP, HDLC, Frame
Relay, RDSI, ATM, IEEE 802.11, FDDI
1 Nivel Fsico Seal y transmisin binaria. Ej. cable, radio, fibra ptica
Normalmente, los tres niveles superiores del modelo OSI (Aplicacin, Presentacin y Sesin) son
considerados simplemente como el nivel de aplicacin en el conjunto TCP/IP (ver seccin siguiente).
Como TCP/IP no tiene un nivel de sesin unificado sobre el que los niveles superiores se sostengan, estas
funciones son tpicamente desempeadas (o ignoradas) por las aplicaciones de usuario. La diferencia ms
notable entre los modelos de TCP/IP y OSI es el nivel de Aplicacin, en TCP/IP se integran algunos
niveles del modelo OSI en su nivel de Aplicacin.
9.1.3 La Pila de protocolos TCP/IP
El 1 de enero de 2008 el Protocolo TCP/IP cumpli 25 aos. Este es el modelo prctico en uso
actualmente, as que a continuacin se explicarn en detalle los niveles o capas que lo componen. Una
interpretacin simplificada de la pila TCP/IP se muestra en la Tabla 9.B.
Hay algunas discusiones sobre como encaja el modelo TCP/IP dentro del modelo OSI, o como se
comparan en forma y funcin. Como TCP/IP y modelo OSI no estn delimitados con precisin no hay
una respuesta que sea la correcta, pero en la Tabla 9.C se puede ver una aproximacin.
Manual de Administracin GNU/Linux 147
Unidad 9: Fundamentos de redes TCP/IP
El modelo TCP/IP no est lo suficientemente dotado en los niveles inferiores como para detallar la
autntica estratificacin en niveles: necesitara tener una capa extra (el nivel de Red) entre los niveles de
transporte e internet. Protocolos especficos de un tipo concreto de red, que se sitan por encima del
marco de hardware bsico, pertenecen al nivel de red, pero sin serlo. Ejemplos de estos protocolos son el
ARP (Protocolo de resolucin de direcciones) y el STP (Spanning Tree Protocol). De todas formas, estos
son protocolos locales, y trabajan por debajo de las capas de Internet. Cierto es que situar ambos grupos
(sin mencionar los protocolos que forman parte del nivel de Internet pero se sitan por encima de los
protocolos de Internet, como ICMP) todos en la misma capa puede producir confusin, pero el modelo
OSI no llega a ese nivel de complejidad para ser ms til como modelo de referencia.
Tabla 9.B: Pila de protocolos del modelo TCP/IP.
5
Nivel de
Aplicacin
ej. HTTP, FTP, DNS
(protocolos de enrutamiento como BGP y RIP, que por varias razones funcionen sobre
TCP y UDP respectivamente, son considerados parte del nivel de red)
4
Nivel de
Transporte
ej. TCP, UDP, RTP, SCTP
(protocolos de enrutamiento como OSPF que funcionen sobre IP se consideran parte
del nivel de red)
3
Nivel de
Internet
Para TCP/IP este es el Protocolo de Internet (IP)
(protocolos requeridos como ICMP e IGMP funcionan sobre IP, pero todava se pueden
considerar parte del nivel de red; ARP no funciona sobre IP)
2 Nivel de Enlace
de datos
ej. Ethernet, Token Ring, PPP, HDLC, Frame Relay, RDSI, ATM, IEEE 802.11, FDDI
1 Nivel Fsico ej. medio fsico, y tcnicas de codificacin, T1, E1
Manual de Administracin GNU/Linux 148
3. Net
Inter- 3. Internet
Intra-
TabIa 9.C: ComparacIn entre IIIas de protocoIos OS y TCI/I
OSl Modelo de Referencia Protocolos TCP}lP
7. Apcacn
5. Apcacn 6. Presentacn
5. Sesn
4. Transporte 4. Transporte
2. Interfaz de Red
2. Enace de Datos
1. Fsco 1. Fsco
Unidad 9: Fundamentos de redes TCP/IP
9.1.4 El nivel Fsico
El nivel fsico describe las caractersticas fsicas de la comunicacin, como las convenciones sobre la
naturaleza del medio usado para la comunicacin (comunicaciones por cable, fibra ptica o radio), y todo
lo relativo a los detalles como los conectores, cdigo de canales y modulacin, potencias de seal,
longitudes de onda, sincronizacin y temporizacin y distancias mximas.
9.1.5 El nivel de Enlace de datos
El nivel de enlace de datos especifica cmo son transportados los paquetes sobre el nivel fsico,
incluyendo los delimitadores (patrones de bits concretos que marcan el comienzo y el fin de cada trama).
Ethernet, por ejemplo, incluye campos en la cabecera de la trama que especifican que mquina o
mquinas de la red son las destinatarias de la trama. Ejemplos de protocolos de nivel de enlace de datos
son Ethernet, Wireless Ethernet, SLIP, Token Ring y ATM.
PPP es un poco ms complejo y originalmente fue diseado como un protocolo separado que funcionaba
sobre otro nivel de enlace, HDLC/SDLC.
Este nivel es a veces subdividido en Control de enlace lgico (Logical Link Control) y Control de acceso
al medio (Media Access Control).
9.1.6 El nivel de Internet
Como fue definido originalmente, el nivel de red soluciona el problema de conseguir transportar paquetes
a travs de una red sencilla. Ejemplos de protocolos son X.25 y Host/IMP Protocol de ARPANET.
Con la llegada del concepto de Internet, nuevas funcionalidades fueron aadidas a este nivel, basadas en
el intercambio de datos entre una red origen y una red destino. Generalmente esto incluye un
enrutamiento de paquetes a travs de una red de redes, conocida como Internet.
En la familia de protocolos de Internet, IP realiza las tareas bsicas para conseguir transportar datos desde
un origen a un destino. IP puede pasar los datos a una serie de protocolos superiores; cada uno de esos
protocolos es identificado con un nico "Nmero de protocolo IP". ICMP y IGMP son los protocolos 1 y
2, respectivamente.
Algunos de los protocolos por encima de IP como ICMP (usado para transmitir informacin de
diagnstico sobre transmisiones IP) e IGMP (usado para dirigir trfico multicast) van en niveles
superiores a IP pero realizan funciones del nivel de red e ilustran una incompatibilidad entre los modelos
de Internet y OSI. Todos los protocolos de enrutamiento, como BGP, OSPF, y RIP son realmente tambin
parte del nivel de red, aunque ellos parecen pertenecer a niveles ms altos en la pila.
Manual de Administracin GNU/Linux 149
Unidad 9: Fundamentos de redes TCP/IP
9.1.7 El nivel de Transporte
Los protocolos del nivel de transporte pueden solucionar problemas como la fiabilidad ("alcanzan los
datos su destino?") y la seguridad de que los datos llegan en el orden correcto. En el conjunto de
protocolos TCP/IP, los protocolos de transporte tambin determinan a qu aplicacin van destinados los
datos.
Los protocolos de enrutamiento dinmico que tcnicamente encajan en el conjunto de protocolos TCP/IP
(ya que funcionan sobre IP) son generalmente considerados parte del nivel de red; un ejemplo es OSPF
(protocolo IP nmero 89).
TCP (protocolo IP nmero 6) es un mecanismo de transporte fiable y orientado a conexin, que
proporciona un flujo fiable de bytes, que asegura que los datos llegan completos, sin daos y en orden.
TCP realiza continuamente medidas sobre el estado de la red para evitar sobrecargarla con demasiado
trfico. Adems, TCP trata de enviar todos los datos correctamente en la secuencia especificada. Esta es
una de las principales diferencias con UDP, y puede convertirse en una desventaja en flujos en tiempo
real (muy sensibles a la variacin del retardo) o aplicaciones de enrutamiento con porcentajes altos de
prdida en el nivel de Internet.
Ms reciente es SCTP, tambin un mecanismo fiable y orientado a conexin. Est relacionado con la
orientacin a byte, y proporciona mltiples sub-flujos multiplexados sobre la misma conexin. Tambin
proporciona soporte de multihoming, donde una conexin puede ser representada por mltiples
direcciones IP (representando mltiples interfaces fsicas), as si hay una falla la conexin no se
interrumpe. Fue desarrollado inicialmente para aplicaciones telefnicas (para transportar SS7 sobre IP),
pero tambin fue usado para otras aplicaciones.
UDP (protocolo IP nmero 17) es un protocolo de datagramas sin conexin. Es un protocolo no fiable
(best effort al igual que IP) - no porque sea particularmente malo, sino porque no verifica que los
paquetes lleguen a su destino, y no da garantas de que lleguen en orden. Si una aplicacin requiere estas
caractersticas, debe llevarlas a cabo por s misma o usar TCP.
UDP es usado normalmente para aplicaciones de streaming (audio, video, etc) donde la llegada a tiempo
de los paquetes es ms importante que la fiabilidad, o para aplicaciones simples de tipo peticin/respuesta
como el servicio DNS, donde la sobrecarga de las cabeceras que aportan la fiabilidad es
desproporcionada para el tamao de los paquetes.
DCCP est actualmente bajo desarrollo por el IETF. Proporciona semntica de control para flujos TCP,
mientras de cara al usuario se da un servicio de datagramas UDP.
TCP y UDP son usados para dar servicio a una serie de aplicaciones de alto nivel. Las aplicaciones con
una direccin de red dada son distinguibles entre s por su nmero de puerto TCP o UDP. Por convencin,
los puertos bien conocidos (well-known ports) son asociados con aplicaciones especficas.
RTP es un protocolo de datagramas que ha sido diseado para datos en tiempo real como el streaming de
Manual de Administracin GNU/Linux 150
Unidad 9: Fundamentos de redes TCP/IP
audio y video que se monta sobre UDP.
9.1.8 El nivel de Aplicacin
El nivel de aplicacin es el nivel que los programas ms comunes utilizan para comunicarse a travs de
una red con otros programas. Los procesos que acontecen en este nivel son aplicaciones especficas que
pasan los datos al nivel de aplicacin en el formato que internamente use el programa y es codificado de
acuerdo con un protocolo estndar.
Algunos programas especficos se considera que se ejecutan en este nivel. Proporcionan servicios que
directamente trabajan con las aplicaciones de usuario. Estos programas y sus correspondientes protocolos
incluyen a HTTP (HyperText Transfer Protocol), FTP (Transferencia de archivos), SMTP (correo
electrnico), SSH (login remoto seguro), DNS (Resolucin de nombres de dominio) y a muchos otros.
Una vez que los datos de la aplicacin han sido codificados en un protocolo estndar del nivel de
aplicacin son pasados hacia abajo al siguiente nivel de la pila de protocolos TCP/IP.
En el nivel de transporte, las aplicaciones normalmente hacen uso de TCP y UDP, y son habitualmente
asociados a un nmero de puerto bien conocido (well-known port). Los puertos fueron asignados
originalmente por la IANA.
9.1.9 Ventajas e inconvenientes
El conjunto TCP/IP est diseado para transmitir datos entre redes interconectadas (enrutar) y tiene un
grado muy elevado de fiabilidad, es adecuado para redes grandes y medianas, as como en redes
empresariales. Se utiliza a nivel mundial para conectarse a Internet y a los servidores web. Es compatible
con las herramientas estndar para analizar el funcionamiento de la red.
Un inconveniente de TCP/IP es que es ms difcil de configurar y de mantener que NetBEUI o IPX/SPX;
adems es algo ms lento en redes con un volumen de trfico medio bajo. Sin embargo, puede ser ms
rpido en redes con un volumen de trfico grande donde haya que enrutar un gran nmero de tramas.
El conjunto TCP/IP se utiliza tanto en redes empresariales como por ejemplo en campus universitarios o
en complejos empresariales, en donde utilizan muchos enrutadores y conexiones a mainframe o a
computadoras UNIX, como as tambin en redes pequeas o domsticas, y hasta en telfonos mviles y
en domtica.
9.1.10 Direcciones IP
En su versin 4, una direccin IP se representa mediante un nmero binario de 32 bits (IPv4). Las
direcciones IP se pueden expresar como nmeros de notacin decimal: se dividen los 32 bits de la
direccin en cuatro octetos. El valor decimal de cada octeto puede ser entre 0 y 255 (el nmero binario de
Manual de Administracin GNU/Linux 151
Unidad 9: Fundamentos de redes TCP/IP
8 bits ms alto es 11111111 y esos bits, de derecha a izquierda, tienen valores decimales de 1, 2, 4, 8, 16,
32, 64 y 128, lo que suma 255 en total).
Figura 9.i: Ejemplo de la notacin decimal de una direccin ip.
En la expresin de direcciones IPv4 en decimal se separa cada octeto por un carcter "." (punto). Cada
uno de estos octetos puede estar comprendido entre 0 y 255, salvo algunas excepciones. Los ceros
iniciales, si los hubiera, se pueden obviar.
9.1.11 Direcciones privadas
En la terminologa de Internet, una red privada es una red que usa el espacio de direcciones IP
especificado en el documento RFC 1918. A las terminales se les puede asignar direcciones de este espacio
de direcciones cuando se requiera que ellas deban comunicarse con otras terminales dentro de la red
interna (una que no sea parte de Internet) pero no con Internet directamente.
Las redes privadas son bastante comunes en esquemas de redes de rea local (LAN) de oficina, pues
muchas compaas no tienen la necesidad de una direccin IP global para cada estacin de trabajo,
impresora y dems dispositivos con los que la compaa cuente. Otra razn para el uso de direcciones de
IP privadas es la escasez de direcciones IP pblicas que pueden ser registradas. IPv6 se cre justamente
para combatir esta escasez, pero aun no ha sido adoptado en forma definitiva.
Los routers en Internet normalmente se configuran de manera tal que descarten cualquier trfico dirigido
a direcciones IP privadas. Este aislamiento le brinda a las redes privadas una forma de seguridad bsica,
dado que por lo general no es posible que alguien desde fuera de la red privada establezca una conexin
directa a una mquina por medio de estas direcciones. Debido a que no es posible realizar conexiones
entre distintas redes privadas a travs de Internet, distintas compaas pueden usar el mismo rango de
direcciones privadas sin riesgo de que se generen conflictos con ellas, es decir, no se corre el riesgo de
que una comunicacin le llegue por error a un tercero que est usando la misma direccin IP.
Si un dispositivo de una red privada necesita comunicarse con otro dispositivo de otra red privada
distinta, es necesario que cada red cuente con una puerta de enlace con una direccin IP pblica, de
manera de que pueda ser alcanzada desde fuera de la red y as pueda establecerse una comunicacin, ya
Manual de Administracin GNU/Linux 152
Unidad 9: Fundamentos de redes TCP/IP
que un router podr tener acceso a esta puerta de enlace hacia la red privada. Tpicamente, esta puerta de
enlace ser un dispositivo de traduccin de direccin de red (NAT) o un servidor proxy.
Sin embargo, esto puede ocasionar problemas cuando distintas compaas intenten conectar redes que
usan direcciones privadas. Existe el riesgo de que se produzcan conflictos y problemas de ruteo si ambas
redes usan las mismas direcciones IP para sus redes privadas o si dependen de la traduccin de direccin
de red (NAT) para que se conecten a travs de Internet. Las direcciones de internet privadas se pueden ver
en Tabla 9.D.
Tabla 9.D: Direcciones IP Privadas
El documento RFC 1597 contiene la especificacin original y permanece por razones histricas, pues ha
sido reemplazado por el documento RFC 1918.
9.1.12 Clases de Redes
Hay tres clases de direcciones IP que una organizacin puede recibir de parte de la Internet Corporation
for Assigned Names and Numbers (ICANN): clase A, clase B y clase C.
En una red de clase A, se asigna el primer octeto para identificar la red, reservando los tres ltimos
octetos (24 bits) para que sean asignados a los hosts, de modo que la cantidad mxima de hosts es 224 - 2
(las direcciones reservadas de broadcast [ltimos octetos a 255] y de red [ltimos octetos a 0]), es decir,
16 777 214 hosts.
En una red de clase B, se asignan los dos primeros octetos para identificar la red, reservando los dos
octetos finales (16 bits) para que sean asignados a los hosts, de modo que la cantidad mxima de hosts es
216 - 2, o 65 534 hosts.
En una red de clase C, se asignan los tres primeros octetos para identificar la red, reservando el octeto
final (8 bits) para que sea asignado a los hosts, de modo que la cantidad mxima de hosts es 28 - 2, o 254
hosts.
Manual de Administracin GNU/Linux 153
10.0.0.0 - 10.255.255.255 16.777.216 10.0.0.0/8
172.16.0.0 - 172.31.255.255 1.048.576 172.16.0.0/12
192.168.0.0 - 192.168.255.255 65.536 192.168.0.0/16
169.254.0.0 - 169.254.255.255 65.536 169.254.0.0/16
hombJe Rahgo de 01Jecc1ohes TP # de Tps 0escJ1pc1h de a Case hayoJ Boque de CT0R 0e11h1do eh
boque de 8 b11s case A s1mpe
RFC 1597
{obsoe1o),
RFC 1918
boque de 12 b11s 16 cases B coh11huas
boque de 16 b11s 256 cases C coh11huas
boque de 16 b11s case B s1mpe RFC 3330,
RFC 3927
Unidad 9: Fundamentos de redes TCP/IP
9.1.13 La direccin 0.0.0.0
La direccin 0.0.0.0 es utilizada por las mquinas cuando estn arrancando o no se les ha asignado
direccin.
9.1.14 Direccin de bucle local
Las direcciones 127.x.x.x se reservan para pruebas de retroalimentacin. Se denomina direccin de bucle
local o loopback.
9.1.15 Direcciones de enlace local
Un segundo conjunto de redes privadas es el rango de direcciones de enlace local especificado en los
documentos RFC 3330 y 3927. La intencin detrs de estos documentos es la de proveer una direccin IP
(lo que implica conectividad entre redes) sin tener disponible un servidor de DHCP y sin tener que
configurar direcciones de red manualmente. La subred 169.254/16 ha sido reservada para tal fin.
Si una direccin de red no puede obtenerse por medio de DHCP, se asigna una redireccin entre
169.254.1.0 y 169.254.254.255 en forma aleatoria. El estndar prescribe que la colisin de direcciones
debe tratarse con cuidado. Dentro del rango de direcciones de 169.254/16, las subredes 169.254.0/24 y
169.254.255/24 se han dejado de lado para uso futuro.
Tal como con las direcciones de red privada definidas en el documento RFC 1918, los paquetes generados
en esta subred no deben ser ruteados a una internet.
9.2 Configuracin de la Red
9.2.1 Fundamentos de redes
Un equipo Debian puede tener diversas interfaces con una diferente direccin IP. Las interfaces pueden
ser de distintos tipos, incluyendo:
Loopback. o
E1heJhe1. e1h0, e1h1 ...
W1-F1. wah0, wah1 ...
Tokeh R1hg. 1J0, 1J1 ...
PPP. ppp0, ppp1 ...
Existe un amplio rango de otros dispositivos de red disponibles, incluyendo SLIP, PLIP (lnea IP serie y
paralelo), dispositivos "shaper" para controlar el trfico de ciertas interfaces, conmutacin de tramas,
AX.25, X.25, ARCnet y LocalTalk.
Manual de Administracin GNU/Linux 154
Unidad 9: Fundamentos de redes TCP/IP
Cada interfaz de red conectada directamente a Internet (o a cualquier red basada en IP) es identificada por
una nica direccin IP de 32 bits. La direccin IP se puede dividir en la parte relativa a la red y la parte
relativa a la mquina. Si se considera una direccin IP, se ponen 1 en los bits que son parte de la direccin
de red y ceros en la parte de la direccin de la mquina, se obtiene la mscara de red.
Tradicionalmente, las redes IP fueron agrupadas en clases cuyas direcciones de red se componan de 8, 16
o 24 bits de tamao (as se evidencia en Tabla 9.E).
Las direcciones IP que no se encuentran en estos rangos se utilizan para propsitos especiales.
En cada clase de red existen rangos de direcciones reservados para su uso en redes de rea local (LANs).
Se garantiza que estas direcciones no entren en conflicto con las direcciones propias de Internet (en
consecuencia, si una de estas direcciones se asigna a un equipo ste no podr acceder a Internet
directamente sino a travs de una puerta de enlace que acte como proxy para los servicios individuales o
hacer la traduccin de direcciones de red NAT). Estos rangos de direcciones se dan en la Tabla 9.F
junto con el nmero de rangos en cada clase.
La primera direccin en una red IP es la direccin de la propia red. La ltima direccin es la direccin de
difusin de la red. Todas las otras direcciones se pueden asignar a mquinas de la red. De stas, la
primera o la ltima direccin generalmente se asigna a la puerta de enlace para Internet.
La tabla de rutas contiene informacin sobre cmo enviar paquetes IP a sus destinos. A continuacin se
puede ver una impresin de ejemplo de la tabla de rutas para una mquina Debian de una red de rea
local (LAN) con direccin IP 192.168.50.x/24. La mquina 192.168.50.1 (tambin en la LAN) es un router
para la red corporativa 172.20.x.x/16 y la mquina 192.168.50.254 (tambin en la LAN) es un router para
Internet.
$ Jou1e
KeJhe TP Jou11hg 1abe
0es11ha11oh Ca1eway Ca1eway Cehmask Fags he1J1c Re1 bse T1ace
127.0.0.0 * 255.0.0.0 b 0 0 2 0 0 o
192.168.50.0 * 255.255.255.0 b 0 0 137 0 0 e1h0
172.20.0.0 192.168.50.1 255.255.0.0 bC 1 0 7 0 0 e1h0
de1au1 192.168.50.254 0.0.0.0 bC 1 0 36 0 0 e1h0
Manual de Administracin GNU/Linux 155
1.0.0.0 - 126.255.255.255 255.0.0.0 = /8
128.0.0.0 - 191.255.255.255 255.255.0.0 = /16
192.0.0.0 - 223.255.255.255 255.255.255.0 = /24
Tabla 9.E: Clases de Red IP
d1Jecc1ohes TP mscaJa de Jed ohg11ud
Case A
Case B
Case C
10.x.x.x = /8 1
172.16.x.x - 172.31.x.x = /16 16
192.168.0.x - 192.168.255.x = /24 256
Tabla 9.F: Direcciones de LAN
d1Jecc1ohes de Jed ohg11ud cah11dad
Case A
Case B
Case C
Unidad 9: Fundamentos de redes TCP/IP
La primera lnea despus del encabezado dice que el trfico destinado a la red 127.x.x.x ser
encaminado hacia la interfaz de retorno (loopback) o.
La segunda lnea dice que el trfico destinado para las mquinas de la LAN ser encaminado a
travs de e1h0.
La tercera lnea dice que el trfico destinado a la red corporativa ser encaminado a la puerta de
enlace 192.168.50.1 y tambin a travs de e1h0.
La cuarta lnea dice que el trfico destinado a Internet ser encaminado a la puerta de enlace
192.168.50.254 tambin a travs de e1h0.
Las direcciones IP en la tabla tambin pueden aparecer como nombres que se obtienen observando las
direcciones en /e1c/he1woJks o usando la biblioteca C.
Adems de encaminar, el kernel puede realizar la traduccin de las direcciones de red, la modulacin del
trfico y su filtrado.
9.2.2 Reconocimiento del Hardware
La configuracin de una interfaz de red slo ser posible si sta ha sido detectada como parte del
hardware de la mquina. Para ello, debe existir soporte en el kernel para ese modelo y marca de tarjeta.
Igualmente, para configurar las interfaces de red de una mquina con varias tarjetas, stas deben haber
sido previamente reconocidas a nivel de hardware. El reconocimiento en hardware de las tarjetas de red
puede verificarse de alguna de estas formas:
1) en los mensajes iniciales de arranque;
2) mediante el comando dmesg , si no se ha agotado su capacidad y ha sido sobreescrito con
nuevos mensajes;
3) en el archivo /proc/pci buscando la lnea "Ethernet controller", o en /proc/ioports, buscando las
lneas correspondientes a eth0, eth1, eth2, etc.
9.2.3 El Archivo /etc/network/interfaces
El fichero clave a la hora de configurar las interfaces de red es el fichero ''/etc/network/interfaces''. De
este fichero adquiere la informacin el kernel cuando arranca para configurar las interfaces de red que
tenga la mquina.
El fichero de configuracin de interfaces de red para el router tiene el siguiente aspecto:
Manual de Administracin GNU/Linux 156
Unidad 9: Fundamentos de redes TCP/IP
$ /e1c/he1woJk/1h1eJ1aces -- coh11guJa11oh 11e 1oJ 11up{8), 11dowh{8)
# The oopback 1h1eJ1ace
# au1oma11cay added wheh upgJad1hg
au1o o
11ace o 1he1 oopback
# The 11Js1 he1woJk caJd - 1h1s eh1Jy was cJea1ed duJ1hg 1he 0eb1ah 1hs1aa11oh
# {he1woJk, bJoadcas1 ahd ga1eway aJe op11oha)
# au1oma11cay added wheh upgJad1hg
au1o e1h1
11ace e1h1 1he1 s1a11c
addJess 192.168.242.3
he1mask 255.255.255.0
he1woJk 192.168.242.0
bJoadcas1 192.168.242.255
ga1eway 192.168.242.3
au1o e1h0
11ace e1h0 1he1 s1a11c
addJess 192.168.240.3
he1mask 255.255.255.0
he1woJk 192.168.240.0
bJoadcas1 192.168.240.255
ga1eway 192.168.240.3
Tras configurar la interfaz de loopback, se configuran las dos tarjetas de red que tiene el router, eth0 y
eth1 con las direcciones IP 192.18.240.3 y 192.168.242.3 respectivamente.
Otras informaciones relevantes son la mscara de red, la direccin de la red, la direccin de broadcast y el
gateway.
Para asegurarse que las interfaces de red estn correctamente configuradas se puede usar el comando
1con1g desde un terminal. Si las interfaces estn bien configuradas debera mostrarse una informacin
como la que sigue (ejemplo de una mquina con una sola tarjeta de red):
e1h0 L1hk ehcap.E1heJhe1 hWaddJ 00.01.02.29.3E.59
1he1 addJ.192.168.242.3 Bcas1.192.168.242.255 hask.255.255.255.0
bP BR0A0CAST RbhhThC hbLTTCAST hTb.1500 he1J1c.1
RX packe1s.1617627 eJJoJs.0 dJopped.0 oveJJuhs.0 1Jame.0
TX packe1s.80109 eJJoJs.0 dJopped.0 oveJJuhs.0 caJJ1eJ.0
co1s1ohs.0 1xqueueeh.100
RX by1es.787664102 {751.1 hb) TX by1es.23374191 {22.2 hb)
Th1eJJup1.10 Base addJess.0xd800
o L1hk ehcap.Loca Loopback
1he1 addJ.127.0.0.1 hask.255.0.0.0
bP L00PBACK RbhhThC hTb.16144 he1J1c.1
RX packe1s.269 eJJoJs.0 dJopped.0 oveJJuhs.0 1Jame.0
TX packe1s.269 eJJoJs.0 dJopped.0 oveJJuhs.0 caJJ1eJ.0
co1s1ohs.0 1xqueueeh.0
RX by1es.14508 {14.1 Kb) TX by1es.14508 {14.1 Kb)
Manual de Administracin GNU/Linux 157
Unidad 9: Fundamentos de redes TCP/IP
Para activar/desactivar interfaces de red se usa este mismo comando 1con1g con una serie de
argumentos. As, para desactivar la interfaz eth0 se usa:
$11coh11g e1h0 dowh
Si lo que se quiere es levantar una interfaz se ha de usar la siguiente lnea (por ejemplo, para levantar la
interfaz de la mquina cuya direccin IP es la 192.168.242.1):
$11coh11g e1h0 192.168.242.1 up
Con el comando ne1s1a1 -rn se puede visualizar la tabla de encaminamiento del kernel de una
mquina:
deb1ah.-$ he1s1a1 -Jh
KeJhe TP Jou11hg 1abe
0es11ha11oh Ca1eway Cehmask Fags hSS W1hdow 1J11 T1ace
192.168.242.1 0.0.0.0 255.255.255.0 b 40 0 0 e1h0
Para aadir una nueva ruta a esta tabla de encaminamiento se usa el comando rou1e de la siguiente
forma:
$Jou1e add -he1 0.0.0.0 gw 192.168.242.1 dev e1h0
Otro aspecto a tener en cuenta en la mquina que hace de router es el contenido del fichero
/pJoc/sys/he1/1pv4/1p_1oJwaJd. Para que el router funcione perfectamente ha de contener un 1
(uno), pues por defecto el valor que trae es 0 (cero).
9.2.4 ifconfig y route
Las herramientas tradicionales de configuracin de red a bajo nivel en sistemas GNU/Linux son los
programas ifconfig y route que vienen en el paquete net-tools. Estas herramientas han sido oficialmente
reemplazadas por ip que viene en el paquete iproute. El programa ip funciona con Linux 2.2 y superior y
es ms poderoso que las herramientas anteriores. Sin embargo, las herramientas anteriores an funcionan
y resultan ms familiares para muchos usuarios.
A continuacin hay una ilustracin de cmo cambiar la direccin IP de la interfaz eth0 de 192.168.0.3 a
192.168.0.111 y convertir a eth0 en la ruta a la red 10.0.0.0 va 192.168.0.1. Se empieza ejecutando
ifconfig y route sin argumentos para mostrar el estado actual de todas las interfaces de red y
encaminamiento.
$ 11coh11g
e1h0 L1hk ehcap.E1heJhe1 hWaddJ 08.00.46.7A.02.B0
1he1 addJ.192.168.0.3 Bcas1.192.168.0.255 hask.255.255.255.0
bP BR0A0CAST RbhhThC hbLTTCAST hTb.1500 he1J1c.1
RX packe1s.23363 eJJoJs.0 dJopped.0 oveJJuhs.0 1Jame.0
TX packe1s.21798 eJJoJs.0 dJopped.0 oveJJuhs.0 caJJ1eJ.0
co1s1ohs.0 1xqueueeh.100
RX by1es.13479541 {12.8 h1B) TX by1es.20262643 {19.3 h1B)
Th1eJJup1.9
Manual de Administracin GNU/Linux 158
Unidad 9: Fundamentos de redes TCP/IP
o L1hk ehcap.Loca Loopback
1he1 addJ.127.0.0.1 hask.255.0.0.0
bP L00PBACK RbhhThC hTb.16436 he1J1c.1
RX packe1s.230172 eJJoJs.0 dJopped.0 oveJJuhs.0 1Jame.0
TX packe1s.230172 eJJoJs.0 dJopped.0 oveJJuhs.0 caJJ1eJ.0
co1s1ohs.0 1xqueueeh.0
RX by1es.22685256 {21.6 h1B) TX by1es.22685256 {21.6 h1B)
$ Jou1e
KeJhe TP Jou11hg 1abe
0es11ha11oh Ca1eway Cehmask Fags he1J1c Re1 bse T1ace
192.168.0.0 * 255.255.0.0 b 0 0 0 e1h0
de1au1 192.168.0.1 255.255.255.255 bC 0 0 0 e1h0
Primero hay que deshabilitar la interfaz.
$ 11coh11g e1h0 1he1 dowh
$ 11coh11g
o L1hk ehcap.Loca Loopback
... {ho ms eh1Jadas e1h0)
$ Jou1e
... {ho ms eh1Jadas eh a 1aba de Ju1as)
Luego se la habilita con la nueva IP y la nueva ruta.
$ 11coh11g e1h0 1he1 up 192.168.0.111 \
he1mask 255.255.0.0 bJoadcas1 192.168.255.255
$ Jou1e add -he1 10.0.0.0 he1mask 255.0.0.0 gw 192.168.0.1 dev e1h0
El resultado:
$ 11coh11g
e1h0 L1hk ehcap.E1heJhe1 hWaddJ 08.00.46.7A.02.B0
1he1 addJ.192.168.0.111 Bcas1.192.168.255.255 hask.255.255.0.0
bP BR0A0CAST RbhhThC hbLTTCAST hTb.1500 he1J1c.1
...
o L1hk ehcap.Loca Loopback
1he1 addJ.127.0.0.1 hask.255.0.0.0
...
$ Jou1e
KeJhe TP Jou11hg 1abe
0es11ha11oh Ca1eway Cehmask Fags he1J1c Re1 bse T1ace
192.168.0.0 * 255.255.0.0 b 0 0 0 e1h0
10.0.0.0 192.168.0.1 255.0.0.0 bC 0 0 0 e1h0
Para ms informacin se puede ver mah 11coh11g y mah Jou1e.
9.2.5 Configuracin de la red ip
Como ya se ha visto, el programa ip funciona con Linux 2.2 y superior. Los comandos ip equivalentes a
Manual de Administracin GNU/Linux 159
Unidad 9: Fundamentos de redes TCP/IP
los comandos ifconfig y route anteriores son:
1p 1hk show
1p Jou1e 1s1
1p 1hk se1 e1h0 dowh
1p addJ de dev e1h0 oca 192.168.0.3
1p addJ add dev e1h0 oca 192.168.0.111/16 bJoadcas1 192.168.255.255
1p 1hk se1 e1h0 up
1p Jou1e add dev e1h0 1o 10.0.0.0/8 sJc 192.168.0.111 v1a 192.168.0.1
El programa 1p muestra la sintaxis de sus comandos cuando se ejecuta con el argumento hep. Por
ejemplo, 1p 1hk hep imprime por pantalla :
bsage. 1p 1hk se1 0EvTCE { up ] dowh ] aJp { oh ] o11 } ]
dyham1c { oh ] o11 } ]
mu11cas1 { oh ] o11 } ] 1xqueueeh PACKETS ]
hame hEWhAhE ]
addJess LLA00R ] bJoadcas1 LLA00R ]
m1u hTb }
1p 1hk show | 0EvTCE ]
Vase tambin mah 1p.
9.3 El Shell Seguro: ssh
9.3.1 Acerca de ssh
ssh (secure shell, intrprete de comandos seguro) es un protocolo de comunicacin para controlar una
computadora en remoto a travs de una CLI (Command Line Interface o interfaz de lnea de comandos,
tambin llamada "shell").
Sirve para conectar con una computadora ante la cual no se esta fsicamente, o que no cuenta con los
medios de acceso habituales como teclado o pantalla, como puede ser el caso de servidores en un rack
(estructura de soporte de algunos tipos de servidores).
Mediante el protocolo ssh, la informacin viaja codificada, ofreciendo mayor seguridad que protocolos
comparables como Telnet. Una conexin segura, no es tan importante en el caso de equipos dentro de una
red LAN, pero es fundamental, y hasta imprescindible, en conexiones a travs de Internet. El programa
que implementa este protocolo, lleva el mismo nombre y se instala de la siguiente manera:
sudo ap111ude 1hs1a opehssh-seJveJ opehssh-c1eh1s
Manual de Administracin GNU/Linux 160
Unidad 9: Fundamentos de redes TCP/IP
9.3.2 Conectando con ssh
Hay varias maneras de ingresar a una mquina remota a travs del protocolo ssh:
usuaJ1o1_maqu1ha_oca$ ssh maqu1ha_Jemo1a
Generalmente, maqu1ha_Jemo1a corresponde a la direccin ip del equipo. Cuando un usuario se conecta
a una mquina remota a travs de esta opcin, adopta el nombre de usuario que tiene en la mquina local.
En este ejemplo, ingresara como usuario1, asumiendo los permisos y privilegios de ese usuario.
Es posible asignar un nombre de usuario distinto al ingresar, sto se hace con la opcin -l de ssh:
usuaJ1o1_maqu1ha_oca$ ssh - usuaJ1o_Jemo1o maqu1ha_Jemo1a
En este caso, se ingresara como usuaJ1o_Jemo1o.
Otra manera de conectarse es:
useJ1_maqu1ha_oca$ ssh useJ_Jemo1o_maqu1ha_Jemo1a
De todas formas, tanto si se usa el propio usuario como otro distinto, ya sea con la opcin - o
ponindolo antes del nombre o IP de la mquina con arroba, el usuario tiene que tener: a) una cuenta en
la mquina remota, y b) permisos para ejecutar el programa.
Para asignar los permisos necesarios, hay que editar en la mquina remota (como usuario root), el archivo
/etc/ssh/sshd_conf y aadir la lnea AowbseJs y el nick o los nicks que necesitan conectar
remotamente a travs de ssh.
Con ssh tanto el host como el usuario deben autenticarse. La autenticacin del host se cumple por el
intercambio de llaves. Las llaves pblicas y privadas del host usualmente se guardan en /etc/ssh, si se
trabaja con OpenSSH. Segn el protocolo, el archivo de llaves del host se llamar ssh_host_key
(Protocolo 1), ssh_host_rsa_key o ssh_host_dsa_key (Protocol 2). Cada uno de stos aechivos tiene su
llave pblica correspondiente, por ejemplo ssh_host_key.pub.
Cuando un cliente de ssh se conecta al servidor, este le provee la llave del host. En este punto el usuario
ver algo similar a lo siguiente:
La autenticidad del host 'neptune (10.0.0.8)' no se puede establecer.
La huella de la llave RSA es 8f:29:c2:b8:b5:b2:e3:e7:ec:89:80:b3:db:42:07:f4.
Est seguro que desea continuar con la conexin? (s/no)?
Al aceptar esto, la llave pblica del servidor se agregar al archivo local $HOME/.ssh/known_hosts.
Manual de Administracin GNU/Linux 161
Unidad 9: Fundamentos de redes TCP/IP
Qu es el man-in-the-middle (hombre-en-el-medio)?
Si, por ejemplo, se conecta va ssh al servidor 192.168.2.3 desde otro equipo, la primera vez tarda un
poco ms porque tiene que escribir en el archivo /home/|hombJe_de_usuaJ1o]/.ssh/khowh_hos1 una
entrada para esa direccin IP.
Las subsiguientes veces que se conecte, comparar la clave gpg de la IP con la que tiene guardada en el
archivo khowh_hos1. Si no coinciden, supone que la computadora es distinta. Esto puede darse, por
ejemplo, porque el equipo con el servidor ssh ha sido formateado o se ha apagado y sustituido por otro al
que se asign la misma direccin IP. Esto es lo que se conoce como error man-in-the-middle, y significa
que: <la computadora cuya IP es conocida, no es la misma que conoca, puede ser que alguien se est
haciendo pasar por esta>. Entonces, la autenticacin falla y no es permitido volverse a conectar a menos
que se borre la entrada de esa IP en el archivo known_host.
9.3.3 Conectando a travs de
scp (Simple Communication Protocol) es bsicamente un protocolo de transferencia de archivos que cifra
los datos durante la transferencia. Esto sirve para evitar que datos sean espiados o sea extrada su
informacin. Es importante saber, sin embargo, que el protocolo SCP no provee autentificacin ni
seguridad, por lo cual utiliza el protocolo ssh.
Para enviar u obtener archivos y carpetas con scp, se abre un terminal y se teclea:
$ scp -J usuaJ1o_Jemo1o_maqu1ha_Jemo1a./home/caJpe1a /home/d1Jec1oJ1o_oca
Luego se pone la contrasea del usuario y se copiar la carpeta remota /home/caJpe1a en el directorio
actual /home/d1Jec1oJ1o_oca. Si no se pone una carpeta de destino, copiar al directorio actual de la
mquina local. Naturalmente, siempre hay que tener permisos de ejecucin de ssh y permisos sobre las
carpetas.
La opcin -J significa recursivo, es decir, copia la carpeta completa, incluidas las sub-carpetas y sus
contenidos. Otro comando para copiar todos los archivos de una carpeta es:
$ scp usuaJ1o_maqu1ha./home/caJpe1a/* .
9.4 Computacin en Red Virtual (VNC)
VNC (las siglas en ingls de Virtual Network Computing) es un programa de software libre basado en una
estructura cliente-servidor el cual nos permite tomar el control de la computadora-servidor remotamente
a travs de una computadora cliente. Tambin llamado software de escritorio remoto. VNC permite que el
Manual de Administracin GNU/Linux 162
Unidad 9: Fundamentos de redes TCP/IP
sistema operativo en cada computadora sea distinto. Es posible compartir la pantalla de una mquina con
Windows en una mquina con GNU/Linux y viceversa.
9.4.1 Compartir una sesin
VNC se puede utilizar para ejecutar sesiones remotas. Para sto, es necesario tener instalados los
paquetes vncserver, si se quiere compartir una sesin, y vncviewer, si se quiere conectar a una sesin
remota compartida. Una vez instalados hay que crear una sesin:
$ vhcseJveJ .1 -hame ses1oh1 -dep1h 16 -geome1Jy 800x600
Iniciar la sesin remotamente (se solicitar una contrasea):
$ vhcv1eweJ ocahos1.1
Figura 9.ii: Pantalla de configuracin de las preferencias del escritorio remoto.
9.4.2 Sistema de administracin remota grfica
Si lo que se quiere es compartir el escritorio con un equipo remoto, lo mas til es usar un sistema de
administracin remota grfica. Vino es un servidor VNC integrado a Gnome, que se encuentra en los
repositorios de Debian, y permite compartir un entorno grfico de escritorio poniendo el siguiente
comando:
Manual de Administracin GNU/Linux 163
Unidad 9: Fundamentos de redes TCP/IP
$ vhcv1eweJ ocahos1.0
En Sistema -> Preferencias -> Escritorio Remoto (Figura 9.i) se pueden configurar opciones de
permisos para compartir el escritorio. Hay que tener en cuenta que este no es un sistema seguro (la
informacin no viaja encriptada) y, dependiendo de la conexin, puede ser relativamente lento, siendo
una buena opcin en redes locales.
El programa utiliza el puerto 5900 por defecto. Si la mquina se encuentra detrs de un
router/cortafuegos, hay que asegurarse que el puerto este abierto. Sin embargo, por seguridad, si se va a
usar el programa a travs de internet es recomendable cambiar este puerto.
9.5 Herramientas Comunes para Resolver Problemas de Red
Aqu se encuentra una breve lista de herramientas que son extremadamente tiles al momento de probar y
resolver conexiones de red:
9.5.1 ping host
Esta herramienta manda un datagrama de pedido ICMP ECHO_REQUEST al host y espera una respuesta
ICMP ECHO_RESPONSE.
Opcones para ping:
-b png a una dreccn broadcast
-c h mandar h cantdad de paquetes
-q modo sencoso: mostrar soo mensa|es de comenzo y fn
9.5.2 netstat
Esto provee informacin sobre conexiones de red actuales, la tabla de routing, o estadsticas, dependiendo
de las opciones utilizadas.
Opcones para ne1s1a1:
-r gua a /sbn/route
-l mostrar sta de preferencas
-n no resover dreccones IP
-p regresa os PID (nmero de dentfcacn de proceso)
-v verboso (se muestran en a pantaa todos os resutados durante su e|ecucn)
-c actuazacn contnua
Manual de Administracin GNU/Linux 164
Unidad 9: Fundamentos de redes TCP/IP
Ejemplo: Resultado de netstat --inet n
Ac11ve Th1eJhe1 cohhec11ohs {w/o seJveJs)
PJo1o Recv-0 Sehd-0 Loca AddJess FoJe1gh AddJess S1a1e
1cp 0 0 192.168.1.10.139 192.168.1.153.1992 ESTABLTShE0
1cp 0 0 192.168.1.10.22 192.168.1.138.1114 ESTABLTShE0
1cp 0 0 192.168.1.10.80 192.168.1.71.18858 TThE_WATT
Aqu arriba se puede ver que el host local ha establecido conexiones en los puertos 139, 22 y 80.
9.5.3 arp
arp muestra el cache de la resolucin de direccin del kernel, como se muestra en el siguiente ejemplo: