Sunteți pe pagina 1din 174

Capactacn en

Software Lbre
Admnstracn de
Sstemas GNU/Lnux:
Deban v0.2
Parte 1
|uo-Agosto 2008
Instructor: Enrque Carpenter
nfo@netynx.com.ve

UNIDAD 1: INSTALACIN DE DEBIAN


1.1 Preparacin de la instalacin de GNU/Linux: Debian. . . . . . . . . . . . . .
1.1.1 Hardware soportado
1.1.2 Arquitecturas soportadas
1.2 Esquemas de particionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Particin de un disco
1.2.2 Tipos de particiones
1.2.3 Opciones de particionado
1.2.4 Por qu crear mltiples particiones en Linux ?
1.3 Gestor de arranque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Entendiendo que es un cargador de arranque
1.3.2 Secuencia de arranque de una computadora
1.3.3 Gestores de arranque mltiple: LILO y GRUB
1.3.4 GRUB (GRand Unified Bootloader): Terminologa
1.3.5 Entradas en el archivo de men/configuracin de GRUB
1.3.6. Qu es lo que hace GRUB ?
1.4 Instalacin de Debian GNU/Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Consideraciones previas
1.4.2Formas de instalar Debian GNU/Linux
1.4.3 Seleccin del dispositivo de arranque
1.4.4 Comenzando con la instalacin: Configuracin de idioma
1.4.5 Configuracin de Red
1.4.6 Particionamiento del disco
1.4.7 Configuracin de usuarios y contraseas
1.4.8 Configuracin del gestor de paquetes
1.4.9 Seleccin de programas
1.4.10 Configuracin de xserver-xorg
1.4.11 Instalacin del cargador de arranque
1.4.12 ltimo paso
UNIDAD 2: SISTEMA X.ORG
2.1 Interfaz Grfica de Usuario: El Servidor X. . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Cmo averiguar Chipset y dispositivo
2.2 Instalacin y Configuracin de X.Org. . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Driver X
1
2
4
7
28
29
2.2.2 Teclado
2.2.3 Ratn
2.2.4 Mdulos
2.2.5 Ruta de archivos
2.2.6 Monitor
2.3 Configuraciones de X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Las Secciones de xorg.conf
2.3.2 Seccin "Device"
2.3.3 Seccin "Monitor"
2.3.4 Seccin "Screen"
2.3.5 Seccin "InputDevice"
2.3.5.1 Configuracin del teclado
2.3.5.2 Configuracin del ratn
2.3.6 Seccin "ServerLayout"
2.3.7 Seccin "DRI"
2.3.8 Seccin "Files"
2.4 Modos de VESA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIDAD 3: USANDO EL SHELL
3.1 Comprendiendo el Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Prompt del Bash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 El inicio de sesin
3.2.2 Root: El Superusuario
3.3 Usando lneas de comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Historial de comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Smbolos Bash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Wildcards
3.5.2 Input/Output, Redireccionamiento y Tuberas
3.6 Variables de Entorno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Cmo acceder a las variables de entorno
3.7 Manejo de Procesos y Tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.1 Propiedades de los procesos
3.7.2 Los procesos en ejecucin y sus propiedades
3.7.3 Tareas de Bash
3.7.4 Seales
3.7.5 Prioridad de los procesos
3.8 Comandos Bsicos en la Terminal Bash . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8.1 El comando cd
32
38
39
39
41
41
43
45
49
56
3.8.2 Listar contenidos de directorios
3.8.3 Copiar, mover y borrar archivos
3.8.4 Algunos comandos ms
UNIDAD 4: USO DEL EDITOR DE TEXTO VI
4.1 Porqu usar vi? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Editor VIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Abriendo archivos con VIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Editor VI bimodal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Comandos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Comandos de ltima linea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.1 Generales
4.6.2 De movimiento
4.6.3 Borrar y copiar texto
4.6.4 Opciones de vi
4.6.5 Sustitucin de palabras o expresiones
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
5.1.2 Usando Fdisk
5.2 Aadiendo sistemas de archivos a las particiones creadas. . . . . . . . . . .
5.2.1 Que es un sistema de archivos ?
5.2.2 Tipos de sistemas de archivos
5.2.3 Usando mkfs
5.3 Herramientas del sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Algunas utilidades de los sistemas de archivos
5.3.2 Manteniendo la Integridad de los Sistemas de Archivos
5.4 Montando y Desmontando Sistemas de archivos. . . . . . . . . . . . . . . . . . .
5.4.1 Dispositivos en Linux
5.4.2 Entendiendo el archivo /etc/fstab
5.4.3 Montar un sistema de archivos
5.4.4 Desmontar un sistema de archivos
UNIDAD 6: INSTALACIN DE PAQUETES
6.1 Paquetes en Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Formatos de paquetes
59
59
59
60
61
64
66
70
73
82
89
6.1.2 Dependencias de paquetes
6.2 Gestores de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 La herramienta bsica: dpkg
6.2.2 El gestor de interrelaciones: apt
6.2.3 Aptitude: la interfase de texto mas usada
6.2.4 Synaptic, interfaz grfica del gestor de paquetes
6.3 Empaquetar y Comprimir archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Qu es empaquetar y comprimir?
6.3.2 Programas utilizados para empaquetar y comprimir archivos
6.3.3 Cmo utilizar Tar, Gzip y Bzip2 ?
6.4 Instalacin de programas a travs de los repositorios . . . . . . . . . . . . . .
6.4.1 Que es un repositorio?
6.4.2 El archivo /etc/apt/sources.list
6.4.3 Actualizando la lista de paquetes disponibles
6.4.4 Buscar un paquete en los repositorios
6.5 Instalar programas a travs de paquetes . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.1 Instalacin de programas que no estn en los repositorios
6.6 Instalar programas desde el cdigo fuente . . . . . . . . . . . . . . . . . . . . . . . .
6.6.1 Qu es cdigo fuente?
6.6.2 Descomprimir el cdigo fuente de un programa
6.6.3 Resolver las dependencias
6.6.4 Compilar un programa desde el cdigo fuente
6.7 Cambiar formatos de paquetes en Linux . . . . . . . . . . . . . . . . . . . . . . . .
6.7.1 Utilizando Alien
6.8 Manejo de libreras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8.1 Libreras compartidas
6.8.2 Utilidad ldconfig
UNIDAD 7: GESTIN DE USUARIOS Y GRUPOS
7.1 Tipos de Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1 El comando su
7.2 Administracin de Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Estructura de los archivos que intervienen
7.2.2 Aadir nuevos usuarios al sistema
7.3 Algunos Comandos de Administracin de Usuarios . . . . . . . . . . . . . . .
7.3.1 adduser y useradd
7.3.2 passwd y otras opciones mas
7.4 Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
99
101
104
104
107
109
111
114
117
119
7.4.1 Notas generales
7.4.2 Administracin de grupos
7.5 Resumen de comandos y archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIDAD 8: MANEJO DE ARCHIVOS Y DIRECTORIOS
8.1 La Jerarqua del Sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.1 Estndar de Jerarqua de Sistema de Ficheros (FHS)
8.1.2 Estructura de los Directorios
8.1.3 rbol General de Directorio
8.2 Comandos para Buscar Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1 find
8.2.2 locate
8.2.3 which
8.2.4 whereis
8.3 Creando enlaces a ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4 Permisos y Dueos de Archivos y Directorios . . . . . . . . . . . . . . . . . . . .
8.4.1 Usuarios y Grupos Dueos
8.4.2 Como funcionan los Permisos
8.4.3 Permisos estndar
8.4.4 Cambiando Valores
8.4.5 Permisos especiales
8.4.5.1 SUID
8.4.5.2 SGID
8.4.5.3 Sticky Bit
8.5 Administrar cuotas de disco para los usuarios . . . . . . . . . . . . . . . . . . . .
8.5.1 Cuotas de limitacin
8.5.2 Manejar y consultar cuotas de disco
8.5.3 Cmo habilitar las cuotas
UNIDAD 9: FUNDAMENTOS DE REDES TCP/IP
9.1 Protocolos de Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Familia de protocolos de Internet
9.1.2 El Modelo de Referencia OSI
9.1.3 La Pila de protocolos TCP/IP
9.1.4 El nivel Fsico
9.1.5 El nivel de Enlace de datos
9.1.6 El nivel de Internet
9.1.7 El nivel de Transporte
9.1.8 El nivel de Aplicacin
121
122
124
126
127
135
146
9.1.9 Ventajas e inconvenientes
9.1.10 Direcciones IP
9.1.11 Direcciones privadas
9.1.12 Clases de redes
9.1.13 La direccin 0.0.0.0
9.1.14 Direccin de bucle local
9.1.15 Direcciones de enlace local
9.2 Configuracin de la Red. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Fundamentos de redes
9.2.2 Reconocimiento del Hardware
9.2.3 El Archivo /etc/network/interfaces
9.2.4 ifconfig y route
9.2.5 Configuracin de la red ip
9.3 El Shell Seguro: ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1 Acerca de ssh
9.3.2 Conectando con ssh
9.3.3 Conectando a travs de
9.4 Computacin en Red Virtual (VNC) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.1 Compartir una sesin
9.4.2 Sistema de administracin remota grfica
9.5 Herramientas Comunes para Resolver Problemas de Red . . . . . . . . . .
9.5.1 ping host
9.5.2 netstat
9.5.3 arp
9.5.4 traceroute
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
154
160
162
164
166
Unidad 1: Instalacin de Linux
UNIDAD 1: INSTALACIN DE LINUX
1.1 Preparacin de la instalacin de GNU/Linux: Debian
1.1.1 Hardware soportado
Debian no impone requisitos de hardware ms all de los establecidos por el ncleo o kernel de Linux y
el conjunto de herramientas GNU. En todo caso, Debian puede ejecutar cualquier arquitectura o
plataforma a la que se haya adaptado el ncleo de Linux, libc, gcc, etc., y para los que exista una
adaptacin de Debian.
1.1.2 Arquitecturas soportadas
Debian 4.0 soporta doce arquitecturas principales y algunas variaciones de cada arquitectura conocidas
como sabores (ver Tabla 1.A).
Tabla 1.A: Arquitecturas y sabores de Debian 4.0
Manual Administracin GNU/Linux 1
Arquitectura Designacion de Debian Sabor
386
amd64

op32x
xp4xx
HP PA-RISC PA-RISC 1.1 32
PA-RISC 2.0 64
a64
r4k-p22
SGI IP32 (O2) r5k-p32
sb1-bcm91250a
sb1a-bcm91480b
r4k-kn04
r3k-kn02
sb1-bcm91250a
sb1a-bcm91480b
m68k
Amga amga
VME bvme6000
mvme147
mvme16x
CHRP
sun4m sparc32
sun4u sparc64
sun4v
IBM S/390 s390 IPL de ector VM y DASD
Subarquitectura
Basada en Inte x86
AMD64 e Inte EM64T
DEC Apha apha
ARM y StrongARM arm Netwnder y CATS netwnder
Inte IOP32x
Inte IXP4xx
RscPC rpc
hppa
Inte IA-64
MIPS (bg endan) mps SGI IP22 (Indy/Indgo 2)
Broadcom BCM91250A (SWARM)
Broadcom BCM91480B (BgSur)
MIPS (tte endan) mpse Cobat cobat
DECstaton
Broadcom BCM91250A (SWARM)
Broadcom BCM91480B (BgSur)
Motoroa 680x0 Atar atar
68k Macntosh mac
IBM/Motoroa PowerPC powerpc chrp
PowerMac pmac
PReP prep
Sun SPARC sparc
generc
Unidad 1: Instalacin de Linux
1.2 Esquemas de particionamiento
1.2.1 Particin de un disco
Una particin de disco es cualquier divisin de un disco o de varios discos. Cada particin funciona como
si fuera un disco duro independiente.
La informacin sobre cmo se particiona un disco se almacena en su primer sector (esto es, el primer
sector de la primera pista sobre la primera superficie del disco). Este primer sector es el registro de
arranque maestro (MBR) del disco; el cual la BIOS lee y arranca cuando se enciende la mquina. El
MBR integra un pequeo programa que lee la tabla de particiones, comprueba qu particin est activa
(es decir, marcada como arrancable), y lee el primer sector de esa particin, el sector de arranque de la
particin. Este sector de arranque contiene otro pequeo programa que lee la primera parte del sistema
operativo almacenado en esa particin (asumiendo que es arrancable), y entonces la inicia.
1.2.2 Tipos de particiones
Independientemente del sistema de archivos de una particin (FAT, ext3, NTFS, etc.), existen 3 tipos
diferentes de particiones:
Particin primaria: Son las divisiones crudas o primarias del disco, solo puede haber 4 de stas.
Un disco fsico completamente formateado, consiste en realidad de una particin primaria que
ocupa todo el espacio del disco, y posee un sistema de archivos.
Particin extendida: Es otro tipo de particin que acta como una particin primaria; sirve para
contener infinidad de unidades lgicas en su interior. Fue ideada para romper la limitacin de 4
particiones primarias en un solo disco fsico. Solo puede existir una particin de este tipo por
disco, y solo sirve para contener particiones lgicas. Por lo tanto, es el nico tipo de particin que
no soporta un sistema de archivos directamente.
Particin lgica: Ocupa un trozo de particin extendida o la totalidad de la misma, la cual se ha
formateado con un tipo especfico de sistema de archivos (FAT32, NTFS, ext2,...) y se le ha
asignado una unidad, si el sistema operativo reconoce las particiones lgicas o su sistema de
archivos.
1.2.3 Opciones de particionado
El esquema de particin no est integrado en el hardware, ni siquiera en la BIOS. Tan slo es una
convencin que muchos sistemas operativos siguen. Algunos sistemas operativos soportan particiones,
pero ocupan una particin en el disco duro, y utilizan su propio sistema de particionamiento dentro de esa
particin (Tabla 1.B).
Manual Administracin GNU/Linux 2
Unidad 1: Instalacin de Linux
Tabla 1.B: Posibilidades de esquemas de particinamiento
Esquema de particionado Particiones creadas Usos
Todos los ficheros en una
particin
/, intercambio Recomendado para usuarios
novatos, sistemas para el hogar o
usados por un solo usuario
Particin /home separada /, /home, intercambio Recomendado para sistemas
multiusuario o con gran cantidad
de espacio libre (Razones: cuotas,
no-interferencia con el resto del
sistema, y rpida recuperacin del
sistema)
Particiones /home, /usr, /var y
/tmp separadas
/, /home, /usr, /var, /tmp,
intercambio
Recomendado para sistemas
multiusuario y servidores.
Cuando las particiones
mencionadas se llenan, no
interfieren con el resto del
sistema
La particin raz (esta se representa con una /) siempre debe contener fsicamente las particiones /etc, /bin, /sbin, /lib y /dev,
sino el sistema no podr arrancar.
El espacio de intercambio es una zona del disco o la particin que se usa para guardar las imgenes de los procesos que no
han de mantenerse en memoria fsica. Es decir, sirve como un especie de RAM adicional. A este espacio se le suele llamar
swap. Tradicionalmente, el tamao de esta particin aplica la regla la swap ha de ser el doble de la memoria RAM
instalada, pero esto ya no es necesario en computadoras nuevas con RAM alto. Actualmente, la regla mas conveniente para
decidir el tamao del rea de intercambio es pensar en cunto querras tener y en cunto tienes, y poner como swap la
diferencia.
/home es el directorio donde se guardan los datos de los usuarios. El tamao de ste depende del nmero de usuarios que
tendr el sistema y los ficheros que stos guardarn en sus directorios.
/usr es el directorio que contiene todos los programas para usuarios (/usr/bin), bibliotecas (/usr/lib), documentacin
(/usr/share/doc), etc. sta es la parte del sistema de ficheros que requiere mayor espacio. Se debe incrementar el tamao de
esta particin en funcin del nmero y tipo de paquetes que se vayan a instalar.
/var es donde se almacenan todos los datos variables tales como los artculos de noticias, correo electrnico, sitios web, el
cache del sistema de empaquetado, etc. El tamao de este directorio depende directamente del uso que se haga del sistema.
/var/lib: Configuraciones modificables
/var/lock: Archivos seguros (lock files) para programas y demonios
/var/log: Archivos de la bitcora del sistema, de demonios y programas
/var/run: PIDs de demonios y programas (si son necesarios)
/var/spool: Colas de impresora, correo, etc.
/var/tmp: Espacio para archivos temporales. Permiso de escritura para todos los usuarios
/tmp es el directorio de ficheros temporales. Lo ms probable es que los datos temporales de los programas se
Manual Administracin GNU/Linux 3
Unidad 1: Instalacin de Linux
almacenen en este directorio.
1.2.4 Por qu crear mltiples particiones en Linux ?
Pueden utilizarse varios discos con un mismo sistema
Es posible guardar una copia de seguridad de los datos del usuario en otra particin del mismo
disco, para evitar la prdida de informacin importante.
Se pueden tener en la misma mquina dos sistemas operativos diferentes.
Es posible administrar cuotas de disco activadas por particin
Se pueden montar particiones en modo slo-lectura para proteccin
1.3 Gestor de arranque
1.3.1 Entendiendo que es un cargador de arranque
Un cargador o gestor de arranque (boot loader en ingls) es el primer programa que se ejecuta al
arrancar una computadora. Normalmente se utilizan los cargadores de arranque multietapas, en los que
varios programas pequeos se suman los unos a los otros, hasta que el ltimo de ellos carga el sistema
operativo.
1.3.2 Secuencia de arranque de una computadora
La secuencia de arranque comienza cuando el usuario enciende la computadora y el procesador ejecuta
los programas contenidos en la memoria ROM.
La BIOS busca un dispositivo de inicio (como el disco duro) y pasa el control al registro de arranque
maestro (MBR), que ocupa los primeros 512 bytes del disco y contiene la tabla de particiones y el
cargador de arranque (boot loader) en su etapa 1 (ver Tabla 1.C).
El cargador de arranque lee la tabla de particiones buscando una marcada como arrancable y carga el
primer sector de esta particin.
Tabla 1.C: Etapas del cargador de arranque
Etapa 1 Programa en el MBR: carga la segunda etapa del gestor de arranque, la cual se
encuentra alojada en el disco duro (Realiza un acceso directo al disco)
Etapa 2 Presenta el men y espera
Etapa 3 Inicia el sistema operativo seleccionado
NOTA: Cuando Windows se instala (cualquier versin) sobrescribe completamente el MBR, destruyendo cualquier gestor
de arranque existente. Si el propsito es tener sistemas duales en una pc se recomienda primero instalar los sistemas
operativos propietarios y luego Linux.
Manual Administracin GNU/Linux 4
Unidad 1: Instalacin de Linux
1.3.3 Gestores de arranque mltiple: LILO y GRUB
Los gestores de arranque mltiple se usan comnmente para iniciar dos o mas sistemas operativos
instalados en una misma computadora. Dos ejemplos de este tipo de cargadores son LILO y GRUB, los
cuales funcionan de manera similar pero se diferencian entre si por las siguientes caractersticas:
Lnea de comandos interactiva: LILO no posee una lnea de comandos interactiva como GRUB y
slo permite comandos con argumentos.
Arranque o booteo desde una red: no permitido en LILO, pero si en GRUB
Seguridad: LILO guarda la informacin sobre los sistemas operativos instalados, directamente en
el MBR. Cada vez que un nuevo sistema operativo o kernel se suma al sistema, la Etapa 1 del
cargador LILO tiene que ser manualmente reescrita (ejecutando: /sbin/lilo v v) para que el
nuevo sistema operativo o kernel pueda arrancar. Este mtodo es riesgoso, ya que una
configuracin incorrecta puede hacer que el sistema no pueda arrancar. Una manera de corregir
configuraciones errneas es arrancar desde algn Live CD, ingresar como root a la particin y
modificar el archivo lilo.conf. Corregir problemas de mala configuracin en GRUB es
comparativamente sencillo ya que por defecto este cargador desplegara una lnea de comandos
desde la cual el usuario puede arrancar el sistema manualmente. Esta flexibilidad probablemente
es la razn principal por la cual muchos usuarios prefieren GRUB sobre LILO.
Soporte para sistemas de archivos: LILO no puede leer las particiones ext2.
1.3.4 GRUB (GRand Unified Bootloader): Terminologa
GRUB usa las siguientes reglas para nombrar a los dispositivos y las particiones:
Tanto los discos duros IDE o SCSI empiezan con hd, las unidades de disquete inician con fd.
Los nombres de los dispositivos deben estar encerrados entre parntesis.
(hd0) As se identifica el disco duro primario, encerrado entre parntesis. Esto es importante para
indicarle a GRUB que configure el MBR del disco duro primario, si colocamos (hd3) estaremos
especificando el cuarto disco duro.
(hd0,0) es la primera particin del primer disco fijo; normalmente /dev/hda1.
Se ver otro ejemplo para sealar a un disco duro:
(hd0,1) => {tipo de dispositivo}{Nmero de dispositivo},{Nmero de particin}
hd significa que es un disco duro (hard disk).
El nmero 0 se refiere al nmero de la unidad, empezando a contar desde cero, as que este es el
dispositivo primario.
El nmero 1 se refiere a la 2 particin del disco duro.
Manual Administracin GNU/Linux 5
Unidad 1: Instalacin de Linux
1.3.5 Entradas en el archivo de men/configuracin de GRUB
En Debian el GRUB utiliza el archivo /boot/grub/menu.lst como men/configuracin. Aunque
/boot/grub/grub.conf puede ser usado tambin como archivo de menu/configuracin (Tabla 1.D).
Tabla 1.D: Entradas en el archivo de configuracin del men de GRUB
Opciones generales
default=0 Inicia el primer tem del men si no hay ninguna
seleccin realizada antes de que se cumpla el
tiempo de espera.
timeout=10 Tiempo de espera de 10 segundos para que el
usuario haga una seleccin.
splashimage=(hd0,0)/boot/grub/splash.xpm.gz Particin y ruta de la imagen que se usa como
fondo al presentar el men.
Secciones individuales del S.O.
title linux Nombre del tem en el men
root (hd0,0) Dispositivo raz de GRUB
kernel /boot/bzlinuz ro root=/dev/hda1 El ncleo es /boot/bzlinuz y algunos parmetros
como ro y root=/dev/hda1 son pasados al ncleo
cuando es iniciado.
initrd Ramdrive para usar durante el arranque (si es
usado por el ncleo)
map (hd0,1) (hd0,0)
map (hd0,0) (hd0,1)
Usado para intercambiar la asignacin de
particiones fsicas. til para hacer que Windows
98 arranque desde una particin que no es la
primera y hacerle creer que si lo es.
rootnoverify (hd0,1) Fija el dispositivo raz de GRUB sin montarlo.
chainloader +1 Salta al sector de arranque de la particin y
espera encontrar un cargador de arranque.
Usualmente empleado para arrancar sistemas
Windows.
makeactive Marcar la particin como activa.
Manual Administracin GNU/Linux 6
Unidad 1: Instalacin de Linux
Para arrancar desde un CD/Disquete/HD y utilizar el sistema de archivos raz de otro Linux (ej.
/dev/hda4) como su propia raz (/) se debe usar el parmetro de ncleo:
root=/dev/hda4
1.3.6. Qu es lo que hace GRUB ?
El archivo de la Etapa 1 (/boot/grub/stage1) es escrito en el MBR.
Este contiene la direccin fsica del archivo fssys_stage1_5 (fssys=sistema de archivos, por ejemplo
/boot/grub/e2fs_stage1_5)
Secuencia de arranque de GRUB:
1. MBR (stage1) es cargado
2. stage1 carga el archivo fssys_stage1_5
3. fssys_stage1_5 carga el archivo stage2
4. stage2 carga el archivo del men menu.lst
Despus de que la eleccin de un tem del men es hecha, stage2 carga el ncleo de Linux (vmlinuz) y
posiblemente el archivo de Ramdrive initrd
1.4 Instalacin de Debian GNU/Linux
1.4.1 Consideraciones previas
La experiencia de instalar Debian puede variar enormemente dependiendo del hardware y los
requerimientos.
Mientras que Debian tiene una gran reputacin de uso del da a da, tiene mala reputacin en lo que a su
instalacin se refiere. Sin embargo, con Debian 4.0, nombre cdigo Etch, los desarrolladores han tomado
grandes pasos para mejorar la experiencia de instalacin, as que no hay que tener miedo.
Quizs el mejor consejo con respecto a la instalacin de Debian es no esperar que todo salga bien la
primera vez, sino mantenerse listo para empezar otra vez y experimentar. Y as sentirse complacido con el
proceso de instalacin en menos de lo que uno imagina.
Antes que nada, es bueno recordar que entre mas tiempo se invierta leyendo acerca del proceso de
instalacin, mejores sern los resultados obtenidos al realizar la instalacin. Es recomendable tener una
Manual Administracin GNU/Linux 7
Unidad 1: Instalacin de Linux
copia de la Gua Oficial de instalacin de Debian. Ser muy til tenerla a mano durante el proceso de
instalacin. Esta gua se puede encontrar en lnea, en el sitio oficial de Debian, o en el directorio
doc/install dentro del CD de Debian.
Respaldo previo de datos existentes en el disco duro utilizado para la instalacin:
Si no se cuenta con un disco duro vaco dedicado para Debian, el paso mas importante antes de iniciar
con el CD de instalacin es guardar toda la informacin en otro disco para evitar la perdida de datos
por posibles errores.
Si se instala en una maquina que ya tiene otro sistema operativo instalado, como Windows por ejemplo,
con la intencin de tener un dual-boot, en el cual la mquina al finalizar la instalacin pueda arrancar
con cualquiera de los dos sistemas operativos, es necesario cambiar el tamao de la particin de
Windows. Para sto se necesita una herramienta como GParted LiveCD, la cual reconoce varios
sistemas de archivos y dependiendo de stos, puede crear, mover, cambiar de tamao, convertir o borrar
particiones. Esto permite la modificacin del tamao de una particin de Windows sin tener que
reinstalarlo y as reservar espacio para Debian.
1.4.2Formas de instalar Debian GNU/Linux
a) Desde un juego oficial de CD-ROMs (si la mquina soporta arranque desde CD). Se ha puesto
mucho esfuerzo para asegurar que los ficheros necesarios para la mayora de las personas estn en
un solo CD. Aunque el juego completo de paquetes binarios requiere varios CDs, es poco
probable que se necesiten los paquetes que se encuentran a partir del tercer CD. Tambin puede
considerarse usar la versin de DVD, que ahorra bastante espacio.
b) Descargando las imgenes de CD-ROM o DVD desde una rplica de Debian para hacer un juego
propio, (si se tiene una conexin de red rpida y una grabadora de CD o DVD). Para encontrar la
rplica ms cercana (y probablemente la ms rpida), ver http://www.debian.org/dist rib/ftplist .
c) Desde un CD-ROM ubicado en la red (si la mquina no soporta arranque desde CD, pero se
cuenta con un juego de CDs), cargando manualmente el ncleo desde el CD para arrancar
inicialmente el sistema de instalacin. Los ficheros que se necesitan para arrancar por otros
mtodos tambin estn en el CD, el archivo de red de Debian es idntico a la organizacin de los
directorios de los CDs. De modo que cuando se mencionen rutas de ficheros para ficheros
concretos necesarios para arrancar, se pueden encontrar estos ficheros en los mismos directorios y
subdirectorios en su CD.Una vez que el instalador haya arrancado, ste podr obtener el resto de
los ficheros necesarios desde el CD.
d) Desde otra computadora conectada a la red. Si no se cuenta con un juego de CDs, ser necesario
descargar los ficheros del sistema de instalacin y ubicarlos en una computadora conectada a la
red de modo que puedan usarse para arrancar el instalador.
e) Desde una unidad de disquete.
Manual Administracin GNU/Linux 8
Unidad 1: Instalacin de Linux
1.4.3 Seleccin del dispositivo de arranque
Muchos mens de configuracin de la BIOS permiten elegir el dispositivo que el sistema usar para
arrancar. Es posible configurarlo para buscar un sistema operativo arrancable en la primera unidad de
disquete (posiblemente aparezca como A:), luego opcionalmente la primera unidad de CD-ROM
(posiblemente aparezca como D: o E:) y luego desde la primera unidad de disco duro (posiblemente
aparezca como C:). Esta configuracin permite arrancar desde un disquete o un CD-ROM, los dos
dispositivos de arranque ms usados para instalar Debian.
Si se tiene un controlador SCSI y un dispositivo CD-ROM conectado a ste, usualmente se podr
arrancar desde el CD-ROM. Todo lo que se debe hacer es habilitar el arranque desde CD-ROM en la
BIOS SCSI de su controlador.
Otra opcin popular es arrancar desde un dispositivo de almacenamiento USB (tambin conocido como
memoria USB o pendrive). Algunos tipos de BIOS pueden arrancar directamente desde stos, pero otras
no. Podra ser necesario configurar el BIOS para arrancar desde un Dispositivo extrable o incluso
USB-ZIP para que arranque desde el dispositivo USB.
A continuacin se dan ms detalles acerca de como configurar la secuencia de arranque. Es importante
recordar expulsar la unidad de instalacin (CD, DVD, dispositivo de USB, etc) y reiniciar la computadora
despus de que Linux est instalado, para que la mquina arranque desde el disco duro.
Cambiar el orden de arranque en computadoras con discos duros IDE:
Nota: Es siempre mejor consultar a la documentacin del hardware para informacin ms exacta sobre el
equipo.
1. Cuando la computadora se prende, se presionan las teclas para ingresar a la utilidad de la BIOS. A
menudo es la tecla Supr.
2. Hay que buscar la secuencia de arranque en la herramienta de configuracin. Su ubicacin
depende de la BIOS de la mquina en particular, pero se debe buscar un campo que liste unidades.
Las opciones comunes en mquinas con IDE son IDE-0, IDE-1, disquete, y CD-ROM pero en
unas la unidades pueden tener letras asignados.
3. Ahora se cambia la secuencia de arranque de modo que el CD-ROM o la unidad de disquete sea el
primero. Usualmente las teclas Av Pg o Re Pg le desplazan a travs de todas las opciones
posibles.
4. Luego se guardan los cambios. Las instrucciones en la pantalla dirn como guardar los cambios.
Manual Administracin GNU/Linux 9
Unidad 1: Instalacin de Linux
Cambiar el orden de arranque en computadoras con discos duros SCSI:
1. Cuando la computadora se prende, se presionan las teclas para ingresar a la utilidad de
configuracin SCSI.
(a) Se puede iniciar la utilidad de configuracin SCSI despus de la verificacin de memoria
cuando se muestra el mensaje de como iniciar la utilidad de la BIOS al iniciar la computadora.
(b) Las teclas que se necesita dependen de la utilidad. A menudo son Ctrl-F2. Sin embargo, hay
que consultar a la documentacin del hardware para el juego de teclas exacto.
2. Se busca la utilidad para cambiar el orden de arranque.
3. Ahora se configura el SCSI ID de la unidad de CD como primero en la lista.
4. Por supuesto hay que guardar los cambios. Las instrucciones en la pantalla dirn como guardar los
cambios en la computadora. Generalmente se debe presionar F10.
1.4.4 Comenzando con la instalacin: Configuracin de idioma
Arrancar con el CD/DVD de instalacin. Durante el arranque se ver una pantalla similar a la de la
Figura 1.i. Normalmente solo hay que presionar ENTER para arrancar el instalador.
Figura 1.i: Pantalla Inicial del instalador de Debian
Una vez que arranque el instalador, este guiar al usuario por una sucesin de mens. La Figura 1.ii
muestra la primera de esta serie: Escoger el idioma. Esta pantalla permite elegir el lenguaje usado
durante el proceso de instalacin, el cual ser el lenguaje por defecto del sistema final. Para escoger el
idioma, se navega con las flechas hacia arriba y hacia abajo hasta la opcin deseada y se presiona ENTER
para seleccionar. En general, sta es la manera de navegar dentro de los mens de instalacin.
A diferencia de otras distribuciones de Linux, Debian permite agregar mas idiomas una vez instalado el
sistema (mediante el comando: # dpkg-Jecoh11guJe ocaes como usuario root).
Manual Administracin GNU/Linux 10
Unidad 1: Instalacin de Linux
Figura 1.ii: Men de seleccin de idioma
Las siguientes pantallas desplegadas, permiten elegir: primero, el pas o territorio de ubicacin (Figura
1.iii), y despus, la distribucin del teclado (Figura 1.iv).
Figura 1.iii: Men de seleccin de pas o rea de ubicacin.
Manual Administracin GNU/Linux 11
Unidad 1: Instalacin de Linux
Figura iv: Pantalla de seleccin de la distribucin del teclado deseada.
1.4.5 Configuracin de Red
Ya seleccionados el idioma, la localizacin y el teclado, el instalador proceder a configurar la red. La
forma mas fcil es tener conectada la PC a una red con capacidad de DHCP. Es posible instalar Debian
sobre una red inalmbrica, pero solo con ciertas tarjetas inalmbricas.
El proceso de instalacin despliega ahora un par de pantallas donde se solicita sea introducido el nombre
de la mquina (Figura 1.v) que identifica al sistema en la red, y el nombre de dominio local (Figura
1.vi). Una vez introducidos los nombres, se puede saltar a la opcin <Continuar> con TAB, y presionar
ENTER para cambiar de pantalla. Pueden aceptarse los valores por defecto, ya que siempre se puede
cambiar la configuracin de red mas adelante.
1.4.6 Particionamiento del disco
Debian, como cualquier otra distribucin de Linux, divide el espacio del disco para diferentes propsitos.
Como se mencion en la seccin 1.2.3, la configuracin bsica mnima es tener 2 particiones: una para
almacenamiento en disco y la otra para espacio de swap, el espacio de memoria virtual usado por Linux
para almacenar partes de los programas cuando no se necesitan en la memoria fsica. El particionamiento
es una de las pocas opciones que luego de ajustarla durante la instalacin no se puede cambiar mas tarde
sin una completa reinstalacin del sistema, as que una buena estrategia es abstenerse de hacerla mas
complicada de lo que es.
La etapa de particin del instalador ofrece bsicamente dos opciones (Figura 1.vii): A) Utilizar el disco
completo, a travs de alguno de los tres tipos de particionamiento guiado, o B) configurar particiones
manualmente e instalar en una de ellas (o en todas).
Manual Administracin GNU/Linux 12
Unidad 1: Instalacin de Linux
Figura 1.v: Pantalla de configuracin de red donde solicita el nombre de la mquina.
Figura 1.vi: Pantalla de configuracin de red donde solicita el nombre de dominio de red.
Figura 1.vii: Mtodos de particionado del disco rgido que ofrece el instalador de Debian.
Manual Administracin GNU/Linux 13
Unidad 1: Instalacin de Linux
A) Particionamiento guiado:
Para usuarios novatos que disponen de un disco completo para la instalacin, es recomendable escoger la
primera opcin de particionamiento guiado. Entonces, el sistema muestra una lista del o los discos duros
presentes en la mquina y da la opcin de seleccionar en cual se quiere instalar. El siguiente paso, ofrece
tres opciones de particionamiento distintas (Figura 1.viii):
a) Colocar todos los archivos del sistema en una nica particin,
b) Un ajuste para trabajo de escritorio con una particin por separado para el directorio home, y
c) Un ajuste para multiusuarios con una particin independiente para los directorios /, /home, /usr,
/var y /tmp.
La primera opcin es recomendada para nuevos usuarios.
Luego de seleccionar la opcin de particionado, se ver una pantalla donde se resumen las particiones y
puntos de montaje configurados hasta ese momento. Si todo es correcto, seleccionar Finalizar el
particionado y escribir los cambios en el disco. El instalador vuelve a preguntar: Desea escribir los
cambios en los discos? Decimos si y continuamos (ver Figura 1.ix).
Figura 1.viii: Esquemas de particionamiento del disco rgido que ofrece el instalador de Debian.
Manual Administracin GNU/Linux 14
Unidad 1: Instalacin de Linux
Figura 1.ix: Resumen de las opciones de particionamiento escogidas en los pasos anteriores.
Por defecto el instalador de Debian seleccionar el sistema de archivos ext3 para las particiones. Este es
un sistema de archivos bien probado con capacidad de recuperarse de cadas del sistema fcilmente. Los
usuarios mas avanzados pueden desear escoger otros sistemas de archivos, lo cual es posible mediante la
edicin manual de la tabla de particiones. Si se utiliza algn sistema de RAID o de Logical Volume
Manager (LVM) para administracin de discos, el instalador tambin tiene opciones especiales.
B) Particionamiento manual:
Si no se tiene un disco rgido completo para esta instalacin y se quiere mantener otro sistema operativo
en el disco, o se requiere un esquema de particiones particular, es necesario seguir el mtodo de
particionado manual (Figura 1.x). Hay que tener espacio libre (sin particionar) para hacer esto, ya sea
que se haya liberado anteriormente reduciendo una particin existente, o borrando particiones no
necesarias. Es importante tener cuidado al borrar particiones no conocidas. Muchas de las nuevas PCs
(Dell, HP) mantienen particiones de reinstalacin o recuperacin al principio del disco; es fcil borrar
particiones importantes sin saber. De igual manera, las Macs guardan una sucesin de controladores en
estas particiones que deben permanecer.
Manual Administracin GNU/Linux 15
Unidad 1: Instalacin de Linux
Figura 1.x: Mtodos de particionado del disco rgido que ofrece el instalador de Debian.
La siguiente pantalla resume las particiones y puntos de montaje ya configurados en el disco (Figura
1.xi). Aqu las opciones disponibles son: a) Elegir nuevamente el particionado guiado; b) Seleccionar
ayuda del particionado, lo que ofrece algo de informacin acerca de cmo particionar el disco
manualmente (Figura 1.xii); o c) Seleccionar el dispositivo (si se quiere crear una nueva tabla de
particiones en el disco completo) o particin (para modificarla o borrarla liberando espacio).
En el ejemplo escogido para ilustrar la presente gua, en el cual se utiliz una mquina virtual con un
disco rgido de 10 GB y 512 MB de memoria aleatoria (RAM), se selecciona el disco en el que se va a
crear la nueva tabla de particiones. El instalador preguntar si se quiere crear una nueva tabla de
particiones vaca en ese dispositivo (Figura 1.xiii), si la respuesta es S, muestra el espacio libre del disco
(Figura 1.xiv) que se debe seleccionar. La siguiente pregunta es acerca de cmo usar ese espacio libre.
Seleccionamos: Crear una particin nueva (Figura 1.xv).
Se van a crear tres particiones en este ejemplo:
1. La particin raz / : de 3 GB
Se coloca el tamao de particin deseado (Figura 1.xvi), luego, el tipo de particin (primaria o lgica;
Figura 1.xvii) y la ubicacin de la nueva particin (principio o final; Figura 1.xviii). Ya que no hay
otras particiones creadas en el disco utilizado, se va a crear una particin primaria ubicada en el principio
del disco. El instalador despliega ahora la configuracin de la particin que se est editando (Figura
1.xix). Navegando hasta la opcin Modo de arranque, se presiona ENTER para activarlo. De esta
manera, la particin raz ser la primera particin detectada para iniciar el sistema. Una vez activado el
modo de arranque de la particin, seleccionar: Se ha terminado de definir la particin (Figura 1.xx).
Manual Administracin GNU/Linux 16
Unidad 1: Instalacin de Linux
Figura 1.xi: Configuracin del particionado del disco rgido previa a la instalacin.
Figura 1.xii: Ayuda del instalador sobre el particionado del disco.
2. swap : el rea de intercambio de 1024 MB (en general, doble del tamao de la memoria fsica)
Para crear otra particin, se siguen los mismos pasos anteriores. Se selecciona nuevamente, el espacio que
todava queda libre y se asigna un tamao a la nueva particin. Solo hay una particin creada en el
dispositivo, entonces, es posible crear otra particin primaria y ubicarla en el principio. A continuacin,
el instalador despliega la pantalla de configuracin de la particin. Como se quiere crear una particin
Manual Administracin GNU/Linux 17
Unidad 1: Instalacin de Linux
swap, es necesario cambiar el tipo de sistema de archivos, presionando ENTER en la opcin Utilizar
como (Figura 1.xxi). Seleccionar la opcin rea de intercambio (Figura 1.xxii) y terminar de definir
la particin ( Figura 1.xxiii).
Figura 1.xiii: Crear nueva tabla de particiones en el dispositivo seleccionado.
Figura 1.xiv: Espacio libre en el disco sobre el que se crea la nueva tabla de particciones.
Figura 1.xv: Crear una nueva particin.
Manual Administracin GNU/Linux 18
Unidad 1: Instalacin de Linux
Figura 1.xvi: Tamao de la particin que se va a crear.
Figura 1.xvii: Seleccin del tipo de particin.
Figura 1.xviii: Seleccin de la ubicacin de la particin.
Manual Administracin GNU/Linux 19
Unidad 1: Instalacin de Linux
Figura 1.xix: Configuracin de la primera particin que se est editando.
Figura 1.xx: Terminar de definir la particin. Notar que la
marca de arranque debe estar activada para la particin raz.
Manual Administracin GNU/Linux 20
Unidad 1: Instalacin de Linux
Figura 1.xxi: Configuracin de la particin swap. Es necesario cambiar el sistema de archivos.
Figura 1.xxii: Pantalla de seleccin del uso de la particin donde, para el
caso de swap, se selecciona el rea de intercambio.
Figura 1.xxiii: Terminar de definir la particin de rea de intercambio.
Manual Administracin GNU/Linux 21
Unidad 1: Instalacin de Linux
3. /home : el directorio de datos de usuarios de 6 GB
Se sigue el mismo procedimiento que con las particiones anteriores, pero sta vez, escogiendo como
tamao de la particin todo el espacio libre restante para crear una tercer particin primaria. Finalmente,
hay que asegurar en la configuracin de la particin que el punto de montaje sea el correcto (Figura
1.xxiv). Terminar de definir la particin.
Una vez creadas todas las particiones deseadas, el instalador muestra la pantalla final del
particionamiento detallando la nueva tabla de particiones. Seleccionar: Finalizar el particionado y
escribir los cambios en el disco. La siguiente pantalla vuelve a preguntar si desea escribir los cambios en
el disco, si la respuesta es S, proceder a crear la tabla de particiones (Figura 1.xxv).
Figura 1.xxiv: Configuracin de la tercera particin.
Asegurar que el punto de montaje sea el correcto.
Manual Administracin GNU/Linux 22
Unidad 1: Instalacin de Linux
Figura 1.xxv: Resumen de las opciones de particionamiento escogidas en los pasos anteriores.
1.4.7 Configuracin de usuarios y contraseas
Una vez creada la tabla de particiones y completado el particionado del disco, se procede a la
configuracin de usuarios y contraseas.
Primero, hay que definir la contrasea del superusuario o root, que es el administrador del sistema. Esta
es la contrasea mas importante de todo el sistema (Figura 1.xxvi).
Luego, hay que crear una cuenta de usuario para uso propio (y para no trabajar siempre como
administrador). Aqu pide primero el nombre completo del usuario, y luego un nombre de usuario y
contrasea (que debe ser distinta a la del superusuario) para la cuenta. Este es el nombre de registro con
el que se va a ingresar al sistema cada vez que se inicie sesin.
1.4.8 Configuracin del gestor de paquetes
Despus de creadas las cuentas de usuarios, comienza la instalacin del sistema base. Aqu el sistema
pregunta si se desea utilizar una rplica en red para complementar los programas incluidos en el CD
(Figura 1.xxvii). Esta opcin es recomendable, si se cuenta con acceso a Internet durante la instalacin,
ya que de esta manera el instalador puede actualizar la lista de paquetes de programas disponibles. Si la
opcin escogida fue S, entonces sigue definir el pas donde se encuentra la rplica que se va a utilizar. Y
luego, escoger una rplica, si en el pas seleccionado hubiera mas que una. En el caso de Venezuela, solo
hay una. Si fuese necesario conectarse por medio de un proxy, en la siguiente pantalla es posible
introducir la informacin del proxy. De esta manera, el instalador comienza la configuracin del gestor de
paquetes apt. A continuacin el instalador descargar un listado de los paquetes disponibles, incluyendo
cualquier actualizacin de seguridad desde la red.
Manual Administracin GNU/Linux 23
Unidad 1: Instalacin de Linux
Figura 1.xxvi: Pantalla de configuracin de contrasea del usuario root.
Figura 1.xxvii: Pantalla de configuracin del gestor de paquetes.
1.4.9 Seleccin de programas
Como muestra la pantalla de la Figura 1.xxviii, se ha instalado el sistema bsico y es momento de
escoger los programas que van a estar preinstalados desde la primera vez que se inicie el sistema. Si se
est realizando una instalacin sobre red, es bueno recordar que esta opcin tiene un efecto significativo
sobre el tiempo de descarga.
Aqu se presentan varios conjuntos de programas segn las necesidades. Las opciones disponibles son:
Entorno de Escritorio
Instala el sistema grfico de ventanas Xorg, mas el entorno de escritorio GNOME (KDE tambin
puede instalarse)
Servidor Web
Instala el servidor web Apache 2
Manual Administracin GNU/Linux 24
Unidad 1: Instalacin de Linux
Servidor de Impresin
Instala CUPS, el sistema de impresin de Unix (Common Unix Printing System), ajustando la
mquina como un servidor de impresin.
Servidor DNS
Instala BIND, (Berkeley Internet Name Daemon), para servir peticiones de DNS.
Servidor de Correo
Instala el servidor de correo Exim 4.
Base de datos SQL
Instala el servidor de bases de datos relacionales PostgreSQL.
Sistema estndar
Instala las aplicaciones bsicas.
Nota: Desplazarse por las opciones con flechas hacia arriba y hacia abajo. Para seleccionar o quitar la
seleccin de alguna de las opciones presionar la barra espaciadora.
1.4.10 Configuracin de xserver-xorg
Durante el proceso de instalacin y configuracin de programas el sistema permite seleccionar los modos
de video que utilizar el servidor de X. Seleccionar en este caso, las resoluciones de pantalla que se
deseen mantener (Figura 1.xxix).
1.4.11 Instalacin del cargador de arranque
La ltima etapa, antes de finalizar la instalacin y configuracin de los programas, es instalar el cargador
de arranque GRUB (Figura 1.xxx). El sistema detecta si hay uno o mas sistemas operativos instalados en
el disco y pregunta si se desea instalar el cargador de arranque en el registro principal de arranque. La
respuesta es S.
Figura 1.xxviii: Men de seleccin de programas
Manual Administracin GNU/Linux 25
Unidad 1: Instalacin de Linux
Figura 1.xxix: Configuracin del sistema de ventanas X.
Figura 1.xxx: Instalacin del cargador de arranque en el disco duro.
1.4.12 ltimo paso
El programa de instalacin indica que la instalacin se ha completado (Figura 1.xxxi), solo resta remover
el medio de instalacin y reiniciar el equipo. Al reiniciar, el usuario podr ver la pantalla de inicio de
GRUB: un listado del o los sistemas operativos instalados en la computadora. Luego de unos segundos de
espera, se proceder a iniciar la opcin por defecto, Debian.
Manual Administracin GNU/Linux 26
Unidad 1: Instalacin de Linux
Figura 1.xxxi: Pantalla final del proceso de instalacin de Debian 4.0.
Eso es todo! Ahora ya se puede ingresar al nuevo sistema Debian y empezar a explorar (Figura 1.xxxii).
Figura 1.xxxi: Pantalla de inicio de Debian 4.0 donde ingresar como usuario.
Manual Administracin GNU/Linux 27
Unidad 2: Sistema X.org
UNIDAD 2: SISTEMA X.ORG
2.1 Interfaz Grfica de Usuario: El Servidor X
X es el componente de los sistemas Unix encargado de mostrar la informacin grfica en particular, de
dibujar los iconos, los fondos, y las ventanas en las que se ejecutan las aplicaciones y es totalmente
independiente del sistema operativo. El sistema de ventanas X distribuye el procesamiento de
aplicaciones especificando enlaces cliente-servidor. El servidor provee servicios para acceder a la
pantalla, teclado y ratn (determina la resolucin de la pantalla y la profundidad de color, mueve el cursor
del ratn alrededor de la pantalla, etc.), mientras que los clientes son las aplicaciones que utilizan estos
recursos para interaccin con el usuario. De este modo, mientras el servidor se ejecuta de manera local,
las aplicaciones pueden ejecutarse remotamente desde otras mquinas, proporcionando as el concepto de
transparencia de red.
Debido a este esquema cliente-servidor, se puede decir que X se comporta como una terminal grfica
virtual.
El servidor X se ha desarrollado para varias plataformas de hardware. La mayora de las aplicaciones del
servidor X son propietarias. El XFree86 es software libre, y es el que se explica a continuacin:
La versin 3 de XFree86 contiene varios servidores X ejecutables para las diferentes resoluciones y
profundidades de color. La versin 4 de XFree86 selecciona la resolucin correcta y la profundidad de
color, as hay un solo ejecutable durante la ejecucin.
X.Org es una implementacin libre del sistema grfico de ventanas X (tambin conocido como X11, por
la actual versin) que surgi como una bifurcacin de XFree86 despus de un cambio de licencia que
muchos consideran incompatible con la Licencia Pblica General (GPL). X.Org ha sido adoptada por la
mayora de las distribuciones GNU de Linux.
2.1.1 Cmo averiguar Chipset y dispositivo
El primer paso para configurar la interfaz grfica del usuario, es determinar el chipset de la tarjeta grfica
y el dispositivo que la soporta. Para hacer esto, se ejecuta en un terminal el comando:
$ spc1 ] gJep vCA
La informacin que sigue normalmente identifica la marca de la tarjeta grfica y posiblemente el driver
necesario. Por ejemplo,
$ spc1 ] gJep vCA
01.03.0 vCA compa11be coh1JoeJ. ATT Techhoog1es Thc ES1000 {Jev 02)
La primera columna arroja los nmeros del bus PCI al cual la tarjeta est conectada, con el formato
Manual Administracin GNU/Linux 28
Unidad 2: Sistema X.org
<bus>:<slot>:<func>. Si se ejecuta:
$ spc1 -h -s bb.ss.1
Luego se puede identificar con los nmeros del bus PCI los cdigos de identificacin de fabricante y de
dispositivo. Por ejemplo,
$ spc1 ] gJep vCA
01.03.0 vCA compa11be coh1JoeJ. ATT Techhoog1es Thc ES1000 {Jev 02)
$ spc1 -h -s 01.03.0
01.03.0 0300. 1002.5969 {Jev 02)
Los cdigos de identificacin de fabricante y de dispositivo tienen el formato ffff:dddd en nmeros
hexadecimales. En ste caso el cdigo de dispositivo de la tarjeta es 1002:5969. Con esta informacin se
puede buscar en la siguiente lista de tarjetas grficas:
http://www.calel.org/pci-devices/xorg-device-list.html
para encontrar el driver necesario. En este caso el driver es <radeon>.
Tambin es necesario saber las frecuencias de barrido horizontal y vertical del monitor. Los barridos
suelen encontrarse en la seccin <especificaciones> del manual del monitor. Estos datos son muy
importantes y valores errneos pueden causar un mal funcionamiento y hasta daos al monitor.
2.2 Instalacin y Configuracin de X.Org
Para instalar X.Org, se ingresa como root, (por ejemplo con un "Terminal de <Root>" en el men
"Aplicaciones --> Accesorios" o, en el mismo men, un "Terminal" y luego el comando su
(superuser/superusuario). Se puede instalar el paquete xorg con:
# ap111ude 1hs1a xoJg
Este es un meta-paquete que, usando el sistema de dependencias, instala un conjunto de paquetes X11,
como el servidor X.Org, un conjunto de tipos de letras y herramientas bsicas.
A continuacin se explicar paso a paso la configuracin del paquete xserver-xorg, hecha por debconf.
Por si acaso haya alguna equivocacin, se puede cancelar con <ctrl>-<c> y volver a reconfigurar. Se
puede entrar en las configuraciones con:
Manual Administracin GNU/Linux 29
Unidad 2: Sistema X.org
# dpkg-reconfigure xserver-xorg
2.2.1 Driver X
AbJ1J uh pahe de coh11guJac1h que p1de da1os 1mpoJ1ah1es a usuaJ1o. Eh e caso
eh que ho au1ode1ec1e a 1aJe1a gJ11ca, se puede eh1JaJ. Segh a 1deh1111cac1h
de ch1pse1 eh a 1s1a ah1es mehc1ohada, se cooca e dJ1veJ mas apJop1ado. PoJ
eempo,
a11
Se puede asignar al driver un nombre (usualmente el nombre del fabricante seguido por el modelo y
versin de la tarjeta) o se puede quedar con el defecto:
CeheJ1c v1deo CaJd
Luego se entra la identificacin de la tarjeta en el bus PCI, por ejemplo,
PCT.1.0.0
El servidor deber autodetectar la cantidad de memoria, as que se puede dejar en blanco ese campo. Se
puede escoger <no usar el dispositivo "framebuffer" del ncleo>.
2.2.2 Teclado
Se puede escoger <no autodetectar el teclado>. Aqu se especifica el lenguaje del teclado ('us' por defecto,
'es' para Castellano), las reglas del teclado ('xorg' por defecto), y el tipo de teclado ('pc104' por defecto).
Otras opciones son pc101, pc102, pc105. Estos dos ltimos son para teclados europeos. Est bien dejar la
variante y opciones del teclado en blanco.
2.2.3 Ratn
Siguiente hay que especificar la unidad del dispositivo del ratn. Por ejemplo,
/dev/1hpu1/m1ce
Si el ratn est conectado a una puerta de comunicacin serial, /dev/ttyS0 corresponde a la puerta COM1,
/dev/ttyS1 a la puerta COM2, etc. La unidad /dev/psaux es para ratones PS/2 y /dev/input/mice para
Manual Administracin GNU/Linux 30
Unidad 2: Sistema X.org
ratones USB.
Se coloca el protocolo del ratn. Si el usuario no sabe, debera escoger
TmPS/2
y especificar emular un ratn con tres botones.
2.2.4 Mdulos
Se sugiere escoger los mdulos por defecto.
2.2.5 Ruta de archivos
La mayora de los usuarios se quedan bien con la configuracin por defecto de la seccin "Files".
2.2.6 Monitor
Se coloca <auto detectar el monitor>. Hay que asignarle un nombre; por ejemplo, el defecto
CeheJ1c hoh11oJ
Con la barra de espacio se pueden seleccionar las resoluciones que soporta la tarjeta grfica y el monitor,
tpicamente 1280x1024 o 1024x768. Luego se escoge el modo <avanzado> de configuracin del monitor.
Pide el rango de frecuencias del barrido horizontal, luego el vertical. Se puede encontrar estos datos en la
seccin especificaciones del manual del monitor. Si no conoce esta informacin, es preferible dar un
rango grande, por ejemplo, 28-100 para el barrido horizontal y 40-100 para el vertical. Tambin se escoge
la profundidad de color, tpicamente 24 bits.
Manual Administracin GNU/Linux 31
Unidad 2: Sistema X.org
2.3 Configuraciones de X
2.3.1 Las Secciones de xorg.conf
El archivo /etc/X11/xorg.conf contiene la configuracin de X.Org y est dividido en secciones:
F1es # Ru1a de os aJch1vos
hodue # hduos d1hm1cos
Thpu10ev1ce # 0escJ1pc1h de os d1spos111vos peJ11J1cos
0ev1ce # 0escJ1pc1h de os d1spos111vos gJ11cos
hoh11oJ # 0escJ1pc1h de hoh11oJ
ScJeeh # Coh11guJac1h de a pah1aa
SeJveJLayou1 # Esquema goba
0RT # Coh11guJac1h espec111ca a 0RT
Cada seccin empieza con la instruccin <Section>, seguido por el nombre de la seccin entre comillas,
y siempre termina con <EndSection>. Existen comandos especficos para cada seccin. Aqu se detallar,
no necesariamente en el orden del archivo, cmo escoger las configuraciones generalmente ptimas para
la mayora de sistemas, explicando el significado de cada comando, para que se pueda modificar la
configuracin con algn editor de texto (por ejemplo vi) segn los parmetros pertinentes al hardware.
Nota: Para hacer efectivo cualquier cambio a /etc/X11/xorg.conf se debe reiniciar el Display Manager con
$ /e1c/1h11.d/gdm Jes1aJ1
2.3.2 Seccin "Device"
Esta seccin es la que define y configura el dispositivo de la tarjeta grfica.
Sec11oh "0ev1ce"
Tdeh1111eJ "CeheJ1c v1deo CaJd"
0J1veJ "s1s"
BusT0 "PCT.1.0.0"
EhdSec11oh
Manual Administracin GNU/Linux 32
Unidad 2: Sistema X.org
La entrada <Identifier> es simplemente un nombre para identificar la seccin.
La entrada <Driver> especifica el dispositivo. Si la configuracin aqu es incorrecta, el usuario la
cambiar segn su tarjeta grfica.
2.3.3 Seccin "Monitor"
Esta seccin define el monitor.
Sec11oh "hoh11oJ"
Tdeh1111eJ "CeheJ1c hoh11oJ"
0p11oh "0PhS"
hoJ1zSyhc 28-100
veJ1Re1Jesh 40-100
EhdSec11oh
La entrada <Identifier> es similar a la de la seccin "Device". Pueden existir varias secciones "Monitor"
en el archivo, cada una con diferente identificacin. Esto es conveniente si, por ejemplo, hay varios
monitores, uno en la casa y otro en el lugar de trabajo. As se puede fcilmente definir una configuracin
para cuando el computador est en casa o en tu trabajo. Cmo sto funciona en la prctica quedar claro
ms adelante.
La entrada <HorizSync> especifica la frecuencia de barrido horizontal del monitor en unidades de kHz.
Puede ser una frecuencia fija, [31.5], mltiples frecuencias fijas, [31.5,35.2], un rango, [30-64], o rangos,
[15-25,30-64]. La entrada VertRefresh especifica los intervalos verticales de refresco en unidades de Hz y
los valores tienen el mismo formato de HorizSync.
2.3.4 Seccin "Screen"
Esta seccin es la que va a definir la pantalla, combinando la configuracin del dispositivo y monitor.
Sec11oh "ScJeeh"
Tdeh1111eJ "0e1au1 ScJeah"
0ev1ce "CeheJ1c v1deo CaJd"
hoh11oJ "CeheJ1c hoh11oJ"
0e1au10ep1h 24
Manual Administracin GNU/Linux 33
Unidad 2: Sistema X.org
Subsec11oh "01spay"
0ep1h 1
hodes "1024x768" "800x600" "640x480"
EhdSubsec11oh
Subsec11oh "01spay"
0ep1h 4
hodes "1024x768" "800x600" "640x480"
EhdSubsec11oh
Subsec11oh "01spay"
0ep1h 8
hodes "1024x768" "800x600" "640x480"
EhdSubsec11oh
Subsec11oh "01spay"
0ep1h 15
hodes "1024x768" "800x600" "640x480"
EhdSubsec11oh
Subsec11oh "01spay"
0ep1h 16
hodes "1024x768" "800x600"
EhdSubsec11oh
Subsec11oh "01spay"
0ep1h 24
hodes "1024x768"
EhdSubsec11oh
EhdSec11oh
Nota: Las entradas <Device> y <Monitor> tienen el mismo valor que la entrada <Identifier> de las
secciones "Device" y "Monitor". De esta manera se entrelazan las configuraciones de las diferentes
secciones.
La entrada DefaultDepth especifica la profundidad de color por defecto; en este ejemplo, 24 bits. Pueden
haber varias subsecciones "Display". La entrada <Depth> especifica la profundidad de color de la
subseccin. Valores posibles son 8 (256 colores), 16 (64K colores) y 24 bits. As, la entrada DefaultDepth
va a especificar la subseccin "Display" por defecto.
La entrada Modes especifica las resoluciones. Puede especificarse una resolucin ["640x480"] o un
Manual Administracin GNU/Linux 34
Unidad 2: Sistema X.org
listado de ellas ["1600x1200" "1280x960" "1152x864" "1024x768" "800x600" "640x480"]. Normalmente
se usa la primera en la lista, si est soportada, si no, la siguiente, y as.
En general, mientras mayor la profundidad de color, menor la resolucin mxima posible. Se puede
disminuir la profundidad de color si la imagen de la pantalla es mala para cierta resolucin soportada, o
mantener la profundidad y disminuir la resolucin.
2.3.5 Seccin "InputDevice"
Esta es la seccin que configura las perifricos como el teclado, ratn, mousepad, touchscreen, etc. Los
ms comunes son el teclado y el ratn, obviamente, cada una por separado.
2.3.5.1 Configuracin del teclado
Configuracin del teclado:
Sec11oh "Thpu10ev1ce"
Tdeh1111eJ "CeheJ1c KeyboaJd"
0J1veJ "kbd"
0p11oh "CoJeKeyboaJd"
0p11oh "XkbRues" "xoJg"
0p11oh "Xkbhode" "pc105"
0p11oh "XkbLayou1" "es"
EhdSec11oh
Todos los teclados tienen un driver en comn llamado <kbd>. La entrada Option "CoreKeyboard" indica
que el teclado definido por la seccin es el teclado principal. La entrada Option "XkbModel" especifica el
tipo de teclado. Los valores ms comunes son "pc101", "pc102", "pc104", "pc105" o "microsoft" para el
teclado Microsoft Natural. La entrada Option "XkbLayout" define el lenguaje del teclado; <es> o
<latam> para un teclado en Castellano, <us> para un teclado en Ingls.
2.3.5.2 Configuracin del ratn
Configuracin del ratn:
Sec11oh "Thpu10ev1ce"
Tdeh1111eJ "Coh11guJed house"
Manual Administracin GNU/Linux 35
Unidad 2: Sistema X.org
0J1veJ "mouse"
0p11oh "CoJePo1h1eJ"
0p11oh "0ev1ce" "/dev/1hpu1/m1ce"
0p11oh "PJo1oco" "TmPS/2"
0p11oh "Emua1e3Bu11ohs" "1Jue"
0p11oh "Bu11ohs" "5"
0p11oh "ZAx1shapp1hg" "4 5"
EhdSec11oh
El driver comn <mouse> soporta cuatro tipos de ratones: serial, Bus, PS/2 y USB. En el primer ejemplo
se configura un ratn USB IntelliMouse (con rueda).
La entrada Option "CorePointer" indica que el ratn definido por la seccin es el ratn principal.
La entrada Option "Device" especifica el dispositivo de la unidad del ratn. Ejemplos son /dev/ttyS0
(serial), /dev/psaux (PS/2) y /dev/input/mice (USB). En general existe el link simblico /dev/mouse que
apunta a ste dispositivo.
La entrada Option "Protocol" define el tipo de ratn. Otros protocolos son:
"househah"
"housesys1ems"
"Th1e1house"
"ExpoJeJPS/2"
"Th1hk1hghouse"
"Th1hk1hghousePS/2"
"he1ScJoPS/2"
"he1housePS/2"
"C1dePo1h1"
"C1dePo1h1PS/2"
"househahPusPS/2"
Los ratones seriales antiguos de dos o tres botones estn normalmente soportados por el protocolo
"Microsoft" o "MouseMan". Los ratones seriales con rueda los soporta el protocolo "IntelliMouse" y los
PS/2 "ImPS/2". El protocolo "auto" a veces ayuda si es que el hardware es capaz de detectar
automticamente el ratn.
Manual Administracin GNU/Linux 36
Unidad 2: Sistema X.org
La entrada Option "Emulate3Buttons" emula al botn del medio oprimiendo simultneamente los botones
izquierdo y derecho. Puede usarse tambin en ratones con tres botones.
2.3.6 Seccin "ServerLayout"
Esta seccin es la que junta la pantalla con las unidades perifricas.
Sec11oh "SeJveJLayou1"
Tdeh1111eJ "0e1au1 Layou1"
ScJeeh "0e1au1 ScJeeh"
Thpu10ev1ce "CeheJ1c KeyboaJd"
Thpu10ev1ce "Coh11guJed house"
EhdSec11oh
Nota: En particular esta seccin combina todo mediante las identificaciones de cada seccin definidas por
<Identifier>.
2.3.7 Seccin "DRI"
Algunas tarjetas modernas incorporan Direct Rendering Infrastructure (DRI). Para usarlo es necesario
cargar los mdulos "glx" y "dri" en la seccin "Modules".
La seccin DRI por defecto es,
Sec11oh "0RT"
hode 0666
EhdSec11oh
Algunas tarjetas que no soportan DRI pueden colgar X.
Manual Administracin GNU/Linux 37
Unidad 2: Sistema X.org
2.3.8 Seccin "Files"
Esta seccin define la ruta de archivos necesarios para X. En particular, define la ruta de los tipos de
letras en las entradas "FontPath".
2.4 Modos de VESA
La interfaz VESA es un estndar, con el cual muchas tarjetas de video cumplen. Existen varias versiones
del estndar: 1.2, 2.0. y 3.0. VESA permite el cambio de los modos grficos y desplegar imgenes sin
necesidad de saber los detalles de cada conjunto de chips grficos.
Se puede configurar los modos de VESA al cargar el kernel. Muchas veces las opciones de VESA se
usan para la instalacin en equipos viejos o el uso de kernels ajenos al equipo (como live Cds, pendrives,
arranque de red, etc.).
Si existe la opcin CONFIG_FB_VESA=y en la configuracin del kernel de Linux, cuando se arranca es
posible elegir el modo VESA querido en la consola usando el parmetro vga=XXX del kernel.
La Tabla 2.A da los posibles valores de sustitucin de XXX en la opcin de vga cuando se invocan los
modos de VESA al arrancar el kernel.
Tabla 2.A: Valores posibles de vga en modos de VESA.
Colores 640x480 800x600 1024x768 1280x1024 1600x1200
256 769 771 773 775 796
32.768 784 787 790 793 797
65.536 785 788 791 794 798
16.8M 786 789 792 795 799

El modo de VESA tambin puede ser cambiado mientras corre el sistema a travs del comando mode3
aunque normalmente no es recomendable. Usar este comando no es seguro; dependiendo de la bios,
puede resultar en un estado de la tarjeta de video que requiere reiniciar la computadora.
Manual Administracin GNU/Linux 38
Unidad 3: Usando el shell
UNIDAD 3: USANDO EL SHELL
3.1 Comprendiendo el Shell
Cuando se ejecuta un programa (ya sea uno para leer un archivo, montar o desmontar la unidad de
CDROM, o en general la ejecucin de cualquier tipo de programa que nos permita realizar una tarea X),
se realiza un proceso bastante complejo que requiere una serie de acciones internas por parte del sistema
operativo. Adems, es necesario que el usuario pueda comunicarse con el sistema operativo para decirle
que debe y no debe hacer. Y es aqu donde entra la imprescindible funcin de un intrprete de comandos
(o shell), tambin conocido como un terminal. Un terminal o shell es el encargado de traducir los
comandos que los usuarios introducen, a instrucciones que el sistema operativo pueda comprender para
as realizarlas. Este programa que se encuentra entre el sistema operativo y el usuario puede hacer la vida
mucho ms fcil.
Cualquier usuario que tiene inters en profundizar en un sistema Unix/Linux tarde o temprano (mientras
mas temprano mejor) deber introducirse y familiarizarse con el shell de su sistema, el cual es la
herramienta imprescindible en la administracin diaria del sistema, tanto por su potencia como su
versatilidad.
Existen dos familias de shell, que ofrecen diferentes caractersticas: las shell Bourne y sus variantes (sh,
bash, ksh) y la shell C y sus variantes (csh, tcsh). Aunque muchas shells tienen caractersticas comunes a
otras, la manera en que las usan es nica, y usualmente, las convenciones de unas no aplican a las otras.
Un punto muy importante: Todo lo que se puede hacer en modo grfico, se puede hacer tambin en modo
texto, a base de comandos. Pero no todo lo que se puede hacer en modo texto se puede hacer en modo
grfico.
3.2 Prompt del Bash
De aqu en adelante, nos concentraremos en el intrprete de comandos Bourne Again Shell, mejor
conocido como Bash, ya que este es uno de los intrpretes ms utilizados y extendidos, usado por defecto
en Debian y en muchas otras distribuciones Linux. Esto se debe a que es potente, fiable y adems,
incorpora algunas caractersticas de Korn y C shells (ksh and csh), y es compatible con la tradicional
shell Bourne (sh).
Hay distintos tipos de shells bash:
Manual Administracin GNU/Linux 39
Unidad 3: Usando el shell
De sesin (login shells): son aquellas a las que se accede al intrprete de comando mediante un
inicio de sesin (usualmente ingresando el nombre de usuario y la contrasea).
Interactivas: aquellas en las que el usuario puede interactuar (por ejemplo respondiendo a
preguntas en pantalla)
No interactivas: cuando el usuario no interviene, por ejemplo, durante la ejecucin de un script.
3.2.1 El inicio de sesin
Despus de un momento de haber iniciado el sistema (al final de la carga de todos los datos del sistema)
aparece algo as:
0eb1ah Chb/L1hux 4.0 deb1ahseJv1doJ 11y1
deb1ahseJv1doJ og1h.
La primera lnea, da la bienvenida a Linux y dice que la versin del sistema es Debian GNU/Linux 4.0 y
que adems, se est entrando en el primer terminal. En la segunda lnea dice el nombre de la mquina
(hostname), el cual es debianservidor, y la palabra <login> que significa que ah se debe introducir el
nombre del usuario con el que se quiere iniciar una sesin.
Ahora, como se supone que es el primer inicio de sesin despus de haber instalado el sistema, se debe
entrar como <root>. Luego de teclear <root> en la parte correspondiente al login, nos pedir la
contrasea, la cual no se ver al momento de teclearla (como medida de seguridad) pero s se est
escribiendo. Aqu se debe introducir la contrasea que se introdujo al sistema durante el proceso de
instalacin, pero si no se coloc ninguna, simplemente se presiona <ENTER> y ya se puede ingresar a
una sesin.
3.2.2 Root: El Superusuario
Tanto en Unix como en otros sistemas operativos tales como Linux, hay una gran variedad de usuarios los
cuales son comandados por un usuario supremo mejor conocido como root. Este usuario tiene la
particularidad de ser todo poderoso ante el sistema y los usuarios que pertenecen a l. Es el cabecilla de
todos los usuarios de la mquina, que ejerce una labor meramente administrativa, manteniendo la
seguridad del sistema y la de sus usuarios para que este funcione correctamente. Entonces se puede decir
que el administrador o la administradora del sistema tiene un gran poder sobre el sistema, lo que conlleva
una gran responsabilidad, porque de ahora en adelante cualquier perjuicio o beneficio que tenga el
sistema o sus usuarios sera meramente responsabilidad de ese superusuario <root>.
Por razones de seguridad lo recomendado es crear un usuario y cuando se necesite hacer alguna
actualizacin de software, hardware o algn arreglo significativo para el funcionamiento del sistema la
Manual Administracin GNU/Linux 40
Unidad 3: Usando el shell
mejor opcin es ejecutar el comando su. Este comando pedir la contrasea de root y as se convertir en
un usuario con privilegios de root en el sistema. Para salir de root simplemente se teclea <exit> y dejar
de ser el usuario con privilegios en el sistema y se quedar nuevamente normal.
3.3 Usando lneas de comandos
Casi todo en Linux es un archivo. De hecho, eso va para los programas tambin. Cada orden que uno
ejecuta (que no est incluida en el shell) reside en algn archivo en alguna parte. El usuario ejecuta un
programa con simplemente especificar la ruta completa hasta l.
Por ejemplo, el comando su. De hecho, realmente el archivo su reside en el directorio /bin/. Porqu
entonces solo basta con escribir su para que este funcione? Simplemente porque eso queda en la PATH ,
o sea, la ruta de entorno variable PATH. La mayora de los tipos de shell ya conocen la ruta o algo
parecido a la ruta PATH. Esto significa bsicamente que contiene una lista de directorios para buscar los
programas que intentas ejecutar tan solo tecleando el nombre. As, cuando uno ejecuta el comando su, el
shell busca a travs de su lista de directorios o PATH, verificando cada archivo ejecutable que se llame
su y ejecutando el primero que encuentra. Esto es lo que ocurre siempre que se ejecuta un programa
simplemente escribiendo su nombre (o sea, sin especificar la ruta completa hasta el programa en
cuestin).
Ahora si se teclea el nombre de un programa y resulta que se muestra un error del tipo "command not
found", esto significa que el programa que se intent ejecutar no se encuentra en su ruta indicada, o en la
PATH, o que simplemente no existe. Ms adelante habr una explicacin de la variable de entorno con
una mayor profundidad.
Tambin se puede especificar la ejecucin de un programa con la anteposicin de un punto y una barra
oblicua (slash) al comando (osea as: ./comando) donde "." es la ruta corta para el directorio en el que se
encuentra. Es decir, que si se encuentra en el directorio /bin, ./su funcionar como una ruta explicita
completa.
3.4 Historial de comandos
Posiblemente lo ms conocido de BASH sea su capacidad de guardar los comandos introducidos, ya
muchos se maravillan cuando al presionar la flecha "arriba," esta recuerda el comando anterior, y se
puede navegar con las teclas de direccin. Eso no es todo el potencial de BASH; todos los comandos que
se han utilizado durante la sesin actual se guardan al final del archivo ~/.bash_history (~ es buena idea
denotar su directorio, y puede ser utilizado como abreviacin para evitar poner la ruta absoluta como:
/home/usuario). BASH insertar todo lo que se escribe despus de presionar Enter, (aunque haya sido un
Manual Administracin GNU/Linux 41
Unidad 3: Usando el shell
programa ejecutado, o el usuario golpeando con la palma de la mano el teclado). Se puede ver el historial
con el comando h1s1oJy:
|dahgueJ_phobos dahgueJ]$ h1s1oJy
7 s
8 opeh 07-02.h1m
9 ca1 07-02.h1m
....
BASH guarda por defecto 500 lneas de comandos, que pueden ser cambiadas alterando las variables
HISTFILESIZE (que definen el tamao de lneas de comando a guardar) y HISTSIZE (que contiene el
nmero mximo de lneas a recordar en el historial).
Se puede ejecutar un comando de la historia con: !humeJo
|dahgueJ_phobos dahgueJ]$ !7
0esk1op Readme S0L 0eveopeJ.1x1 1Ja1e
0ocumeh1s S11es khowh.me1
....
Para ayudarle al usuario mortal, aqu hay otro comando que puede ser bastante til:
|dahgueJ_phobos dahgueJ]$ !h1s
h1s1oJy
11 s
12 cp -J ../game_pJogJamm1hg/poJ1as .
13 mah mkd1J
...
Con esto se ejecuta el ltimo comando que concuerde con las letras que pasaron como argumento, (!h da
lo mismo en este caso, ya que no se ha usado otro comando que empiece con la letra h). Precaucin!
Aunque puede ayudar mucho, tambin es un arma de doble filo, puede ser que se ejecute !J, y el primero
que concuerde sea un Jm -J1 * que se realiz en un directorio temporal, pero el usuario se encuentra
actualmente en el directorio principal; es bueno recordar que Linux no evita que se pueda disparar en el
propio pie de uno... si se puede servir de consuelo, cuando eso pasa en Windows, se destruye toda la
pierna.
Otra manera de regresar la historia sin los efectos que pueden resultar nocivos de !, es <crtl> J. Cuando
se teclea <cJ1> J, el prompt cambia:
|dahgueJ_phobos dahgueJ]$ <cJ1> J
{JeveJse-1-seaJch)``.
Ahora se escribe el comando que se busca y lo har en orden inverso:
Manual Administracin GNU/Linux 42
Unidad 3: Usando el shell
{JeveJse-1-seaJch)`gJe`. se1 ] gJep 500
El valor entre comillas simples es lo que se escribi, lo que viene despus de los dos puntos es el ltimo
comando que concuerda. Si ya lleg al comando (en este caso grep) ya no se necesita seguir tecleando
para refinar la bsqueda; pero si no es necesario ese ltimo, se puede seguir buscando en orden inverso
sobre el histrico, presionando nuevamente <crtl> J
{JeveJse-1-seaJch)`gJe`. gJep Readme\ S0L\ 0eveopeJ.1x1 z
Cuando se haya encontrado el comando, simplemente se presiona Enter para ejecutarlo, o Escape para
cancelar la bsqueda, aunque s se dejar el ltimo comando encontrado.
3.5 Smbolos Bash
3.5.1 Wildcards
La gran mayora de los shells aceptan ciertos caracteres como sustitutos o abreviaciones que significan
"algo va aqu". Esos caracteres se conocen como "wildcards" o smbolos. Los ms comunes son: *
(asterisco) y ? (signo de interrogacin). Por convencin, ? solamente sirve para indicar un solo carcter
desconocido. Por ejemplo, si se desea mover los archivos deb1.c, deb2.c y deb3.c (todos los cuales se
encuentran en el directorio /home/usuaJ1o/) al directorio /1mp/, utilizando el comando mv, se
escribira:
$ mv /home/usuaJ1o/deb1.c /1mp/
$ mv /home/usuaJ1o/deb2.c /1mp/
$ mv /home/usuaJ1o/deb3.c /1mp/
No es particularmente complicado, pero a veces puede ser algo tedioso, por lo cual queda mucho ms
fcil de teclear:
$ mv /home/usuaJ1o/deb?.c /1mp/
Aqu lo que ocurre es que el smbolo ? coincide con los caracteres 1, 2 y 3, siendo cada uno sustituido por
el signo.
Pero qu pasa si son muchos ms archivos que no son ni siquiera parecidos? Aplica aqu el smbolo *
(asterisco). Asterisco (*) coincide con cualquier carcter y nmero de caracteres, incluyendo 0. Por
ejemplo, si esos tres archivos (deb1.c, deb2.c y deb3.c) fueran los nicos en el directorio, se podra haber
tecleado:
Manual Administracin GNU/Linux 43
Unidad 3: Usando el shell
$ mv * /1mp/
y eso sera todo. Qu hacer, entonces, si hay un archivo llamado eempoA y uno llamado exampeA. Si
se quiere copiar eempoA pero no exampeA; entonces se podra teclear:
$ mv eempo? /1mp/
o este otro:
$ mv ea* /1mp.
3.5.2 Input/Output, Redireccionamiento y Tuberas
Ya que se ha introducido breve y bsicamente en el interprete de comandos bash, se puede continuar a
otras de sus caractersticas.
Redireccionamiento input/output (redireccionamiento de entrada/salida):
$ d1 -h > espac1o_eh_d1sco.1x1
Lo que ocurre en esa lnea es que se ejecuta el comando d1, que muestra las particiones montadas en el
sistema y detalles sobre su espacio . El signo ">" es el redireccionador que se utiliza para que la salida (u
output) de d1 -h quede en el archivo espac1o_eh_d1sco.1x1.
$ ps >> ps.1x1
Este es uno de los redireccionadores ms usados. Hace lo mismo que ">", escribir la salida de ps en el
archivo ps.1x1, excepto que si este archivo existe, entonces ">>" escribir el output ( o salida) de ps al
final del contenido del archivo ps.1x1.
Tambin existe el operador "<" que significa "tome como entrada lo siguiente ", pero no se usa tan a
menudo.
$ 1Jomdos < dos11e.1x1 > uh1x11e.1x1
Tuberas: Lo que este comando hace es tomar la salida (el output) de ps y se podra decir que lo entuba,
para poder leerlo y recorrerlo con calma.
$ ps ] ess
Redireccionar se torna divertido cuando se empiezan a mezclar los operadores:
Manual Administracin GNU/Linux 44
Unidad 3: Usando el shell
$ ps ] 1ac > > ps.1x1
Aqu al ejecutar ps, invertir las lneas de su salida y las aadir al final del contenido del archivo
ps.1x1. Estos operadores pueden ser utilizados tantos como se quiera, solo hay que tener en cuenta que
estos se leen de izquierda a derecha.
3.6 Variables de Entorno
Una variable de entorno simplemente es un nombre asociado a una cadena de caracteres o valor. La
utilidad puede ser variada, dependiendo de la variable. Unas son tiles para no tener que escribir muchas
opciones al ejecutar un programa y otras las utiliza el propio shell (PATH, PS1,etc).
Linux es un sistema muy complejo y hay que estar pendiente de muchas cosas. Hay muchos y pequeos
detalles que estn en juego en su interaccin normal con variados programas. Nadie quiere estar pasando
una gran cantidad de opciones a cada uno de los programa que ejecuta, diciendo que tipo de terminal est
usando, el nombre de la mquina, como debe lucir el prompt y as una infinidad de detalles ms.
Como un mecanismo de copiado, los usuarios tienen a su disposicin algo que se llama ambiente (o
entorno). El ambiente define las condiciones en las que se ejecutan los programas, y algunas de estas
definiciones son variables; el usuario puede alterarlas y/o combinarlas, como solo se ofrece en un sistema
Linux.
3.6.1 Cmo acceder a las variables de entorno
Para acceder a las variables de entorno hay que escribir un smbolo dlar ($), seguido del nombre de la
variable. Los nombres de las variables de entorno en Linux se suelen escribir en maysculas por
convencin, pero no tiene por qu ser as. Incluso se pueden poner variables de entorno con mezclas de
maysculas y minsculas. El nombre de la variable de entorno que contiene el intrprete de comandos
actual es SHELL, as que para ver el contenido de esta variable se usa:
|usuaJ1o1_ocahos1 usuaJ1o1]# echo $ShELL
/b1h/bash
|usuaJ1o1_ocahos1 usuaJ1o1]# _
Hay algunas variables que el usuario no puede establecer, y otras que s. Las variables de entorno se
establecen de la siguiente manera: se escribe el nombre de la variable, seguido por un signo igual (=),
seguido de un texto, que va entrecomillado si es ms de una palabra.
Manual Administracin GNU/Linux 45
Unidad 3: Usando el shell
Aqu hay una lista de las variables ms interesantes:
1. $PS1: contiene la forma del smbolo del sistema
2. $EDITOR: contiene el editor de texto que se usar por omisin. Suele ser vi.
3. $: valor devuelto por el comando anterior
4. $HOME: la ruta absoluta hasta el directorio inicial del usuario actual
5. $PATH: las rutas a los programas que hay establecidos para el usuario actual. Cuando se ejecuta
un comando, se buscar en estos directorios
6. $MAIL: contiene la ruta hacia el directorio que se usar para guardar el correo del usuario
7. $HISTORY: la ruta hacia el fichero que contiene el historial de comandos
Para ver todas las variables de entorno que estn establecidas, se utiliza el comando se1. Un ejemplo de
su ejecucin:
|Joo1_ocahos1 Joo1]# se1
BACKSPACE=0ee1e
BASh=/b1h/bash
BASh_vERSThF0={|0]="2" |1]="05" |2]="1" |3]="1" |4]="Jeease" |5]="1586-mahdJake-
1hux-ghu")
BASh_vERST0h=$`2.05.1{1)-Jeease`
BR0WSER=$`k1mc1eh1 opehPJo11e webbJows1hg`
CLASS=expeJ1
C0L0RTERh=
C0LbhhS=104
0TRSTACK={)
0TSABLE_WTh00WS_KEY=ho
0TSPLAY=.0.0
Ehv=/Joo1/.bashJc
EbT0=0
CR0bPS={)
CTK_RC_FTLES=/e1c/g1k/g1kJc./home/Joo1/.g1kJc
hELP_BR0WSER=$`k1mc1eh1 opehPJo11e webbJows1hg`
hTSTFTLE=/Joo1/.bash_h1s1oJy
hTSTFTLESTZE=1000
hTSTSTZE=1000
h0hE=/Joo1
h0SThAhE=ocahos1.ocadoma1h
h0STTYPE=1586
TFS=$` \1\h`
ThPbTRC=/e1c/1hpu1Jc
KBChARSET=1so-8859-1
K0E_hbLTThEA0=1ase
KEYTABLE=es-a11h1
LAhC=es
LAhCbACE=es
LC_C0LLATE=es_1Jad1c1oha
LC_CTYPE=es_1Jad1c1oha
LC_hESSACES=es_1Jad1c1oha
LC_h0hETARY=es_1Jad1c1oha
Manual Administracin GNU/Linux 46
Unidad 3: Usando el shell
LC_hbhERTC=es_1Jad1c1oha
LC_TThE=es_1Jad1c1oha
LESS=-hh
LESSKEY=/e1c/.ess
LESS0PEh=$`]/usJ/b1h/essp1pe.sh s`
LThES=41
L0ChAhE=Joo1
LS_C0L0RS=$`ho=00.11=00.d1=01,34.h=01,36.p1=40,33.so=01,35.bd=40,33,01.cd=40,33,01.
oJ=01,05,37,41.m1=01,05,37,41.ex=01,32.*.cmd=01,32.*.exe=01,32.*.com=01,32.*.b1m=01,
32.*.ba1=01,32.*.1aJ=01,31.*.1gz=01,31.*.1bz2=01,31.*.aJc=01,31.*.aJ=01,31.*.1az=01
,31.*.zh=01,31.*.ha=01,31.*.z1p=01,31.*.z=01,31.*.Z=01,31.*.gz=01,31.*.bz2=01,31.*
.bz=01,31.*.1z=01,31.*.Jpm=01,31.*.pg=01,35.*.peg=01,35.*.g11=01,35.*.bmp=01,35.*.
xbm=01,35.*.xpm=01,35.*.phg=01,35.*.111=01,35.*.1111=01,35.`
LS_0PTT0hS=$`-F --cooJ=au1o`
hAChTYPE=1586-mahdJake-1hux-ghu
hATL=/vaJ/spoo/ma1/Joo1
hATLChECK=60
hETA_CLASS=PoweJPack
hLSPATh=/usJ/shaJe/ocae//h
0PTERR=1
0PTTh0=1
0STYPE=1hux-ghu
PATh=/sb1h./usJ/sb1h./b1h./usJ/b1h./usJ/X11R6/b1h
PTPESTATbS={|0]="0")
PPT0=1551
PR0hPT_C0hhAh0=$`echo -he "\\033]0,${bSER}_${h0SThAhE}. ${PW0}\\007"`
PS1=$`|\\u_\\h \\W]\\$ `
PS2=$`> `
PS4=$`+ `
PW0=/home/Joo1
0T_XFT=0
SECbRE_LEvEL=4
SECbRTTY=4
SESST0h_hAhACER=oca/ocahos1.ocadoma1h./1mp/.TCE-uh1x/1441
ShELL=/b1h/bash
ShELL0PTS=bJaceexpahd.hasha.h1s1expahd.moh11oJ.h1s1oJy.1h1eJac11ve-commeh1s.emacs
ShLvL=2
TERh=x1eJm
ThP=/home/Joo1/1mp
ThP0TR=/home/Joo1/1mp
bT0=0
bSER=Joo1
bSERhAhE=Joo1
Xh00TFTERS=_1m=hohe
_=usuaJ1o1
1=/e1c/pJo11e.d/xhos1.sh
ahg11e=/Joo1/.118h
souJced=1
mc {)
{
mkd1J -p $h0hE/.mc/1mp 2>/dev/hu,
chmod 700 $h0hE/.mc/1mp,
hC=$h0hE/.mc/1mp/mc-$$,
/usJ/b1h/mc -P "$_" >"$hC",
cd "`ca1 $hC`",
Manual Administracin GNU/Linux 47
Unidad 3: Usando el shell
Jm -1 -1 "$hC",
uhse1 hC
}
scJeeh {)
{
11 | -z "$SCREEh0TR" ], 1heh
expoJ1 SCREEh0TR=$h0hE/1mp,
11,
/usJ/b1h/scJeeh $_
}
|Joo1_ocahos1 Joo1]#
Como se puede ver, existen muchas variables de entorno; cada una tendr un significado especial para
uno o ms programas que existan en el sistema (Tabla 3.A).
Tabla 3.A: Variables de entorno
Variables exportadas
ehv
Lista todas las variables del entorno
pJ1h1ehv
Igual que ehv
expoJ1
Lista todas las variables exportadas (entorno)
decaJe -x vaJ1abe|=vaoJ]
Define una variable de entorno
expoJ1 vaJ1abe|=vaoJ]
Define una variable de entorno
Fijando y removiendo variables
se1
Lista todas las variables locales y de entorno incluyendo
funciones
se1 vaJ1abe=vaoJ
Fija la variable de entorno y le asigna un valor
uhse1 vaJ1abe
Remueve una variable de entorno
Variables de Slo-lectura (variables que no pueden ser cambiadas o removidas)
Jeadohy
Lista todas las variables de slo-lectura
Jeadohy vaJ1abe
Pone la variable en modo de slo-lectura
Manual Administracin GNU/Linux 48
Unidad 3: Usando el shell
$TERM (tipo de terminal presente)
scJeeh
Consola en modo 'screen'
dumb
Desde cron
1hux
Desde tty1-tty6
x1eJm
Terminal en Xserver
3.7 Manejo de Procesos y Tareas
En un sistema Linux, que como ya se sabe es multitarea, se pueden estar ejecutando distintas acciones a
la par, y cada accin es un proceso. En esta seccin, se tratar de como manejar los procesos y aprovechar
las peculiaridades de Linux en lo referente a la capacidad multitarea, activando procesos en primer y
segundo plano, mostrando listas y rboles de procesos, suspendindolos y luego volvindolos a activar,
matndolos, haciendo que sigan ejecutndose una vez se haya cerrado sesin o cambiando la prioridad de
las tareas.
Pero Qu exactamente es un proceso? Cuando se ejecuta un comando en el shell, sus instrucciones se
copian en algn sitio de la memoria RAM del sistema para ser ejecutadas. Cuando las instrucciones ya
cumplieron su cometido, el programa es borrado de la memoria del sistema, dejndola libre para que ms
programas se puedan ejecutar a la vez. Cada uno de estos programas que pasan a la memoria del sistema
y son ejecutados es lo que se conoce con el nombre de PROCESO. El tiempo que este proceso estuvo en
la memoria del sistema ejecutndose, se conoce como TIEMPO DE EJECUCIN de un proceso.
La gestin de procesos en Linux no difiere demasiado de la que se hace en cualquier otro sistema UNIX.
As, el encargado de asignar una parte de la memoria a un proceso es el KERNEL de Linux (parte central
del Sistema Operativo), quien decide cunta memoria dar a cada proceso y cmo repartir la capacidad del
microprocesador entre los procesos que se estn ejecutando. Unos procesos sern ms importantes que
otros, y de alguna manera tendrn "preferencia" a la hora de pedir clculos o instrucciones al
microprocesador sobre otros procesos. Este concepto se llama PRIORIDAD de un proceso. Por lo tanto,
debe quedar claro que es el kernel quien "manda" sobre los procesos y controla su ejecucin simultnea y
el reparto de los recursos de la mquina.
Como todo en los sistemas UNIX, y por extensin en Linux, los procesos tambin tienen un dueo. Ese
dueo es el usuario que ejecuta el programa que da lugar al proceso. Esto viene a explicar parte de la
seguridad de Linux en cuanto a permisos. As como los archivos y dispositivos tienen un usuario, un
Manual Administracin GNU/Linux 49
Unidad 3: Usando el shell
grupo y unos permisos determinados asignados, tambin los procesos los tienen. Un proceso contar de
cara al sistema de ficheros con los permisos que tenga el usuario que lo cre. Resumidamente, un
proceso, respecto al sistema de ficheros, podr hacer tanto como el usuario al que pertenece. Un
programa ejecutado por un usuario no privilegiado nunca podr leer en /root o borrar o escribir cosas en
/usr/bin. Un usuario normal no podr tampoco modificar parmetros de procesos que no le pertenezcan,
pero root podr ejercer cualquier accin sobre cualquier proceso.
Un proceso puede crear a su vez nuevos procesos. En la prctica, todos los procesos son hijos del primer
proceso ejecutado durante el arranque, el proceso "init". As, un proceso hijo, a pesar de ser uno nuevo,
guarda una relacin con el proceso que lo cre (proceso padre).
3.7.1 Propiedades de los procesos
Bsicamente, un proceso tiene estas propiedades:
1. Un nmero identificador de proceso (Process ID o PID). Es necesario para referirse a un proceso
en concreto de los varios en ejecucin.
2. Un PPID (Identificador del proceso padre), es el nmero que indica qu proceso cre al proceso
en cuestin.
3. Un estado; habr momentos en los que un proceso seguir existiendo en el sistema, pero no estar
haciendo nada realmente. Puede estar esperando a que una SEAL le sea enviada para volverse
activo, o al usuario le puede interesar detenerlo o pausarlo bajo determinadas circunstancias. Los
estados ms importantes son dormido (S), y en ejecucin (R).
4. Un dueo, generalmente es el usuario que lo ejecut, y como ya se ha precisado, el proceso
hereda los permisos del usuario de cara al sistema de ficheros. Si un ejecutable es SUID, al
ejecutarse, el proceso resultante adquiere los permisos del usuario dueo del archivo.
Generalmente, un usuario normal no puede ejercer control sobre procesos que no le pertenecen.
5. Una prioridad que determina su importancia. No todos los procesos son igual de importantes. Se
detallar cmo cambiar la prioridad de un proceso ms adelante.
3.7.2 Los procesos en ejecucin y sus propiedades
Se pueden ver las tareas y sus subtareas en una estructura anidada mediante el comando ps1ree. Al
ejecutarlo, sale algo as:
# ps1Jee
1h11-+-5*|age11y]
]-bd1ush
]-cJoh
]-dev1sd
]-e1h0
Manual Administracin GNU/Linux 50
Unidad 3: Usando el shell
]-gdm---gdm-+-X
] `-gdmgJee1eJ
]-keveh1d
]-khubd
]-kJe1seJ1sd
]-kscahd
]-kso111Jqd_CPb0
]-kswapd
]-kupda1ed
]-og1h---bash---ps1Jee
`-sysog-hg

Asimismo, ps1ree -p muestra entre parntesis el nmero identificador (PID) de los procesos, algo muy
importante cuando se quiere interactuar con los procesos, cosa que normalmente se hace sealando los
PIDs.
Aunque esta informacin estructurada resulta interesante, existen dos programas muy conocidos que
muestran una cantidad ingente de informacin sobre los procesos. Estos son ps y 1op.
ps muestra una lista de los procesos en ejecucin. Con ps u se vern los procesos que pertenecen al
usuario actual. La combinacin ms habitual de opciones es ps aux , que muestra informacin detallada
de todos los procesos en ejecucin. Algunos de los campos ms importantes mostrados por ps son:
1. USER - usuario dueo del proceso.
2. PID - nmero identificador del proceso.
3. %CPU - porcentaje de uso del microprocesador por parte de este proceso.
4. %MEM - porcentaje de la memoria principal usada por el proceso.
5. VSZ - tamao virtual del proceso (lo que ocupara en la memoria principal si todo l estuviera
cargado, pero en la prctica en la memoria principal slo se mantiene la parte que necesita
procesarse en el momento).
6. RSS - tamao del proceso en la memoria principal del sistema (generalmente son KBytes, cuando
no lo sea, se indicar con una M detrs del tamao).
7. TTY - nmero de terminal (consola) desde el que el proceso fue lanzado. Si no aparece,
probablemente se ejecut durante el arranque del sistema.
8. STAT - estado del proceso.
9. START - cundo fue iniciado el proceso.
10. TIME - el tiempo de CPU (procesador) que ha usado el proceso.
11. COMMAND - el comando que inici el proceso.
La pgina del manual de Linux sobre ps es especialmente til. Informa sobre otras opciones y
propiedades de los procesos en detalle.
Manual Administracin GNU/Linux 51
Unidad 3: Usando el shell
ps ae muestra una "instantnea" de los procesos del sistema en el momento que ejecutamos el comando,
as que no se puede ver la evolucin.
1op es la versin interactiva de ps, y tiene algunas utilidades interesantes aadidas. Si se ejecuta en una
terminal y sin opciones, aparecer arriba informacin del sistema: usuarios, hora, informacin del tiempo
de funcionamiento de la mquina, nmero de procesos, uso de CPU, uso de memoria, y uso del swap. A
continuacin hay una lista de procesos similar a la que nos mostraba ps con la diferencia de que esta se
actualiza peridicamente, permitiendo ver la evolucin del estado de los procesos.
Con 1op hay dos posibilidades de especificar opciones, bien en lnea de comandos en el shell, o bien
interactivamente (mientras est en ejecucin y sin salir de l). La pgina del manual de top es tambin
muy buena, con descripciones detalladas de los campos y de las opciones, tanto de lnea de comandos
como interactivas. Un ejemplo:
# 1op
22.22.19 up 1 day, 9.41, 4 useJs, oad aveJage. 0.13, 0.06, 0.02
78 pJocesses. 77 seep1hg, 1 Juhh1hg, 0 zomb1e, 0 s1opped
CPb s1a1es. 1.4 useJ, 3.6 sys1em, 0.0 h1ce, 95.0 1de
hem. 256192K 1o1a, 251776K used, 4416K 1Jee, 31684K bu11eJs
Swap. 409648K 1o1a, 7112K used, 402536K 1Jee, 115516K cached
PT0 bSER PRT hT STZE RSS ShARE STAT CPb hEh TThE C0hhAh0
414 Joo1 14 -10 59416 25h 8772 S< 0.9 10.3 3.12 XFJee86
2131 usuaJ1o 19 0 1052 1052 820 R 0.7 0.4 0.00 1op
2129 usuaJ1o 14 0 6968 6968 4364 S 0.5 2.7 0.00 xmms
618 usuaJ1o 11 0 3988 3988 2408 S 0.3 1.5 0.15 saw11sh
2130 usuaJ1o 11 0 6968 6968 4364 S 0.3 2.7 0.00 xmms
6 Joo1 10 0 0 0 0 SW 0.1 0.0 1.31 kupda1ed
2085 usuaJ1o 10 0 6968 6968 4364 S 0.1 2.7 0.12 xmms
1 Joo1 9 0 472 432 412 S 0.0 0.1 0.06 1h11
2 Joo1 9 0 0 0 0 SW 0.0 0.0 0.00 keveh1d
3 Joo1 19 19 0 0 0 SWh 0.0 0.0 0.07 kso111Jqd_CPb0
4 Joo1 9 0 0 0 0 SW 0.0 0.0 0.10 kswapd
5 Joo1 9 0 0 0 0 SW 0.0 0.0 0.19 bd1ush
50 Joo1 9 0 0 0 0 SW 0.0 0.0 0.00 khubd
84 Joo1 9 0 0 0 0 SW 0.0 0.0 0.00 kJe1seJ1sd
109 Joo1 9 0 0 0 0 SW 0.0 0.0 0.00 e1h1
190 Joo1 9 0 608 604 488 S 0.0 0.2 0.01 sysogd
193 Joo1 9 0 1248 1240 408 S 0.0 0.4 0.00 kogd
196 Joo1 9 0 2816 2776 1728 S 0.0 1.0 0.00 hamed
199 Joo1 9 0 2816 2776 1728 S 0.0 1.0 0.01 hamed
3.7.3 Tareas de Bash
El control de tareas es una interesante caracterstica que bash ofrece. As, cada programa o tubera que se
Manual Administracin GNU/Linux 52
Unidad 3: Usando el shell
ejecute tiene asignado un nmero de tarea por parte de bash (diferente al PID).
Los programas que podemos ejecutar desde una lnea de comandos pueden estar en primer o segundo
plano, y de hecho pueden pasar de un estado a otro. Una consola concreta est bloqueada cuando un
proceso est en primer plano, mientras que si est en segundo plano la consola est libre y podemos
teclear comandos en ella.
Esto est ms relacionado con la terminal en s (bash en nuestro caso) que con el concepto del proceso.
Normalmente al ejecutar un comando no se recupera el prompt hasta que ste no termina. La necesidad
que surge es poder usar esa terminal sin abrir otra nueva a la vez que el comando sigue haciendo lo que
tenga que hacer.
En bash, se pone una tarea en segundo plano aadiendo un & al final del comando. El comando se
ejecuta mientras la terminal queda libre.
$ seep 10 &
|1] 6190
$ # 1Jas 10 seguhdos se pJes1oha ThTR0
|1]+ 0ohe seep 10
El comando seep simplemente espera el nmero de segundos del primer argumento. Al ejecutarlo en
segundo plano, bash imprime la lnea |1] 6190 y regresar al prompt, aunque el comando se sigue
ejecutando ahora en segundo plano. El nmero entre corchetes es el NMERO DE TAREA (o, tambin
llamado trabajo o job) que bash le asign al pasarlo a segundo plano, y el nmero que hay a continuacin
(6190) es el nmero de proceso que ha generado la ejecucin del comando. Cada vez que al presionar
INTRO hay novedades en la gestin de tareas, bash se informa de ello. En este caso, ha terminado la tarea
[1].
Para recuperar una tarea de segundo plano a primer plano, se usa fg, seguido de %N , donde N es el
nmero de tarea que se quiere recuperar, por ejemplo 1g 2 traera a primer plano la segunda tarea.
Con una tarea en primer plano, se puede usar Ctrl+Z y la detendr. Ahora se puede elegir continuar con
esta tarea en primer plano, o mandarla a segundo plano. Para continuarla en primer plano, se tecleara fg
%1. Para seguirla en segundo plano, se usar bg %1, suponiendo que es la tarea nmero 1.
Un comando ejecutndose en primer plano puede ser cancelado con Ctrl+C, lo que a su vez har
desaparecer al proceso resultante de la tabla de procesos del kernel.
Manual Administracin GNU/Linux 53
Unidad 3: Usando el shell
3.7.4 Seales
Las SEALES son la forma que tienen los procesos de comunicarse entre s, y el kernel de comunicarse
con ellos. Existe un nmero determinado de seales que se pueden enviar a un proceso, y cada una de
ellas tiene sobre l una accin distinta: pausarlo, reanudarlo, cancelarlo...
Es importante entender que un proceso recibe una seal, y tiene predeterminada una forma de actuar ante
esa seal. As, hay un conjunto de seales ante las cuales todos los procesos se comportan igual, sin
embargo, hay seales ante las que procesos distintos se comportarn de manera distinta, e incluso habr
procesos que ignoren determinadas seales. Habr otras que no podrn ignorar (la de detenerse, por
ejemplo) porque son comunes a todos los procesos.
Las seales se denotan por SIGNOMBRE, donde NOMBRE es el nombre que se le da a la seal.
Adems, las seales ms usadas tienen un nmero de seal asociado. Veamos las ms comunes:
1. SIGHUP (num 1) Causa que un proceso "relea" sus archivos de configuracin. Todos los
programas no implementan esta seal.
2. SIGINT (num 2) Interrumpir (cancelar) un programa. Es la seal que se le enva a un proceso
cuando se presiona Ctrl+C en teclado con un proceso en primer plano.
3. SIGKILL (num 9) "Matar" un proceso. Los programas no pueden decidir cmo responder a esta
seal, terminan inmediatamente cuando la reciben. Slo debera ser usada en el caso de necesitar
terminar un proceso que ha dejado de responder y no funciona adecuadamente.
4. SIGUSR1 (num 10) Seal de usuario. Cada programa puede decidir cmo responder a esta seal.
5. SIGSEGV (num 11) Seal de violacin de segmento (segmentation fault). Esta seal le es enviada
a un proceso cuando intenta acceder a memoria que "no es suya", que est fuera de la zona de
memoria que ese proceso puede usar. El proceso es detenido inmediatamente.
6. SIGPIPE (num 13) Tubera no existente. Esta seal se enva a un proceso que estaba escribiendo a
una tubera o pipe cuando el destino de la tubera ya no existe.
7. SIGTERM (num 15) Terminar. Se enva esta seal a un proceso cuando queremos que termine
normalmente, haciendo lo que necesite antes de terminar.
8. SIGCHLD (num 17) Hijo termin. Esta seal se enva a un proceso padre automticamente cada
vez que un proceso hijo termina.
Se puede ver informacin ms detallada sobre las seales con mah s1gha.
El comando kill -SEAL PID es el que se usa para enviar seales a los procesos. Se puede indicar varios
PIDs para que reciban esa seal en un solo comando separndolos con espacios al final. Son equivalentes:
# k1 -STCKTLL 1283
Manual Administracin GNU/Linux 54
Unidad 3: Usando el shell
# k1 -9 1283
Mirar, en cada momento, que PID tiene el proceso originado por un comando, puede ser incmodo. Por
eso existe el comando killall -SEAL nombre_comando, donde "nombre_comando" es el nombre del
comando que dio lugar al proceso en cuestin.
La pgina del manual de k1 es importante, conviene consultarla.
3.7.5 Prioridad de los procesos
Lo ms comn es tener muchos procesos a la vez ejecutndose en nuestra mquina. Pero no todos son
igual de importantes. Por ejemplo, si estamos grabando un CD, este debera ser un proceso ms
importante que el resto, porque si el disco duro no enva los datos a la velocidad suficiente a la grabadora,
perderemos nuestro disco grabable. As que es bueno decirle al kernel: "si el procesador no puede con
todo, lo ltimo que debes retrasar es la grabacin del CD". Podra notarse que el resto de aplicaciones van
ms lentas, pero eso nos garantizara en una mayor medida que la grabacin no va a ser interrumpida.
La forma de conseguir esto es, ejecutando desde el principio el comando interesado mediante h1ce, o
bien, conseguir su PID si ya se est ejecutando y usar Jeh1ce para cambiar su prioridad.
Algunos ejemplos:
$ h1ce -h PRT0RT0A0 C0hAh00
$ Jeh1ce PRT0RT0A0 PT0_PR0CES0
PRIORIDAD es un valor que va desde -20 a +20 (con el signo incluido). -20 es la prioridad ms alta (al
contrario de lo que cabra pensar), y +20 la ms baja. Slo root puede establecer un proceso a una
prioridad negativa, los usuarios como mximo pueden poner un proceso en prioridad 0.
COMANDO es el comando que se quiere ejecutar (slo aplicable con nice), el mismo comando que se
ejecutara normalmente con todos sus parmetros y opciones.
PID_PROCESO (slo aplicable con renice) cambia la prioridad del proceso cuyo PID es PID_PROCESO
al nuevo valor indicado.
Manual Administracin GNU/Linux 55
Unidad 3: Usando el shell
3.8 Comandos bsicos en la Terminal Bash
3.8.1 El comando cd
Este sencillo comando, permite cambiar el directorio de trabajo (o directorio actual). Es una abreviatura
(como muchos otros comandos) de lo que hace, en este caso de Change Directory. Podra ser mas
cmodo cambiar de directorio de trabajo, si se quiere trabajar con archivos que estn en otro directorio, y
no tener que teclear cada vez la ruta completa de esos archivos.
cd /d1Jec1oJ1o
Cambia al directorio utilizando la ruta absoluta
cd d1Jec1oJ1o
Cambia al directorio utilizando una ruta relativa al directorio de trabajo actual
cd -1oo
Cambia al directorio de trabajo (home) del usuario foo
Si se esta ubicado en /home/usuario, y se quiere cambiar a /usr/local, que es donde residen muchos
archivos personalizados de nuestro sistema. Se podra hacer de la siguiente forma:
usuaroQmaquna_usuaro:-$ cd /usr/1oca1/

Si simplemente escribimos cd, sin ningn argumento, se ubicar nuevamente en el directorio
/home/usuario:
usuaroQmaquna_usuaro:/usr/1oca1$ cd
usuaroQmaquna_usuaro:-$
Otras opciones de navegacin entre directorios son: cd . y cd ..
Dos puntos seguidos (..) se refieren al directorio inmediatamente anterior (superior) al de trabajo
actual, y un punto (.) se refiere al directorio actual. Si se est en /home/usuaJ1o, con cd ., no se
cambia de directorio, pero con cd .. se va a /home, el directorio inmediatamente superior.
Estos dos comandos equivaldran a cd ./ y cd ../, lo que sera la manera correcta de utilizarlos
(puesto que se refieren a directorios). Utilizarlos sin la barra, puede dar lugar a confusin y
equivocaciones (no hay que olvidar que los archivos y directorios ocultos comienzan su nombre por .).
Entonces, para ir a /home/usuaJ1o/documeh1os se podra hacer:
$ cd ./documen1os
Lo cual no es muy eficiente en este caso, pero si necesario para ejecutar un comando en el directorio
Manual Administracin GNU/Linux 56
Unidad 3: Usando el shell
actual si este directorio actual no est en la PATH. Por ejemplo, para ejecutar un programa que estuviese
en /home/usuaJ1o, al no estar esta ruta en $PATh, habra que ejecutarlo de la siguiente manera:
$ ./mprograma

3.8.2 Listar contenidos de directorios
Para listar el contenido de directorios se utiliza el comando ls. Las opciones mas comunes de ls son:
-a : indica que se muestren todos los archivos, incluso los ocultos, y
-1 : muestra un listado de archivos contenidos en un directorio, con detalles de usuarios y grupos a los
que pertenecen, los permisos que tienen asignados y algunas cosas ms. Si no se especifica ningn
directorio, ls saca un listado del directorio actual.
$ s /d1Jec1oJ1o
Lista el contenido del directorio
$ s -a1 /e1c
Listado en formato largo de los archivos en /etc, incluyendo nmero de nodos-i y archivos
ocultos
3.8.3 Copiar, mover y borrar archivos
cp cp oJ1geh des11ho
Copia archivos o directorios
cp oJ1geh1 oJ1geh2 .
Copia todos los archivos al directorio actual, indicado por el punto (.)
cp /dev/hu huevo_aJch1vo_1emp
Crea un nuevo archivo vaco
mv mv oJ1geh des11ho
Mueve o renombra archivos o directorios
mv -1 aJch1vo1 aJch1vo2
-f es la opcin predeterminada. Permite sobrescribir si el archivo2 ya
existe
mv -1 aJch1vo1 aJch1vo2
Solicita confirmacin antes de sobrescribir
Manual Administracin GNU/Linux 57
Unidad 3: Usando el shell
rm Jm /d1Jec1oJ1o/aJch1vo
Borra archivo
Jm -J /d1Jec1oJ1o
Borra recursivamente el directorio y su contenido
Jm *
Borra todos los archivos del directorio actual
3.8.4 Algunos comandos ms
mkdir: Crea directorios
$ mkd1J -p]--paJeh1s
Crea los directorios padres (ruta completa) necesarios, existan o no
$ mkd1J -m 755
Establece los permisos de acceso indicados
rmdir: Remueve directorios
$ Jmd1J -p]--paJeh1s
Borra los directorio padre especificados en la lnea de rdenes. Los directorios padre deben estar vacos
(no contener archivos).
touch: Cambia las marcas de tiempo (fecha y hora) de un archivo.
Tambin puede ser utilizado para crear archivos vacos:
$ 1ouch aJch1vo1
Manual Administracin GNU/Linux 58
Unidad 4: Uso del Editor de Texto VI
UNIDAD 4: USO DEL EDITOR DE TEXTO VI
En contraposicin a lo que se conoce como procesador de textos, en el cual el formato del texto (cursivas,
negritas, ttulos, centrado o justificado, color y tamao de la fuente, etc) es importante, en un editor de
texto lo importante es el texto en s mismo.
4.1 Por qu usar VI ?
Vi fue originalmente escrito por Bill Joy en 1976, tomando recursos de ed y ex, dos editores de texto
deficientes para Unix, que trataban de crear y editar archivos.
Vi est pensado para facilitar la labor de introduccin y edicin de texto sin formato. Puede utilizarse
para programar, escribir correo electrnico, editar textos, cdigo HTML, ficheros de configuracin del
sistema, etc.
Existe una gran cantidad de editores de texto, entonces, por qu escoger vi ?
Vi es un editor que se encuentra presente en casi el 100% de los sistemas UNIX (y si no est presente por
defecto se puede instalar), por lo que conocer su uso es prcticamente una obligacin para los
Administradores de Sistemas.
Con vi es posible modificar ficheros de una manera muy eficiente, y encontrar numerosas facilidades a la
hora de programar, todo ello gracias a su cualidad bimodal.
Y finalmente, vi ofrece por su simplicidad un mejor rendimiento en cuanto a utilizacin de recursos del
sistema.
4.2 Editor VIM
El editor vim es una evolucin del clsico editor vi que se dise heredando casi todas las teclas y
opciones de vi, de modo que manejando los conocimientos bsicos de vi no se encontrar dificultad al
momento de usar vim.
4.3 Abriendo archivos con VI
Para abrir archivos con un editor de texto, se escribe en un terminal el nombre del programa y el nombre
del archivo de la siguiente manera:
$ v1 hombJe_de_aJch1vo
Manual Administracin GNU/Linux 59
Unidad 4: Uso del Editor de Texto VI
Si no se est ubicado en el directorio que contiene el archivo es importante indicar tambin la ruta del
archivo:
$ v1 /d1Jec1oJ1o_de_aJch1vo/hombJe_de_aJch1vo
Si vi no encuentra el archivo en la ruta especificada (porque no existe o la ruta era incorrecta), va a crear
un archivo nuevo con ese nombre y esa ubicacin.
Entonces, para crear un archivo de texto nuevo, solo basta con escribir el nombre del archivo nuevo y el
directorio donde se lo va a guardar:
$ v1 /d1Jec1oJ1o_de_aJch1vo_huevo/hombJe_de_aJch1vo_huevo
No es necesario tener permisos de superusuario para crear y modificar archivos con vi. Sin embargo, si lo
que se est editando es un archivo de configuracin del sistema, no va a ser posible guardar los cambios a
menos que se haya abierto el archivo como usuario root.
En la Tabla 4.A se describen algunas opciones mas sobre la apertura de archivos que agilizan edicin con
vi.
Tabla 4.A: Comandos de vi que pueden utilizarse para abrir archivos de texto con opciones diferentes.
Comando Descripcin
v1 -J aJch1vo
Editar la ltima versin guardada de archivo
v1 +h aJch1vo
Editar archivo y ubicar el cursor en la lnea n
v1 + aJch1vo
Editar archivo y ubicar el cursor en la ltima lnea
v1 aJch1vo1 aJch1vo2
Editar archivo1 y luego, editar archivo2 (despus
de guardar usar n)
4.4 Vi editor bimodal
Vi es un editor con dos modos: edicin (o insercin) y comandos. En el modo de edicin, los caracteres
ingresados sern insertados en el texto; en el modo de comandos, las teclas que se opriman pueden
representar algn comando de vi. Cuando se inicia vi, este comienza en modo de comandos, para cambiar
al modo de edicin hay que aplicar alguno de los siguientes comandos:
i : insertar texto antes del cursor
a : insertar texto justo despus del cursor
o : insertar texto en una lnea nueva
Manual Administracin GNU/Linux 60
Unidad 4: Uso del Editor de Texto VI
Para salir del modo de edicin y quedar en modo de comandos nuevamente, se presiona ESC. El
comando para salir de vi (en el caso que los cambios se hayan guardado previamente) es dos puntos (:)
seguidos por q y ENTER. Para salir ignorando cambios presionar :q! seguido de ENTER, y para salir y
guardar cambios :wq seguido de ENTER.
Algunos autores distinguen a todos los comandos precedidos por dos puntos (:) como un tercer modo:
modo de ltima lnea (o ex). Esto se debe a que cuando se escriben los dos puntos, mientras se est en
modo comandos, los dos puntos y el resto de lo escrito aparecen en la parte inferior de la pantalla,
precisamente en la ltima lnea (de ah su nombre), y para ejecutarlos se debe presionar ENTER.
Los comandos precedidos por dos puntos son de hecho comandos ex. Vi y ex son dos interfaces separadas
para el mismo programa de edicin. Mientras que vi es una interfaz orientada en pantalla, ex es una
interfaz orientada en lnea. El conjunto completo de comandos ex est disponible desde vi. Cuando se
presionan los dos puntos, se est cambiando a la interfaz ex orientada en lnea. Esto permite ejecutar
muchos comandos de archivo sin tener que abandonar vi. El modo de ltima lnea es usado generalmente
para comandos de vi que son ms largos que un carcter.
De todas formas, ya que todos los comandos en vi son ejecutados desde el modo comandos,
consideraremos en este manual solo dos modos.
4.5 Comandos bsicos
Los comandos ms importantes que hay que saber son:
hoveJse a a 1zqu1eJda - h
hoveJse a a deJecha -
hoveJse aJJ1ba - k
hoveJse abao -
ThseJ1aJ 1ex1o - 1
BoJJaJ caJc1eJ {como SupJ) - x
En la mayora de las terminales, las teclas de flecha funcionan, sin embargo, es importante saber utilizar
h, j, k, l para moverse dentro del texto, ya que podra uno encontrarse con un teclado mal configurado.
Adems, un tcnico acostumbrado muchas veces prefiere los comandos a las flechas por facilidad y
rapidez.
Con estas instrucciones sera posible ingenirselas para editar casi todo (aunque no podran borrarse
saltos de lnea), pero si slo se conocen estos comandos, editar con vi puede resultar la experiencia ms
Manual Administracin GNU/Linux 61
Unidad 4: Uso del Editor de Texto VI
infernal de la vida.
Para poder unir lneas hay un comando especial, que es: J. En la Tabla 4.A hay una lista completa de
comandos tiles de vi.
Tabla 4.A - Comandos de vi
Accin Teclear Comentarios
Buscar
/<pa1Jh>
Busca el <patrn> hacia adelante
?<pa1Jh>
Busca el <patrn> hacia atrs
Repetir bsqueda
/
Hacia adelante
?
Hacia atrs
Ir en bsqueda
h
Avanza a la siguiente ocurrencia encontrada
h
Retrocede a la anterior ocurrencia encontrada
Movimiento de cursor

adelante
h
atrs
k
arriba

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:

AddJess hW1ype hWaddJess T1ace


192.168.1.71 e1heJ 00.04.C1.07.CA.20 e1h0
9.5.4 traceroute
traceroute muestra la ruta del host local al host destinario. traceroute obliga a routers intermediarios a
responder con mensajes de error (ICMP TIME_EXCEEDED) por configurar demasiado bajo el valor del
tty (tiempo de vida). Despus de cada notificacin TIME_EXCEEDED traceroute incrementa el valor
tty, requiriendo al siguiente paquete viajar un poco mas lejos, hasta llegar a su destino.
Ejemplo:
Ch0. /usJ/sb1h/1JaceJou1e -h www.Jedha1.com
1JaceJou1e. WaJh1hg. www.Jedha1.com has mu11pe addJesses, us1hg
216.148.218.197
1JaceJou1e 1o www.Jedha1.com {216.148.218.197), 30 hops max, 38 by1e packe1s
1 192.168.1.1 0.440 ms 0.347 ms 0.341 ms
---- sh1p ---
14 12.122.2.145 112.116 ms 110.908 ms 112.002 ms
15 12.122.2.74 156.629 ms 157.028 ms 156.857 ms
16 12.122.255.222 156.867 ms 156.641 ms 156.623 ms
17 216.148.209.66 159.982 ms 157.462 ms 158.537 ms
18 216.148.218.197 157.395 ms 156.789 ms 156.080 ms
Opciones para traceroute:
-1 11 cambiar el tiempo inicial a un valor vivo (live value) para ttl en vez de 1
-n no resolver nmeros IP
-v verboso
-w sec poner el lmite de tiempo para paquetes regresados a cantidad sec
Manual de Administracin GNU/Linux 165
Bibliografa recomendada
BIBLIOGRAFA
Barajas S. 2001, Curso de Protocolos TCP/IP. http://www.saulo.net/pub/tcpip/
Laurence, Bonney 2005. Boot loader showdown: Getting to know LILO and GRUB.
http://www-128.ibm.com/developerworks/library/l-bootload.html?ca=dgr-lnxw07LILOandGRUB
Falko Timme 2007. The Perfect Setup - Debian Etch (Debian 4.0).
www.howtoforge.com/perfect_setup_debian_etch
Gua de Instalacin de Debian GNU/Linux 2007.
http://d-i.alioth.debian.org/manual/es.mipsel/index.html
Cervera Navarro R., Pereda Garcimartn F.J., Gonzlez Lpez de Murillas E., Lpez A. y Hernndez
Gonzlez A. 2004, Manual Linux eminentemente prctico, ZonaSiete.ORG
http://www.zonasiete.org/manual/index.html
Ferrer Garca F. 2003. Curso Administracin Bsica de Linux. Universidad Politcnica de Valencia ,
Departamento de Sistemas Informticos y Computacin . Captulo 3: Administracin del sistema de
ficheros, pag. 29 (http://fferrer.dsic.upv.es/cursos/Linux/basico/ )
Garca Carrasco J.M. y Marn Lopez R. 2003, Tutorial y descripcin tcnica de TCP/IP. Departamento
de Ingeniera y Tecnologa de Computadores, Facultad de Informtica, Universidad de Murcia.
http://ditec.um.es/laso/docs/tut-tcpip/index.html
Gonzlez Barbone V.A. 2002, Curso Bsico de Unix: Editor vi. Instituto de Ingeniera Elctrica, Facultad
de Ingeniera. Montevideo, Uruguay. http://iie.fing.edu.uy/~vagonbar/unixbas/editorvi.htm
Gonzlez Durn S. 2008, Administracin de usuarios.
http://www.linuxtotal.com.mx/index.php?cont=info_admon_008
Kirillov A. 2000. Si usted es nuevo en Linux/Unix. Traducido al castellano por Vega Barreiro M. y Grupo
Gnome-es. http://www.linuxlots.com/~barreiro/spanish/gnome-es/newbies/index.html
Robbins D., Stockbridge E., Chuang B., Suarez Lopez J.A., Stoddart J.C., Rivero J.L., Molina J. 2005,
Aprendiendo vi El mtodo de la hoja de trucos. http://www.gentoo.org/doc/es/vi-guide.xml
Romero S. 2005, Manual de VIM (Basado en la documentacin de ayuda del programa).
http://www.escomposlinux.org/sromero/
Manual Administracin GNU/Linux 163
Bibliografa recomendada
Siever E. 2005. What Is the X Window System?
http://www.linuxdevcenter.com/pub/a/linux/2005/08/25/whatisXwindow.html
Wikipedia, La Enciclopedia Libre. http://es.wikipedia.org/wiki/Portada
Manual Administracin GNU/Linux 164

S-ar putea să vă placă și