Você está na página 1de 57

Universidad Catlica de Temuco

Escuela de Informtica
El Sistema Operativo Linux
(GNU/Linux)
Versin 0.0.9
Copyleft @ 2003 por Alejandro Mellado
amellado@uct.cl
alex@mgs.cl
ndice de contenido
Introduccin................................................................................................................................................................3
Breve Historia.........................................................................................................................................................3
Distribuciones.........................................................................................................................................................4
Principales Caractersticas.........................................................................................................................................5
Instalacin...............................................................................................................................................................7
Definicin de las particiones................................................................................................................................7
Particiones de disco................................................................................................................................................8
Limitaciones relacionadas con las BIOS que afectan a LILO............................................................................9
Recomendaciones sobre Puntos de montaje y Particiones..................................................................................9
Estructura y funcionamiento...............................................................................................................................10
Organizacin y permisos de archivos y directorios...........................................................................................12
Conceptos de permisos de archivos................................................................................................................13
Interpretando los permisos de archivos..........................................................................................................13
Dependencias....................................................................................................................................................15
Cambiando permisos........................................................................................................................................15
Manejando enlaces de archivos.....................................................................................................................16
Interpretes de comandos......................................................................................................................................18
EL Manual de comandos (man)......................................................................................................................20
Interfaz grfica de usuario.......................................................................................................................................22
El sistema X Window..........................................................................................................................................22
Requisitos de hardware........................................................................................................................................22
Kernel y mdulos.....................................................................................................................................................24
Mdulos................................................................................................................................................................24
Cmo configurar el ncleo (kernel)....................................................................................................................24
Descompresin de los fuentes ........................................................................................................................25
Configuracin del ncleo................................................................................................................................25
Compilacin del ncleo ..................................................................................................................................26
Administracin del Sistema.....................................................................................................................................29
La cuenta root.......................................................................................................................................................29
Gestin de Usuario...............................................................................................................................................29
Conceptos de gestin de usuarios...................................................................................................................29
Identificacin y administracin de procesos......................................................................................................33
Primer plano y Segundo plano........................................................................................................................34
Gestin de paquetes..................................................................................................................................................39
Concatenacin y Compresin de Archivos........................................................................................................40
Descompresin y desconcadenacin de Archivos............................................................................................40
La descompresin de archivos .gz se realiza con el comando gzip, ejemplo:....................................41
Configurador, Constructor e Instalador.............................................................................................................41
Gestor de paquetes de RedHat ...........................................................................................................................42
Principales Servicios Internet..................................................................................................................................43
Httpd (Apache Server).........................................................................................................................................43
Agentes Transmisores de Correo (MTA,s).......................................................................................................43
Sendmail...........................................................................................................................................................43
Postfix...............................................................................................................................................................43
Qmail.................................................................................................................................................................43
Servicio POP....................................................................................................................................................44
Servicio de Transferencia de Archivos (FTP)....................................................................................................44
Referencias de Bases de datos y Lenguajes de Programacin..............................................................................45
SAMBA.....................................................................................................................................................................47
Gestores de Ventanas (Windows Managers)..........................................................................................................54
Referencias................................................................................................................................................................57
2
Introduccin
Breve Historia
UNIX es uno de los sistemas operativos ms populares del mundo debido a su extenso
soporte y distribucin. Originalmente fue desarrollado como sistema multitarea con tiempo
compartido para pequeos computadores y mainframes a mediados de los 70, y desde
entonces se ha convertido en uno de los sistemas ms utilizados, a pesar de su
ocasionalmente, "confusa interfaz" con el usuario y el problema de su estandarizacin.
Entonces, Cul es la verdadera razn de la popularidad de UNIX? Muchos hackers
consideran que UNIX es el autntico y nico sistema operativo. El desarrollo de Linux
parte de un grupo en expansin de hackers de UNIX que quisieron hacer su sistema con sus
propias manos. Existen numerosas versiones de UNIX para muchos sistemas, desde
computadores personales hasta supercomputadores como el Cray Y-MP.
Linux es una versin de UNIX de libre distribucin, inicialmente desarrollada por Linus
Torvalds en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de
muchos programadores y expertos Unix, reuniendo colaboradores de todo el mundo gracias
a la presencia de Internet. Cualquier habitante del planeta puede acceder a Linux,
desarrollar nuevos mdulos y cambiarlo a su antojo. El ncleo de Linux no utiliza ni una
sola lnea del cdigo original de AT&T o de cualquier otra fuente de propiedad comercial,
y buena parte del software para Linux se desarrolla bajo las reglas del proyecto de GNU de
la Fundacin de Software Libre (Free Software Foundation) en Cambridge Massachusetts.
Inicialmente, slo fue un proyecto de aficionado de Linus Torvalds que estuvo inspirado en
el Minix, un pequeo UNIX desarrollado por Andy Tanenbaum. Por esto las primeras
discusiones sobre Linux surgieron en el grupo de News comp.os.minix. Estas discusiones
giraban en torno al desarrollo de un pequeo sistema UNIX de carcter acadmico dirigido
a aquellos usuarios de Minix que queran algo ms. El desarrollo inicial de Linux
aprovechaba las caractersticas de conmutacin de tareas en modo protegido del 386, y se
escribi todo en ensamblador. Linus dice, "Comenc a utilizar el C tras escribir algunos
drivers, y ciertamente se aceler el desarrollo. En este punto sent que mi idea de hacer un
Minix mejor que Minix se haca ms seria. Esperaba que algn da pudiese recompilar el
gcc bajo Linux. Dos meses de trabajo, hasta que tuve un driver de discos (con numerosos
bugs, pero que pareca funcionar en mi PC) y un pequeo sistema de archivos. Aqu tena
ya la versin 0.01 [al final de Agosto de 1991]: no era muy agradable de usar sin el driver
de disquetes, y no haca gran cosa. No pens que alguien compilara esa versin". No se
anunci nada sobre esa versin, puesto que las fuentes del 0.01 jams fueron ejecutables:
contenan solo rudimentos de lo que sera el ncleo , y se asuma que se tena acceso a un
Minix para poderlo compilar y jugar con l. El 5 de Octubre de 1991, Linus anunci la
primera versin "oficial" de Linux, la 0.02. Ya poda ejecutar bash (el shell de GNU) y gcc
(el compilador de C de GNU), pero no haca mucho ms. La intencin era ser un juguete
para hackers. No haba nada sobre soporte a usuarios, distribuciones, documentacin ni
nada parecido. Hoy, la comunidad de Linux aun trata estos asuntos de forma secundaria. Lo
3
primero sigue siendo el desarrollo del kernel.
Linus escriba en comp.os.minix lo siguiente: Suspiris al recordar aquellos das de Minix-
1.1, cuando los hombres eran hombres y escriban sus propios drivers? Os sents sin
ningn proyecto interesante y os gustara tener un verdadero S.O. que pudierais modificar a
placer? Os resulta frustrante el tener solo a Minix? Entonces, este artculo es para
vosotros. "Como dije hace un mes, estoy trabajando en una versin gratuita de algo
parecido a Minix para computadores At-386. He alcanzado la etapa en la que puede ser
utilizable y voy a poner las fuentes para su distribucin. Es solo la versin 0.02 pero he
conseguido ejecutar en l bash, gcc, gnu-make, gnu-sed, compress, etc".
Tras la versin 0.03, Linus salt a la versin 0.10, al tiempo que ms gente empezaba a
participar en su desarrollo. Tras numerosas revisiones, se alcanz la versin 0.95,
reflejando la esperanza de tener lista muy pronto una versin "oficial". (Generalmente, la
versin 1.0 de los programas se corresponden con la primera tericamente completa y sin
errores). Esto suceda en Marzo de 1992. Ao y medio despus, en Diciembre del 93, el
ncleo estaba en la revisin 0.99.pl14, en una aproximacin asinttica al 1.0. [1].
Ms de un ao despus, en Diciembre de 1993, el ncleo del sistema estaba en la versin
0.99 y la versin 1.0 no lleg hasta el 14 de marzo de 1994.
Una vez que el ncleo estuvo "usable", los programadores comenzaron a buscar
aplicaciones y utilidades para agregar y hacer el sistema ms til, ese es el momento en que
entra el proyecto GNU, iniciado en 1984 por la Fundacin de Software Libre (Free
Software Foundation), entidad creada por Richard M. Stallman, con el fin de hacer un
sistema operativo libre. Dado que exista ya mucho software en el proyecto GNU, los
programadores comenzaron a unir el ncleo Linux con dichas herramientas GNU,
conformando lo que hoy conocemos como sistema GNU/Linux o simplemente Linux,
como se suele llamar equivocadamente.
La versin actual del ncleo es la 2.4 y sigue avanzando da a da con la meta de
perfeccionar y mejorar el sistema [2].
Distribuciones
Linux tambin se puede conseguir accediendo a ciertos distribuidores, los cuales se
encargan de recoger, empaquetar y presentar Linux en sus diferentes modalidades en un o
unos bonitos CD-ROMs, con la ventaja de que normalmente proporcionan manuales, e
incluso hasta soporte al usuario.
Los distribuidores que aqu se citan son slo unos pocos, ya que ltimamente han aparecido
bastantes.
Una de las primeras distribuciones que apareci fue la SlackWare, cuya ltima versin al
momento de escribir este documente es la 7.2.
4
Para los que deseen un Linux bien ordenado, en cuanto a paquetes y versiones instaladas,
pueden con las distribuciones:
Salckware
Debian
Mandrake
RedHat
Suse
Caldera
Conectiva
La particularidad de estas distribuciones a exepcin de la Debian y Slackware es la forma
en que manejan los paquetes de aplicaciones, los cuales usan la extensin .rpm, y la utilidad
con la que se instalan RPM[3]. La distribucin debian cuenta con otro gestor de paquetes
con extensin .deb y la Slackware Simplemente maneja los paquetes en formatos tar y
gz.
Principales Caractersticas
Linux es un sistema operativo que funciona en mquinas 386 y superiores, en DEC
ALPHA, SUN SPARC y en PowerPC. Actualmente se trabaja para que se pueda ejecutar
en plataformas 680x0, MIPS y PowerMAC.
Usa libreras tanto estticas como dinmicas, el cdigo fuente est disponible, incluyendo
el kernel y drivers, herramientas de desarrollo y programas de usuario.
Soporta los sistemas de archivos de minix, Xenix, y todos los del System V, MS-DOS,
OS/2 FAT16, VFAT, FAT32, HPFS-2 (OS/2 2.1), HFS (Mac) y NTFS (Windows NT).
Soporta cualquier CD-ROM estndar, red TCP/IP. Los requerimientos mnimos para
funcionar son, un 386SX/16 con 1 Mb de RAM, una disquetera y una tarjeta de video.
Aunque es recomendable un maquina muy superior para aprovechar la capacidades grficas
que ofrecen las ltimas distribuciones.
Con Linux se pueden hacer las mismas cosas se que hacen con cualquier sistema operativo
(Mac, Windows, Irix, etc), ya que se cuenta con herramientas de desarrollo, lenguajes de
programacin, entornos grficos, editores, programas de telecomunicaciones, news y mail,
procesadores de texto, juegos e incluso paquetes integrados.
Empresas como RedHat, Mandrake, Caldera, Walnut Creek, Apple, Digital, MetroLink y
otras se empiezan a interesar por este pequeo gran sistema. Incluso la NASA ha utilizado
un ordenador 486 con la Debian GNU Linux para un proyecto, el cual se lanz con el
transbordador Columbia.
El tpico de que Linux es para "locos de la informtica se ha acabado". La instalacin es
5
cada vez ms sencilla, incluso que la de otros sistemas, adems se puede instalar un entorno
grfico muy intuitivo desde el cual se puede gestionar toda la mquina y recursos [3]. Los
ltimos instaladores de las distribuciones tales como RedHat, Suse o Mandrake, se inician
en forma grfica y provee una interfaz de instalacin interactiva e intuitiva muy fcial de
usar.
Caractersticas del sistema
El ncleo es capaz de emular por su cuenta las instrucciones del coprocesador 387, con lo
que en cualquier 386 con coprocesador o sin l se podrn ejecutar aplicaciones que lo
requieran. Linux soporta diversos sistemas de archivos para guardar los datos. Algunos de
ellos, como el ext2fs, han sido desarrollados especficamente para Linux.
Otros sistemas de archivos, como el Minix o el de Xenix tambin son soportados. Adems,
tambin soporta el ISO-9660, que es el estndar seguido en el formato de los CD-ROMs.
Linux implementa todo lo necesario para trabajar en red con TCP/IP. Desde manejadores
para las tarjetas de red ms populares hasta SLIP y PPP, que permiten acceder a una red
TCP/IP por el puerto serie. Tambin se implementan PLIP (para comunicarse por el puerto
de la impresora) y NFS (para acceso remoto a archivos). Y tambin se han portado los
clientes de TCP/IP, como FTP, telnet, NNTP y SMTP.
El ncleo de Linux ha sido desarrollado para utilizar las caractersticas del modo protegido
de los microprocesadores 80386 y 80486. En concreto, hace uso de la gestin de memoria
avanzada del modo protegido y otras caractersticas avanzadas. Cualquiera que conozca la
programacin del 386 en el modo protegido sabr que este modo fue diseado para su uso
en UNIX (o tal vez Multics). Linux hace uso de esta funcionalidad precisamente. El ncleo
soporta ejecutables con paginacin por demanda. Esto significa que slo los segmentos del
programa que se necesitan se cargan en memoria desde el disco. Las pginas de los
ejecutables son compartidas mediante la tcnica copy-on-write, contribuyendo todo ello a
reducir la cantidad de memoria requerida para las aplicaciones.
Con el fin de incrementar la memoria disponible, Linux implementa la paginacin con el
disco: puede tener hasta 256 megabytes de espacio de intercambio o "swap" en el disco
duro el cual ubica usualmente en una particin, dejando la alternativa tambin de tenerla en
archivo . Cuando el sistema necesita ms memoria, expulsar pginas inactivas al disco,
permitiendo la ejecucin de programas ms grandes o aumentando el nmero de usuarios
que puede atender a la vez. Sin embargo, el espacio de intercambio no puede suplir
totalmente a la memoria RAM, ya que el primero es mucho ms lento que sta. La memoria
dedicada a los programas y a la cach de disco est unificada. Por ello, si en cierto
momento hay mucha memoria libre, el tamao de la cach de disco aumentar acelerando
as los accesos. Los programas ejecutables hacen uso de las libreras de enlace dinmico.
Esto significa que los programas ejecutables comparten el cdigo comn de las libreras en
un nico archivo (como sucede en el SunOS). As, los ejecutables sern ms cortos a la
hora de guardarlos en el disco, incluyendo aquellos que hagan uso de muchas funciones de
librera. Tambin pueden enlazarse estticamente cuando se desee que los programas
ejecutables no requieran la presencia de las libreras dinmicas en el sistema. El enlace
dinmico se hace en tiempo de ejecucin, con lo que el programador puede cambiar las
libreras sin necesidad de recompilar los programas. El nombre swap es inadecuado, ya que
6
no se intercambian procesos completos, sino pginas individuales. Por supuesto, en muchos
casos se expulsan al disco procesos completos, pero no siempre ocurre en la imagen de la
memoria de los programas (archivos core). Entre esto y la posibilidad de compilar
programas con soporte de depuracin, el programador podr averiguar la causa de sus fallos
o cadas.
Instalacin
Definicin de las particiones
Muchas distribuciones necesitaban que se crearn a mano las particiones de Linux
utilizando el programa fdisk. En las ltimas versiones, las particiones ya pueden ser
crearlas automticamente, o con un utilitarios de alto nivel. Usando una u otra utilidad, se
debe conocer lo siguiente acerca de los nombres para los dispositivos y las particiones en
Linux:
Bajo Linux, los dispositivos y las particiones tienen nombres muy distintos a los utilizados
en otros sistemas operativos. Bajo MS-DOS o Windows por ejemplo, las disqueteras se
identifican como unidad A: y B:, mientras que las particiones del disco duro se identifican
como unidades C:, D:, etc.
Bajo Linux, la denominacin es algo diferente. Los manejadores de dispositivos, que se
encuentran en el directorio /dev, se usan para comunicar con los dispositivos de su sistema
(como discos duros o ratones). Si se tiene por ejemplo un ratn en su sistema, se puede
acceder a l a travs del manejador /dev/mouse. Las disqueteras, discos duros y particiones
tienen cada uno un manejador propio. Es importante entender cmo se hace referencia a los
dispositivos con el fin de poderlos usar. La siguiente tabla lista los nombres de diversos
manejadores de disco:
Nombre Dispositivo
Primera disquetera (A:) /dev/fd0
Segunda disquetera (B:) /dev/fd1
Primer disco duro (todo el disco) /dev/hda
Primer disco duro, particin primaria 1 /dev/hda1
Primer disco duro, particin primaria 2 /dev/hda2
Primer disco duro, particin primaria 3 /dev/hda3
Primer disco duro, particin primaria 4 /dev/hda4
Primer disco duro, particin lgica 1 /dev/hda5
Primer disco duro, particin lgica 2 /dev/hda6 .. .
Segundo disco duro (todo el disco) /dev/hdb
Segundo disco duro, particin primaria 1 /dev/hdb1 .. .
Primer disco duro SCSI (todo el disco) /dev/sda
Primer disco duro SCSI, particin primaria 1 /dev/sda1 .. .
7
Segundo disco duro SCSI (todo el disco) /dev/sdb
Segundo disco duro SCSI, particin primaria 1 /dev/sdb1 .. .
Tabla: Nombres de discos y particiones en Linux
Algunas notas acerca de esta tabla.
Obsrvese que /dev/fd0 corresponde a la primera disquetera (A: bajo MS-DOS) y que
/dev/fd1 corresponde a la segunda (B:). Adems, los discos duros SCSI se nombran de
manera diferente a otros discos. Los IDE, MFM y RLL se acceden a travs de los
dispositivos /dev/hda, /dev/hdb, etc. Las particiones de /dev/hda son /dev/hda1, /dev/hda2,
etc. Sin embargo, los dispositivos SCSI se nombran con /dev/sda, /dev/sdb, etc., y las
particiones con /dev/sda1, /dev/sda2, etc. Aqu tenemos un ejemplo. Supongamos que usted
tiene un disco duro IDE con 3 particiones primarias. Las dos primeras son para MS-DOS, y
la tercera es extendida y contiene dos particiones lgicas, ambas para ser usadas con Linux.
Los dispositivos quedaran representados con: Primera particin MS-DOS (C:) /dev/hda1
Segunda particin MS-DOS (D:) /dev/hda2 Particin extendida /dev/hda3 Primera particin
lgica de Linux /dev/hda5 Segunda particin lgica de Linux /dev/hda6 Observe que nos
hemos saltado /dev/hda4, ya que corresponde a la cuarta particin primaria, que no existe
en el ejemplo. Las particiones lgicas se nombran de forma consecutiva partiendo de
/dev/hda5. 2.3.3 Creacin de las particiones en Linux
Particiones de disco
Con el fin de instalar cualquier distribucin de Linux, debe existir espacio disponible para
l. Este espacio de disco necesita estar separado del espacio de disco usado por otros
sistemas operativos que se pueden tener instalados en un computador, de modo que se
puede tener un Windows XX, un OS/2, o incluso una versin diferente de Linux como
sistema operativo adicional. Un disco puede dividirse en diferentes particiones. Se puede
acceder a cada particin como si fuera un disco separado. Adems cada particin tiene una
etiqueta de tipo que se usa para indicar como esta almacenada la informacin en la
particin. Por ejemplo, hay distintos tipos de particiones usados por DOS, OS/2, y Linux.
Aun si se instala Suse Linux en su propio disco duro, o en un computador que no contiene
ningn otro sistema operativo, se necesitar crear particiones para que las use Suse Linux.
En este caso es muy sencillo, ya que no hay otras particiones en el disco duro de las que
preocuparse. Por otra parte, puede querer instalar Suse Linux en un disco que ya contiene
software o datos de un sistema operativo diferente. Las cosas pueden ser algo mas delicadas
en esta situacin, ya que un error puede destruir tus particiones actuales, por no mencionar
los datos que contengan! Durante el proceso de instalacin, se tiene la oportunidad de crear
particiones para Suse Linux o cualquier otra distribucin. Llegado este punto, la mayor
preocupacin debe ser estar seguro de tener suficiente espacio disponible para las
particiones de Linux.
8
Limitaciones relacionadas con las BIOS que afectan a LILO
LILO esta sometido a algunas limitaciones impuestas por las BIOS en la mayora de los
ordenadores basados en Intel. Especficamente, muchas BIOS no pueden acceder a mas de
dos discos y no pueden acceder a los datos almacenados ms all del cilindro 1023 (el
cilindro 1024) de ningn dispositivo. Hay que tomar en cuenta que algunas BIOS recientes
no tienen estas limitaciones, pero no se puede decir de forma universal. Todos los datos a
los que LILO necesite acceder durante el arranque (incluyendo el ncleo de Linux) estn
localizados en el directorio /boot, que es normalmente parte de la particin raz (conocida
como /). A continuacin se describen unas directrices que se deben seguir si se va a usar
LILO para arrancar el sistema Linux:
En el primero, de dos dispositivos IDE
Si se tienen 2 dispositivos IDE (o EIDE). /boot debe estar localizado en uno de ellos. Hay
que tomar en cuanta que esta limitacin sobre dos dispositivos tambin incluye cualquier
CD-ROM IDE que se tenga en el controlador primario IDE. As, si se tiene un disco duro
IDE, y un CD-ROM IDE en el controlador primario, /boot debe estar localizado
nicamente en el primer disco duro, aunque se tengan otros discos duros en el controlador
IDE secundario. Un primer dispositivo IDE o SCSI.
Si se tiene un dispositivo IDE (o EIDE) y uno o ms dispositivos SCSI, /boot debe estar
localizado bien en el dispositivo IDE o en el dispositivo SCSI con ID 0 o ID 1. Ningn otro
ID SCSI funcionara. En el primer de dos dispositivos SCSI
Si slo existen discos duros SCSI, /boot debe estar localizado en el dispositivo con ID 0 o
ID 1. Ningn otro ID SCSI funcionara. Particiones Completamente delante del cilindro
1023.
No importa la configuracin anterior que se aplique, la particin que contiene /boot debe
estar localizada enteramente debajo del cilindro 1023. Si la particin que contiene /boot
sobrepasa el cilindro 1023, puede encontrarse frente a una situacin en la que LILO podr
funcionar en un principio (porque toda la informacin necesaria se encuentre debajo del
cilindro 1023), pero podra fallar si un se carga un nuevo ncleo, y este reside encima del
cilindro 1023. Como se menciona anteriormente, es posible que algunas nuevas BIOS
puedan permitir a LILO trabajar con configuraciones no mencionadas en estas directrices.
As mismo, algunas de las funcionalidades ocultas pueden se usadas para conseguir
arrancar un sistema Linux, aunque la configuracin no siga estas directrices. De todas
formas, debido al numero de variables involucradas, Red Hat Software no puede soportar
esos esfuerzos extraordinarios.
Recomendaciones sobre Puntos de montaje y Particiones
La particin de intercambio: La particin de intercambio se usa para soportar la memoria
virtual o de intercambio (Swap). Si el computador ordenador tiene 16 MB de RAM o
menos, es imprescindible crear una particin de intercambio, y aunque se cuente con ms
9
memoria de todos modos es recomendable una particin de intercambio. El tamao mnimo
de la particin de intercambio debera ser mayor o igual a la memoria RAM del
computador, o a 16 MB. De preferencia mucho mayor a la memoria del computador
dependiendo al carga de trabajo que tendr segn su funcionalidad.
La particin /boot: La particin /boot es una pequea particin (de no ms de 25 MB para
las antiguas distribuciones y 75 MB para las ltimas) que se usa para alojar la imagen del
sistema operativo Linux, es recomendable usar est particin ya que el sistema la lee
solamente al inicio y una vez cargado el sistema prcticamente no posee acceso lo que
minimiza la probabilidad de errores en disco.
La particin raz: La particin raz es donde reside / (el directorio raz). Slo necesita
contener cosas necesarias para arrancar el sistema, as como los archivos de configuracin
del sistema. Una particin raz de 600MB a 1000MB funcionara bien en casi todas las
distribuciones. ( En sistemas Intel no se debe olvidar las restricciones del LILO que
mencionaron anteriormente).
La particin /usr: La particin /usr donde residir gran parte del software de un sistema
Linux. Esta particin deber ser de unos 1000 a 2000 MB, dependiendo de cuantos
paquetes se quieran instalar. Siempre que sea posible, se debe intentar ser generoso con la
particin /usr. Cualquier paquete basado en RPM que se instale despus se generar ms
espacio en /usr que ninguna otra particin.
La particin /var: La particin /var es usada para los archivos de spool (colas de
procesamiento por lotes) y reportes de sistema. Si est particin va ser usada para
recipientes de correo y alojamiento de sitios WEB como es el caso de algunas
distribuciones es recomendable que esta particin sea lo suficientemente grande de modo
que no se llene la particin a futuro, para este caso una tamao recomendable sera 2000
MB. Si est particin slo tendr colas de impresin y reportes de sistema el tamao
reservado recomendable sera 300 MB.
La particin /home: Aqu es donde se sitan los directorios home (directorio raz principal)
de los usuarios de Linux. El tamao de /home depende del numero de usuarios que se
planeen tener en el sistema Linux y de qu espacio de almacenamiento este destinado a sus
directorios /home.
La particin /opt: Existen casos en que el sistema puede estar destinado a bases de datos y
programas de aplicacin de gestin que necesiten gran cantidad de almacenamiento
histrico. En este caso es recomendable contar con una particin /opt en la cual se alojen
los archivos de base de datos y/o programas de aplicacin, por lo que est particin debe se
muy grande respecto de las dems, dependiendo de crecimiento histrico de los datos es
recomendable asignar un tamao sobre los 10 GB de almacenamiento o ms.
10
Estructura y funcionamiento
Linux se inicia despus de que la BIOS le pasa el control a LILO, LILO a su vez le pasa el
control al ncleo de Linux. El ncleo es el programa central del sistema operativo, que
controla a todos los dems programas. Lo primero que hace Linux una vez que comienza su
ejecucin es cambiar la CPU a modo protegido. El procesador 80386 que controla el
computador tiene dos modos que se denominan "modo real" y "modo protegido". El
sistema operativo DOS corre en modo real, al igual que la BIOS. Sin embargo, los sistemas
operativos ms avanzados necesitan correr en modo protegido. Por ello, cuando Linux se
inicia, descarta la BIOS. Los procesadores distintos al 386 llegan a este estado de manera
diferente. Ningn otro procesador necesita cambiar a modo protegido, y slo unos pocos
tienen un contexto tan pesado de carga, como LILO y la BIOS. Una vez que arranca el
ncleo, Linux trabaja casi de la misma manera. A continuacin, Linux mira que clase de
hardware tiene debajo. Necesita adems saber que clase de discos duros tiene, si hay o no
un ratn serial, si est a conectado a una red, y otro tipo de informacin adicional de
hardware. Linux no puede recordar ciertas cosas luego de apagado, de manera que las
pregunta cada vez que arranca. Durante el arranque, el ncleo de Linux muestra unos
cuantos mensajes, aunque con ciertas variaciones. Este proceso de consulta puede causar
algunos problemas con el sistema, pero si lo hace, lo har probablemente cuando se instale
Linux por primera vez. Si se tienen problemas, es recomendable consultar la
documentacin de la distribucin en particular. El ncleo solamente se ocupa de
administrar los otros programas, entonces cuando ste est satisfecho con que todo anda
bien debe arrancar otro programa para que haga los trabajos tiles. El programa que el
ncleo arranca se llama init.

BIOS
Lilo Linux Init
login
getty X server
shell Gestor de ventana
xdm
11
Una vez que el ncleo arranca init, no lanza ningn otro programa. El ncleo se transforma
as en un administrador y proveedor, no en un programa activo. Por lo tanto, para saber que
es lo que hace el computador luego que el ncleo arranca, deberemos examinar init. La
complicada secuencia de arranque por la que atraviesa init no es idntica en todos los
computadores. Para Linux existen varias versiones de init, y cada una hace las cosas a su
manera. Adems tambin influye si la mquina est en red, e incluso cual distribucin se
utiliz para instalar Linux. Algunas de las cosas que pueden suceder cuando init arranca
son: El control de integridad del sistema de archivos. (Qu es un sistema de archivos? .
Un sistema de archivos es la disposicin de los archivos en el disco duros. Adems permite
que Unix sepa que partes del disco duro estn ocupadas y cuales partes no.
Desafortunadamente, ciertos factores como los cortes en el suministro de energa hacen que
la informacin que el sistema de archivos tiene sobre la disposicin en el disco de los
archivos no coincida con la disposicin real. En estos casos se usa la utilidad de un
programa llamado fsck, que es capaz de encontrar estas situaciones y en muchos casos "con
suerte" corregirlas). Se lanzan programas especiales de encaminamiento para las redes.
Estos programas informan a el computador cmo se supone que puede comunicarse con las
otros. Se borran los archivos temporales que crean ciertos programas. Se actualiza
correctamente el reloj del sistema. Esto es ms complicado de lo que puede parecer, pues
Unix de manera predeterminada, necesita la hora en UCT (Universal Coordinated Time),
tambin conocida como hora de Greenwich, y el reloj de la CMOS que es alimentado por
una batera dentro del computador muy probablemente estar configurado con la hora local.
Esto significa que debe tener algn programa que lea la hora del reloj de la CMOS y la
corrija transformndola en hora UCT.
Despus que init termina con sus actividades de arranque, comienza con sus tareas
planificadas. init se convierte as en el padre de todos los procesos del sistema Unix. Un
proceso es simplemente un programa que est a corriendo o ejecutndose; como cualquier
programa puede ejecutarse ms de una vez, entonces puede haber ms de un proceso para
un programa dado en particular. En Unix, los procesos son instancias de un programa se
crean mediante una llamada al sistema que es un servicio provisto por el ncleo que se
denominada fork. (su traduccin en espaol es "bifurcacin", esto es que un proceso se
bifurca en dos independientes.) init bifurca unos cuantos procesos, los que a su vez bifurcan
otros procesos. En Linux con toda seguridad init ejecuta varias instancias de un programa
llamado getty. El programa getty permitir iniciar el ingreso de un usuario, en realidad getty
es un programa para obtencin de un terminal que en muchos casos puede ser serial o
emulado, una vez que el getty est trabajando llama al programa login que solicita el
nombre de usuario y contrasea para autorizar el ingreso al sistemas Linux, una vez
autorizado el usuario se ejecuta el interprete de comandos (bash, tcsh, etc) y el usuario
puede interactuar y/o usar el sistema. No necesariamente init llama a getty, tambin puede
llamar al programa xdm (gdm o kdm de las ltimas distribuciones), esta llamada se produce
cuando le indicamos al sistemas que se inicie automticamente en modo grafico, el xdm o
sus sucesores llamaran a login para que solicite el nombre de usuario y contrasea para
autorice el ingreso al sistema, una vez autorizado se levante el gestor de ventanas definido
para el usuario (interfaz grfica) y el usuario puede comenzar a usar el sistema en un
entorno de ventanas (parecido a Windows).
12
Organizacin y permisos de archivos y directorios
Conceptos de permisos de archivos
Al ser UNIX un sistema multiusuario, para proteger archivos de usuarios particulares de la
manipulacin por parte de otros, UNIX proporciona un mecanismo conocido como
permisos de archivos. Este mecanismo permite que archivos y directorios "pertenezcan" a
un usuario en particular. Por ejemplo, como Ricardo crea archivos en su directorio \home,
Ricardo es el propietario de esos archivos y tiene acceso a ellos.
UNIX tambin permite que los archivos sean compartidos entre usuarios y grupos de
usuarios. Si Ricardo lo desea, podr restringir el acceso a sus archivos de forma de que
ningn otro usuario tenga acceso. De cualquier modo, en la mayor a de los sistemas por
defecto se permite que otros usuarios puedan leer los archivos de algn usuario pero no
modificarlos o borrarlos.
Como se ha explicado, cada archivo pertenece a un usuario en particular. Por otra parte, los
archivos tambin pertenecen a un grupo en particular, que es un conjunto de usuarios
definido por el sistema. Cada usuario pertenece al menos a un grupo de usuarios cuando es
creado. El administrador del sistema puede hacer que un usuario tenga acceso a ms de un
grupo.
Los grupos usualmente son definidos por el tipo de usuarios que acceden a la mquina. Por
ejemplo, en un sistema UNIX de una universidad, los usuarios pueden ser divididos en los
grupos estudiantes, direccin, profesores e invitados. Hay tambin unos pocos grupos
definidos por el sistema (como bin y admin) los cuales son usados por el propio sistema
para controlar el acceso a los recursos y no es usal que los usuarios normales pertenezcan a
estos grupos.
Los permisos estn divididos en tres tipos: lectura, escritura y ejecucin. Estos permisos
pueden ser fijados para tres clases de usuarios: el propietario del archivo, el grupo al que
pertenece el archivo y para todos los usuarios independientemente del grupo.
El permiso de lectura permite a un usuario leer el contenido del archivo o en el caso de un
directorio, listar el contenido del mismo (usando el comando "ls"). El permiso de escritura
permite a un usuario escribir y modificar el archivo. Para directorios, el permiso de
escritura permite crear nuevos archivos o borrar archivos ya existentes en dicho directorio.
Por ultimo, el permiso de ejecucin permite a un usuario ejecutar el archivo si es un
programa o guin del intrprete de comandos. Para directorios, el permiso de ejecucin se
permite al usuario cambiar al directorio en cuestin con el comando "cd".
Interpretando los permisos de archivos
Ejemplo del uso de permisos de archivos. Usando el comando "ls" con la opcin -l se puede
ver a un listado de los archivos, el cual incluye los permisos de archivos.
13
/home/ricardo/foo# ls -l stuff
-rw-r--r-- 1 ricardo users 505 Mar 13 19:05 stuff
/home/ricardo/foo#
El primer campo impreso en el listado representa los permisos de archivos. El tercer campo
es el propietario del archivo (ricardo), y el cuarto es el grupo al cual pertenece el archivo
(users). Obviamente, el ultimo campo es el nombre del archivo (stuff), y los dems
campos los trataremos ms adelante.
Este archivo pertenece a ricardo y al grupo users. Echemos un vistazo a los permisos. La
cadena -rw-r--r-- nos informa, por orden, de los permisos para el propietario, el grupo del
archivo y cualquier otro usuario.
El primer carcter de la cadena de permisos ("-") representa el tipo de archivo. El "-"
significa que es un archivo regular. Las siguientes tres letras ("rw-") representan los
permisos para el propietario del archivo, ricardo. El caracter "r" para lectura y "w" para
escritura. Luego Ricardo tiene permisos de lectura y escritura para el archivo stuff.
Como se ha mencionado, aparte de los permisos de lectura y escritura est a el permiso de
ejecucin, representado por una "x". Como hay un "-" en lugar de "x", esto significa que
Ricardo no tiene permiso para ejecutar ese archivo. Esto es correcto, puesto que stuff no es
un programa de ningn tipo. Por supuesto, como el archivo es de Ricardo, puede darse a si
mismo permiso de ejecucin si lo desea.
Los siguientes tres caracteres, r-- representan los permisos para los miembros del grupo. El
grupo al que pertenece el archivo es users. Como solo aparece una "r" cualquier usuario que
pertenezca al grupo users puede leer este archivo.
Los ltimos tres caracteres, tambin r--, representan los permisos para cualquier otro
usuario del sistema (diferentes del propietario o de los pertenecientes al grupo users). De
nuevo, como slo est a presente el carcter "r", los dems usuarios pueden leer el archivo,
pero no escribir en el o ejecutarlo.
Aqu tenemos otros ejemplos de permisos de grupo.
-rwxr-xr-x El propietario del archivo puede leer, escribir y ejecutar el archivo. Los
usuarios pertenecientes al grupo del archivo, y todos los dems usuarios pueden leer y
ejecutar el archivo.
-rw------- El propietario del archivo puede leer y escribir. Nadie ms puede
acceder al archivo.
-rwxrwxrwx Todos los usuarios pueden leer, escribir y ejecutar el archivo.
14
Dependencias
Es importante darse cuenta de que los permisos de un archivo tambin dependen de los
permisos del directorio en el que residen. Por ejemplo, aunque un archivo tenga los
permisos -rwxrwxrwx, los otros usuarios no podrn acceder a el a menos que tambin
tengan permiso de lectura y ejecucin para el directorio en el cual se encuentra el archivo.
Si Ricardo quiere restringir el acceso a todos sus archivos, podr simplemente poner los
permisos de su directorio "/home" (/home/ricardo) a -rwx------. De esta forma ningn
usuario podr acceder a su directorio ni a ninguno de sus archivos o subdirectorios. Ricardo
no necesita preocuparse de los permisos individuales de cada uno de sus archivos.
En otras palabras, para acceder a un archivo, se debe de tener permiso de ejecucin de
todos los directorios a lo largo del camino de acceso al archivo, adems de permiso de
lectura (o ejecucin) del archivo en particular.
Habitualmente, los usuarios de un sistema UNIX son muy abiertos con sus archivos. Los
permisos que se dan a los archivos usualmente son -rw-r--r--, lo que permite a todos los
dems usuarios leer los archivos, pero no modificarlos de ninguna forma. Los directorios,
usualmente tienen los permisos -rwxr-xr-x, lo que permite que los dems usuarios puedan
moverse y ver los directorios, pero sin poder crear o borrar nuevos archivos en ellos.
Muchos usuarios pueden querer limitar el acceso de otros usuarios a sus archivos. Poniendo
los permisos de un archivo a -rw------- no se permitir a a ningn otro usuario acceder al
archivo. Igualmente, poniendo los permisos del directorio a -rwx------ no se debe permitir a
los dems usuarios acceder al directorio en cuestin.
Cambiando permisos
El comando chmod se usa para establecer los permisos de un archivo. Solo el propietario
puede cambiar los permisos del archivo. La sintaxis de chmod es:
chmod fa,u,g,ogf+,-gfr,w,xg h lenamesi
Brevemente, indicamos a que usuarios afecta all, user, group o other. Entonces se
especifica si se estn aadiendo permisos (+) o quitndolos (-). Finalmente se especifica
que tipo de permiso lectura, escritura o ejecucin (read, write o execute). Algunos
ejemplos:
chmod a+r stuff
Da a todos los usuarios acceso al archivo.
chmod +r stuff
Como arriba| si no se indica a, u, g o o por defecto se toma a.
15
chmod og-x stuff
Quita permisos de ejecucin a todos los usuarios excepto al propietario.
chmod u+rwx stuff
Permite al propietario leer, escribir y ejecutar el archivo.
chmod o-rwx stuff
Quita permisos de lectura, escritura y ejecucin a todos los usuarios menos al
propietario y a los usuarios del grupo del archivo.
Manejando enlaces de archivos
Los enlaces le permiten dar a un nico archivo mltiples nombres. Los archivos son
identificados por el sistema por su nmero inodo, el cual es el nico identificador del
archivo para el sistema de archivos. Un directorio es una lista de nmeros de inodos con sus
correspondientes nombres de archivo. Cada nombre de archivo en un directorio es un
enlace a un inodo particular.
Enlaces duros (Hard links)
El comando ln es usada para crear mltiples enlaces para un archivo. Por ejemplo,
supongamos que tiene un archivo foo en un directorio. Usando ls -i, se ve nmero de inodo
para el archivo.
# ls -i foo
22192 foo
#
Aqu, el archivo foo tiene el nmero de inodo 22192 en el sistema de archivos. Podemos
crear otro enlace a foo, llamado bar:
# ln foo bar
Con ls -i se ve que los dos archivos tienen el mismo inodo.
# ls -i foo bar
22192 bar 22192 foo
#
Ahora, accediendo a foo o a bar accederemos al mismo archivo. Si hace cambios en foo,
estos cambios tambin ser han efectuados en bar. Para todos los efectos, foo y bar son el
mismo archivo.
Estos enlaces son conocidos como enlaces duros (hard links) porque directamente crean el
enlace al inodo. Ntese que solo podemos crear enlaces duros entre archivos del mismo
16
sistema de archivos; los enlaces simblicos no tienen esta restriccin.
Cuando borra un archivo con rm, est a solamente borrando un enlace a un archivo. Si usa
el comando
# rm foo
solo el enlace de nombre foo es borrado; bar todava existir. Un archivo es slo
definitivamente borrado del sistema cuando no quedan enlaces a l. Usualmente, los
archivos tienen un nico enlace, por lo que el uso de rm los borra. Pero si el archivo tiene
mltiples enlaces, el uso de rm slo borrar un nico enlace; para borrar el archivo, se
deben a borrar todos los enlaces del archivo.
El comando ls -l muestra el nmero de enlaces a un archivo (entre otra
informacin).
# ls -l foo bar
-rw-r--r-- 2 root root 12 Aug 5 16:51 bar
-rw-r--r-- 2 root root 12 Aug 5 16:50 foo
#
La segunda columna en el listado, "2", especifica el nmero de enlaces al archivo.
As resulta que un directorio no es ms que un archivo que contiene informacin sobre la
translacin enlace a inodo. tambin, cada directorio tiene al menos dos enlaces duros en el:
"/." (un enlace apuntando a si mismo) y "/.." (un enlace apuntando al directorio anterior o
padre). En el directorio raz "/", el enlace "/.." simplemente apunta a "/.".
Enlaces simblicos
Los enlaces simblicos son otro tipo de enlace, que es diferente al enlace duro. Un enlace
simblico permite dar a un archivo el nombre de otro, pero no enlaza el archivo con un
inodo.
El comando "ln -s" crea un enlace simblico a un archivo. Por ejemplo, si usamos el
comando
# ln -s foo bar
crearemos un enlace simblico bar apuntando al archivo foo. Si usamos ls -i, veremos que
los dos archivos tienen inodos diferentes, en efecto.
# ls -i foo bar
22195 bar 22192 foo
#
De cualquier modo, usando "ls -l" se ve que el archivo bar es un enlace simblico
apuntando a foo.
17
# ls -l foo bar
lrwxrwxrwx 1 root root 3 Aug 5 16:51 bar -> foo
-rw-r--r-- 1 root root 12 Aug 5 16:50 foo
#
Los bits de permisos en un enlace simblico no se usan (siempre aparecen como
rwxrwxrwx). En su lugar, los permisos del enlace simblico son determinados por los
permisos del archivo apuntado por el enlace (en nuestro ejemplo, el archivo foo).
Funcionalmente, los enlaces duros y simblicos son similares, pero hay algunas diferencias.
Por una parte, se puede crear un enlace simblico a un archivo que no existe; este no es
aplicable para enlaces duros. Los enlaces simblicos son procesados por el ncleo de forma
diferente a los duros, lo cual es solo una diferencia tcnica, pero a veces importante. Los
enlaces simblicos son de ayuda puesto que identifican al archivo al que apuntan; con
enlaces duros no hay forma fcil de saber que archivo est a enlazado al mismo inodo.
Los enlaces se usan en muchas partes del sistema Linux. Los enlaces simblicos son
especialmente importantes para las imgenes de las libreras compartidas en "/lib".
Interpretes de comandos
El shell de Unix
Es muy fcil crear archivos en el sistema operativo UNIX. Por lo tanto, los usuarios tienden
a crear muchos archivos que utilizan una gran cantidad de espacio. Se ha dicho que la nica
cosa estndar y comn a todos los sistemas UNIX es el mensaje-del-da que les pide a los
usuarios que borren los archivos que no necesitan.
(Gua del administrador de System V.2 4.1 Comandos Unix)
Cuando ingresa al sistema Unix, se enfrenta con algo ms o menos como lo que se muestra
a continuacin:
/home/ricardo$
Ese "algo" se denomina prompt. Como su nombre sugiere, le solicita al usuario que ingrese
un comando. Todos los comandos Unix consisten de una secuencia de letras, nmeros y
caracteres. No son vlidos los espacios dentro del nombre del comando. Algunos comandos
vlidos son mail, cat, y more. Algunos caracteres no estn permitidos se revisar este tema
ms adelante. Unix adems hace diferencia entre maysculas y minsculas, lo que significa
que Cat y cat son comandos distintos. El prompt se muestra como resultado del accionar de
un programa especial denominado intrprete de comando.
El intrprete de comandos o shell acepta los comandos que escribe el usuario y los ejecuta.
Los comandos pueden formar programas en el lenguaje del intrprete de comandos, y a
dichos programas se los denomina "shell scripts".
18
Los shell en Unix se clasifican en dos grandes grupos: los tipo Bourne y los tipo C. Los
shell tipo Bourne toman su nombre a partir de su inventor, Steven Bourne. Steven Bourne
escribi el shell original de Unix, denominado sh; a partir de entonces, la mayor a de los
shells tienen un nombre con el sufijo sh para indicar que son extensiones de la idea original.
Existen varias implementaciones de este shell que colectivamente llevan el nombre de
shells Bourne. tambin son comunes los shells tipo C cuyo original fue implementado por
Bill Joy. Tradicionalmente, los shell Bourne se han utilizado para los scripts de shell y por
razones de compatibilidad con el sh original, mientras que los shells C han sido ms
comunes en su aplicaci on interactiva. (Los C tienen ventajas en cuanto a sus mejores
caractersticas interactivas, aunque son ms difciles de programar.) Linux viene con un
shell Bourne denominado bash, escrito por la Fundacin de Software Libre (Free Software
Foundation). El nombre bash proviene de Bourne Again SHell, uno de los tantos juegos de
palabras en Unix. Se trata de un shell Bourne "avanzado": tiene las capacidades estndar de
programacin que se encuentran en todos los shells Bourne y adems varias de las
caractersticas interactivas que se encuentran en los shells C. bash es el shell
predeterminado cuando se usa Linux. Apenas ingresa por primera vez, el prompt que el
usuaro ve es producto de la accin de bash, en otras palabras: el usuario est ejecutando su
primer programa Unix, el shell bash. Mientras est conectado, el shell bash estar
permanentemente funcionando.
Un comando Unix tpico
El primer comando que debe conocer es cat. Para utilizarlo, escriba "cat" y luego oprima
intro:
/home/ricardo$ cat
Si tiene ahora el cursor posicionado en una lnea nueva, entonces lo que ha hecho est a
bien. Existen unas cuantas variantes que se podran haber tecleado, algunas funcionarn,
otras no.
Si se tiene algn error de tecleo al escribir "cat", se debera haber visto algo ms o menos
as:
/home/ricardo$ ct
ct: command not found
/home/ricardo$
Por lo tanto, el shell le informa que no pudo encontrar un programa denominado "ct", y le
ofrece otro prompt para seguir trabajando. Ya se mencion que Unix hace diferencia entre
maysculas y minsculas: CAT est a mal escrito.
Puede que el usuario haya escrito algunos espacios en blanco antes del comando, como:
/home/ricardo$ cat
19
Sin embargo, el resultado es correcto, y el programa cat corre sin problemas.
Tambin puede que haya oprimido un Intro en una lnea en blanco; no se preocupe y
contine, pues no tiene ningn efecto.
Si el usuario ha ejecutado con xito el comando "cat" y est a esperando que haga algo que
lo maraville. El comando "cat" no es un juego, cat es una muy buena utilidad que no parece
muy til a primera vista. Escriba cualquier cosa y luego oprima Intro . Lo que ver a es:
/home/ricardo$ cat
Help! I'm stuck in a Linux program!
Help! I'm stuck in a Linux program!
(El texto inclinado marca que es lo que he tecleado.) Lo que parece haber hecho cat es
devolver un eco de lo escrito. Esto es til a veces, tal vez no ahora. Para analizar ciertos
comandos Unix, teclee Ctrl-d. Ctrl-d es el caracter end-of-le, o EOF, para abreviar. Puede
que en ciertos libros de texto aparezca como end-of-text. Se har referencia a este caracter
como EOF. Es un caracter de control que informa a los programas Unix que ha cesado el
ingreso de datos. Cuando cat ve que no teclea ms nada, termina. Para ver otro ejemplo
parecido, pruebe el programa sort. Como su nombre lo indica, sort es un programa de
clasificacin. Si un usuario teclea unas cuantas lneas y luego oprime Ctrl-d , sort las
mostrar a la salida de manera ordenada. Esta clase de programas se denominan filtros,
porque toman texto desde su entrada, lo filtran, y lo vierten a su salida modificado de
alguna manera. Tanto cat como sort son filtros inusuales. cat es inusual pues lee el texto de
entrada y no lo cambia. sort es inusual porque lee todas las lneas de entrada hasta el EOF,
antes de emitir su salida. La mayora de los filtros trabajan sobre la base de lnea por lnea:
leen una lnea de la entrada, realizan cierto computo, y escriben una lnea diferente de
salida[4].
EL Manual de comandos (man)
El comando man muestra las pginas de la gua de referencia para un comando dadp. Por
ejemplo:
/home/ricardo$ man cat
cat(1) cat(1)
NAME
cat - Concatenates or displays files
SYNOPSIS
cat [-benstuvAET] [--number] [--number-nonblank] [--squeeze-blank]
[--show-nonprinting] [--show-ends] [--show-tabs] [--show-all]
[--help] [--version] [file...]
20
DESCRIPTION
This manual page documents the GNU version of cat ...
Hay aproximadamente una pgina completa de informacin sobre cat. No se debe esperar
entender la pgina de manual cuando se usa por primera vez. Las pginas de manual
suponen un cierto conocimiento de Unix, conocimiento que tal vez el usuario no posea este
momento. Cuando se termina de leer la pgina, es probable que se vea un bloque en video
inverso al final de la pgina, parecido a "--more--" o a "Line 1". Se trata del pedido de ms
(informacin) que contiene el manual.
En lugar de dejar escapar el texto fuera de los lmites de la pantalla, man se detiene al final
de cada pgina, y espera para ver que ha decidido hacer el usuario. Si desea seguir leyendo,
se presiona la barra espaciadora y se avanza a una pgina. Si desea terminar con la lectura
de la pgina del manual, se presiona la tecla "q" . Se retorna a entonces al prompt del shell,
que esperar hasta que el usuario escriba otro comando.
El man provee adems una funcin de bsqueda de palabras clave. Por ejemplo, digamos
que el usuario est a interesado en el tema PostScript, el lenguaje de control de impresoras
desarrollado por Adobe. Si escribe "man -k ps" o "man -k Postscript", recibir como
resultado una lista de todos los comandos, llamadas al sistema, y otras partes documentadas
de Unix que contengan la palabra "ps" (o "Postscript") en su nombre o descripcin breve.
Esto puede llegar a ser muy til cuando se quiere buscar una herramienta para hacer algo,
pero no conoce su nombre o si existe.
21
Interfaz grfica de usuario
El sistema X Window
X Windows es un enorme entorno grfico para sistemas Unix, potente y tambin complejo.
Originalmente fue desarrollado por el MIT, y desde entonces los desarrolladores de
sistemas comerciales han convertido a las X en un estndar de las plataformas Unix.
Prcticamente todas las estaciones de trabajo Unix del mundo utilizan X Window en alguna
de sus variantes.
Existe, desarrollada por un equipo de programadores inicialmente liderados por David
Wexelblat, una implementacin gratuita de las X Windows versin 11, release 6 (X11R6)
para sistemas Unix con 80386/80486/Pentium. Esta implementacin, llamada XFree86, se
encuentra disponible en Unix x86 como System V/386, 386BSD y por supuesto Linux.
Incluye todos los binarios necesarios, archivos de soporte, libreras y utilidades.
Requisitos de hardware
La documentacin que se incluye con el adaptador de video debe especificar cual es el
"chipset" que utiliza. Si el usuario est a punto de comprarse una nueva tarjeta grfica,
conviene pedir al vendedor el modelo exacto de tarjeta y "chipset" de video. Esto supondr,
casi siempre, recurrir al servicio tcnico, pero normalmente los vendedores no pondrn
inconvenientes. La mayor parte de los vendedores de PCs se limitan a decir que sus
computadores tienen tarjetas grficas "SVGA estndar" que tiene que funcionar en su
sistema. Si se les explica que su software (nombrando a Linux y XFree86, por supuesto) no
soporta todos los "chipsets" y que usted necesita por eso informacin ms detallada.
Configuracin de Xfree86
En las ltimas distribuciones de Linux configurar XFree86 no suele ser difcil. Sin
embargo, si va a usar manejadores de "chipsets" an en desarrollo o se desea obtener el
mejor rendimiento o resolucin de una tarjeta aceleradora, configurar a la perfeccin
XFree86 puede tardar bastante.
En esta seccin se describir cmo crear y editar el archivo XF86Config, que configura al
servidor X en forma "manual". En muchos casos lo mejor es comenzar con una
configuracin bsica, de baja resolucin, como 640x480 puntos, que es soportada por todas
las tarjetas y monitores. Una vez comprobado su funcionamiento a baja resolucin, se
puede pasar a modificar la configuracin para explotar toda la capacidad de la tarjeta de
video.
Adems de la informacin que se da en esta documento, debe leerse la siguiente
documentacin :
22
La documentacin propia de XFree86 en /usr/X11R6/lib/X11/doc (viene con el paquete
XFree86-3.1-doc, ya debe ir en la versin 4.xx). Se debe prestar especial atencin al
archivo README.Config, que es un tutorial sobre la configuracin de Xwindows.
Diferentes "chipsets" de video tendran sus propios archivos README en el directorio
anterior (por ejemplo, README.Cirrus). Lase el que corresponda.
Las pginas de manual para Xfree86.
Las pginas de manual para XF86Config.
Las pginas de manual para el servidor concreto que utilice (como XF86 SVGA o XF86
S3).
El archivo de configuracin principal debe ser /usr/X11R6/lib/X11/XF86Config. Este
archivo contiene informacin acerca del ratn, parmetros de la tarjeta grfica, etc. El
archivo XF86Config.ed es un ejemplo que incluye la distribucin. Copie este archivo como
XF86Config y modifquelo para su sistema.
23
Kernel y mdulos
Que es el Kernel (ncleo) del Linux?
En sntesis el Kernel del Linux es el corazn de sistema, es decir, es en s el sistema
operativo. El ncleo de Unix acta como intermediario entre los programas y el ordenador.
En primer lugar, gestiona la memoria de todos los programas o procesos, y se asegura de
que se reparten los ciclos del procesador. Adems, proporciona una interfaz portable para
que los programas se comuniquen fcilmente con su hardware[5]. Esta encargado de
manejar el sistemas de archivos y directorio, organiza el uso de los recurso de hardware,
provee de mecanismos de proteccin y estabilidad, e interactua mediante mdulos con los
dispositivos tales tarjetas de sonido, tarjetas Red, Scanner, etc.
Es necesario actualizar los ncleos, ya que los nuevos normalmente ofrecen la posibilidad
de entenderse con ms accesorios hardware (o sea, incluyen ms manejadores o drivers), se
ejecutan ms rpidamente, son ms estables o corrigen errores de otras versiones. Mucha
gente se actualiza el ncleo para poder usar nuevos manejadores que necesitan o librarse de
"bugs" de la versin que usaban [5].
Mdulos
Hay partes del cdigo del ncleo que no se enlazan directamente en el ncleo. Se compilan
por separado y luego se incorporan al ncleo que ya est corriendo. Es la forma preferida
de usar algunos manejadores como los de dispositivos PCMCIA o de cintas QIC-80/40 Hoy
en da la tendencia es modularizar todos los controladores posibles, salvo aquellos
estrictamente necesarios para arrancar (ext2, ide, o SCSI, segn el caso), aunque siempre se
puede hacer una imagen initrd y se sigue pudiendo arrancar con LILO. kerneld se encargar
de cargarlos y descargarlos por nosotros cuando el sistema los necesite o no [5].
Cmo configurar el ncleo (kernel)
Obtencin de los fuentes.
Se pueden obtener las fuentes por FTP annimo de
ftp://ftp.funet.fi/pub/OS/Linux/PEOPLE/Linus/, en un "mirror". En Espaa se cuenta con el
veloz y magnfico ftp://sunsite.rediris.es o en otros servidores. Tpicamente tienen el
nombre linux-x.y.z.tar.gz, donde x.y.z es el nmero de versin. Las versiones se encuentran
en directorios v1.1, v1.2 y v1.3 Y 2.0 y 2.1 . El nmero mayor es el de la ltima versin, en
este caso versin de desarrollo. Le sugerimos que utilice un servidor "mirror" de
ftp.funet.fi, por ejemplo:
24
EE.UU.: ftp://tsx-11.mit.edu/pub/linux/sources/system
EE.UU.: ftp://sunsite.unc.edu/pub/Linux/kernel
Inglaterra:ftp://sunsite.doc.ic.ac.uk/pub/unix/Linux/sunsite.unc-mirror/kernel/
Austria: ftp://fvkma.tu-graz.ac.at/pub/linux/linus
Alemania: ftp://ftp.Germany.EU.net/pub/os/Linux/Local.EUnet/Kernel/Linus
Alemania: ftp://ftp.dfv.rwth-aachen.de/pub/linux/kernel
Francia: ftp://ftp.ibp.fr/pub/linux/sources/system/patches
Australia: tp://kirk.bond.edu.au/pub/OS/Linux/kernel
Espaa: ftp://sunsite.rediris.es/pub/linux/kernel/sources
Descompresin de los fuentes
Ingresar en la cuenta root e ir al directorio /usr/src. Si se instalaron las fuentes cuando
instal Linux, habr aqu un directorio linux, con las fuentes antiguas. Si se quiere
preservar esas fuentes (y se tiene espacio de sobra), renombre (con mv) ese directorio a
linux-x.y.z (la versin actual x.y.z se puede obtener con el comando uname -r). Es
importante que antes de descomprimir las nuevas fuentes no haya ningn directorio
/usr/src/linux.
Ahora, en /usr/src, se descomprimen las fuentes con
tar xvfzp linux-x.y.z.tar.gz
(si slo se tiene un archivo .tar, sin .gz, se elimina la z del comando tar). Los contenidos del
archivo se expandirn en /usr/src/linux. Se debe ingresar ahora a ese directorio y leer el
archivo README. Aqu se encontrar una seccin ``INSTALLING the kernel''. Se deben
seguir las instrucciones que all se describen (aunque en las siguientes lneas se har
referencia de cmo hacer esto)[5].
Configuracin del ncleo
Para configuracin del Ncleo existen tres posibilidades, ejecutando el comando make en el
directorio /usr/src/linux con los siguentes argumentos;
1.- make config
Esta opcin inicia un programa shell-script de configuracin que pregunta bastantes cosas
en forma interactiva. Requiere que est instalado bash, con lo que debe existir /bin/bash,
/bin/sh o la variable $BASH.
2.- make menuconfig
Este comando, iniciar un colorido programa (escrito con lxdialog) muy agradable y
bastante ms funcional que el make config, para llevar a cabo la configuracin del kernel.
25
Su uso es bastante intuitivo; las opciones con un < > indican la posibilidad de modularizar;
si en ella presionamos M se seleccionar como mdulo. Si presionamos ESPACIO
aparecer un * indicando que ser incluido en el kernel. Finalmente, si presionamos N lo
deseleccionaremos [5].
3.- make xconfig
Esta opcin de configuracin debe ser ejecutada desde un xterm, ya que posee una interfaz
grfica de configuracin de kernel, es fcil de usar y presenta todas las opciones de
configuracin que las anteriores.
Compilacin del ncleo
Dependencias y limpieza
Cuando se termina de configurar, se indica que se debe ejecutar `make dep' y `clean'.
Ejecute `make dep', este preparar las dependencias en poco tiempo, a menos el PC en el
cual se compila sea muy lento. Cuando termine, ejecute `make clean'. Esto elimina archivos
objetos y dems de la versin anterior. No olvidar este paso.
El momento de compilar
Despus de preparar dependencias, se debe ejecutar `make zImage' o `make zdisk' (esta es
la parte que tarda ms tiempo). `make zImage' compilar el ncleo y lo dejar comprimido
en arch/i386/boot/zImage junto a otros archivos. Con `make zdisk' el nuevo ncleo se
copiar adems en el disquete que est puesto en la disquetera ``A:''. `zdisk' es interesante
para probar ncleos; si explota (o simplemente no hace nada) se quita el disquete de la
disquetera y podr arrancar con el antiguo ncleo. Adems sirve para arrancar si borr
accidentalmente el ncleo del disco duro. Tambin puede usarlo para instalar nuevos
sistemas simplemente volcando el contenido de un disco en otro.
Los ncleos recientes estn comprimidos, con una `z' comenzando su nombre. Un ncleo
comprimido se descomprime automticamente al ser ejecutado.
Otras opciones del `make'
Con `make mrproper' har una limpieza mucho ms ``intensa''. Suele hacer falta cuando se
actualiza (parchea) el ncleo. Pero esta opcin borra tambin su archivo de configuracin
del ncleo, as que guarde una copia del correspondiente archivo .config si cree que le
interesa.
La opcin `make oldconfig' intentar configurar el ncleo con un archivo de configuracin
anterior A partir del 2.0.xx no es necesario, make recuerda la ltima configuracin evitando
todo el proceso del `make config'. Si no ha compilado anteriormente el ncleo o no tiene un
archivo de configuracin anterior, no lo elija pues normalmente querr algo que se salga de
la configuracin por defecto.
26
Para compilacin con mdulos, vea la seccin correspondiente.
Instalacin del ncleo
Una vez que se tenga un nuevo ncleo que parezca funcionar como se desea, ser el
momento de instalarlo. Casi todo el mundo utiliza LILO (LInux LOader) para esto. Con
`make zlilo' se instalar el ncleo ejecutando LILO, quedando listo para reiniciar, pero esto
solo funcionar si LILO est bien configurado para su sistema: el ncleo es /vmlinuz, LILO
est en /sbin y la configuracin de LILO (/etc/lilo.conf) es coherente con lo anterior.
En otro caso, se necesitar usar LILO directamente. Hay un paquete que lo instala de
manera adecuada, pero su archivo de configuracin tiende a confundir a la gente. Observe
el archivo de configuracin (estar en /etc/lilo.conf o en /etc/lilo/config para versiones ms
antiguas), y vea cul es la configuracin actual. El archivo de configuracin ser como ste:
image = /vmlinuz
label = Linux
root = /dev/hda1
...
La lnea `image =' apunta al ncleo instalado actualmente. Casi siempre es /vmlinuz. `label'
es el identificador usado para seleccionar qu sistema arrancar, y `root' es el disco o
particin a usar para el directorio raz. Haga una copia de seguridad de su antiguo ncleo y
copie en /vmlinuz o donde diga el archivo anterior el archivo zImage que haya generado el
proceso de compilacin. Ahora, ejecute LILO (en sistemas modernos, ser simplemente
teclear `lilo'. En sistemas antiguos, habr que poner `/etc/lilo/install' o `/etc/lilo/lilo -C
/etc/lilo/config'.)
Si quiere saber ms sobre la configuracin de LILO, o no tiene LILO, obtenga la versin
ms reciente de su servidor FTP favorito y siga las instrucciones que le acompaan.
Para arrancar uno de sus antiguos ncleos, copie las lneas anteriores incluyendo `image =
xxx' al principio del archivo de configuracin de LILO, y cambie `image = xxx' por `image
= yyy' donde `yyy' es el nombre de camino completo al archivo de la copia de seguridad
guardada. Ahora, cambie `label = zzz' por `label = linux-backup' y reejecute LILO. Puede
ser que necesite poner una lnea en el archivo con `delay=x' donde x son las centsimas de
segundo que LILO esperar antes de arrancar con la primera opcin, de modo que pueda
interrumpirse (con la tecla SHIFT) y seleccionarse qu ncleo desea arrancar (tecleando la
etiqueta (label) asignada).
Inciso de la revisin 2.1
Una forma muy cmoda de llevar todo el tema del LILO, si lo tenemos instalado, y las
compilaciones, etc, es aadir lo siguiente en el /etc/lilo.conf:
...
27
image=/vmlinuz
label=ultimo
root=/dev/hd[loquesea]
read-only
append = ""
image=/vmlinuz.old
label=anterior
root=/dev/hd[loquesea]
read-only
append = ""
Al compilar, si lo hacemos con la secuencia de comandos
# make dep; make clean; make zlilo; make modules; make modules_install
el make zlilo renombrar la anterior imagen del kernel a /vmlinuz.old , dejando la nueva
como /vmlinuz, e instalar LILO, a continuacin con lo cual lo hacemos todo
automgicamente.
La rdenes make modules; make modules_install compilarn los mdulos que hayamos
seleccionado, y los instalarn. No olvidar ejecutar depmod -a en cuanto hayamos arrancado
con dicho ncleo.
En caso de que estemos compilando por segunda vez una misma versin de ncleo, y
hayamos variado el nmero de mdulos a compilar, es posible que la ejecutar "make dep"
nos encontremos con un mensaje de error; esto se debe a que los antiguos mdulos que no
hayamos compilado ahora no son borrados. Pueden borrarse tranquilamente.
Mdulos
Los mdulos del ncleo cargables permiten simplificar la configuracin del ncleo y
ahorrar memoria. Sirven para aadir dinmicamente nuevos soportes de sistemas de
archivos o manejadores, a un ncleo que ya est corriendo.
Instalacin de las utilidades asociadas
Estas utilidades estn disponibles all donde est el ncleo, como modules-x.y.z.tar.gz. Elija
el que corresponda a su ncleo. Descomprmalo con `tar zxvf modules-x.y.z.tar.gz', cambie
al directorio que crea (modules-x.y.z), lase el archivo README, y siga las instrucciones
de instalacin (normalmente, tan simple como `make install'). Con ello tendr las utilidades
insmod, rmmod, ksyms, lsmod, genksyms, modprobe y depmod en /sbin. Si lo desea, puede
probar el manejador ejemplo ``hw'' con insmod; lea el archivo INSTALL para ms detalle.
insmod inserta un mdulo en el ncleo arrancado. Generalmente los mdulos son archivos
.o; el manejador ejemplo es drv_hello.o, con lo que para insertarlo se usara `insmod
drv_hello.o'. Para ver los mdulos cargados, pruebe lsmod. La salida ser como sta:
28
blah# lsmod
Module:#pages:Used by:
drv_hello1
`drv_hello' es el nombre del mdulo, que usa una pgina (4k) de memoria, y no hay
mdulos que dependan de l en este momento. Para quitar el mdulo, teclee `rmmod
drv_hello'. Vea que rmmod necesita el nombre del mdulo, no del archivo. Ese nombre lo
obtiene al listar los mdulos instalados [5].
Administracin del Sistema
La cuenta root
Los usuarios normales estn restringidos usualmente para que no puedan daar a nadie ms
en el sistema, slo a ellos mismos. Los permisos de los archivos en el sistema estn
preparados para que los usuarios normales no tengan permitido borrar o modificar archivos
en directorios compartidos por todos los usuarios (como son /bin y /usr/bin). Muchos
usuarios tambin protegen sus propios archivos con los permisos adecuados para que otros
usuarios no puedan acceder o modificar estos archivos.
Estas restricciones desaparecen para root. El usuario root puede leer, modificar o borrar
cualquier archivo en el sistema, cambiar permisos y pertenencias en cualquier archivo, y
ejecutar programas especiales, como pueden ser los que particionan un disco o crean
sistemas de archivos. La idea bsica es que la persona o personas que ejecutan y gestionan
el sistema entren como root cuando slo sea necesario para realizar tareas que no pueden
ser ejecutadas por un usuario normal. Puesto que root puede hacer todo, es fcil cometer
errores que tengan consecuencias catastrficas cuando se trabaja utilizando esta cuenta.
Gestin de Usuario
Independientemente de que tenga muchos usuarios o no en el sistema, es importante
comprender los aspectos de la gestin de usuarios bajo Linux. Incluso si se es el nico
usuario, se debe tener, presumiblemente, una cuenta distinta de root para hacer la mayor
parte del trabajo. Cada persona que utilice el sistema debe tener su propia cuenta.
Raramente es una buena idea el que varias personas compartan la misma cuenta. No slo es
un problema de seguridad, sino que las cuentas se utilizan para identificar un unvocamente
a los usuarios al sistema. Se necesita ser capaz de saber quin est a haciendo qu.
Conceptos de gestin de usuarios
29
El sistema mantiene una cierta cantidad de informacin acerca de cada usuario. Dicha
informacin se resume a continuacin.
Nombre de usuario
El nombre de usuario es el identificador nico dado a cada usuario del sistema.
Ejemplos de nombres de usuario son ricardo, erick y mdw. Se pueden utilizar letras y
dgitos junto a los caracteres "_" (subrayado) y "." (punto). Los nombres de usuario se
limitaban normalmente a 8 caracteres de longitud, actualmente algunos Unix pueden tener
nombres de usuario de ms de 8 caracteres.
user ID
El user ID, o UID, es un nmero nico dado a cada usuario del sistema. El sistema
normalmente mantiene la pista de la informacin por UID, no por nombre de usuario.
group ID
El group ID, o GID, es la identificacin del grupo del usuario por defecto. Ms
adelante se discutir los permisos de grupo; cada usuario pertenece a uno o ms grupos
definidos por el administrador del sistema.
Clave
El sistema tambin almacena la clave del usuario de manera cifrada. El comando
passwd se utiliza para poner y cambiar las claves de los usuarios.
Nombre completo
El "nombre real" o "nombre completo" del usuario se almacena junto con el nombre
de usuario. Por ejemplo, el usuario schmoj puede tener el nombre "Josi schmo" en la vida
real.
Directorio inicial
El directorio inicial es el directorio que usar inicialmente el usuario en cuando este
utilizando el sistema. Cada usuario debe tener su propio directorio inicial, normalmente
situado bajo "/home".
Intrprete de inicio
El intrprete de inicio del usuario es el intrprete de comandos que es arrancado
para el usuario una vez que se conecta para usar el sistema. Ejemplos pueden ser /bin/bash
y /bin/tcsh.
El archivo /etc/passwd contiene la informacin anterior acerca de los usuarios. Cada lnea
del archivo contiene informacin acerca de un nico usuario; el formato de cada lnea es
30
nombre:clave encriptada:UID:GID:nombre completo:dir.inicio:int erprete
Un ejemplo puede ser:
ricardo:Xv8Q981g71oKK:102:100:Ricardo Vallejos:/home/ricardo:/bin/bash
Como puede verse, el primer campo , "ricardo", es el nombre de usuario.
El siguiente campo, "Xv8Q981g71oKK", es la clave cifrada. Las claves no se almacenan en
el sistema en ningn formato legible por el hombre. Las claves se cifran utilizndose a s
mismas como clave secreta. En otras palabras, slo si se conoce la clave, esta puede ser
descifrar. Esta forma de cifrado es bastante segura y se ha traducido como encriptacin.
En la actualidad la mayora de los sistemas utilizan "claves en sombra" en la que la
informacin de las claves se asigna al archivo /etc/shadow. Puesto que el archivo
/etc/passwd es legible por todo el mundo, el archivo /etc/shadow suministra un grado extra
de seguridad, puesto que este no lo es. Las claves en sombra suministran algunas otras
funciones como puede ser la expiracin de claves y otras utilidades ms
El tercer campo "102", es el UID. Este debe ser nico para cada usuario. El cuarto campo,
"100", es el GID. Este usuario pertenece al grupo numerado "100". La informacin de
grupos, como la informacin de usuarios, se almacena en el archivo /etc/group.
El quinto campo es el nombre completo del usuario. "Ricardo Vallejos". Los dos ltimos
campos son el directorio inicial del usuario "/home/ricardo" y el intrprete de conexin
"/bin/bash", respectivamente. No es necesario que el directorio inicial de un usuario tenga
el mismo nombre que el del nombre de usuario. Sin embargo, ayuda a identificar el
directorio.
Creando Usuarios
Cuando se crea un usuario hay varios pasos a seguir en forma "manual". Primero, se le debe
crear una entrada en /etc/passwd, con un nombre de usuario y UID nicos. Se debe
especificar el GID, nombre completo y resto de informacin. Se debe crear el directorio
inicial, y poner los permisos en el directorio para que el usuario sea el dueo. Se deben
suministrar archivos de comandos de inicializacin en el nuevo directorio y se debe hacer
alguna otra configuracin del sistema (por ejemplo, preparar un recipiente para el correo
electrnico entrante para el nuevo usuario).
Aunque no es difcil el crear usuarios a mano, cuando se est a ejecutando un sistema con
muchos usuarios, es fcil el olvidarse de algo. La manera ms simple de crear usuarios es
utilizar un programa interactivo que vaya preguntando por la informacin necesaria y
actualice todos los archivos del sistema automticamente. El nombre de este programa es
useradd o adduser dependiendo del software que est instalado. Las pginas man para estos
comandos deberan ser suficientemente auto descriptivas.
31
Eliminando usuarios
De forma parecida, borrar usuarios puede hacerse con los comandos userdel o deluser
dependiendo de qu software este instalado en el sistema.
Si se desea "deshabilitar" temporalmente un usuario para que no se conecte al sistema (sin
borrar la cuenta del usuario), se puede prefijar con un asterisco ("*") el campo de la clave
en /etc/passwd. Por ejemplo, cambiando la lnea de /etc/passwd correspondiente a kiwi a
ricardoi:*Xv8Q981g71oKK:102:100:Ricardo:/home/ricardo:/bin/bash
evitar que ricardo se conecte.
Asignando Atributos de usuario
Despus de que haya creado un usuario, puede necesitar cambiar algn atributo de dicho
usuario, como puede ser el directorio inicial o la clave. La forma ms simple de hacer esto
es cambiar los valores directamente en /etc/passwd. Para asignarle una clave a un usuario,
utilice el comando passwd. Por ejemplo,
# passwd ricardo
cambiar la clave de ricardo. Slo root puede cambiar la clave de otro usuario de esta
forma. Los usuarios pueden cambiar su propia clave con passwd tambin.
En algunos sistemas, los comandos chfn y chsh estn disponibles, permitiendo a los
usuarios el cambiar sus atributos de nombre completo e intrprete de conexin. Si no,
deben pedir al administrador de sistemas que los cambie por ellos.
Grupos
Como hemos se descrito anteriormente, cada usuario pertenece a uno o ms grupos. La
nica importancia real de las relaciones de grupo es la perteneciente a los permisos de
archivos, cada archivo tiene un "grupo propietario" y un conjunto de permisos de grupo que
define de qu forma pueden acceder al archivo los usuarios del grupo.
Hay varios grupos definidos en el sistema, como pueden ser bin, mail, y sys. Los usuarios
no deben pertenecer a ninguno de estos grupos; se utilizan para permisos de archivos del
sistema. En su lugar, los usuarios deben pertenecer a un grupo individual, como users. Si se
quiere ser detallista, se pueden mantener varios grupos de usuarios como por ejemplo
estudiantes, soporte y facultad.
El archivo /etc/group contiene informacin acerca de los grupos. El formato de cada
lnea es
nombre de grupo:clave:GID:otros miembros
32
Algunos ejemplos de grupos pueden ser:
root:*:0:
usuarios:*:100:mdw,ricardo
invitados:*:200:
otros:*:250:kiwi
El primer grupo, root, es un grupo especial del sistema reservado para la cuenta root. El
siguiente grupo, users, es para usuarios normales. Tiene un GID de 100.
Los usuarios mdw y ricardo tienen acceso a este grupo. Ya se ha mencionado que en
/etc/passwd cada usuario tiene un GID por defecto. Sin embargo, los usuarios pueden
pertenecer a ms de un grupo, agregando sus nombres de usuario a otras lneas de grupo en
/etc/group. El comando groups lista a qu grupos se tiene acceso.
El tercer grupo, invitados, es para usuarios invitados, y otros es para "otros" usuarios. El
usuario kiwi tiene acceso a este grupo.
Como se puede ver, el campo "clave" de /etc/group raramente se utiliza. A veces se utiliza
para dar una clave para acceder a un grupo. Esto es raras veces necesario. Para evitar el que
los usuarios cambien a grupos privilegiados (con el comando newgroup), se pone el campo
de la clave a "*".
Se pueden usar los comandos addgroup o groupadd para crear grupos a su sistema.
Normalmente es ms sencillo crear lneas a /etc/group manualmente, puesto que no se
necesitan ms configuraciones para crear un grupo. Para borrar un grupo, slo hay que
borrar su entrada de /etc/group.
Identificacin y administracin de procesos
Control de Tareas
Tareas y procesos
Control de Tareas es una utilidad incluida en muchos shells (incluidas Bash y Tcsh), que
permite el control de multitud de comandos o tareas al momento. Antes de seguir,
deberemos hablar un poco sobre los procesos.
Cada vez que un usuario ejecuta un programa, el usuario genera lo que se conoce como
proceso, que es simplemente el nombre que se le da a un programa cuando se esta
ejecutando. El comando ps visualiza la lista de procesos que se estn ejecutando
actualmente, por ejemplo:
33
/home/ricardo# ps
PID TT STAT TIME COMMAND
24 3 S 0:03 (bash)
161 3 R 0:00 ps
/home/ricardo#
La columna PID representa el identificador de proceso. La ltima columna COMMAND,
es el nombre del proceso que se est ejecutando. Ahora solo se ven los procesos que est
ejecutando el usuario ricardo. Adems se ve que hay dos procesos, bash (Que es el shell o
intrprete de comandos que usa ricardo), y el propio comando ps. Como puede observar, la
bash se ejecuta concurrentemente con el comando ps. El bash ejecut ps cuando ricardo
tecle el comando. Cuando ps termina de ejecutarse (despus de mostrar la tabla de
procesos), el control se retorna al proceso bash, el que muestra nuevamente el prompt,
indicando que est listo para recibir otro comando.
Un proceso que esta corriendo se denomina tarea para el shell. Los trminos proceso y
tarea, son intercambiables. Sin embargo, se suele denominar "tarea" a un proceso, cuando
es usado en conjuncin con control de tareas, que es una caracterstica del shell que permite
cambiar entre distintas tareas.
Hay muchos ms procesos aparte de los que se muestran ejecutndose en el sistema, para
verlos todos, se debe ingresar el comando "ps aux".
En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que es el ltimo
comando que ellos ingresaron desde el shell. Sin embargo, usando el control de tareas, el
usuario podra ejecutar diferentes tareas al mismo tiempo, cambiando entre cada uno de
ellos conforme lo necesite. Cun beneficioso puede llegar a ser esto?. Supongamos que el
usuario est con su procesador de textos, y de repente necesita parar y realizar otra tarea,
con el control de tareas, el usuario podr suspender temporalmente el editor, y volver al
shell para realizar cualquier otra tarea, y luego regresar al editor como si no lo hubiese
dejado nunca. Lo siguiente solo es un ejemplo, hay montones de usos prcticos del control
de tareas.
Primer plano y Segundo plano
Un proceso puede estar en Primer plano o en Segundo plano. Solo puede haber un proceso
en primer plano al mismo tiempo, el proceso que est en primer plano, es el que interacta
con el usuario recibe entradas de teclado, y enva las salidas al monitor. (Salvo, por
supuesto, que haya redirigido la entrada o la salida). El proceso en segundo plano, no recibe
ninguna seal desde el teclado por lo general, se ejecutan en silencio sin necesidad de
interaccin.
Algunos programas necesitan mucho tiempo para terminar, y no hacen nada interesante
34
mientras tanto. Compilar programas es una de estas tareas, as como tambin comprimir un
archivo grande. No tiene sentido que se sentarse y esperar mientras estos procesos
terminan. En estos casos es mejor lanzarlos en segundo plano, para dejar el ordenador en
condiciones de ejecutar otro programa.
Los procesos pueden ser suspendidos. Un proceso suspendido es aquel que no se est
ejecutando actualmente, sino que est temporalmente parado. Despus de suspender una
tarea, puede indicar a la misma que contine, en primer plano o en segundo, segn se
necesite. Retomar una tarea suspendida no cambia en nada el estado de la misma, la tarea
continuar ejecutndose justo donde se dej.
Hay que tener presente en cuenta que suspender un trabajo no es lo mismo que
interrumpirlo. Cuando el usuario interrumpe un proceso (generalmente con la pulsacin de
ctrl-C), el proceso muere, y deja de estar en memoria y utilizando recursos del computador.
Una vez eliminado, el proceso no puede continuar ejecutndose, y deber ser lanzado otra
vez para volver a realizar sus tareas. Tambin se puede dar el caso de que algunos
programas capturan la interrupcin, de modo que pulsando ctrl-C no se para
inmediatamente. Esto se hace para permitir al programa realizar operaciones necesarias de
limpieza antes de terminar. De hecho, algunos programas simplemente no se dejan matar
por ninguna interrupcin.
Envo a segundo plano y eliminacin de procesos
Un ejemplo sencillo es el uso del comando yes, que es un comando aparentemente intil
que enva una serie interminable de yes a la salida estndar. (Realmente es muy til. Si se
utiliza una tubera ("pipe") para unir la salida de yes con otro comando que haga preguntas
del tipo si/no, la serie de yes confirmar todas las preguntas.)
Pruebe con esto.
/home/ricardo# yes
y
y
y
y
y
La serie de yes continuar hasta el infinito, a no ser que el usuario la elimine, pulsando la
tecla de interrupcin, generalmente ctrl-C . Tambin puede deshacerse de esta serie de yes
redigiriendo la salida estndar de yes hacia /dev/null, que es una especie de "agujero negro"
o papelera para los datos. Todo lo que el usuario enve all, desaparecer.
/home/ricardo# yes > /dev/null
Ahora va mucho mejor, el terminal no se ensucia, pero el prompt de la shell no retorna.
Esto es porque yes sigue ejecutndose y enviando esos intiles yes a /dev/null. Para
35
recuperarlo, se debe pulsar la tecla de interrupcin.
Supongamos ahora que se quiere dejar que el comando yes siga ejecutndose, y volver al
mismo tiempo a la shell para trabajar en otras cosas. Para ello se enviar yes a segundo
plano, lo que permitir ejecutarlo, pero sin necesidad de interaccin.
Una forma de mandar procesos a segundo plano es aadiendo un caracter "&" al final de
cada comando.
/home/ricardo# yes > /dev/null &
[1] 164
/home/ricardo#
Como se observa en el ejemplo anterior, se ha regresado a la shell. Pero qu es eso de "[1]
164"?, se est ejecutando realmente el comando yes?
En Smbolo "[1]" representa el nmero de tarea del proceso yes. La shell asigna un nmero
a cada tarea que se est ejecutando. Como yes es el nico comando que se est ejecutando,
se le asigna el nmero de tarea 1. El nmero "164" es el nmero de identificacin del
proceso, o PID, que es el nmero que el sistema le asigna al proceso. Ambos nmeros
pueden usarse para referirse a la tarea como veremos despes.
Ahora el usuario tiene el proceso yes corriendo en segundo plano, y enviando
constantemente la seal y hacia el dispositivo /dev/null. Para chequear el estado del
proceso, se utiliza el comando interno de la shell jobs:
/home/ricardo# jobs
[1]+ Running yes >/dev/null &
/home/ricardo#
Tambin puede usar el comando ps, como mostramos antes, para comprobar el estado de la
tarea.
Para eliminar una tarea, se utiliza el comando kill. Este comando toma como argumento un
nmero de tarea o un nmero de ID de un proceso. Esta era la tarea 1, as que usando el
comando
/home/ricardo# kill %1
matar la tarea. Cuando se identifica la tarea con el nmero de tarea, se debe preceder el
nmero con el caracter de porcentaje ("%").
Ahora que ya se ha matado la tarea, se puede usar el comando jobs de nuevo para
36
comprobarlo:
/home/ricardo# jobs
[1]+ Terminated yes >/dev/null
/home/ricardo#
La tarea est, en efecto, muerta, y si usa el comando jobs de nuevo, no mostrar
nada.
Tambin podr matar la tarea usando el nmero de ID de proceso (PID), el cual se muestra
conjuntamente con el ID de tarea cuando arranca la misma. En este ejemplo el ID de
proceso es 164, as que el comando
/home/ricardo# kill 164
es equivalente a
/home/ricardo# kill %1
No es necesario usar el "%" cuando se hace referencia a una tarea a travs de su ID de
proceso.
Parada y relanzamiento de tareas
Hay otra manera de poner una tarea en segundo plano. El usuario puede lanzarlo como un
proceso normal (en primer plano), pararlo, y despus relanzarlo en segundo plano.
Primero, lance el proceso yes en primer plano como lo har normalmente:
/home/ricardo# yes > /dev/null
De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de la shell.
Ahora, en vez de interrumpir la tarea con ctrl-C , se suspender la tarea. El suspender una
tarea no la mata: solamente la detiene temporalmente hasta que el usuario la retoma. Para
hacer esto el usuario debe pulsar la tecla de suspender, que suele ser ctrl-Z .
/home/ricardo# yes > /dev/null
ctrl-Z
[1]+ Stopped yes >/dev/null
/home/ricardo#
37
Mientras el proceso est suspendido, simplemente no se esta ejecutando. No gasta tiempo
de CPU en la tarea. Sin embargo, el usuario puede retomar el proceso de nuevo como si
nada hubiera pasado. Continuar ejecutndose donde se dej.
Para relanzar la tarea en primer plano, se puede usar el comando fg (del ingls
"foreground").
/home/ricardo# fg
yes >/dev/null
El shell muestra el nombre del comando de nuevo, de forma que tenga conocimiento de que
tarea es la que ha puesto en primer plano. Pare la tarea de nuevo, con ctrl-Z . Esta vez se
utiliza el comando bg para poner la tarea en segundo plano. Esto har que el comando siga
ejecutndose igual que si lo hubiese hecho desde el principio con "&" como en la seccin
anterior.
/home/ricardo# bg
[1]+ yes >/dev/null &
/home/ricardo#
Y tenemos de nuevo el prompt. El comando jobs deber indicar que yes se est ejecutando,
y se puede matar la tarea con kill tal y como se indico anteriormente.
Cmo se puede parar la tarea de nuevo? Si pulsa ctrl-Z no funcionar, ya que el proceso
est en segundo plano. La respuesta es poner el proceso en primer plano de nuevo, con el
comando fg, y entonces pararlo. Como se observa se puede usar fg tanto con tareas
detenidas, como con las que estn segundo plano.
Hay una gran diferencia entre una tarea que se encuentra en segundo plano, y una que se
encuentra detenida. Una tarea detenida es una tarea que no se est ejecutando, es decir, que
no usa tiempo de CPU, y que no est haciendo ningn trabajo (la tarea aun ocupa un lugar
en memoria, aunque puede ser volcada a disco). Una tarea en segundo plano, se est
ejecutando, y usando memoria, a la vez que se est completando alguna accin mientras el
usuario esta realizando otro trabajo. Sin embargo, una tarea en segundo plano puede
intentar mostrar texto en su terminal, lo que puede resultar molesto si est intentando hacer
otra cosa. Por ejemplo, si se us el comando
/home/ricardo# yes &
sin redirigir stdout a /dev/null, una cadena de yes se mostrar en el teminal, sin modo
alguno de interrumpirlo (no se puede hacer uso de ctrl-C para interrumpir tareas en segundo
plano). Para poder parar esas interminables yes, se tendr que usar el comando fg para
pasar la tarea a primer plano, y entonces usar ctrl-C para matarla.
Otra observacin. Normalmente, los comandos "fg" y "bg" actan sobre el ltimo proceso
parado (indicado por un "+" junto al nmero de tarea cuando usa el comando jobs). Si se
tienen varios procesos corriendo a la vez, se podra mandar a primer o segundo plano una
tarea especifica indicando el ID de tarea como argumento de "fg" o "bg", como en
38
/home/ricardo# fg %2
(para la tarea de primer plano nmero 2), o
/home/ricardo# bg %3
(para la tarea de segundo plano nmero 3). No se pueden usar los ID de proceso con fg o
bg.
Adems de esto, si usa el nmero de tarea por si solo, como
/home/ricardo# %2
es equivalente a
/home/ricardo# fg %2
Ntese nuevamente que el uso de control de tareas es una utilidad de la shell. Los
comandos fg, bg y jobs son internos de la shell. Si por algn motivo el usuario utiliza una
shell que no soporta control de tareas, que no espere disponer de estos comandos.
Y adems, hay algunos aspectos del control de tareas que difieren entre Bash y Tcsh. De
hecho, algunas shells no proporcionan ningn control de tareas, sin embargo, la mayora de
las shells disponibles para Linux soportan control de tareas.
Cronmetro del sistema
El cronometro del sistema es una utilidad que permite programar tareas para ser realizadas
cada cierto periodo de tiempo o especficamente en una fecha y hora determinada. El
archivo de configuracin de este es el crontab el cual contiene lneas de configuracin de la
siguiente manera:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
el orden de periodo es minutos, horas, das, semanas, aos.
39
Gestin de paquetes
Concatenacin y Compresin de Archivos
Para la concatenacin de archivos y/o directorios existe una utilidad llamada tar cuya
funcin es la de concadenar o fusionar un conjunto de archivos y/o directorios en un solo
archivo. Si por ejemplo se cuenta un directorio llamado wgestor la forma de concadenar
este directorio sera:
# tar cfv wgestor.tar wgestor/* (algunos unix necesitan un signo antes -cfv)
donde,
c: indica a tar que se concadenarn archivos,
f: hace referencia a que se usaran archivos o dispositivos, y
v: indica el modo prolijo (muestra los archivos que va desconcaenando).
En este caso todo el contenido del directorio wgestor quedara en un archivo llamado
wgestor.tar.
Para comprimir el archivo wgestor.tar generado se usa un programa llamado gzip, ejemplo:
# gzip wgestor.tar
la salida resultante ser un archivo llamado wgestor.tar.gz.
Las ultimas versiones de tar han incluido el argumento z para indicar que el archivo
concadenado ser tambin comprimido, as por ejemplo los dos comandos anteriores
pueden fusionarse en uno solo comando:
# tar czfv wgestor.tar.gz wgestor/*
otra forma de nombrar el archivo concadenado y comprimido sera usando la extensin tgz,
ejemplo:
# tar czfv wgestor.tgz wgestor/*
De forma genrica el uso de este comando estara dado por la estructura:
tar czfv <archivo de destino> <archivos fuente>
Nota: La utilidad tar posee ms argumentos que pueden ser examinados con el manual de linux man.
40
Descompresin y desconcadenacin de Archivos
La descompresin de archivos .gz se realiza con el comando gzip, ejemplo:
# gzip d wgestor.tar.gz
La salida es este comando sera el archivo wgestor.tar.
Por lo general el archivo que se descomprime es un archivo concadenado, por lo que se
debe desconcadenar, lo opuesto a la concatenacin se puede realizar por su puesto con el
comando tar, pero cambiando el argumento c por x. Por ejemplo:
# tar xfv wgestor.tar
La salida de este comando sera todo el directorio wgestor que fue concadenado.
Como se menciona anteriormente, las ultimas versiones tar usan el compresor y
descompresor gzip con el argumento z. Por lo tanto en un solo comando podemos realizar la
descompresin de desconcadenacin:
# tar xzfv wgestor.tar.gz
Configurador, Constructor e Instalador.
Por lo general las nuevas versiones de los paquetes de software disponibles para linux estn
en forma de programas fuentes, debido a esto es que se introdujo para la distribucin de
paquetes Unix en general un modelo genrico que facilita la compilacin de paquetes y es
independiente del tipo de sistema Unix.
Para instalar uno de estos paquetes que por regla general poseen la extensin .tar.gz o
.tgz se realizan los siguientes pasos:
1. Se descomprime y desconcadena el paquete:
# tar xzfv paquete.x.x.tgz
2. Se ingresa al directorio desconcadenado:
# cd paquete.x.x
3. Se llama al configurador el cual revisar todo el entorno del sistema operativo y crear
un archivo (Makefile) para el constructor:
4. Se ejecuta el constructor para compilar el paquete:
41
# make
5. Se ingresa como sper usuario (root) se ejecuta el instalador:
# su
password:
# make install
Se en todos estos pasos no se han detectado errores en los procesos de configuracin,
compilacin e instalacin, el paquete se ha instalado correctamente.
Gestor de paquetes de RedHat
El Gestor de paquetes de RedHat (RPM, Redhat Package Manager) es una aplicacin que
administra la instalacin y desinstalacin de paquetes en Linux. Este administrador de
paquetes no solo es usado por la distribucin RedHat, si no que se ha convertido en un
estndar Linux para la gestin de paquetes y fue adoptado por ejemplo por las
distribuciones Suse y Mandrake.
El RPM es un gestor de paquetes que posee mejores caractersticas que los clsicos
archivos tar.gz o tgz, ya que contiene los paquetes precompilados., adems de posee
dentro del formato RPM tareas de pre-instalacin y de post-instalacin, otorgando en la
instalacin una mejor configuracin en las variables de entorno necesarias por el paquete a
instalar y una exhaustiva comprobacin de los enlaces dinmicos y compatibilidad
necesaria para que el paquete sea instalado correctamente.
Para instalar un paquete RPM usamos por ejemplo el comando:
# rpm ivh paquete.x.x-x.i386.rpm
Para desinstalar el paquete RPM usamos por ejemplo el comando:
# rpm e paquete.x.x-x
42
Principales Servicios Internet
Linux en sus distintas distribuciones incorpora diferentes servicios Internet, los cuales
vienen preconfigurados y con pequeos cambios de configuracin se pueden habilitar.
Httpd (Apache Server)
Este servicio es llamado Apache, porque el software servidor de WEB se denomina de esta
forma. El apache queda preconfigurado en la instalacin de Linux y puede ser usado
levantando el servicio (/etc/rc.d/init.d/httpd restart). La identificacin URL del servicio
estar dada por el nombre de host que se le haya asignado el servidor Linux o en el dominio
DNS de la Red.
Agentes Transmisores de Correo (MTA,s)
Sendmail
El sendmail es el servicio de correos presente en la mayora de los servidores UNIX, su
archivo principal de configuracin es el "sendmail.cf" y se encuentra generalmente el
directorio /etc o /etc/mail. Dentro de las consideraciones para la configuracin de este
servicio, est la de incluir el archivo sendmail.cw (o /etc/mail/sendmail.cw) los dominios
por los cuales se noncer el servidor Linux que se usar como servidor de correo. Otro
aspecto importante es tambin agregar en el archivo /etc/mail/access los permisos de
RELAY correspondientes a la red o el dominio que ser usado por sendmail.
Postfix
Las ultimas distribuciones de Linux tales como RedHat 8.0 o Mandrake 9.0, poseen un
agente de Transmisin de correo Llamado Postfix el cual posee Caractersticas mejoras en
cuanto a seguridad, confiabilidad y rendimiento con respecto al Sendmail.
Qmail
Qmail es otro Agente de Transmisin de coreos, pero este no viene con las distribuciones
de Linux, muchas de las caractersticas de Qmail fueron tomadas por postfix, para aquellos
administradores de sistemas que desean un pdoderoso agente de correos es recomendable
usar Qmail.
43
Servicio POP
El servicio pop en si no interactua con ningn host de correo, sino que es un programa
servidor que entrega los correo a clientes de correo POP previa solicitud de envo de estos
por parte del cliente.
Servicio de Transferencia de Archivos (FTP)
El servicio de transferencia de archivos se utiliza generalmente para almacenamiento de
archivos que se dejan para dominio pblica en un servidor. Este servicio se configura como
parte de los servicio inet o el modo mejorado xinet. Posee dos modalidades de acceso, una
a los usuarios y otra como usuarios annimos.
FTP annimo
Instalar FTP annimo es sencillo. Basta con instalar el paquete rpm anon-ftp (si no lo
seleccion ya durante la instalacin). Una vez instalado, FTP annimo estar ejecutndose.

Para configurar su servidor FTP podra tener que modificar algunos archivos:

/etc/ftpaccess
Este archivo define la mayora de controles de acceso en su servidor ftp. Alguna de las
cosas que puede hacer es definir "grupos" lgicos para controlar el acceso desde diferentes
ubicaciones, limitar el nmero de conexiones simultneas de FTP, configurar el registro de
transferencias, y mucho ms. Lea la pgina del manual de ftpaccess para obtener ms
detalles.


/etc/ftphosts
ftphosts Se usa para permitir o denegar el acceso a ciertas cuentas desde diferentes hosts.
Consulte la pgina del manual de ftphosts para obtener ms detalles.


/etc/ftpusers
Es una lista de todos los usuarios a los que no est permitido entrar a travs de ftp en su
mquina. Por ejemplo, root est por defecto en la lista. Eso significa que no se permite
hacer ftp a su mquina como root. Esta es una buena medida de seguridad, aunque algunos
administradores prefieren borrar root de este archivo.

44
Referencias de Bases de datos y Lenguajes de
Programacin
GCC
Las versiones del compilador C, C++, Objetive C y Fortran estn integradas; es por eso que
usamos el acrnimo GCC "GNU Compiler Colection". GCC puede entonces compilar
programas escritos en C, C++, Objetive C o Fortran.
PERL
El PERL (Lenguaje prctico de extraccin y reporte, Pactical extraction and Report
Language) es un lenguaje de propsito general, que surgi con la idea de simplificar las
tareas de administracin de UNIX, pero que por su potencia se emplea en la actualidad en
para desarrollar mltiples aplicaciones, uno de los cuales es la escritura de programas CGI
para el desarrollo de formularios web.
Es un lenguaje interpretado, aunque internamente funciona como un compilador. Aunque
fue desarrollado originalmente en un entorno UNIX, actualmente existen versiones para
casi todos los sistema operativos.
El PERL es ampliamente usado en Linux para la programacin de CGI (Common Gateway
Interface), y programas de gestin de sistemas.
PostgreSQL
El PostgreSQL es un motor o servidor de Base de Datos fcil de usar y configurar, posee
interaccin con CGIs en C, y/o en Perl, permitiendo el desarrollo de sistemas de Base de
Datos con interfaz de WEB. Tambin funcionan bajo el modelo cliente/servidor, ya que
posee drivers ODBC para interactual con cualquier cliente Windows (Delphi, Visual Basic,
Access, etc...).
Para crear una Base de datos, ingresamos a la cuenta del usuario postgres, desde la cuenta
root:
# su postgres
postgres>
Luego creamos una Base de Datos postgres digitando el comando:
45
createdb prueba
psql prueba
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL type \? for
help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: postgres prueba=>
Este es el prompt (smbolo de sistema) de postgres, ahora podemos ejecutar comandos.
prueba=>create table prueba (campo1 varchar(10));
CREATE prueba=>insert into prueba values ('hello');
INSERT numerito 1 prueba=>commit work;
NOTICE:EndTransactionBlock and not inprogress/abort state
END prueba=>select * from prueba;
campo1
------
hello
(1 row) prueba=>drop table prueba;
DROP prueba=>Ctrl-d
Ya estamos fuera del monitor SQL.
En modo grfico existe un utilitario escrito en TCL que nos ayuda a crear tablas en una
base de datos:
# pgaccess
46
SAMBA
Introduccin
Samba es el protocolo de sesin de bloques de mensajes (Session Message Block, SMB),
tambin llamado protocolo NetBIOS o LanManager, en el Linux.
El protocolo SMB es usado por Microsoft Windows 3.11, NT y 95 para compartir discos e
impresoras.
Usando el paquete de herramientas Samba creado por Andrew Tridgell, las mquinas
UNIX (incluyendo Linux) pueden compartir discos e impresoras con servidores Windows.
Hay cuatro cosas que uno puede hacer con Samba:
Compartir una unidad de Linux con mquinas Windows.
Compartir una unidad de Windows con mquinas Linux.
Compartir una impresora de Linux con mquinas Windows.
Compartir una impresora de Windows con mquinas Linux.
Todos estos puntos estn cubiertos en este documento.
Instalacin
La ltima versin del cdigo de Samba est disponible en:
ftp://nimbus.anu.edu.au/pub/tridge/samba/.
De todas maneras, si se ha instalado la distribucin Red Hat, Mandrake, Suse u otra
avanzada, existe la opcin de instalarlo como paquete.
Algunas otras distribuciones tambin incluyen los ejecutables de Samba.
Se requieren los dos servicios (daemons) siguientes para el paquete Samba. Se suelen
instalar en /usr/sbin y se pueden ejecutar tanto desde los scripts de inicio del sistema como
desde inetd.
Ejecutando los demonios.
smbd (El servicio SMB)
nmbd (Provee un derivcio de nombres de NetBIOS para soporte de clientes)
Habitualmente, se instalan en /usr/bin los siguientes ejecutables de Samba, aunque la
localizacin (como de costumbre) es opcional.
47
smbclient (Un cliente SMB para maquinas UNIX)
smbprint (Un script para imprimir a una impresora en un servidor SMB)
smbprint.sysv (Como el de encima, pero para mquinas UNIX SVR4)
smbstatus (Lista de las conexiones SMB en marcha en el servidor local)
smbrun (Un script 'cola' para facilitar la ejecucin de aplicaciones en servidores).
Adicionalmente, se incluye en este COMO un script llamado 'print', que sirve como un til
front end para el script smbprint.
El paquete Samba es sencillo de instalar. Simplemente se baja el cdigo fuente del servidor
que se nombra anteriormente, y se lee el archivo README de la distribucin.
Hay tambin un archivo llamado docs/INSTALL.txt en la distribucin que da un sencillo
conjunto de instrucciones paso a paso.
Siguiendo con la instalacin, se debe ubicar los programas servidores en /usr/sbin y los
ejecutables en /usr/bin. Instalando las pginas del manual en /usr/local/man.
Cuando se compila el paquete Samba, se debe especificar en el Makefile la localizacin del
archivo de configuracin, smb.conf. Generalmente debera estar en /etc, pero se puede dejar
en cualquier ubicacin. Segn la distribucin la ubicacin de los archivos de configuracin
puede estar en uno u otro directorio sobre /etc, lo usual que es que se ubique en
/etc/smb.conf o en /etc/samba/smb.conf. Adems de estos archivos de configuracin se
cuenta tambin con una archivos de registro cuya ubicacin y nombre es /var/log/samba-
log, tambin est el directorio de bloqueo /var/lock/samba. Instala el archivo de
configuracin, smb.conf. Ve al directorio donde se compil el Samba. Mira en el directorio
examples/simple y lee el archivo README. En ese directorio encontrars el archivo
smb.conf.
Cpialo en /etc. TEN CUIDADO! Si tienes una distribucin de Linux que tiene el Samba
instalado ya, puede que ya tengas un archivo de configuracin en /etc. Probablemente
deberas usar el antiguo. Si no quieres que tu configuracin est en /etc, ponla donde
quieras y luego pon un enlace simblico en /etc:
ln -s /path/to/smb.conf /etc/smb.conf
Ejecutando los demonios
Los dos demonios de SMB son /usr/bin/smbd y /usr/sbin/nmbd.
Puedes ejecutar los demonios de Samba desde inetd o como procesos independientes. Si
ests configurando un servidor de archivos permanente, deberan ejecutarse desde inetd
para que sean reejecutados si 'mueren'. Si solo quieres usar los servicios SMB de vez en
cuando o como ayuda a la administracin del sistema, puedes ejecutarlos con un script en
/etc/rc.d/init.d o incluso a mano cuando los necesites.
Para ejecutar los demonios desde inetd, pon las siguientes lneas en el archivo de
configuracin de inetd, /etc/inetd.conf:
48
# Servicios SAMBA NetBIOS (para comparticin de archivos e impresoras en PC)
netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd
Entonces reejecuta inetd con el siguiente comando:
kill -HUP 1
Para ejecutarlos desde los scripts de inicio del sistema, pon las siguientes lneas en
/etc/rc.d/init.d/smb y hazle un enlace simblico con los archivos indicados en los
comentarios:
#!/bin/sh
#
# /etc/rc.d/init.d/smb - comienza y termina los servicios SMB.
#
# Se deben crear los siguientes archivos como enlaces simbolicos a este archivo:
# symlinks: /etc/rc.d/rc1.d/K35smb (Termina los servicios SMB al cerrar el sistema)
# /etc/rc.d/rc3.d/S91smb (Comienza los servicios SMB en modo multiusuario)
# /etc/rc.d/rc6.d/K35smb (Termina los servicios SMB al hacer un reboot)
# # Libreria de funciones
. /etc/rc.d/init.d/functions # Configuracion de red
. /etc/sysconfig/network # Asegurarse que la red esta a punto
[ ${NETWORKING} = "no" ] && exit 0 # Comprobar como fuimos llamados
case "$1" in
empezar)
echo -n "Poniendo en marcha los servicios SMB: "
daemon smbd -D
daemon nmbd -D
echo
touch /var/lock/subsys/smb
;;
parar)
echo -n "Terminando los servicios SMB: "
killproc smbd
killproc nmbd
rm -f /var/lock/subsys/smb
echo ""
;;
*)
echo "Modo de uso: smb {empezar|parar}"
exit 1
esac
49
Configuracin General (/etc/smb.conf)
La configuracin de Samba en un Linux (u otra mquina UNIX) es controlada por un solo
archivo, /etc/smb.conf. Este archivo determina qu recursos del sistema se quieren
compartir con el mundo exterior y que restricciones se desea poner en ellos.
Como las siguientes secciones 'direccionarn' la comparticin de unidades e impresoras de
Linux con mquinas Windows, el archivo smb.conf mostrado en esta seccin es lo ms
simple posible, solo para propsitos introductorios.
Cada seccin del archivo se inicia con una cabecera como [global], [impresoras], etc.
La seccin [global] define unas pocas variables que Samba usar para definir la
comparticin de todos los recursos.
La seccin [homes] permite a los usuarios remotos acceder a sus respectivos directorios
principales en la mquina Linux local (cada uno al suyo nada ms). Esto es, si un usuario
de Windows intenta conectar a este recurso desde su mquina Windows, ser conectado a
su directorio personal. A tener en cuenta que para hacer esto, tiene que tener una cuenta en
la mquina Linux. ;-)
El archivo smb.conf que viene debajo como ejemplo permite a los usuarios remotos
acceder a su directorio principal en la mquina local y escribir en un directorio temporal.
Para que un usuario de Windows vea estos recursos, la mquina Linux debe estar en la red
local. Entonces el usuario simplemente conecta una unidad de red desde el Explorador de
Windows o el Windows File Manager.
Fjate que en las siguientes secciones, se darn entradas adicionales a este archivo para
permitir la comparticin de ms recursos. ; /etc/smb.conf
;
; Reinicia el servidor cada vez que hagas cambios a este archivo, ej:
; /etc/rc.d/init.d/smb parar
; /etc/rc.d/init.d/smb empezar [global]
; Quita el comentario a la siguiente linea si quieres cuentas de invitado
; guest account = nobody
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba share modes = yes [homes]
comment = Directorios principales
browseable = no
read only = no
create mode = 0750 [tmp]
comment = Espacio de archivos temporales
path = /tmp
read only = no
public = yes
50
Compartiendo Una Unidad Linux Con Mquinas Windows
Como se muestra en el archivo smb.conf anterior, compartir una unidad Linux con usuarios
Windows es fcil. De todas maneras, como todo lo dems con Samba, puedes tener las
cosas MUY controladas. Aqu tienes unos pocos ejemplos:
Para compartir un directorio con todo el mundo, crea una copia de la seccin [tmp]
aadiendo algo como esto al smb.conf:
[public]
comment = Cosas publicas
path = /home/public
public = yes
writable = yes
printable = yes
Para que este directorio lo pueda leer todo el mundo, pero que slo lo puedan cambiar gente
del grupo 'laborales', modifica la entrada de esta manera:
[public]
comment = Cosas publicas
path = /home/public
public = yes
writable = yes printable = no
write list = @laborales
Para aprender otros truquillos con que jugar con las unidades compartidas, mira la
documentacin de Samba o las pginas del man.
Compartiendo Una Unidad Windows Con Mquinas Linux
Se incluye un programa cliente de SMB para mquinas UNIX con la distribucin de
Samba. Provee un interfaz estilo ftp para la lnea de comandos. Puedes usar esta utilidad
para transferir archivos entre un 'servidor' Windows y un cliente unix.
Para ver qu recursos estn disponibles en un host dado, ejecuta:
/usr/sbin/smbclient -L host
donde 'host' es el nombre de la mquina que quieres 'ver'. Esto devolver un lista de
nombres de 'servicios' --esto es, nombres de unidades o impresoras que puede compartir
contigo--. A menos que el servidor SMB no tenga la seguridad configurada, te preguntar
por una clave. Dale la clave de la cuenta de 'invitados' o de tu cuenta personal en esa
mquina.
51
Por ejemplo:
smbclient -L zimmerman
La salida de este comando debera ser algo parecido a esto:
Server time is Sat Aug 10 15:58:27 1996
Timezone is UTC+10.0
Password:
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
public Disk Public
C$ Disk Default share
IPC$ IPC Remote IPC
OReilly Printer OReilly
print$ Disk Printer Drivers This machine has a browse list: Server
Comment
--------- -------
HOPPER Samba 1.9.15p8
KERNIGAN Samba 1.9.15p8
LOVELACE Samba 1.9.15p8
RITCHIE Samba 1.9.15p8
ZIMMERMAN
La lista muestra otros servidores SMB con recursos para compartir con la red.
Para usar el cliente, ejecuta:
/usr/sbin/smbclient servicio <password>
donde 'servicio' es una mquina y un servicio. Por ejemplo, si ests intentando entrar en un
directorio que ha sido compartido como 'public' en una mquina llamada zimmerman, el
servicio debera llamarse \\zimmerman\public. De todas maneras, debido a restricciones del
shell, necesitars poner las barras invertidas con secuencias de escape, por lo que al final
saldr algo parecido a esto:
/usr/sbin/smbclient \\\\zimmerman\\public miclave
donde 'miclave' es una cadena literal con tu password.
Entonces te aparecer el 'prompt' del smbclient:
Server time is Sat Aug 10 15:58:44 1996
Timezone is UTC+10.0
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
smb: \>
52
Escribe 'h' para obtener una ayuda de como usar el cliente:
smb: \> h
ls dir lcd cd pwd
get mget put mput rename
more mask del rm mkdir
md rmdir rd prompt recurse
translate lowercase print printmode queue
cancel stat quit q exit
newer archive tar blocksize tarmode
setmode help ? !
smb: \>
Compartiendo Una Impresora Linux Con Mquinas Windows
Para compartir una impresora Linux con mquinas Windows, se necesita asegurar de que la
impresora est preparada para trabajar bajo Linux. Si se puede imprimir desde Linux,
preparar una 'comparticin' SMB de la impresora es automtico.
Para una revisin ms detallada ven en el COMO Imprimir (Printing HOWTO) para poner
a punto la impresora con Linux.
Ejemplo de cmo agregar una impresora compartida en el archivo de configuracin sera:
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba [printers]
comment = Todas las impresoras
security = server
path = /var/spool/lpd/lp
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700 [ljet]
security = server
path = /var/spool/lpd/lp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
Debe Asegrarse de que el 'path' de la impresora (en este caso bajo [ljet])se corresponde al
directorio de 'spool' en /etc/printcap!
53
NOTA: Hay algunos problemas compartiendo impresoras conectadas a UNIX con
mquinas Windows NT usando Samba. Un problema es que NT 'vea' la impresora
compartida correctamente. Para conseguirlo, se deben observar las notas en la distribucin
de Samba en el archivo docs/WinNT.txt. El otro va con problemas con las claves.
Gestores de Ventanas (Windows Managers)
Qu es un gestor de ventanas?
Un gestor de ventanas no es otra cosa que el conjunto de programas, ventanas y
funcionalidades, que hacen posible que el usuario pueda interactuar con el sistema de forma
grafica y no en modo texto.
Para usar un gestor de ventanas, hay que tener configurado un servidor X. Tambin hay que
decir que el gestor de ventanas utilizado es totalmente independiente del servidor X
utilizado[6].






Al contrario que en otros sistemas operativos, en Linux no es necesario utilizar un servidor
X o ms especificamente un gestor de ventanas para usar el sistema. El sistema operativo y
el conjunto servidor X-Gestor de ventanas usado, son cosas totalmente diferentes,
independientes entre si. Es ms, existen usuarios que trabajan en modo texto sin ningun
problema y sin usar un interfaz grafica.
Existen numerosos y variados gestores de ventanas para Linux, unos mejores y otros mas
desarrollados y estables. Es el usuario el que tiene que decidir que gestor satisface mejor
sus necesidades, pudiendo incluso tener mas de uno instalado. Para aclarar un poco las
cosas, podriamos decir que, si un ordenador es usado por varios usuarios, todos utilizaran el
mismo servidor X pero no necesariamente el mismo gestor de ventanas.
Cmo elijo el Gestor de ventanas que quiero arrancar?
Una vez configurado X se hace necesario decirle a Xwindow qu gestor de ventanas debe
arrancar. Dicho de una manera sencilla, XWindow es la conjuncin de 3 componentes:
Sistema Operativo
Servidor X
Xlib
Gestor de Ventanas Cliente X
54
El entorno de ventanas X Window: Es quien implementa las llamadas internas de
XWindow, el protocolo X, etc., es decir, el sistema de comunicaciones entre aplicaciones.
El servidor grfico X. Es un programa (un archivo ejecutable) encargado de responder a las
rdenes grficas encargadas por el entorno de ventanas. Es el encargado de dibujar
rectngulos, puntos de color o pixels, rellenar zonas, dibujar imgenes, etc. La manera de
decirle a XWindow qu ejecutable es el que deseamos usar es crear un enlace simblico
llamado /usr/X11R6/bin/X que apunte al servidor que usemos:
Ej: ln -s /usr/X11R6/bin/XF86-S3 /usr/X11R6/bin/X
(le dira que utilice el servidor de las S3).
Este enlace es creado por el programa de configuracin cuando seleccionamos la tarjeta en
la lista que nos presenta.
El gestor de ventanas es el mdulo encargado de decidir que aspecto, forma,
funcionalidades, atajos de teclado, opciones y menes debe tener Xwindow. As, al dividir
XWindow en estos 3 mdulos se nos permite cambiar cualquiera de ellos para dotar a
Xwindow del aspecto o funcionalidades que deseemos. El entorno de ventanas no suele
cambiarse nunca (es XFree86), y el servidor X tampoco, ya que ste ltimo es siempre el
ejecutable apropiado para manejar nuestra tarjeta grfica (XFree86-SVGA, XFree86-S3,
etc.), pero el ltimo es totalmente seleccionable entre multitud de opciones y es lo que nos
permite cambiar radicalmente el aspecto de XWindow. Cambiando el gestor de ventanas (o
Window Manager) podemos cambiar prcticamente el funcionamiento completo de
XWindow.
Gestores de ventanas hay muchos: kde, afterstep, gnome, WindowMaker, icewm, etc, y
todos tienen sus respectivos ejecutables: startkde, afterstep, gnome-session, wmaker,
icewm, etc. Toda esta explicacin se ha dado por un motivo muy sencillo: la posibilidad de
elegir el Gestor de Ventanas deseado es parte de la configuracin activa de XWindow, y
vamos a ver la manera de decirle a XWindow qu gestor deseamos utilizar.
Para ello, simplemente debemos ir al directorio HOME del usuario en cuestion
(/home/usuario) o de root (/root) y editar (crendolo si no existe) el archivo de texto
.xinitrc. En este archivo pondremos una lnea que indicar el Gestor de Ventanas que
deseamos utilizar, en el formato:
exec ejecutable_del_gestor_de_ventanas
Adems podemos utilizar lneas de comentarios que comiencen por el carcter '#' y que
XWindow ignorar:
Ejemplos de archivos .xinitrc:
# utilizar afterstep
exec afterstep
55
otro ejemplo podra ser lanzar kde:
# utilizar KDE
exec startkde
As, dependiendo del ejecutable que lancemos (startkde, gnome-session, icewm, wmaker,
ctwm, fvwm2, wmaker, blackbox, etc.) podremos arrancar el WM deseado.
Otra forma de elegir es seleccionado en el XDM el gestor de ventanas que deseamos usar,
pero que es el XDM, el XDM es Administrador de sesiones X, este programa corre en
segundo plano y siempre esta presente cuando configuramos el Linux para arranque en
modo grafico, las ltimas distribuciones de linux contienen XDMs mejorados tales como
kdm (por KDE) y gdm (por Gnome). As en cuando aparece en la ventana grfica de login
(kdm o gdm) es posible elegir de una lista de gestores de ventanas el gestor que se quierea
utilizar.
56
Referencias
[1] Curso de Linux http://www.cybercursos.net
[2] http://lucas.acer.com.mx/Cursos/distro/basico/html/node4.html
[3] http://moon.inf.uji.es/~koski/rollo.html#2
[4] G.L.U.P. - Gua de Linux Para el Usuario
Copyright @ 1993, 1994, 1996 Ricardo Green eld
[5] Kernel-Como-2 (INSUFLUG COMOs, Mirror en:
http://server3.ok.cl/lucas/htmls/comos.html)
[6] http://www.hispafuentes.com/manuales/7.0/hf-guia-usuario/x10118.html
57

Você também pode gostar