You are on page 1of 89

Introduccin al sistema operativo UNIX

Unix es una marca registrada de los Laboratorios Bell. UNIX no tiene un significado
especial, no es un acrnimo; sino un juego de palabras que imita a MULTICS, el sistema
operativo en que unos programadores trabajaron antes de iniciar el Unix.
Pareciera mentira pero podramos decir que el Unix naci a causa de un juego el Space
Travel desarrollado por Ken Thompson . Este juego corra bajo MULTICS pero los resultados eran
insatisfactorios.
Transcurra el ao 1969 y Thompson encontr una computadora chica donde correrlo, la
PDP-7 la cual provea un buen manejo de grficos.
Una vez transportado el programa necesit mejorar el ambiente (environment) de desarrollo
y fue as como cre junto con Dennis Ritchie, un nuevo sistema operativo (S.O) para esa mquina;
donde incluyeron un sistema de archivos, un subsistema de procesos y un pequeo conjunto de
utilitarios. A este nuevo sistema se le dio el nombre de Unix.
En 1971 este sistema fue portado a una PDP-11 (ocupaba 16 K para el sistema, 8 K para
programas de usuario y 512 K en disco), que eran ms avanzados que el obsoleto PDP-7. Estos
sistemas fueron los dominantes en el mundo de los minicomputadores en la dcada de los 70.
Luego de un tiempo en el que el sistema era muy estable, Thompson decidi escribirlo en un
lenguaje de alto nivel, lo comenz a escribir en lenguaje B. Este lenguaje tenia muchas
limitaciones (era interpretado y no tena tipos de datos estructurado), entonces fue mejorado por
Ritchie y se lo rebautiz como C.
En 1973, Ritchie y Thompson rescribieron el ncleo de Unix en C, rompiendo as con la
tradicin de que el software de sistemas est escrito en lenguaje ensamblador.
Hacia 1974 este S.O fue introducido en las universidades con fines educacionales y no
pasaron unos aos que ya estaba disponible para uso comercial. En estos tiempos los sistemas
Unix prosperaron en los Laboratorios Bell y de all se difundieron a los laboratorios, a los proyectos
de desarrollo de software y a las compaas de telfono en Estados Unidos.
En el perodo 1977 a 1982 los laboratorios Bell y AT&T acordaron agregar nuevas variantes
y nace comercialmente el Unix System III. Luego de un tiempo y con otras modificaciones nace el
System V. A partir de este momento las instalaciones de sistemas Unix crecieron en todo el mundo.
En 1982 la empresa Microsoft desarrolla el S.O XENIX usando el cdigo fuente de Unix.
Quien hubiera credo que Microsoft desarrollara un sistema el cual hoy es su competidor mas
aguerrido en el mercado. La historia suele tener tantos interrogantes y uno de ellas es porque
Microsoft no puso ms empeo en Unix y se volc totalmente al D.O.S, un sistema que delante de
Unix es como un grano de arena .
Hasta aqu quisimos dar algunos de los puntos de referencia ms importantes en la historia
del Unix. Pero a qu se debe el xito y la constancia de los sistemas Unix?
Las razones por las cuales creemos que es as, se resumen en sus caractersticas.

Caractersticas

Es interactivo: permite el dilogo entre el usuario y el computador. El sistema acepta


rdenes, las ejecuta y se dispone a esperar otras nuevas.
Es multitarea: permite que se puedan ejecutar varios procesos al mismo tiempo
compartiendo el uso del procesador.
Es multiusuario: permite a varios usuarios compartir los recursos del computador
simultneamente.
Es portable: es un sistema independiente del procesador y del equipo, esto se debe a que
en su mayora esta escrito en C, por lo cual puede ser portado a cualquier computador.
Posee distintos niveles de seguridad, incluyendo claves de ingreso al sistema; y permisos
de acceso a los archivos y directorios. Contiene un potente lenguaje de programacin de
comando (SHELL) lo cual permite a los usuarios la creacin de sus propios comandos.
Estructura jerrquica de archivos.
Permite trabajar en modo background, realizar tareas en segundo plano sin bloquear la
terminal.
Mantiene colas de impresin (SPOOLER).
Maneja procesos diferidos, procesos que se ejecutan a determinado horario.
Provee utilitarios de manejo de texto.

Arquitectura interna
La estructura de Unix se amolda a un tpico modelo de capas, de forma que cada capa
nicamente puede comunicarse con las capas que se hallan en los niveles inmediatamente inferior
y superior.
El ncleo (kernel) del sistema interacta directamente con el hardware y proporciona una
serie de servicios comunes a los programas de las capas superiores, de forma que las
peculiaridades del hardware permanecen ocultas. Como los programas son independientes del
hardware, es fcil mover programas entre sistemas Unix que se ejecutan en hardware diferente.

KERNEL: es el ncleo del sistema, realiza funciones directamente relacionadas con el hardware.
No se relaciona con el usuario. Permanece oculto. Est formada por dos partes importantes:

Administracin de procesos: asigna y administra los recursos de la computadora,


controla la ejecucin de los procesos, planifica el tiempo de los procesos que corren a
la vez y determina los privilegios de cada uno.

Administracin de dispositivos: supervisa la transferencia de datos entre la memoria


principal y los perifricos (discos, cintas, impresoras, terminales, etc.)

La ejecucin de un proceso en UNIX se divide en dos niveles: nivel usuario y nivel kernel.
Cuando se produce una llamada al sistema se pasa del modo usuario al modo kernel. ste analiza
la llamada, la ejecuta y devuelve el control a modo usuario. Esta diferenciacin de modo se
produce porque los procesos en modo usuario pueden acceder a sus instrucciones y datos, pero
no a instrucciones y datos del kernel o de otros usuarios; mientras que el modo kernel puede
acceder a todos los datos e instrucciones del sistema. Hay instrucciones privilegiadas a las que
slo se puede acceder en modo kernel, el cual reside permanentemente en memoria.
SHELL: es un utilitario del sistema (no forma parte del kernel). Es el intrprete de comandos.
Su tarea es tomar los comandos enviados por
el usuario, interpretarlos y llamar a las rutinas correspondientes. Existen distintas versiones del
SHELL:

sh (standard shell)
csh (c-shell)
vsh (visual shell)
rsh (restricted shell)
ksh (korn shell)

Cada usuario puede elegir su propio shell. Un shell muestra un indicador (prompt) para
indicar al usuario que est preparado para aceptar una orden o instruccin. Para introducir una
orden desde el teclado, se escribe el nombre de la orden junto con la informacin que esta requiera
y se pulsa la tecla retorno de carro. Esta lnea tecleada se denomina lnea de comandos u rdenes.
Cuando el shell lee una lnea de comandos, extrae la primera palabra, asume que ste es el
nombre de un programa ejecutable, lo busca y lo ejecuta. El shell suspende su ejecucin hasta que
el programa termina, tras lo cual intenta leer la siguiente lnea de rdenes.

Introduccin al sistema operativo LINUX


Linux es una de las tantas variantes de Unix. Se trata de un sistema operativo de 32 bits de libre
distribucin, desarrollado originalmente por Linus Torvalds , un estudiante de la universidad
finlandesa de Helsinki, quien, en 1991, se aboc a la tarea de reemplazar a Minix, un clon de Unix
de pequeas proporciones y finalidad acadmica desarrollado aos antes por Andrew Tannenbaun.
A medida que avanzaba en su desarrollo, Linux fue dejando el cdigo fuente de las sucesivas
versiones del kernel y utilidades de Linux a disponibilidad de los usuarios de Internet. Este fue sin
duda un gran acierto, ya que hizo posible que una multitud de desarrolladores de todo el mundo se
familiarizaran con el cdigo, lo cual en primera instancia signific un gran aporte de sugerencias,
evolucionado luego hacia un espectacular ejemplo de desarrollo distribuido de software:
centenares de desarrolladores independientes, desde diferentes puntos del planeta tomaron a su
cargo la produccin de software para Linux, ya sea escribindolo desde cero o portndolo desde
otras plataformas Unix. Esta modalidad de desarrollo continua an hoy y ha permitido a Linux
alcanzar un alto nivel de desarrollo y madurez, as tambin como un amplio grado de aceptacin.

Actualmente, Linux posee todas las caractersticas que pueden encontrarse en cualquier sistema
Unix moderno, incluyendo direccionamiento lineal de 32 bits, memoria virtual, multitarea real,
shared libraries, mdulos de kernel cargables on-demand, soporte TCP/IP (incluyendo SLIP, PPP,
NFS, etc.), y entorno grfico X-Windows.
Linux es distribuido bajo la Licencia General Pblica de GNU, lo cual significa que puede ser
distribuido, copiado y modificado gratuitamente, a condicin de no imponer ninguna restriccin en
sucesivas distribuciones. En pocas palabras: Linux es un sistema operativo gratuito.

Componentes de linux
Linux se puede dividir generalmente en cuatro componentes principales: el ncleo(kernel), el shell,
el sistema de archivos y las utilidades.
El ncleo: es el programa medular que ejecuta programas y gestiona dispositivos de hardware
tales como los discos y las impresoras.
El shell: proporciona una interfaz para el usuario. Recibe rdenes del usuario y las enva al ncleo
para ser ejecutadas.
El sistema de archivos: organiza la forma en que se almacenan los archivos en dispositivos de
almacenamiento tales como los discos. Los archivos estn organizados en directorios. Cada
directorio puede contener un nmero cualquiera de subdirectorios, cada uno de los cuales puede a
su vez, contener otros archivos.
El ncleo, el shell y el sistema de archivos forman en conjunto la estructura bsica del sistema
operativo. Con estos tres elementos puede ejecutar programas, gestionar archivos e interactuar
con el sistema. Adems, Linux cuenta con unos programas de software llamados utilidades que
han pasado a ser considerados como caractersticas estndar del sistema.
Las utilidades: son programas especializados, tales como editores, compiladores y programas de
comunicaciones, que realizan operaciones de computacin estndar. Incluso uno mismo puede
crear sus propias utilidades.
Linux contiene un gran nmero de utilidades. Algunas efectan operaciones sencillas: otras son
programas complejos con sus propios juegos de rdenes. Para empezar, muchas utilidades de
pueden clasificar en tres amplias categoras: editores, filtros y programas de comunicaciones.
Tambin hay utilidades que efectan operaciones con archivos y administracin de programas.
En lneas generales podemos decir que se dispone de varios tipos de sistema de archivos para
poder acceder a archivos en otras plataformas. Incluye un entorno grfico X window (Interface
grfico estandard para mquinas UNIX), que nada tiene que envidiar a los modernos y caros
entornos comerciales. Est orientado al trabajo en red, con todo tipo de facilidades como correo
electrnico por ejemplo. Posee cada vez ms software de libre distribucin, que desarrollan miles
de personas a lo largo y ancho del planeta. Linux es ya el sistema operativo preferido por la
mayora de los informticos.
Un ejemplo de la popularidad que ha alcanzado es sistema y la confianza que se puede depositar
en l es que incluso la NASA ha encomendado misiones espaciales de control de experimentos a
la seguridad y la eficacia de Linux.
Por lo tanto, la gran popularidad de Linux incluye los siguientes puntos:

Se distribuye su cdigo fuente, lo cual permite a cualquier persona que as lo desee hacer
todos los cambios necesarios para resolver problemas que se puedan presentar, as como tambin
agregar funcionalidad. El nico requisito que esto conlleva es poner los cambios realizados a
disposicin del pblico.
Es desarrollado en forma abierta por cientos de usuarios distribudos por todo el mundo,
los cuales la red Internet como medio de comunicacin y colaboracin. Esto permite un rpido y
eficiente ciclo de desarrollo.
Cuenta con un amplio y robusto soporte para comunicaciones y redes, lo cual hace que
sea una opcin atractiva tanto para empresas como para usuarios individuales.
Da soporte a una amplia variedad de hardware y se puede correr en una multitud de
plataformas: PC's convencionales, computadoras Macintosh y Amiga, as como costosas
estaciones de trabajo
Linux es Multitarea:
La multitarea no consiste en hacer que el procesador realice ms de un trabajo al mismo tiempo
(un solo procesador no tiene esa capacidad), lo nico que realiza es presentar las tareas de forma
intercalada para que se ejecuten varias simultneamente. Por lo tanto en Linux es posible ejecutar
varios programas a la vez sin necesidad de tener que parar la ejecucin de cada aplicacin.
Linux es Multiusuario:
Para que pueda desarrollar esta labor (de compartir los recursos de un ordenador) es necesario un
sistema operativo que permita a varios usuarios acceder al mismo tiempo a travs de terminales, y
que distribuya los recursos disponibles entre todos. As mismo, el sistema debera proporcionar la
posibilidad de que ms de un usuario pudiera trabajar con la misma versin de un mismo programa
al mismo tiempo, y actualizar inmediatamente cualquier cambio que se produjese en la base de
datos, quedando reflejado para todos.
Pues bien, este sistema operativo no lo tenemos que inventar puesto que y esta inventado. Pero
no todo es tan bonito como se pinta ya que el hecho de que se conecten a tu ordenador ms
usuarios significa que es ms difcil mantener tu seguridad.
Linux es multiplataforma
Es decir que puede correr en muchas CPU distintas (Intel, AMD, motorola, sun, sparc, etc.)
Linux es Seguro:
Linux se autoprotege; NO existen virus para Linux.
En la estructura de Linux aparecen cuatro elementos situados en
bloques diferentes, cada uno de los cuales tiene encomendado
una funcin:
Hardware.
Ncleo o Kernel.
Shell.
Usuario.
El usuario utiliza todas las aplicaciones basadas en Linux, as como sus utilidades y ordenes
propias. Su informacin estar organizada mediante un sistema de archivos; de todo el sistema solo

puede interactuar con el shell (Es encargado de interactuar con el usuario y el kernel ncleo) que a
su vez es el interprete de comandos, as como un pequeo lenguaje de programacin con el que
programar nuevas funciones o personalizar algunas existentes.
El ncleo es el nico que interacta con el hardware. Incluye entre sus funciones las operaciones
ms importantes de gestin del sistema operativo, como puede ser la gestin de memoria,
mantenimiento del sistema de archivos, asignacin de tiempo del CPU a cada una de las tareas, el
control del acceso a un ordenador mediante claves, etc...
El elemento hardware estar formado por todos los componentes que en un momento determinado
puede detectar el sistema.

Conexin al sistema
La conexin al sistema operativo se realiza a travs de clientes que utilicen el protocolo TCP/IP.
Estos clientes muchas veces vienen incorporados en los sistemas operativos instalados en las pcs
(tales como windows, DOS, MAC, etc). Los clientes de mayor uso son el telnet y el ssh. Estos dos
clientes permiten una conexin remota y la administracin adecuada del sistema.
Cliente telnet.- Este cliente forma parte de la suite de protocolos TCP/IP; los sistemas operativos
que provean soporte a este cliente tambin trabajan con dicho protocolo. Este protocolo fue
durante mucho tiempo el metodo de administracin remota mas usado en redes LAN. El problema
se da cuando la seguridad esta en juego: telnet no encripta los datos que son enviados a traves de
la red poniendo en serie peligro la seguridad de los mismos. Existe en internet programas de
acceso libre los cuales permiten capturar los paquetes de la red y armarlos, desde cualquier pc
conectada a la red local. Esto es tremendamente peligroso desde el punto de vista de la seguridad.
Cliente ssh.- Este provee mayor seguridad al usuario administrador o a cualquier usuario que se
conecta a un sistema linux pues la ventaja que ofrece es la encriptacin de los datos antes de ser
enviados a la red. De este modo, si los datos son capturados en la red local por otra pc, el usuario
deber tomarse su tiempo para descifrarlos.
Cliente ftp.- Este cliente se utiliza para descargar informacin desde la red a nuestro pc. Es de uso
generalizado en la internet y permite obtener copias de programas en instantes, dependiendo de la
velocidad de descarga de la lan. En la mayoria de los servidores ftp en inernet el acceso a este
protocolo se realiza mediante el cliente annimo. En este caso, el usuario conectado al sistema
posee pocos privilegios y solo puede descargar el software disponible en el servidor.
Existen varios protocolos de conexin a un sistema UNIX/LINUX. Para ilustrar un poco este detalle,
usaremos el programa PUTTY.EXE el cual simula la conexin telnet y ssh.

Este programa es un cliente bastante usado en la administracin remota de linux. Bsicamente,


provee soporte telnet y ssh para la conexin. Bastara con indicar la IP del servidor y seleccionar el
tipo de conexin que deseamos con el servidor (Raw, Telnet, Rlogin, SSH). A continuacin, si el
proceso de autenticacin es valido, entonces linux nos provee una ventana del shell
predeterminado con la linea de comandos activa y listo para trabajar.

Qu es una distribucin?
Una distribucin de Linux es simplemente un conjunto de programas recopilados a lo largo y ancho
de sitios en Internet, organizados de tal manera que ofrezcan una solucin particular o general
hacia l o los usuarios. No cambia en nada Linux de una distribucin a otra, ya que en realidad
Linux es tan solo un archivo pequeo el cual se encarga de poner orden y administrar optimamente
la computadora tanto a la hora del arranque como durante el tiempo que permanece encendida.
Las personas o empresas que integran las distribuciones seleccionan software a su criterio, y lo
incorporan dentro de una serie de discos compactos con conjuntos de herramientas y aplicaciones
de instalacin. As que a veces una distribucin no significa que sea mejor que otra por tener diez
discos o por que solo est contenida en un solo disco. Las distribuciones se adaptan a las
necesidades de los usuarios, para qu tener una distribucin con paquetes y programas para
administracin de redes, si el trabajo ser para el hogar? Una distribucin es mejor a otra cuando
el reconocimiento de los usuarios a nivel mundial le otorgue tal distincin.

Distribuciones famosas Cul escojer?


GNU/Linux Debian
Denotada como la mejor de las distribuciones en el
mundo, enfocada primordialmente a desarrolladores,
programadores, administradores de red, centros de
cmputo de alto desempeo
Mandrake Linux:
Usuarios de cmputo del hogar, oficina, escuela.
Bastante fcil de instalar, amigable y con una cantidad
de paquetes suficientes para comenzar a conocer Linux
en serio.
RedHat Linux:
Usuarios enfocados a pequeas redes, estudiantes
universitarios, programadores y centros de informacin
de tamao mediano.

COREL Linux:
Usuarios que no tienen mucho espacio en la
computadora, interesados en conocer Linux sin
comprometer mucho espacio y que solo necesitan
paquetes bsicos, por lo regular recomendada para
estudiantes y entusiastas de la computacin
SuSE:
Distribucin alemana multipropsito, algunas
configuraciones requieren de conocimientos adicionales.
Programas e interafeces que facilitan su uso.
Slackware:
Distribucin para los amantes de la historia de Linux.
Bastante completa, recomendada para desarrolladores y
programadores

Instalacin de RedHat Linux 9


En esta parte explicaremos como instalar RedHat Linux 9 y los pasos que hay que seguir para una
instalacin con el asistente grfico. Se trataran los siguientes temas:
Familiarizacin con la interfaz grafica de instalacin
Inicio del programa de instalacin
Eleccion del metodo de instalacion
Pasos para la configuracin durante la instalacin (idioma, teclado, mouse, etc.)
Crear las particiones linux tpicas
Selecciona componentes de software
Finalizar la instalacin
Interfaz de usuario del programa de instalacin.- Si ha utilizado una interfaz grafica con
anterioridad, este proceso le ser muy familiar. Esta interfaz es bastante intuitiva, al estilo windows
de Microsoft. Bastara con manipular el ratn y navegar a traves de las pantallas de instalacin.
Arranque del programa de instalacin
Deberemos de disponer del espacio en disco duro necesario para la instalacin. Si
tenemos un
sistema ya instalado, podremos obtener utilizando herramientas como el Partition
Magic o el
FIPS. Es muy recomendable realizar una copia de seguridad de nuestros datos antes de
realizar
esta operacin. Tambin es importante considerar el hecho de que linux debe ser por
siempre el ultimo sistema a instalar en la pc cuando el disco duro debe compartirse con
particiones dos.
De otro lado, recomiendo instalar linux dentro de la particin extendida dos, de esta
manera puede generar varias particiones para los directorios especiales (/var,
/home, /usr, /, y alguno mas de su eleccin).
Una vez nos hemos asegurado de tener espacio libre y hacer una copia de seguridad,
deberemos cambiar la secuencia de arranque de nuestra BIOS para que arranque en
desde
CD-ROM.
INSTALACION
Una vez introducido el CD de instalacin y arrancado, nos saldr una pantalla que nos
da a elegir entre realizar una instalacin en modo grfico o en modo texto.
Si desearamos entrar en modo texto deberamos teclear: linux text
Como vamos a realizar una instalacin sencilla en modo grfico, pulsaremos enter.
A continuacin nos pregunta si deseamos verificar nuestros cd's en busca de errores.
Si es la
primera vez que instalamos desde estos cd's, deberamos decir Ok. De lo contrario
pulsaremos Skip.
Despus detecta nuestro hardware de video y ratn y entra en la instalacin en modo
grfico. Si
hubiera algn tipo de problema con esta deteccin, proceder con la instalacin en
modo texto.
Si todo va bien, se nos mostrar la pantalla de bienvenida.

Las siguientes pantallas de instalacin cuentan con una ayuda en la parte izquierda
con una
descripcin acerca de las opciones que podremos elegir durante la instalacin.
Esta ayuda ser en castellano una vez hayamos seleccionado nuestro idioma.
Hay unos botones en la parte inferior izquierda, uno esconde la ayuda y el otro que nos
muestra
notas de la versin que estamos instalando. Pulsaremos Next. La siguiente pantalla es
la de seleccin del idioma, seleccionaremos el nuestro y pulsaremos Next.

10

A
continuacin se nos preguntar por el tipo de teclado, seleccionaremos el nuestro y
pulsaremos Siguiente.

La siguiente pantalla es la de seleccin del ratn. Podemos buscar el nuestro en


funcin del
fabricante o bien seleccionar un ratn genrico en funcin de la conexin.

11

Si nuestro ratn es de tipo serie, deberemos seleccionar adems el puerto al que va


conectado. El sistema grfico XWindow utiliza tres botones, si nuestro ratn es de dos,
podremos emular el tercero pulsando los dos botones a la vez. Para ello deberemos
asegurarnos de que la casilla Emular 3 botones est activada. A continuacin chequea
nuestra tabla de particiones. Puede ser que nos de un error debido a que la tabla se
hizo con un programa diferente. En la mayora de los casos valdra pulsar Ignorar.
En esta pantalla se nos muestra una serie de perfiles de instalacin.

12

Los perfiles que nos ofrece son:

Escritorio personal: enfocado al usuario comn


Estacin de trabajo: enfocado al usuario un poco ms avanzado, con
programas para el desarrollo de software y administracin de sistemas
Servidor: enfocado para la instalacin de un servido
Personalizada: nos permite seleccionar el software a instalar

Seleccionaremos el que se aproxime al nuestro o bien una instalacin personalizada en


la que podremos seleccionar los paquetes de instalacin manualmente. En este curso
trabajaremos con la opcin Personalizada.
Aparece la pantalla de configuracin del particionado del disco duro.

13

Existen dos opciones:

Dejar que el instalador haga automticamente las particiones


Particionar nosotros manualmente mediante la utilidad Diskdruid.

Si seleccionamos la opcin de particionado automtico aparecer el Diskdruid con la


tabla de
particiones actual.
Existen diferentes maneras de particionar el sistema. La ms sencilla es crear una
particin para
la memoria virtual (swap) que ser aproximadamente del tamao de la RAM y otra
sobre la que
almacenaremos el sistema entero (punto de montaje / ).
Otra opcin bastante aconsejable es crear particiones especficas para otros puntos de
montaje como puede ser el /home (donde se almacenan los datos de los usuarios) o
el /boot
(donde se almacena los programas de arranque del sistema).
En esta instalacin, crearemos primero una particin en el espacio libre pulsando en
Nuevo y
all ponemos el punto de montaje /boot para los programas de arranque. RedHat
sugiere un
mnimo de 75Mb para esta particin.

14

Despus crearemos la particin de intercambio (swap) para la memoria virtual. Para


ello en tipo
de sistema de ficheros elegir swap. Y especificaremos el tamao. RedHat recomienda
que
sea del tamao de la RAM.

15

Para nuestra practica, crearemos puntos de montaje para los siguientes directorios:

/var de preferencia con 1.2 3.5 GB de tamao de particin


/home la capacidad de esta particin depender de cuantos usuarios tiene
/usr de preferencia con 3.5 GB para evitar penas futuras cuando actualicemos o instalemos
nuevos programas
/ (raz) con aproximadamente 1.5 GB

Finalmente, debemos tener el siguiente esquema de trabajo:

16

Una vez finalizado el particionado, pulsaremos Siguiente.


Despus se pasa a configurar el gestor de arranque.

Se puede elegir entre el GRUB o el LILO. Por defecto RedHat sugiere el GRUB.
Aparecer la lista de los sistemas instalados para arrancar con el gestor de arranque.
Podemos aadir y modificar elementos con los botones correspondientes. Podemos
tambin seleccionar uno que arranque por defecto al cabo de unos segundos marcando
la casilla al seleccionar Modificar.
En este caso se sugiere marcas la casilla DOS, de esta manera el arranque por defecto
ser Windows.
Si el sistema detectara una tarjeta de red, se nos mostrar la pantalla de configuracin
de la

17

Misma , en la cual especificaramos su configuracin IP.

Seleccionamos el botn Modificar e ingresamos la direccin IP y la mascara de red de la tarjeta.


Consultar al administrador de la red para estos datos. Una vez establecidos los parmetros
adecuados procddemos con el cortafuegos:

Seleccione la opcin Ningn firewall o de lo contrario la seguridad externa no le permitir realizar


conexiones al servidor ni siquiera a travs de la red local. Esta informacin puede cambiarse
posteriormente.
A continuacin se nos permite seleccionar otros idiomas adicionales para instalar en el
sistema.

18

En este punto, si desea instalar RedHat en castellano, seleccione las opciones de Per y Espaa
simultneamente o slo instalar la versin en ingls.
Luego, seleccionaremos nuestro huso horario. Esta pantalla tiene un detector grfico
del huso horario.

Seleccionaremos la contrasea para el usuario root, que ser el usuario de


administracin del
sistema. Es muy importante no olvidar esta contrasea.

19

Luego, pasaremos a la configuracin de la autenticacin. La opcin MD5 permite


especificar contraseas cifradas y la opcin shadow utiliza el archivo shadow de
contraseas cifradas para autenticar usuarios. NIS es un servidor de autenticacin en la
red y a menos que exista uno en la red, no habilitarlo.

Podremos tambin configurar el poder validar los usuarios contra un servidor LDAP,
Kerberos 5 y SMB (windows).

20

La ventana anterior aparece durante una instalacin personalizada. En ella se puede seleccionar
los paquetes de instalacin que usted desee. Recordemos que RedHat utiliza el administrador de
paquetes RPM (RedHat Package Manager) el cual le permita instalar, desinstalar, actualizar o
revisar la instalacin de paquetes de linux. Una vez seleccionados los componentes a instalar
presionamos Siguiente y aparece la ventana previa a la copia de archivos.

Durante la instalacin de paquetes, linux le ofrece una pantalla mostrando el progreso de la


instalacin en s. Luego, le pedir cambiar los CDs en caso realice una instalacin utilizando

21

CDROM local. Si la instalacin es a travs de la red, entonces no se le pedir ninguna accin al


respecto.

Al finalizar la copia de archivos, se le solicitar crear un disco de arranque. Es bueno tener un


disquete de arranque en caso el sistema falle al arrancar y evitara perdidas de tiempo innecesarias.
Regla practica: crear un disquete de arranque para evitar malos momentos despus.

22

A continuacin se procede a la configuracin de la tarjeta de video y el monitor.

Si la deteccin inicial ha ido bien, aparecer seleccionada nuestra tarjeta de video y la


capacidad de RAM asociada de la tarjeta.
Pulsaremos Siguiente. Entraremos en la configuracin del monitor:

Del mismo modo, debera estar ya configurado, sino podemos seleccionarlo de la lista
de

23

fabricantes o especificar las frecuencias de nuestro monitor.


Configuraremos ya para finalizar la configuracin de la resolucin y los colores:

Note que hemos seleccionado el arranque del sistema en modo texto. En caso de servidores, no
sirve mucho el arranque grfico. Presione siguiente.
Felicitaciones!!! . Acaba de instalar su sistema linux RedHat 9 en su pc. Claro, solo si aparece la
siguiente pantalla, entonces cante victoria:

24

La velocidad con la que el programa de instalacin realiza esta tarea depender mucho de las
caractersticas de su sistema (procesador, velocidad del mismo, tamao de la memoria, tamao del
disco duro y velocidad, etc.)
A continuacin, una vez terminado este proceso pasaremos a ver la configuracin post instalacin
de linux redhat.

Control de acceso a servicios


El mantenimiento de la seguridad en su sistema Red Hat Linux es extremadamente importante.
Una forma de administrar la seguridad en el sistema es mediante una gestin minuciosa del acceso
a los servicios del sistema. Probablemente su sistema deber proporcionar acceso a determinados
servicios (por ejemplo, httpd si ejecuta un servidor Web). Sin embargo, si no necesita proveer este
servicio, debera desactivar esta funcin para que de este modo se minimice la exposicin a
potenciales fallos.
Hay diferentes mtodos de administrar el acceso a los servicios del sistema. Debe decidir qu
mtodo le gustara usar en funcin del servicio, la configuracin del sistema y el nivel de
conocimientos que tenga de Linux.
La forma ms fcil de denegar el acceso a un servicio es desactivndolo. Tanto los servicios
administrados con xinetd (discutidos ms adelante en esta seccin) y los servicios en la jerarqua
/etc/rc.d se pueden configurar para iniciarse o detenerse con tres aplicaciones diferentes:

Herramienta de configuracin de servicios una aplicacin grfica que muestra una


descripcin de cada servicio, muestra si los servicios se han iniciado en el momento del
arranque (para los niveles de ejecucin 3, 4, y 5), y permite que los servicios sean
arrancados, detenidos o reiniciados.
ntsysv una aplicacin basada en texto que permite configurar cules servicios son
arrancados al momento de arranque para cada nivel de ejecucin. Los cambios no toman

25

efecto de inmediato para los servicios no xinetd. Los servicios que no son xinetd no pueden
ser arrancados, detenidos o reiniciados usando este programa.

chkconfig utilidad de lnea de comandos permite activar o desactivar servicios para los
diferentes niveles de ejecucin. Los cambios no toman efecto de inmediato para los
servicios no xinetd. Los servicios no xinetd no pueden ser arrancados, detenidos o
reiniciados usando esta utilidad.

Pronto descubrir que estas herramientas son ms fciles de usar que las alternativas
modificacin manual de los numerosos vnculos simblicos ubicados en los directorios bajo
/etc/rc.d o la modificacin de los ficheros de configuracin xinetd en /etc/xinetd.d.
Otra forma de administrar el acceso a los servicios del sistema es mediante el uso de iptables para
configurar un firewall IP. Si es un usuario nuevo de Linux, tenga en cuenta que iptables puede que
no sea la mejor solucin para usted. La configuracin de iptables puede ser complicada y es mejor
que la realicen administradores de sistemas Linux experimentados.
Por otro lado, la ventaja de utilizar iptables es flexibilidad. Por ejemplo, si necesita una solucin
personalizada que proporcione a determinados hosts el acceso a servicios concretos, iptables
puede ser la herramienta que necesita. Consulte el Manual de referencia de Red Hat Linux y el
Manual de seguridad de Red Hat Linux para ms informacin sobre iptables.
Alternativamente, si est buscando una utilidad que establezca reglas de acceso generales para su
mquina, y/o es un nuevo usuario de Linux, pruebe con GNOME Lokkit. GNOME Lokkit es una
aplicacin tipo GUI que le har preguntas sobre cmo desea usar el equipo. Basado en sus
respuestas, configurar un cortafuegos sencillo por usted. Tambin puede usar la Herramienta de
configuracin de nivel de seguridad (redhat-config-securitylevel), la cual le permite seleccionar
el nivel de seguridad para su sistema, similar a la pantalla de Nivel de seguridad en el programa
de instalacin de Red Hat Linux.
Niveles de ejecucin
Antes de configurar el acceso a servicios, deber entender qu son los niveles de ejecucin en
Linux. Un nivel de ejecucin es un estado o un modo que los servicios includos en el directorio
/etc/rc.d/rc<x>.d definen, donde <x> es el nmero del nivel de ejecucin.
Red Hat Linux utiliza los siguientes niveles de ejecucin:

0 Parada
1 Modo de un usuario

2 Modo completo de multiusuarios, pero sin soporte NFS

3 Modo completo de multiusuarios modo consola o texto

4 No se utiliza (definido por el usuario)

5 Modo completo de multiusuarios (con una pantalla de conexin basada en X)

6 Rearranque

26

Si usa una pantalla de texto para el ingreso al sistema, estar operando a nivel de ejecucin 3. Si
usa una pantalla grfica para ingresar al sistema, estar operando a nivel de ejecucin 5.
El nivel de ejecucin por defecto se puede cambiar si se modifica el fichero /etc/inittab, que
contiene una lnea junto a la parte superior del fichero con el siguiente aspecto:
id:5:initdefault:
Cambie el nmero de esta lnea para reflejar el nivel de ejecucin que desee. El cambio no tendr
efecto hasta rearrancar el sistema.
Para cambiar el nivel de ejecucin inmediatamente, use el comando telinit seguido del nmero del
nivel de ejecucin. Debe ser usuario root para poder usar este comando.

TCP Wrappers
Muchos administradores de sistemas UNIX estn acostumbrados a usar TCP wrappers para
administrar el acceso a determinados servicios de red. Cualquier servicio de red que se administre
con xinetd (as como tambin cualquier programa con soporte incorporado para libwrap) puede
usar un TCP-wrapper para administrar el acceso. xinetd puede usar los ficheros /etc/hosts.allow y
/etc/hosts.deny para configurar el acceso a los servicios del sistema. Como se deduce de los
propios nombres hosts.allow contiene una lista de reglas que le permiten a los clientes accesar los
servicios de red controlados por xinetd, y hosts.deny a su vez, con reglas para denegar el acceso.
El fichero hosts.allow toma precedencia sobre el archivo hosts.deny. Los permisos que conceden o
deniegan el acceso se pueden basar en una direccin IP individual (o nombres de hosts) o en un
modelo de clientes. Vea el Manual de referencia de Red Hat Linux y la pgina del manual
hosts_access en la seccin 5 (man 5 hosts_access) para ms detalles.

xinetd
Para controlar el acceso a los servicios de Internet, use xinetd, que es un sustituto seguro del
comando inetd. El demonio xinetd conserva los recursos del sistema, proporciona control y registro
de acceso, y sirve para arrancar servidores de uso especial. xinetd puede ser usado para proveer
acceso a host particulares, denegar el acceso a determinados hosts, proporcionar acceso a un
servicio en horas concretas, limitar el nmero de conexiones de entrada y/o la carga que se crea
con las conexiones, etc.
xinetd se ejecuta de forma permanente y escucha todos los puertos de los servicios que
administra. Cuando recibe una peticin de conexin de uno de los servicios que administra, xinetd
arranca el servidor apropiado a dicho servicio.
El archivo de configuracin para xinetd es /etc/xinetd.conf, pero el archivo slo contiene unos
pocos valores por defecto y una instruccin para incluir el directorio /etc/xinetd.d. Para activar o
desactivar un servicio xinetd, modifique el archivo de configuracin en el directorio /etc/xinetd.d. Si
el atributo disable est definido como yes, el servicio est desactivado. Si el atributo disable est
definido a no, el servicio estar activado. Puede editar cualquiera de los archivos de configuracin
xinetd o cambiar el estado usando la Herramienta de configuracin de servicios, ntsysv, o
chkconfig. Para una lista de los servicios de red controlados por xinetd, revise los contenidos del
directorio /etc/xinetd.d con el comando ls /etc/xinetd.d.

27

ntsysv
La utilidad ntsysv provee una interfaz sencilla para activar y desactivar servicios. Puede usar
ntsysv para activar o desactivar un servicio xinetd. Tambin puede usar ntsysv para configurar los
niveles de ejecucin. Por defecto, nicamente el nivel de ejecucin actual es configurado. Para
configurar un nivel de ejecucin diferente, especifique uno o ms niveles con la opcin --level. Por
ejemplo, el comando ntsysv --level 345 configura los niveles de ejecucin 3, 4, y 5.
La interfaz ntsysv funciona de forma similar al programa de instalacin en modo texto. Utilice las
flechas arriba y abajo para desplazarse por la lista. La barra espaciadora selecciona o anula la
seleccin de servicios, y tambin sirve para "pulsar" los botones Aceptar y Cancelar. Para
desplazarse en la lista de servicios y entre los botones Aceptar y Cancelar, use la tecla [Tab]. Un
asterisco, *, significa que el servicio est activado. Con la tecla [F1] se mostrar una breve
descripcin de cada servicio.
Aviso
Los servicios manejados por xinetd son afectados de inmediato por ntsysv. Para todos los
dems servicios, los cambios no toman efecto de inmediato. Usted debe detener o arrancar
el servicio individual con el comando service daemon stop. En el ejemplo anterior, sustituya
daemon por el nombre del servicio que desee detener, por ejemplo httpd. Reemplace stop
por start o restart para arrancar o reiniciar el servicio.
Para activar los servicios que no son controlados por xinetd, utilice la herramienta service con la
siguiente sintaxis:
service <opcin> start|stop|restart|status|reload
Ejemplo: para activar el servicio nfs para compartir directorios en red, ejecutamos el siguiente
comando:
[root @linux root]# servcice nfs start
Aparece un mensaje indicando el inicio del service nfs en el servidor
Para detener el servicio bastara con realizar el comando:
[root @linux root]# servcice nfs stop
Aviso
Los servicios manejados por xinetd pueden ser reiniciados con el comando anterior. En este
caso service acta sobre todos los servicios contolados por xinetd. Entonces, utilice service
xinetd start. Asi, podr reiniciar todos los servicios controlados por este demonio. Tambin
valen las clausulas stop, restart, status.

28

chkconfig
El comando chkconfig puede ser usado para activar y desactivar servicios. Si usa el comando
chkconfig --list, ver una lista de los servicios del sistema y si estn iniciados (on) o detenidos (off)
en los niveles de ejecucin 0-6. Al final de la lista, ver una seccin para los servicios manejados
por xinetd.
Si usa chkconfig --list para realizar una consulta a un servicio manejado por xinetd, ver si el
servicio xinetd est activado (on) o desactivado (off). Por ejemplo, el comando chkconfig --list finger
retorna la salida siguiente:
finger

on

Como se muestra, finger est activado como un servicio xinetd. Si xinetd est ejecutndose, finger
estar activo.
Si usa chkconfig --list para consultar un servicio /etc/rc.d, ver las configuraciones del servicio para
cada nivel de ejecucin. Por ejemplo, el comando chkconfig --list anacron devuelve la siguiente
salida:
anacron

0:off 1:off 2:on

3:on

4:on

5:on

6:off

chkconfig tambin puede ser usado para configurar un servicio para que comience (o no) en un
nivel de ejecucin especfico. Por ejemplo, desactive nscd en los niveles de ejecucin 3, 4, y 5,
usando el comando siguiente:
chkconfig --level 345 nscd off
Aviso
Los servicios gestionados por xinetd estn afectados por chkconfig. Por ejemplo, si se est
ejecutando xinetd, finger est deshabilitado y se ejecuta el comando chkconfig finger on y se
activa de inmediato finger sin tener que reiniciar xinetd de forma manual. El resto de los
cambios no se producen inmediatamente tras haber usado chkconfig manualmente. Deber
parar y reiniciar el servicio individual con el comando service daemon stop. En el ejemplo
anterior, reemplace daemon con el nombre del servicio que desea parar; por ejemplo, httpd.
Reemplace stop start o con restart para iniciar o reiniciar el sistema .
Una lista de los servicios activos y no activos se presenta a continuacin:

[root @linux root]# chkconfig --list


kudzu
syslog
netfs
network
random
rawdevices
pcmcia

0:desactivado
0:desactivado
0:desactivado
0:desactivado
0:desactivado
0:desactivado
0:desactivado

1:desactivado
1:desactivado
1:desactivado
1:desactivado
1:desactivado
1:desactivado
1:desactivado

2:desactivado
2:activo
2:desactivado
2:activo
2:activo
2:desactivado
2:activo

3:activo
3:activo
3:activo
3:activo
3:activo
3:activo
3:activo

4:activo
4:activo
4:activo
4:activo
4:activo
4:activo
4:activo

5:activo
5:activo
5:activo
5:activo
5:activo
5:activo
5:activo

6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado

29

saslauthd
0:desactivado 1:desactivado
keytable
0:desactivado 1:activo
apmd
0:desactivado 1:desactivado
atd
0:desactivado 1:desactivado
gpm
0:desactivado 1:desactivado
autofs
0:desactivado 1:desactivado
iptables
0:desactivado 1:desactivado
irda
0:desactivado 1:desactivado
isdn
0:desactivado 1:desactivado
sshd
0:desactivado 1:desactivado
portmap
0:desactivado 1:desactivado
nfs
0:desactivado 1:desactivado
nfslock
0:desactivado 1:desactivado
sendmail
0:desactivado 1:desactivado
rhnsd
0:desactivado 1:desactivado
crond
0:desactivado 1:desactivado
anacron
0:desactivado 1:desactivado
xfs
0:desactivado 1:desactivado
xinetd
0:desactivado 1:desactivado
cups
0:desactivado 1:desactivado
ntpd
0:desactivado 1:desactivado
firstboot
0:desactivado 1:desactivado
servicios basados en xinetd:
chargen-udp:
desactivado
rsync: desactivado
chargen:
desactivado
daytime-udp:
desactivado
daytime:
desactivado
echo-udp:
desactivado
echo:
desactivado
services:
desactivado
servers:
desactivado
time-udp:
desactivado
time:
desactivado
cups-lpd:
desactivado
sgi_fam:
activo

2:desactivado
2:activo
2:activo
2:desactivado
2:activo
2:desactivado
2:activo
2:desactivado
2:activo
2:activo
2:desactivado
2:desactivado
2:desactivado
2:activo
2:desactivado
2:activo
2:activo
2:activo
2:desactivado
2:activo
2:desactivado
2:desactivado

3:desactivado
3:activo
3:activo
3:activo
3:activo
3:activo
3:activo
3:desactivado
3:activo
3:activo
3:activo
3:desactivado
3:activo
3:activo
3:activo
3:activo
3:activo
3:activo
3:activo
3:activo
3:desactivado
3:desactivado

4:desactivado
4:activo
4:activo
4:activo
4:activo
4:activo
4:activo
4:desactivado
4:activo
4:activo
4:activo
4:desactivado
4:activo
4:activo
4:activo
4:activo
4:activo
4:activo
4:activo
4:activo
4:desactivado
4:desactivado

5:desactivado
5:activo
5:activo
5:activo
5:activo
5:activo
5:activo
5:desactivado
5:activo
5:activo
5:activo
5:desactivado
5:activo
5:activo
5:activo
5:activo
5:activo
5:activo
5:activo
5:activo
5:desactivado
5:desactivado

6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado
6:desactivado

[root @linux root]#

netconfig
El comando netconfig puede ser usado para configurar la tarjeta de red de la pc. Si usa el comando
netconfig ver una pantalla similar a la presentada durante la instalacion de linux en modo texto
solicitando la IP, la MASCARA, el GATEWAY y el servidor DNS por defecto. Esto afecta los valores
encontrados en los siguientes archivos (los archivos estn marcados en negrita):
/etc/sysconfig/network: contiene el nombre del servidor y la direccin del gateway. Tambin nos
dice si la red debe activarse al iniciar el servidor.
/etc/sysconfig/network-scripts/ifcfg-eth0: contiene la configuracin de la IP de la tarjeta, la
mascara de red, el nombre del dispositivo y el protocolo de configuracin. Opcionalmente aparece
la direccin de la red a la cual pertence la pc.
/etc/resolv.conf: contiene la direccin IP de los servidores dns utilizados para resolver nombres de
maquinas en la red y el dominio al cual pertenece la computadora.
Una vez terminada la configuracin IP de la maquina, reiniciar el servicio de red de la siguiente
manera:
[root @linux root]# service network restart

30

Administracin de archivos y directorios en Linux RedHat 9


Su administrador de archivos de escritorio es una herramienta potente e importante para gestionar
archivos y directorios usando una interfaz grfica. Este captulo explica cmo gestionar archivos y
directorios desde la lnea de comandos en el sistema Red Hat Linux. Debido a las polticas de
seguridad del sistema, a menos que sea root, no podr accesar todos los archivos y directorios del
sistema. Si no tiene los permisos para abrir, borrar o ejecutar un archivo, recibir un mensaje de
error que le informar que el acceso ha sido denegado. Es un comportamiento normal y se usa
para evitar que los usuarios que no son root borren archivos importantes del sistema.
Cada sistema operativo tiene su propio mtodo para almacenar datos en los archivos y en los
directorios de manera que detectan cuando se agrega, modifica o se efectan cambios.
En Linux, cada archivo se almacena en un directorio. Los directorios pueden a su vez contener
directorios; estos subdirectorios pueden tambin contener archivos u otros subdirectorios.
Se puede pensar en el sistema de archivos como una estructura similar a un rbol con los
directorios como ramas. Estos directorios, pueden contener o ser los "padres" de directorios dentro
de ellos (llamados subdirectorios) los cuales mantienen archivos y pueden contener otros
subdirectorios al mismo tiempo.
Sabemos que los rboles no pueden vivir si no tienen races y lo mismo le ocurre al sistema de
archivos de Linux. No importa lo lejos que se encuentre un directorio dentro del rbol porque todo
est conectado al directorio root, el cual se representa con el smbolo de la barra hacia adelante (/).
El sistema de archivos de un sistema Linux tpico est formado por los siguientes directorios bajo el
directorio raz:

31

/bin Contiene los programas ejecutables que son parte del sistema operativo Linux. Muchos
comandos de Linux como cat, cp, ls, more y tar estn ubicados en este directorio.
/boot Contienen el kernel (o ncleo) de Linux y otros archivos necesarios para el administrador de
inicio LILO, que realiza la carga inicial del sistema operativo cuando la computadora se enciende.
/dev Contienen todos los archivos de acceso a dispositivos. Linux trata cada dispositivo
(terminales, discos, impresoras, etc.) como si fuera un archivo especial.
/etc. Contiene archivos de configuracin del sistema y los programas de inicializacin.
/home Contiene los directorios HOME de los usuarios. El directorio HOME el directorio inicial en el
que se encuentra posicionado un usuario al ingresar al sistema, por lo que tambin se conoce
como directorio de logn o de conexin.
/lib Contiene los archivos de biblioteca utilizados por las aplicaciones y utilidades del sistema, as
tambin como las libreras pertenecientes a diferentes lenguajes de programacin.
/lost+found Directorio para archivos recuperados por el proceso de reparacin del sistema de
archivos, que se ejecuta luego de una cada del sistema y asegura su integridad luego de que el
equipo haya sido apagado de manera inapropiada.
/mnt Es un directorio vaco que se usa normalmente para montar dispositivos como disquetes y
particiones temporales de disco.
/proc Contiene archivos con informacin sobre el estado de ejecucin del sistema operativo y de
los procesos.
/root Es el directorio HOME para el usuario root (administrador del sistema).
/sbin Contienen archivos ejecutables que son comandos que se usan normalmente para la
administracin del sistema.
/tmp Directorio temporal que puede usar cualquier usuario como directorio transitorio.
/usr Contiene archivos de programa, de datos y de libreras asociados con las actividades de los
usuarios.
/var Contiene archivos temporales y de trabajo generados por programas del sistema. A diferencia
de /tmp, los usuarios comunes no tienen permiso para utilizar los subdirectorios que contiene
directamente, sino que deben hacerlo a travs de aplicaciones y utilidades del sistema.

Informacin general sobre el intrprete de comandos de la shell


Por qu utilizar un intrprete de comandos de la shell?
Los entornos grficos para Linux han evolucionado mucho en los ltimos aos. Se puede trabajar
utilizando el sistema X Window y solamente tener que abrir el intrprete de comandos para
completar unas pocas tareas.

32

Sin embargo, es recomendable aprender cmo trabajar desde el intrprete de comandos de la


shell, porque usar los comandos mediante el intrprete de comandos de la shell puede ser muy
rpido que el entorno grfico (GUI). En el tiempo que tarda en abrir el gestor de ficheros en
GNOME o KDE, buscar el directorio, crear o modificar ficheros, utilizando la shell, podra haber
acabado con varios comandos desde la shell.
Un intrprete de comandos se parece a una pantalla MS-DOS. Los usuarios escriben comandos en
un intrprete de comandos, la shell los interpreta y despus le dice al sistema operativo lo que
tiene que hacer. Los usuarios experimentados pueden escribir scripts de la shell para aumentar sus
capacidades
En esta seccin le mostraremos cmo navegar, gestionar archivos, ejecutar tareas bsicas de
administracin e informacin en general sobre el intrprete de comandos de la shell.

Historia de la shell
En los tiempos en los que Dennis Ritchie y Ken Thompson de AT&T diseaban UNIX, quisieron
crear un medio para que las personas interactuaran con el sistema.
Los sistemas de entonces venan con intrpretes de comandos, que aceptaban comandos de los
usuarios y los interpretaban para que los utilizara la mquina.
Pero Ritchie y Thompson queran ms, algo que ofreciera ms que los intrpretes de comandos del
momento. As naci la Bourne shell (conocida como sh), creada por S.R. Bourne. Desde la
creacin de la shell de Bourne se han desarrollado otras shells, tales como la C shell (csh) y la
Korn shell (ksh).
Cuando la Free Software Foundation buscaba una shell sin patentes, los desarrolladores
empezaron a trabajar en el lenguaje de la Bourne shell y en caractersticas de otras shells del
momento.
El resultado fu la Bourne Again Shell o bash. Aunque su sistema Red Hat Linux tenga diferentes
shells, bash es la shell predeterminada. Se puede aprender algo ms sobre bash leyendo su
pgina man bash (escriba man bash en el intrprete de comandos).

33

Determinar su directorio actual con pwd


Una vez que empiece a ver directorios, es fcil perderse u olvidar el nombre de su directorio actual.
Por defecto, la shell para el sistema Linux Bash, muestra el directorio actual, en vez de todo el
recorrido.
Para determinar la ubicacin exacta de su directorio actual, vaya a un intrprete de comandos de la
shell y escriba el siguiente comando: pwd.
Ver algo como lo siguiente:
/home/pepe
Este ejemplo le indica que est en el directorio pepe, que est dentro de su escritorio principal
/home.
El comando pwd viene de 'print working directory', (mostrar el directorio actual). Cuando usted
escribe pwd, le est preguntando a su sistema Linux que le muestre su ubicacin actual. Su
sistema le responde imprimiendo la ruta completa del directorio actual en el intrprete de
comandos, en el monitor. Esta impresin tambin se conoce como salida estndar de datos y se
puede imprimir al shell o redirigirse a otros programas o a otros dispositivos de salida, tales como
impresoras.
Usar pwd a menudo. Es muy til cuando est navegando su sistema Red Hat Linux.

Cambiar de directorios con cd


Cambiar de directorios es fcil siempre que est seguro del lugar donde se encuentra (su directorio
actual) y la relacin que ste tiene con el lugar donde desea ir.
Para cambiar de directorios, utilice el comando cd. Escribiendo este comando slo, lo devolver a
su directorio principal; el traslado a cualquier otro directorio requiere un nombre de recorrido.
Nombre de ruta.
Puede usar rutas absolutas o relativas. Las rutas absolutas buscan desde el tope del sistema de
archivos con / (referido como raz) y luego hacia abajo para buscar el directorio solicitado; las rutas
relativas buscan hacia abajo desde el directorio actual, donde sea que est. El siguiente rbol de
directorio ilustra como cd funciona.
/
/directory1
/directory1/directory2
/directory1/directory2/directory3
Si actualmente se encuentra en el directory3 y quiere cambiar al directory1, necesita ascender en
el rbol del directorio.
Si escribe:
cd directory1
mientras que est en directory3, obtendr un mensaje de error, que le dice que dicho directorio no
existe. Esto se debe a que el directory1 no est debajo de directory3.
Para ir a directory1, escriba:
cd /directory1
ste es un ejemplo de una ruta absoluta. Hace que Linux inicie al principio del rbol de directorios
(/) y se cambie a directory1. Una ruta es absoluta si el primer caracter es un /, sino es relativo.

34

Recuerde que los recorridos absolutos le conducirn a cualquier directorio desde cualquier
directorio y los recorridos relativos tan slo le conducirn a los directorios debajo del suyo.
El comando cd .. le indica a su sistema que suba un directorio inmediatamente arriba del actual.
Para subir dos niveles, use el comando cd ../...
Use el siguiente ejercicio para evaluar lo que ha aprendido sobre recorridos absolutos y relativos.
Teclee el recorrido relativo desde un directorio principal:
cd ../../etc/X11
Despus de usar el comando completo en el ejemplo, debera estar en el directorio X11, que es
donde encontrar archivos de configuracin y directorios relacionados al sistema X Window.
Observe el ltimo comando cd. Le indic a su sistema que:
1.
2.
3.
4.

Suba un nivel a su directorio principal (probablemente /home)


Luego que suba al padre de su directorio (el cual es raz, o /)
Luego que baje al directorio etc
Finalmente, vaya al directorio X11

Por otro lado, usando recorridos absoluto le llevara al directorio /etc/X11 ms rpidamente. Teclee:
cd /etc/X11
Los recorridos absolutos comienzan en el directorio raiz (/) y descienden al directorio que
especifique.

Nota
Asegrese siempre de que sabe en que directorio est antes de que establezca un recorrido
relativo al directorio o archivo al que quiere llegar. No se preocupe de la localizacin de su
sistema de archivos, al establecer el recorrido absoluto a otro directorio o archivo. Si no est
seguro, escriba pwd y se mostrar su directorio actual, el cual le puede dar una gua para
moverse hacia arriba o abajo usando recorridos relativos.
Comando

Funcin

cd

vuelve a su directorio de login

cd ~

vuelve tambin a su directorio de login

cd /

le lleva al directorio raz del sistema completo

cd /root

le lleva al directorio principal del root, o superusuario,


cuenta creada en la instalacin; debe ser el usuario root
para accesar este directorio.

cd /home

lo lleva a su directorio principal, donde los directorios


login de usuario son almacenados

cd ..

le traslada a un directorio superior

cd ~otheruser

le lleva al directorio login del usuario otheruser, si


otheruser le ha dado permiso

cd /dir1/subdirfoo

sin tener en cuenta en que directorio est, este

35

Nota
recorrido absoluto le llevar directamente a subdirfoo,
un subdirectorio de dir1
cd ../../dir3/dir2

este recorrido relativo lo llevar dos directorios ms


arriba, luego a dir3, luego al directorio dir2.

Ahora que ya sabe cmo cambiar de directorios, vea lo que sucede cuando cambia al directorio
login de root (cuenta del superusuario). Teclee:
cd /root
Si no est registrado como root, recibir un mensaje de denied permission, acceso denegado, al
directorio.
Su sistema Linux niega el acceso al root y a otras cuentas de usuario (o directorios login) para
prevenir daos accidentales o deliberados.
Para cambiar el login de root, utilice el comando su.
su
Sugerencia
El comando su significa usuario substituto y le permite cambiar el login temporalmente como
un usuario diferente. Cuando escribe su solo y presiona [Intro], se convierte a root (tambin
llamado superusuario) mientras que todava se mantienen en su login shell (el directorio
principal del usuario). El comando su - lo convierte a root con su login shell original.
Tan pronto como d su contrasea de root, ver los cambios en su intrprete de comandos de root
que le mostrarn su nuevo estado de superusuario: la designacin de la cuenta root delante del
intrprete de comandos y "#" al final.
Cuando haya acabado de trabajar como root, teclee exit en el intrprete de comandos para volver a
la cuenta de usuario.
Visualizacin de los contenidos con ls
Ahora que ya sabe cmo cambiar de directorios, ha llegado el momento de echar un vistazo al
contenido de los directorios con el comando ls.
Hay muchas opciones disponibles con el comando ls. Por s solo ls no le mostrar todos los
archivos de su directorio. Algunos archivos estn ocultos (tambin conocidos como archivos dot) y
slo se pueden ver con una opcin adicional del comando ls
Escriba el comando ls -a. Ver archivos que empiezan con puntos llamados archivos ocultos o
archivos dot.

36

Los archivos ocultos son, en su mayora, archivos de configuracin que establecen preferencias en
los programas, gestores de ventana, shells y mucho ms. El motivo por el que estn ocultos es
para evitar cualquier error accidental por parte del usuario. Adems, cuando busca en un directorio,
habitualmente no busca estos archivos de configuracin, por lo que mantenerlos ocultos le ayudar
a evitar confusin en la pantalla.
La posibilidad de poder ver todos los archivos usando ls -a le aportar una informacin detallada.
No obstante, podr acceder todava a ms informacin aadiendo ms de una opcin.
Si quiere ver el tamao de un archivo o un directorio, al crearse, aada la opcin long, (-l) al
comando ls -a. Este comando le muestra la fecha de creacin del archivo, su tamao, propietario,
permisos, etc.
No es necesario que est en el directorio cuyos contenidos quiere ver para el uso del comando ls.
Para ver el contenido del directorio /etc/ desde su directorio principal, escriba:
ls -al /etc
A continuacin le ofrecemos una lista de algunas de las opciones ms populares de ls. Recuerde,
puede ver la lista completa leyendo las pginas de manual de ls, (man ls).

-a todos. Lista todos los archivos en el directorio, incluyendo los archivos ocultos
(.filename). El .. y . al inicio de la lista, hacen referencia al directorio padre y al directorio
actual, respectivamente.
-l largo. Lista los detalles sobre el contenido, incluyendo los permisos (modos), el
propietario, el grupo, el tamao, la fecha de creacin, si el archivo es o no un enlace de
algn sitio del sistema y cul es.
-F tipo de archivo. Aade un smbolo al final de cada listado. Estos smbolos incluyen /
para indicar un directorio; @ para indicar un enlace simblico a otro archivo y * para indicar
un archivo ejecutable.

37

-r inverso (en ingls "reverse"). Lista los contenidos del directorio desde el final hasta el
inicio.
-R recursive. La opcin recursive lista los contenidos de todos los directorios (bajo el
directorio actual)
-S tamao (del ingls "size"). Clasifica los archivos por su tamao

Ubicacin de archivos y directorios


En ocasiones sabr que existe un archivo o un directorio pero no sabr donde encontrarlo. Buscar
un archivo o un directorio puede ser ms fcil con el comando locate.
Con locate, ver cada archivo relativo o directorio que liga con su criterio de bsqueda.
Imaginemos que desea buscar todos los archivos con la palabra finger en el nombre, escriba
locate finger
El comando locate utiliza la base de datos para buscar los archivos y directorios que contengan a
la cadena finger en el nombre del archivo o directorio. El resultado de la bsqueda puede ser un
archivo llamado finger.txt, un archivo llamado pointerfinger.txt, un directorio de nombre
fingerthumbnails, etc. Para saber ms sobre locate, lea las pginas del manual para locate (escriba
man locate en el intrprete de comandos de la shell).
El comando locate funciona muy rpido, siempre y cuando la base de datos est actualizada. La
base de datos es actualizada automticamente cada da, mediante una tarea cron que se ejecuta
durante la noche. cron es un pequeo programa que se ejecuta en segundo plano, ejecutando
varias tareas (tales como actualizar la base de datos locate), a intervalos establecidos
regularmente
Limpiar y resetear la ventana de terminal
Tras un comando ls en el intrprete de comandos de la shell, la ventana le parecer demasiado
llena. Siempre puede salir de la ventana terminal y abrir una nueva, pero existe un modo ms
rpido de limpiarla.
Escriba el comando clear en el intrprete de comandos. El comando clear hace exctamente lo que
usted imagina: despeja o limpia la ventana de terminal.
En ocasiones, puede que abra accidentalmente un archivo de un programa u otro archivo non-text
en una ventana terminal. Una vez que cierre el archivo, se puede encontrar con que el texto que
est escribiendo no coincide con la salida de datos del monitor.
En dichos casos, simplemente teclee: reset para volver a la ventana con los valores por defecto
Manipulacin de archivos con cat
Red Hat Linux posee una utilidad que le puede ayudar a guardar listas cortas, agruparlas juntas y
hasta mostrarle informacin sobre su sistema.
Esta utilidad se llama cat, diminutivo de concatenate, que significa combinar o concatenar archivos.

38

El comando cat visualizar tambin los contenidos de un archivo entero en la pantalla (por ejemplo,
teclee cat filename.txt). Si un archivo es bastante largo, se deplazar rpidamente y por completo
por la pantalla. Para evitar esto, use el comando cat filename.txt | less.
El uso de tuberias (|) y del comando less juntos, le permite visualizar el archivo pgina a pgina.
Luego puede usar las flechas para pasar de una pgina a otra.
Uso de redireccionamiento
El redireccionamiento significa hacer que la shell cambie lo que est considerado como entrada
estndar o el lugar donde va a parar la salida estndar.
Para redireccionar la salida estndar, usaremos el smbolo >. Al colocar > tras el comando cat (o
tras cualquier utilidad o aplicacin que escriba la salida estndar) reorientar su salida al nombre
de archivo que siga al smbolo.
Por ejemplo, solamente con el uso de cat puede ver en la pantalla lo que introdujo como si se
repitiera la lnea que acaba de introducir. El siguiente ejemplo de cat lo muestra:
[root @CEPS root]$ cat descansar
comer
leer
comer
comer
leer
nadar
nadar
descansar
descansar
[root @CEPS root]$
Para redirigir la salida cat a un archivo, escriba lo siguiente en el intrprete de comandos (si
presiona la tecla [Intro] lo llevar a la siguiente lnea en blanco):
cat > descansar

[root @CEPS root]$ cat > descansar


comer
leer
comer
comer
leer
nadar
Presione [Intro] para ir a una lnea vaca y utilice las teclas [Ctrl]-[D] para salir de cat.

Ha observado la diferencia?. Para una cosa, no existen entradas dobles. Esto se debe a que la
salida estndar desde cat, ha sido redireccionada. Esta redireccin era de un archivo nuevo que ya
haba creado, llamado descansar.

39

Puede encontrar el archivo en el directorio en el que estaba cuando empez cat (teclee ls si lo
quiere ver listado).
Como vi anteriormente, puede usar cat para leer el archivo, al escribir:
cat descansar
Atencin

Tenga cuidado al reorientar la salida a un archivo, porque puede sobreescribir un archivo


ya existente! Asegrese de que el nombre del archivo que est creando no coincide con el
nombre de un archivo ya existente, a menos que desee reemplazarlo.
Use el redireccionamiento de la salida a otro archivo y llmelo home.txt. Para este ejemplo, escriba
el comando cat > home.txt, luego [Intro], seguido por:
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
A continuacin, en una lnea vaca, utilice las teclas [Ctrl]-[D] de nuevo para salir cat.
Luego, use cat para unir el archivo home.txt con descansar y reorientar la salida de ambos archivos
a un archivo nuevo que se llama prueba.txt. Escriba lo siguiente:
cat descansar home.txt > prueba.txt
[root @CEUPS root]$ cat descansar prueba.txt > prueba.txt
[root @CEPS root]$ cat prueba.txt
comer
leer
comer
comer
leer
nadar
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
[root @CEPS root]$
Podr ver que cat ha aadido home.txt donde descansar termina.
Adjuntar a la salida estndar

40

Puede utilizar el redireccionamiento para aadir informacin nueva al final de un archivo ya


existente. Parecido a cuando ha usado el smbolo >, le indica a su shell que enve la informacin a
algn otro sitio que no sea el de la salida estndar.
No obstante, cuando usa >>, est aadiendo informacin ms que reemplazndola.
Le presentamos un ejemplo prctico para aclarar este concepto. En este ejemplo unamos dos
archivos creados anteriormente (serpientes.txt y home.txt) utilizando el smbolo para adjuntar la
salida. Queremos aadir la informacin presente en home.txt a la ya presente en escansar. Basta
con teclear:
cat home.txt >> descansar
Ahora, verifique el archivo usando el comando cat descansar. La salida final muestra los
contenidos del archivo home.txt al final del archivo:
comer
leer
comer
comer
leer
nadar
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
El comando que ha tipeado agrega la salida del archivo home.txt al archivo escansar.
Aadiendo la salida directamente, hemos ahorrado uno o dos pasos (y un poco de espacio en el
disco) utilizando unos archivos que ya existan en memoria, en vez de crear uno nuevo.

Redireccionamiento de la entrada estndar


No slo puede reorientar la salida estndar, sino tambin la entrada estndar.
Cuando utiliza el smbolo < para redirigir la entrada estndar, est indicando a la shell que un
archivo se debe utilizar como entrada para un comando.
Utilice un archivo creado anteriormente para mostrar este concepto. Escriba
cat < prueba2.txt
Debido a que se usa el smbolo menor que (<) para separar el comando cat de un archivo, cat lee
la salida de serpientes.txt.

41

Tuberias y paginadores
En el mundo Linux, las tuberias (tambin conocidas como pipes) relacionan la salida estndar de
un comando con la entrada estndar de otro comando.
Considere el comando ls discutido anteriormente. Existen varias opciones disponibles con el
comando ls, pero qu pasa si la visualizacin del contenido de un directorio es demasiado rpida
como para verla?
Vamos a ver el contenido del directorio /etc/ con el comando:
ls -al /etc
Cmo podemos visualizar tranquilamente la salida antes de que desaparezca de la pantalla?
Una forma es entubando la salida a una utilidad llamada less, un paginador que permite ver la
informacin por pginas (en la pantalla).
Use la barra vertical (|) para entubar comandos.
ls -al /etc | less
De esta manera ver el contenido de /etc en una pantalla a la vez. Para acceder a la pantalla
siguiente, pulse [Barra espaciadora]; para volver a la pantalla anterior, pulse [B]; para salir, presione
[Q]. Tambin puede usar las flechas direccionales para navegar con less.
Para buscar palabras dentro de un archivo de texto usando less, presione [/] y luego escriba la
palabra que quiere buscar. Por ejemplo:
/Linux
Sugerencia
Para leer los mensajes de arranque con ms detenimiento, en el intrprete de comandos de
la shell, teclee dmesg | less. Ser capaz de leer el archivo en una pantalla a la vez. Para
moverse en el archivo, use las teclas con las flechas; para buscar por una salida particular en
el archivo, presione [/] y luego la cadena a buscar.
Las tuberias tambin se pueden usar para imprimir solamente determinadas lneas de un archivo.
Teclee lo siguiente:
grep coffee descansar | lpr
Este comando imprime cada lnea en el archivo descansar que menciona la palabra "coffee".
El comando more
La diferencia principal entre more y less es que less le permite ir hacia adelante y hacia atrs en un
archivo usando las flechas direccionales, mientras que more realiza la navegacin usando la [Barra
espaciadora] y la tecla [B].

42

Liste los contenidos del directorio /etc usando ls y more.


ls -al /etc | more
[roo@server root]$ ls -al /etc/ | more
total 1760
drwxr-xr-x 53
root
root
drwxr-xr-x 19
root
root
-rw-r--r-1
root
root
-rw-r--r-1
root
root
-rw-r--r-1
root
root
drwxr-xr-x 4
root
root
-rw-r--r-1
root
root
-rw-r----1
smmsp smmsp
.
.
.
--Ms--

4096
4096
15228
2562
46
4096
1343
2288

oct
oct
ene
ene
oct
oct
feb
oct

7 18:21 .
7 16:53 ..
24 2003 a2ps.cfg
24 2003 a2ps-site.cfg
7 16:50 adjtime
2 14:02 alchemist
24 2003 aliases
7 16:54 aliases.db

Para buscar ciertas palabras dentro de un archivo de texto usando more, presione [/] y luego
escriba la palabra que desea encontrar en el archivo. Por ejemplo:
/foo
Use la [Barra espaciadora] para pasar de una pgina a otra. Pulse [q] para salir.
Comandos bsicos adicionales para la lectura de archivos de texto
Ya conoce algunos comandos bsicos del intrprete de comandos de la shell para la lectura de
archivos por los editores de texto. Aqu tiene algunos ms.
El comando head
Puede utilizar el comando head en caso de que desee ir al inicio de un archivo. El comando es:
head <filename>
head puede ser muy til, pero como est limitado a las primeras lneas, no podr ver el largo del
archivo. Por defecto, slo puede leer las primeras diez lneas de un archivo, aunque puede cambiar
este nmero especificndolo, como en el comando a continuacin:
head -20 <filename>
El comando tail
El contrario de head es tail. Usando tail, puede volver a ver las diez ltimas lneas de un archivo.
Esto puede ser muy til para ver las ltimas lneas de un archivo de registro y as ver los mensajes
importantes del sistema. Tambin puede usar tail para vigilar cmo se actualizan los archivos de
registro (log). Usando la opcin -f, tail imprimir automaticamente los nuevos mensajes desde un
archivo abierto a la pantalla en tiempo real. Por ejemplo, para vigilar activamente
/var/log/messages, escriba lo siguiente en el intrprete de comandos shell como usuario root:
tail -f /var/log/messages

43

El comando grep
El comando grep es til para encontrar una cadena de caracteres especfica en un archivo. Por
ejemplo, si quiere encontrar cada referencia que se haya hecho a "coffee" en el archivo descansar,
debera escribir:
grep coffee descansar
Ver cada una de las lneas donde aparece la palabra "coffee".
Sugerencia
A menos que se especifique lo contrario, las bsquedas de grep son sensibles a maysculas
y minsculas. Lo cual significa que Coffee no es lo mismo que coffee. Entre las opciones de
grep est -i, que le permite hacer una bsqueda insensible a maysculas y minsculas a
travs de un archivo. Lea la pgina de manual grep ms informacin sobre este comando.
Redireccionamiento de E/S y tuberas
Puede usar el redireccionamiento de la salida y tuberas cuando desee guardar y/o imprimir la
informacin para leerla despus.
Por ejemplo, puede usar grep para buscar contenidos especficos de un archivo y posteriormente
guardar estos resultados como un archivo o imprimirlos.
Para imprimir la informacin sobre todas las referencias a "coffee" en descansar, escriba:
grep coffee descansar | lpr
Comodines y expresiones regulares
Qu sucede si olvida el nombre de un archivo que est buscando? Mediante el uso de caracteres
de sustitucin o expresiones regulares, puede ejecutar acciones en un archivo o archivos sin saber
el nombre de archivo completo. Rellene lo que sabe y sustituya lo restante con un comodn. Los
comodines son smbolos especiales que puede usar para sustituir letras, nmeros y smbolos lo
que permite encontrar directorios y archivos ms fcil que leer listados largos para encontrar lo que
est buscando.
Sugerencia
Para obtener ms informacin sobre comodines y expresiones regulares, vea la pgina de
manual de bash (man bash). Recuerde que puede guardar el archivo como archivo de texto,
tecleando man bash | col -b > bash.txt. Luego, podr abrir y leer el archivo con less o vi (vi
bash.txt). Si desea imprimir el archivo, sepa que es bastante largo.
Sabemos que el archivo se llama "des____," teclee:
ls des*

44

y obtendr el nombre del archivo:


Descansar
Probablemente utilice el asterisco (*) que es ms frecuente para la bsqueda. El asterisco buscar
todo lo que coincida con la estructura que est buscando. Incluso si teclea:
ls *.txt
o:
ls sn*
Encontrar todos los archivos que terminen en .txt o que comience con sn. Los comodines le
ayudan a ampliar su bsqueda lo mximo posible.
Un modo de filtrar la bsqueda es usando el signo de interrogacin (?). Como el asterisco, el uso
de ? le puede ayudar a localizar un archivo mediante la bsqueda de estructuras que coincidan.
En este caso, ? es til para un slo carcter, de manera que si estaba buscando descansa?
obtendr descansar como resultado, y/o descansar.txt, si existiera este nombre de archivo.
Las expresiones regulares son ms complejas que el asterisco o el signo de interrogacin.
Cuando un asterisco forma parte de un nombre de archivo, como puede ser el caso del archivo
serpientes.txt si se llamara sneak*.txt, es el momento de usar expresiones regulares.
Utilizando el smbolo (\), puede especificar que no desea buscar todo mediante el uso de asterisco,
sino que desea buscar un archivo con un asterisco en el nombre.
Si el archivo se llama sneak*.txt, escriba:
sneak\*.txt
Aqu tiene una breve lista de comodines y expresiones regulares:

* Hace coincidir todos los caracteres


? Hace coincidir un carcter en una cadena

\* Hace coincidir el carcter *

\? Hace coincidir el carcter ?

\) Hace coincidir el carcter )

45

Permisos de Archivos y Directorios


En cualquier sistema multiusuario, es preciso que existan mtodos que impidan a un usuario no
autorizado copiar, borrar, modificar algn archivo sobre el cual no tiene permiso.
En Linux las medidas de proteccin se basan en que cada archivo tiene un propietario
(usualmente, el que cre el archivo). Adems, los usuarios pertenecen a uno o mas grupos, los
cuales son asignados por el Administrador dependiendo de la tarea que realiza cada usuario;
cuando un usuario crea un archivo, el mismo le pertenece tambin a alguno de los grupos del
usuario que lo cre.
As, un archivo en Linux le pertenece a un usuario y a un grupo, cada uno de los cuales tendr
ciertos privilegios de acceso al archivo. Adicionalmente, es posible especificar que derechos
tendrn los otros usuarios, es decir, aquellos que no son el propietario del archivo ni pertenecen al
grupo dueo del archivo.
En cada categora de permisos (usuario, grupo y otros) se distinguen tres tipos de accesos: lectura
(Read), escritura (Write) y ejecucin (eXecute), cuyos significados varan segn se apliquen a un
archivo o a un directorio.
En el caso de los archivos, el permiso R (lectura) habilita a quin lo posea a ver el contenido del
archivo, mientras que el permiso W (escritura) le permite cambiar su contenido. El permiso X
(ejecucin) se aplica a los programas y habilita su ejecucin.
Para los directorios, el permiso R permite listar el contenido del mismo (es decir, leer el directorio,
mientras que el W permite borrar o crear nuevos archivos en su interior (es decir, modificar o
escribir el directorio). El permiso X da permiso de paso, es decir, la posibilidad de transformar el
directorio en cuestin en el directorio actual.
En los listados de directorio, los permisos se muestran como una cadena de 9 caracteres, en
donde los primeros tres corresponden a los permisos del usuario, los siguientes tres a los del grupo
y los ltimos, a los de los dems usuarios. La presencia de una letra (r, w o x) indica que el permiso
est concedido, mientras que un guin (-) indica que ese permiso est denegado.

Identificar y trabajar con tipos de archivos


Si es nuevo en Linux, ver archivos cuyas extensiones no reconoce porque tienen nombres de
extensin de archivo poco comunes. La extensin de un archivo es la ltima parte del nombre del
archivo despus del punto (en el archivo serpientes.txt, "txt" es la extensin del archivo).
A continuacin una breve lista de las extensiones y sus significados.
Archivos comprimidos y archivados

.bz2 archivo comprimido con bzip2


.gz archivo comprimido con gzip

.tar archivo guardado con tar (iniciales de tape archive), tambin conocido como archivo
tar

46

.tbz archivo tar y bzip

.tgz archivo tar y gzip.

.zip archivo comprimido con ZIP, encontrado comunmente en aplicaciones MS-DOS. La


mayora de los archivos para Linux usan el tipo de compresin gzip, por lo tanto es raro
encontrar un archivo .zip en Linux.

Formatos de archivos

.au archivo de audio


.gif archivo grfico o de imagen

.html/.htm archivo HTML

.jpg archivo de imagen JPEG

.pdf imagen electrnica de un documento; PDF son las siglas de Portable Document
Format

.png archivo grfico de imagen PNG (siglas de Portable Network Graphic)

.ps archivo PostScript; formateado para ser impreso

.txt archivo plano de texto ASCII

.wav archivo de audio

.xpm archivo de imagen

Archivos del sistema

.conf archivo de configuracin. A veces los archivos de configuracin usan la extensin


.cfg, tambin.
.lock archivo lock; determina si el programa o dispositivo est en uso

.rpm archivo del gestor de paquetes de Red Hat que se usa para instalar soft

Programar y escribir archivos

.c archivo del cdigo fuente del lenguaje de programacin C


.cpp archivo del cdigo fuente del lenguaje de programacin C++

.h archivo cabecera de lenguaje de programacin C o C++

.o archivo objeto de programacin

.pl script Perl

47

.py script Python

.so archivo de librera

.sh script shell

.tcl script TCL

Las extensiones de archivos no siempre se usan consistentemente. Qu sucede cuando un


archivo no tiene ninguna extensin o no parece ser lo que la extensin supone que sea?
Aqu es cuando usamos el comando file.
Por ejemplo, se encuentra con un archivo llamado saturday sin extensin. Usando el comando file,
puede averiguar que tipo de archivo es simplemente escribiendo:
file /etc/passwd
En el ejemplo, el comando file /etc/passwd mostrar ASCII text, indicndole que su archivo es un
archivo de texto. Cualquier archivo diseado como archivo de texto, debera ser legible usando los
comandos cat, more, o less, o usando un editor de texto como gedit o vi.
Manipular archivos desde el intrprete de comandos del shell
Los archivos se pueden manipular desde el intrprete de comandos usando uno de los
administradores de archivos grficos, como Nautilus o Konqueror. Tambin se pueden manipular
usando el intrprete de comandos de la shell y a menudo ms rpido. Esta seccin explica como
manipular archivos en el intrprete de comandos del shell.
Crear archivos
Puede crear archivos nuevos con aplicaciones (tales como editores de texto) o usando el comando
touch, el cual crear un archivo vaco que podr usar para agregar texto o datos. Para crear un
archivo con touch, escriba el comando siguiente en el intrprete de comandos del shell.
touch <filename>
Reemplace <filename> con el nombre de su eleccin. Si ejecuta una lista del directorio y el archivo
contiene (0) bytes de informacin es porque se trata de un archivo vaco. Por ejemplo, escribiendo
el comando ls -l nuevoarchivo en la lnea de comandos, le devuelve la siguiente salida:
-rw-rw-r--

1 sam

sam

0 Apr 10 17:09 nuevoarchivo

Copiar archivos
Como otras tantas caractersticas de Linux, hay una variedad de opciones a la hora de manipular
archivos y directorios. Tambin puede usar comodines para hacer los procesos de copiar, mover o
borrar mltiples archivos y directorios ms rpido.

48

Para copiar un archivo, escriba el comando siguiente:


cp <fuente><destino>
Reemplace <fuente> con el nombre del archivo que quiere copiar y <destino> con el nombre del
directorio donde quiera meter el archivo.
Para copiar el archivo serpientes.txt al directorio tigres/ en su directorio principal, cmbiese a su
directorio home y escriba:
cp serpientes.txt tigres/
Puede usar nombres de ruta relativos o absolutos con cp. Nuestro directorio principal es el
directorio padre de tigres; tigres es tambin un directorio debajo de su directorio principal.
Lea la pgina del manual de cp (escriba man cp en el intrprete de comandos) para una lista
completa de las opciones disponibles con cp. Entre las opciones que puede usar con cp estn las
siguientes:

-i interactivo. Le pide una confirmacin de si el archivo que quiere sobreescribir es el


correcto. Esta opcin es muy til porque ayuda a prevenir errores.
-r recursivo. Ms que copiar todos los archivos y directorios este copiar el rbol de
directorio completo, incluyendo subdirectorios.
-v verbose (visualizar). Muestra el progreso de los archivos que estn siendo copiados.

Ahora que ya tiene un archivo serpienets.txt en el directorio tigres, use el comando cp -i para copiar
el archivo otra vez a la misma ubicacin.
cp -i serpientes.txt tigres
cp: overwrite 'tigres/serpientes.txt'?
Para sobreescribir el archivo ya existente, pulse [Y] y a continuacin [Intro]. Si no quiere
sobreescribir el archivo, presione [N] y despus [Intro].
Mover archivos
Para mover archivos use el comando mv. Para ms informacin sobre mv, vea la pgina del
manual de mv (escriba man mv).
Las opciones comunes para mv incluyen:

-i interactivo. Le avisar si el archivo que ha seleccionado sobreescribir un archivo en


el directorio destino. Esta es una buena opcin, ya que como la opcin -i para el comando
cp, se le da la posibilidad de asegurarse de si realmente desea reemplazar el archivo
existente.
-f forzar. Sobreescribe el modo interactivo y traslada sin indicarlo. A menos que sepa
muy bien lo que est haciendo, esta es una opcin peligrosa; tenga mucho cuidado cuando
la use hasta que se sienta ms seguro con su sistema.
-v verbose, visualizar. Muestra el progreso de los archivos que han sido desplazados.

49

Si quiere desplazar un archivo fuera de un directorio principal a otro directorio, escriba lo siguiente
(debe estar en su directorio principal):
mv pepe.txt jose/
Alternativamente, el mismo comando usando nombres de ruta absolutos se parece a
mv pepe.txt /home/jose/

Borrar archivos y directorios


Ha aprendido a crear archivos con el comando touch, y tambin cre el directorio tigres usando
mkdir.
Ahora necesita aprender cmo borrar archivos y directorios. Borrar archivos y directorios usando el
comando rm es un proceso directo. Vea la pgina del manual rm para ms informacin. Las
opciones para remover archivos y directorios incluyen:

-i interactivo. Le pide confirmar la eliminacin del archivo. Esta opcin le previene borrar
archivos por equivocacin.
-f forzar. Sobreeescribe el modo interactivo y elimina los archivos sin notificar. Puede
que no sea una buena idea, a menos que sepa exactamente lo que est haciendo.

-v visualizar. Muestra el progreso de los archivos que estn siendo eliminados.

-r recursivo. Borra un directorio y todos los archivos y subdirectorios que contenga.

Para borrar el archivo asunto.doc con el comando rm, escriba:


rm asunto.doc
Aviso
Una vez que ha eliminado un directorio con el comando rm, no se puede recuperar.
Use la opcin -i (interactivo) para tener una segunda oportunidad de pensar si realmente desea o
no borrar el archivo.
rm -i asunto.doc
rm: remove 'asunto.doc'?
Tambin puede borrar archivos usando el comodn *, pero tenga cuidado, pues puede borrar
archivos que no tena intenciones de eliminar.
Para borrar un archivo mediante el uso de un comodn, escriba:
rm tex*

50

El comando anterior suprimir todos los archivos en el directorio que comienzan con las letras tex.
Tambin puede eliminar mltiples archivos usando el comando rm. Por ejemplo:
rm texto.txt asunto.txt
Puede usar rmdir para eliminar un directorio (rmdir foo, por ejemplo), pero slo si el directorio est
vaco. Para eliminar directorios con rm, debe especificar la opcin -r.
Por ejemplo, si desea suprimir recursivamente el directorio tigres debera escribir:
rm -r tigres
Si quiere puede tambin combinar opciones, tal como forzar un borrado recursivo, necesita escribir:
rm -rf tigres
Una alternativa ms segura que rm para eliminar directorios es usando el comando rmdir. Con este
comando, no se permite el borrado recursivo, por lo tanto un directorio con archivos no ser
borrado.
Aviso
El comando rm puede borrar su sistema de archivos completo, as que tenga mucho
cuidado!. Si est registrado como usuario root y escribe el comando rm -rf /, est en
problemas; este comando borrar recursivamente todo lo que se encuentra en su sistema.

Configuracin de usuarios desde la lnea de comandos


Si prefiere las herramientas de lnea de comandos o no tiene el sistema X Window instalado, use
este captulo para configurar usuarios y grupos.

Aadir un usuario
Para aadir un usuario al sistema:

1. Emita el comando useradd para crear una cuenta de usuario bloqueada:


useradd <username>

2. Desbloquee la cuenta ejecutando el comando passwd para asignar una contrasea y


configurar el vencimiento de la misma:
passwd <username>
Las opciones de lnea de comandos para useradd estn en la siguiente tabla:

51

Opcin

Descripcin

-c comentario

Comentario para el usuario

-d home-dir

Directorio principal a ser usado en vez del directorio predeterminado


/home/nombredeusuario

-e fecha

Fecha en que la cuenta ser desactivada usando el formato de fecha


YYYY-MM-DD

-f das

Nmero de das que pasarn despus que la contrasea ha caducado


hasta que la cuenta se desactivar (Si se especifica 0, la cuenta ser
desactivada inmediatamente despus que la contrasea expire. Si se
especifica -1, la cuenta no se desactivar despus que la contrasea
caduque.)

-g nombredegrupo

Nombre o nmero del grupo para el grupo predeterminado del usuario


(El grupo debe existir.)

-G listadegrupo

Lista de nombres de los grupos adicionales (adems del


predeterminado), separados por comas, de los cuales el usuario es
miembro (Los grupos deben existir.)

-m

Crea el directorio principal si no existe

-M

No crea el directorio principal

-n

No crea un grupo de usuario privado para el usuario

-r

Crea una cuenta de sistema con un UID menor que 500 y dentro del
directorio principal.

-p contrasea

La contrasea encriptada con crypt

-s

Lnea de comando de conexin del usuario, predeterminada a


/bin/bash

-u uid

ID de usuario, el cual debe ser nico y mayor que 499

Aadir un grupo
Para agregar un grupo al sistema, use el comando groupadd:
groupadd <nombredegrupo>
Las opciones de lnea de comando para groupadd estn en la siguiente tabla:
Opcin

Descripcin

-g gid

ID para el grupo, el cual debe ser nico y mayor que 499.

-r

Crea un grupo de sistema con un GID menor que 500.

-f

Sale con un error si el grupo ya existe. (El grupo no es alterado.) Si se

52

Opcin

Descripcin
especifica -g y -f, pero el grupo ya existe, la opcin -g es ignorada.

Vencimiento de la contrasea
Si las contrasea dentro de la organizacin son creadas centralmente por el administrador, al
agregar nuevos usuarios significa que el administrador debe configurar la cuenta del usuario de
manera que cuando el usuario se conecte por primera vez, el sistema le pedir que cree una
contrasea. Esto se puede hacer cuando se aade o modifica un usuario en la pestaa
Informacin de contrasea del Administrador de usuarios.
Para configurar el vencimiento de la contrasea para un usuario desde el intrprete de comandos,
use el comando chage, seguido de una opcin desde la siguiente tabla, seguido por el
'nombredeusuario' del usuario.

Importante

La contrasea oculta debe estar activada para poder usar el comando chage.
Opcin

Descripcin

-m das

Especifica el nmero mnimo de das entre los cuales el usuario


debe cambiar su contrasea. Si el valor es 0, la contrasea no
caduca.

-M das

Especifica el nmero mximo de das durante los cuales la


contrasea es vlida. Cuando el nmero de das especificado por
esta opcin ms el nmero de das especificado con la opcin -d es
menor que el da actual, el usuario debe cambiar su contrasea
antes de usar la cuenta.

-d das

Especifica el nmero de das desde Enero 1, 1970 que la


contrasea fu cambiada.

-I das

Especifica el nmero de das inactivos despus de la expiracin de


la contrasea antes de bloquear la cuenta. Si el valor es 0, la
cuenta no es bloqueada despus que la contrasea caduca.

-E fecha

Especifica la fecha en la cual la cuenta es bloqueada, en el formato


YYYY-MM-DD. Tambin se puede usar el nmero de das
transcurridos desde Enero 1, 1970 en lugar de la fecha.

-W das

Especifica el nmero de das antes de la fecha de expiracin de la


contrasea para advertir al usuario.

Sugerencia
Si el comando chage est seguido directamente por un nombre de usuario (sin opciones), se

53

visualizar los valores de vencimiento de la contrasea actual y le permite cambiar estos


valores.
Si el administrador del sistema desea que un usuario configure su contrasea la primera vez que
ste se conecte, la contrasea del usuario puede ser configurada a que expire de inmediato,
obligando al usuario a cambiarla inmediatamente despus de conectarse la primera vez.
Para obligar al usuario a configurar su contrasea la primera vez que se conecte en la consola,
siga los pasos siguientes. Este proceso no funciona si el usuario se conecta usando el protocolo
SSH.
1. Bloquear la contrasea del usuario Si el usuario no existe, use el comando useradd para
crear la cuenta del usuario, pero no le de la contrasea para que as permanezca
bloqueada.
Si la contrasea ya est activa, bloquela con el comando:
usermod -L nombredeusuario
2. Obligar el vencimiento inmediato de la contrasea Escriba el comando siguiente:
chage -d 0 nombredeusuario
3. Este comando coloca el valor para la fecha en que la contrasea fu cambiada la ltima
vez (Enero 1, 1970). Este valor obliga a la expiracin inmediata de la contrasea sin tomar
en cuenta la poltica de vencimiento, si existe alguna.
4. Desbloquear la cuenta Hay dos formas comunes para realizar este paso. El
administrador puede asignar una contrasea inicial o puede asignar una contrasea nula.
Aviso
No use passwd para configurar una contrasea porque desactivar el vencimiento
inmediato que se acaba de configurar.
5. Para asignar una contrasea inicial, siga los pasos siguientes:
o

Arranque el intrprete de lnea de comandos python con el comando python. Se


mostrar lo siguiente:
Python 2.2.2 (#1, Dec 10 2002, 09:57:09) [GCC 3.2.1 20021207 (Red Hat Linux 8.0 3.2.12)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
En la lnea de comandos, escriba lo siguiente (sustituyendo contrasea con la
contrasea a encriptar y salt con una combinacin de exctamente 2 caracteres en
maysculas o minsculas, nmeros, y el caractes punto (.) o la barra (/)):
import crypt; print
crypt.crypt("password","salt")

o
o

La salida es la contrasea encriptada similar a 12CsGd8FRcMSM.


Presione [Ctrl]-[D] para salir del intrprete Python.

54

Corte o pegue la salida exacta de la contrasea encriptada, sin dejar espacios en


blanco al principio o final, en el siguiente comando:

usermod -p "contrasea-encriptada"
nombredeusuario
6. En vez de asignar una contrasea inicial, se puede asignar una contrasea nula con el
comando:
usermod -p "" username
Atencin
A pesar de que el uso de una contrasea nula es conveniente tanto para el
administrador como para el usuario, existe el pequeo riesgo de que un tercero se
conecte primero y accese el sistema. Para minimizar esta amenaza, se recomienda
que los administradores verifiquen que el usuario est listo para conectarse cuando
desbloqueen la cuenta.
8. En cualquier caso, luego de la conexin inicial, se le pedir al usuario una nueva
contrasea.

Histrico de comandos y utilizacin del tabulador


No se tarda mucho, pero teclear el mismo comando una vez tras otra no es muy divertido. En
Linux, como se pueden encadenar comandos en el intrprete de comandos de la shell, un error
mnimo de escritura, puede arruinar lneas enteras de comandos.
Una buena solucin es la de usar el histrico de comandos de la lnea. Desplazndose con las
teclas de [flecha arriba] y [flecha abajo], puede encontrar la mayora de los comandos que ha
escrito.
Intntelo echndole un vistazo de nuevo a serpientes.txt. La primera vez, sin embargo, en el
intrprete de comandos, escriba:
cat srpientes.txt
Por supuesto que no sucede nada, ya que no hay ningn archivo srpientes.txt. No hay problema.
Use la flecha para ir hacia arriba para ver el comando, use la flecha para ir a la izquierda para ir a
donde omiti la "e". Inserte la letra y pulse [Intro] de nuevo.
En este momento vemos los contenidos de serpientes.txt.
Por defecto, se pueden almacenar hasta 500 comandos en el archivo histrico de la lnea de
comandos bash.
Sugerencia
Escribiendo env en el intrprete de comandos de la shell, ver la variable de entorno que
controla el tamao de la lnea histrica de comandos. La lnea HISTFILESIZE=500 muestra
el nmero de comandos que bash almacenar.

55

El histrico de la lnea de comandos se guarda en un archivo, llamado .bash_history en el directorio


de login. Se puede ver de varias formas: usando vi, cat, less, more, y otros.
Sepa que el archivo puede ser largo. Para leerlo con el comando more, desde su directorio
principal escriba:
more .bash_history
Para avanzar en la pantalla, presione la [Barra espaciadora]; para devolverse presione [b]; para
salir, presione [q].
Sugerencia
Para encontrar un comando en su archivo histrico sin tener que seguir presionando las
flechas direccionales, use grep, una utilidad potente de bsqueda. Quiere encontrar un
comando previo? Pongamos que est buscando un comando parecido a cat serp-algo. Ha
utilizado el comando y piensa que podra estar en su archivo histrico. Escriba en el
intrprete de comandos de la shell:
history | grep serp
Otra herramienta que le ahorrar tiempo es la que conocemos por el nombre de 'completar
comandos'. Si teclea parte del nombre de un comando, archivo, o recorrido y luego presiona la
tecla [Tab], bash mostrar la parte que falta del nombre del archivo/recorrido, o sonar un bip. Si
suena el bip, pulse [Tab], otra vez para obtener una lista de los archivos/recorridos que cumplen
con el patrn ya tecleado.
Por ejemplo, si se olvida del comando updatedb, pero recuerda cmo empieza, puede hacer su en
root y en la shell teclear up, pulsar dos veces [Tab] y ver una lista de las posibles finalizaciones,
incluyendo updatedb y uptime. Al aadir el comando parcial upd y pulsar [Tab] otra vez, el comando
se completa totalmente.

Encadenar comandos mltiples


Linux le permite introducir mltiples comandos al mismo tiempo. El nico requisito es que separe
los comandos con un punto y coma.
Suponga que ha descargado un nuevo archivo llamado foobar-1.3-2.i386.rpm, y desea colocarlo en
un subdirectorio dentro de su directorio principal llamado rpms/, pero el directorio an no ha sido
creado. Puede combinar la creacin del directorio rpms/ y el desplazamiento del archivo
descargado escribiendo lo siguiente en el intrprete de comandos:
mkdir rpms/; mv foobar-1.3-2.i386.rpm rpms/
Esta lnea crear el directorio, as como tambin mover el archivo, todo esto en una sla lnea.

56

Propiedades y permisos
Al principio de este captulo ha recibido el siguiente mensaje, cuando intent cambiarse al
directorio login de root:
cd /root
bash: /root: Permission denied
Esto es un ejemplo de las caractersticas de seguridad de Linux. Linux, como UNIX, es un sistema
multiusuario y los permisos para tener acceso a los archivos presentan una solucin para proteger
la integridad del sistema de cualquier dao.
Una manera de tener acceso cuando se le deniega el permiso es ejecutando su a root, como vi
anteriormente. Esto es porque quien conoce la contrasea de root tiene acceso completo al
sistema.
Pero cambindose al superusuario no siempre es lo ms conveniente o recomendado, pues es
posible cometer errores y alterar archivos de configuracin importantes como superusuario.

57

Todos los archivos y los directorios pertenecen a la persona que los ha creado. Hemos creado el
archivo serpientes.txt en su directorio login, por ello serpientes.txt le pertenece.
Esto quiere decir que podemos especificar quin puede leer o escribir un archivo. Adems en el
caso de que un archivo sea ejecutable es posible especificar quin tiene el derecho a ejecutarlo.
Lectura, escritura, y ejecucin son las tres configuraciones principales de permisos. Como cada
usuario del sistema est incluido en un grupo, podemos tambin especificar qu grupos pueden
leer, escribir o ejecutar un archivo.
Tome como ejemplo el archivo serpientes.txt con el comando ls utilizando la opcin l:
[pepito@CEPS pepito]$ ls -l
total 6
drwxrwxr-x 2 pepito pepito
drwxrwxr-x 2 pepito pepito
drwxrwxr-x 2 pepito pepito
drwxrwxr-x 2 pepito pepito
drwxrwxr-x 2 pepito pepito
-rw-rw-r-1 pepito pepito
[pepito@CEPS pepito]$

1024 oct 15 16:33


1024 oct 15 16:34
1024 oct 15 16:33
1024 oct 15 16:34
1024 oct 15 16:34
5 oct 15 16:35

archivos
bin
data
docs
rpms
serpientes.txt

Hay mucha informacin aqu. Con esta opcin se visualizan muchos de los detalles. Podemos ver
quin puede leer (r) y escribir (w) el archivo, el creador del archivo (pepito) y a qu grupo de
usuarios pertenece (pepito). Recuerde que por defecto, el nombre de su grupo es el mismo que su
nombre de login.
Entre el nombre del grupo y el nombre del archivo hay informaciones relativas al tamao del
archivo, a la fecha y a la hora de creacin.
La primera columna muestra los permisos actuales; tiene diez espacios. El primer espacio
representa el tipo de archivo. Los nueve restantes son, de hecho, tres grupos de permisos de tres
categoras de usuarios diferentes.
Por ejemplo:
-rw- rw- r-Hemos separado a proasito cada grupo de permisos. Estos tres grupos se refieren
respectivamente al propietario del archivo, al grupo al que pertenece el archivo y "otros", o sea
todos los dems usuarios del sistema.
|
type

(rw-) (rw-)
|
|
owner group

(r--) 1 pepito pepito


|
others

El primer elemento, que especifica el tipo de archivo, puede tener uno de los siguientes valores:

d un directorio
-(dash) un archivo normal (ms que un directorio o enlace)

58

l un enlace simblico a otro programa o archivo en algn otro lugar del sistema.

c archivo de dispositivo modo carcter

b archivo de dispositivo modo bloque

Despus del primer carcter, en cada uno de los tres grupos que siguen es posible especificar uno
entre los siguientes valores:

r indica que el archivo se puede leer.


w indica que el archivo se puede escribir

x indica que el archivo se puede ejecutar (si es un programa)

Cuando aparece un guin en propietario, grupo u otros, quiere decir que no se ha concedido un
permiso en particular. Mire otra vez la primera columna del archivo serpientes.txt e identifique sus
permisos.
ls -l serpientes.txt
-rw-rw-r-1 pepito pepito

5 oct 15 16:35 serpientes.txt

El propietario del archivo, (en este caso, pepito) tiene los permisos para escribir y leer el archivo. El
grupo, pepito, tiene los permisos para escribir y leer serpientes.txt. El archivo no es un programa
por lo que ni el propietario (owner) ni el group tienen permiso para ejecutarlo.
13.14.1. El comando chmod
Puede utilizar el comando chmod para cambiar los permisos en serpientes.txt.
En el archivo original estn presentes los siguientes permisos:
-rw-rw-r--

1 pepito pepito

5 oct 15 16:35 serpientes.txt

Si es el propietario del archivo o est registrado en la cuenta de root, puede cambiar cualquier
permiso para el propietario, grupo u otros.
Por el momento, el propietario y el grupo pueden leer y escribir el archivo. Cualquiera fuera del
grupo, slo puede leer el archivo (r--).
Atencin
Recuerde que los permisos de los archivos son muy importantes para la seguridad. Cada vez
que permite a todo el mundo leer, escribir o ejecutar un archivo, est arriesgando la
integridad del sistema. Como regla general, le aconsejamos que slo otorgue permisos de
lectura y escritura a aquellos que realmente los necesiten.

59

En el siguiente ejemplo, suponga que quiere conceder a todo el mundo el permiso de escritura en
un archivo, de forma que puedan leerlo, escribir en l y grabarlo. Esto quiere decir que tendr que
cambiar la seccin "otros" en los permisos de archivos.
De un vistazo al archivo primero. En el intrprete de comandos de la shell, escriba:
ls -l serpientes.txt
El comando previo visualiza la informacin de este archivo:
-rw-rw-r--

1 pepito pepito

150 Mar 19 08:08 serpientes.txt

Teclee lo siguiente:
chmod o+w serpientes.txt
El comando o+w le dice al sistema que desea dar a "otros" el permiso para escribir en el archivo
serpientes.txt. Para controlar los resultados, puede nuevamente listar los detalles relativos al
archivo (ls l):
-rw-rw-rw-

1 pepito pepito

150 Mar 19 08:08 serpientes.txt

Ahora, cualquiera puede leer o escribir el archivo


Para quitar los permisos de lectura y escritura del archivo serpientes.txt use el comando chmod.
chmod go-rw serpientes.txt
Al escribir go-rw, le est diciendo al sistema que quite los permisos de lectura y escritura para el
grupo y para otros del archivo serpientes.txt.
El resultado sera similar a:
-rw-------

1 pepito pepito

150 Mar 19 08:08 serpientes.txt

Piense que estas configuraciones usando chmod, es como un tipo de taquigrafa para cambiar los
privilegios de acceso, porque todo lo que debe hacer realmente es recordar unos pocos smbolos y
letras para usar con chmod.
A continuacin tiene una lista de la taquigrafa utilizada y sus correspondencias:
Identidades
u es el usuario propietario del archivo
g es el grupo al que el usuario pertenece
o otros, el resto del mundo (ni el propietario, ni su grupo)
a todo el mundo (u, g, y o)

60

Permisos
r acceso a lectura
w acceso a escritura
x acceso de ejecucin
Acciones
+ aadir los permisos
- elimina los permisos
= hace que sea el nico permiso
Quiere comprobar sus habilidades de permisos? Suprima todos los permisos de serpientes.txt
para todo el mundo.
chmod a-rwx serpientes.txt
Ahora vea si puede leer el archivo con el comando cat serpientes.txt, que debera devolver lo
siguiente:
cat: serpientes.txt: Permission denied
Funciona! al remover todos los permisos, incluyendo los suyos, ha bloqueado el archivo. No
obstante, como el archivo le pertenece, siempre puede cambiar sus permisos con el comando
siguiente:
chmod u+rw serpientes.txt
Use el comando cat serpientes.txt para verificar que usted como propietario del archivo, lo puede
leer otra vez.
He aqu algunos ejemplos comunes de configuracin que se pueden realizar con chmod:

g+w aade el acceso de escritura para el grupo


o-rwx eliminar los permisos para los dems

u+x permite al propietario del archivo su ejecucin

a+rw permite a cualquiera leer y escribir en el archivo

ug+r permitir al propietario o al grupo leer el archivo

g=rx concede al grupo la lectura y la ejecucin (no la escritura)

Aadiendo la opcin -R puede cambiar los permisos para el rbol entero del directorio donde se
encuentra.

61

De todas formas puesto que no podemos "ejecutar" un directorio como si fuera una aplicacin;
cuando aada o elimine los permisos de ejecucin para un directorio, estar concediendo (o
denegando) los permisos de bsqueda en el interior de este directorio
Si no le permite a otros tener permiso de ejecucin sobre data, no importa quin tenga permiso de
lectura o escritura. Nadie podr acceder el directorio a menos que conozca exactamente el nombre
del archivo.
Por ejemplo, escriba:
chmod a-x data
para quitarle a todos los permisos de ejecucin.
Esto es lo que ocurre cuando intenta de ejecutar cd en data:
bash: data: Permission denied
Luego, restaure su propio acceso y el del grupo:
chmod ug+x data
Ahora, si verifica su trabajo usando ls -l ver que solamente otros tendrn el acceso denegado para
el directorio data.

Cambiar los permisos usando nmeros


Se acuerda de cuando hablbamos del modo abreviado (taquigrfico) para utilizar chmod? Aqu
tiene otra manera de cambiar los permisos; que quizs en principio podr parecerle algo ms
compleja.
Vuelva a los permisos originales de serpientes.txt:
-rw-rw-r--

1 pepito pepito

150 Mar 19 08:08 serpientes.txt

Cada configuracin del permiso puede estar representada por un valor numrico:

r=4
w=2

x=1

-=0

Si se suman estos valores, el resultado se utiliza para especificar los permisos. Por ejemplo, si
quiere leer y escribir permisos, tendr un valor de 6; 4 (leer)+ 2 (escribir)= 6.
Para el archivo serpientes.txt, aqu tiene un ejemplo de los permisos codificados en nmeros:
- (rw-) (rw-) (r--)

62

|
|
|
4+2+0 4+2+0 4+0+0
El total para los usuarios es seis, el total para los grupos es seis y el total para para los dems es
cuatro. El cdigo de permisos ser 664.
Si quiere cambiar el archivo serpientes.txt para que aquellos en su grupo no tengan acceso a
escritura, pero si lo puedan leer, quite el acceso eliminando dos (2) de ese grupo de nmeros.
Los valores numricos sern seis, cuatro y cuatro (644).
Para llevar a cabo los nuevos valores, escriba:
chmod 644 serpientes.txt
Para controlar los cambios, teclee:
ls -l serpientes.txt
El resultado debera ser:
-rw-r--r--

1 pepito pepito

150 Mar 19 08:08 serpientes.txt

Ningn usuario, a parte del propietario, puede escribir el archivo (ni el grupo ni otros) serpientes.txt.
Para reestablecer los derechos de escritura del grupo en el archivo, puede aadir el valor de w (2)
al segundo grupo de permisos.
chmod 664 serpientes.txt
Aviso
Los permisos a 666 (cualquiera puede leer o escribir) o 777 (cualquiera puede leer, escribir y
ejecutar) dan la posibilidad a todos de leer o escribir un archivo o un directorio. Estos
permisos pueden daar los archivos, por ello utilizarlos no es buena eleccin.
Aqu tiene una lista de algunos valores numricos y de los significados relativos:

-rw------- (600) Slo el propietario tiene el derecho de leer y escribir.


-rw-r--r-- (644) Slo el propietario tiene los permisos de leer y escribir; el grupo y los
dems slo pueden leer.

-rwx------ (700) Slo el propietario tiene los derechos de leer, escribir y ejecutar el
archivo.

-rwxr-xr-x (755) El propietario tiene los derechos de leer, escribir y ejecutar; el grupo y
los dems slo pueden leer y ejecutar.

-rwx--x--x (711) El propietario tiene los derechos de lectura, escritura y ejecucin; el


grupo y los dems slo pueden ejecutar.

63

-rw-rw-rw- (666) Todo el mundo puede leer y escribir en el archivo. No es una buena
eleccin!

-rwxrwxrwx (777) Todo el mundo puede leer, escribir y ejecutar. Otra mala eleccin!

Aqu tiene un conjunto de valores para los directorios:

drwx------ (700) Slo el propietario puede leer y escribir en este directorio.


drwxr-xr-x (755) Cualquiera puede leer el directorio, pero su contenido lo puede cambiar
slo el usuario

Mascara de usuario predeterminada. Comando umask


Los permisos asignados a un archivo o a un directorio cuando son creados dependen de una
variable denominada user mask. Podemos visualizar dicha variable ejecutando el comando sin
argumentos:
[pepito@CEPS pepito]$ umask
0002
[pepito@CEPS pepito]$
El resultado son cuatro dgitos octales que indican de izquierda a derecha, el bit suid, y los otros
tres, el valor de la mscara que determina los permisos iniciales para el propietario, el grupo y para
el resto de los usuarios. Cada digito octal a su vez contiene tres digitos binarios: el 1 binario indica
que cuando se crea un archivo, los permisos asociados a dicho archivo (rwx) sera borrado, y un
cero binario indica que se utiliza el permiso implcito. El permiso implcito es un permiso global que
indica con que permisos se crea por defecto nuestros archivos y directorios (modo 666 para
archivos y 777 para directorios), y se obtiene ejecutando umask sin parmetros (ver ejemplo
anterior). Si no deseamos que por defecto nuestros archivos y directorios se creen con estos
valores, podemos cambiar el valor de la mascara de usuario dando la orden umask con el
argumento deseado. El valor del mismo se calcula restando el modo deseado al valor por defecto
de la mascara. Por ejemplo, si deseamos un crear archivos con valores por defecto:
rw- r-- ---

(640 valor deseado)

entonces:
666
640
---------026

valor por defecto


valor deseado
argumento de umask, valor de mascara buscado

[pepito@CEPS pepito]$ umask 26


[pepito@CEPS pepito]$ umask
0026
[pepito@CEPS pepito]$touch documento
[pepito@CEPS pepito]$ls l documento
-rw-r----- 1 pepito pepito
0 oct 15

17:29

documento

Observe la columna de permisos. Coincide con los valores deseados (rw- r-- ---)

64

Administracin de paquetes
Todo el software en un sistema Red Hat Linux est dividido en paquetes RPM los cuales pueden
ser instalados, actualizados o eliminados. Esta parte describe como manejar los paquetes RPM en
un sistema Red Hat Linux usando herramientas grficas y de lnea de comandos.

La administracin de paquetes con RPM


El Administrador de paquetes (RPM) es un sistema de empaquetado abierto que trabaja en Red
Hat Linux adems de otros sistemas Linux y UNIX y que est a la disposicin de cualquiera. Red
Hat, Inc. fomenta el uso de RPM por parte de otros vendedores para sus propios productos. RPM
se puede distribuir bajo los trminos de GPL.
RPM facilita las actualizaciones de sistema para el usuario final. Es posible instalar, desinstalar y
actualizar paquetes RPM por medio de comandos breves. RPM mantiene una base de datos de los
paquetes instalados y de sus archivos, y usted puede hacer consultas y verificaciones poderosas
en su sistema. Si prefiere una interfaz grfica, puede utilizar Herramienta de administracin de
paquetes para ejecutar muchos comandos RPM.
Durante las actualizaciones, RPM maneja cuidadosamente los archivos de configuracin para que
usted nunca pierda sus modificaciones de personalizacin algo que no lograra hacer con
archivos .tar.gz normales.
RPM permite al desarrollador tomar el cdigo fuente del software y empaquetarlo en paquetes
binarios y de fuente para los usuarios finales. Este proceso es bastante sencillo y se controla desde
un nico archivo y parches opcionales creados por usted mismo. Esta clara delineacin de fuentes
originarias y sus parches y las instrucciones de construccin facilitan el mantenimiento del paquete
al ir apareciendo nuevas versiones del software.
Nota
Ya que RPM efecta cambios a su sistema, debe ser root para poder instalar, quitar, o
actualizar un paquete RPM.
Metas de diseo RPM
Podra ser til conocer las metas de diseo de RPM para poder aprender a usar RPM:
Predisposicin a la actualizacin
Al usar RPM es posible actualizar componentes individuales de su sistema sin tener que
reinstalarlos completamente. Cuando obtenga una versin nueva de un sistema operativo
basado en RPM (como Red Hat Linux), no es necesario efectuar reinstalaciones en su
mquina (como debe hacerse con sistemas operativos basados en otros sistemas de
empaquetado). RPM permite actualizaciones inteligentes, in situ y completamente
automatizadas en su sistema. Los archivos de configuracin en los paquetes se conservan
no obstante las actualizaciones, y as no perder sus personalizaciones. No existen
archivos de actualizacin especficos para actualizar un paquete porque se utiliza el mismo
archivo RPM para instalar y actualizar el paquete en su sistema.

65

Consultas poderosas
RPM fue ideado para proporcionar opciones de consulta poderosas. Se pueden efectuar
bsquedas por toda su base de datos para encontrar un paquete o slo algn archivo.
Tambin es posible averiguar a cul paquete pertenece un determinado archivo y de dnde
proviene el paquete. Los archivos contenidos en el paquete RPM estn en un archivo
comprimido, con un encabezado binario personalizado que contiene informacin til sobre
el paquete y su contenido, permitindole consultar paquetes individuales rpida y
sencillamente.
Verificacin de sistema
Otra caracterstica poderosa es la de verificar paquetes. Si est preocupado porque borr
un archivo importante para algn paquete, verifique el paquete. Se le notificar si hay
anomalas. En este punto, puede reinstalar el paquete si es necesario. Cualquier archivo
de configuracin que haya modificado ser preservado durante la reinstalacin.
Fuentes originarias
Un objetivo crucial ha sido el de permitir el uso de fuentes de software originario, tal y como
ha sido distribuido por los autores originales del software. Con RPM tendr las fuentes
originarias junto con cualquier parche que haya sido usado adems de las instrucciones de
construccin completas. Esta es una ventaja importante por varios motivos. Si por ejemplo
sale una versin nueva de un programa, no necesariamente necesita empezar desde cero
para que se compile. Puede revisar el parche para ver lo que tal vez necesitara hacer.
Usando esta tcnica se ven fcilmente todos los elementos predeterminados y compilados
en el programa y todos los cambios que se le han hecho al software para construir
adecuadamente.
El objetivo de mantener las fuentes originarias podra parecer importante slo para los
desarrolladores, pero el resultado tambin sera software de ms alta calidad para los
usuarios finales. Quisiramos dar las gracias a la gente de distribucin de BOGUS por
haber ideado el concepto de la fuente originaria.

El uso de RPM
RPM tiene cinco modos de operacin bsicos (sin contar la construccin de paquetes): instalacin,
desinstalacin, actualizacin, consulta y verificacin. Esta seccin contiene una visin de conjunto
de cada modo. Para obtener detalles y opciones lance el comando rpm --help.
Encontrar paquetes RPM
Antes de usar un RPM debe saber dnde encontrarlo. Con una bsqueda en Internet obtendr
varios depsitos de RPM, pero si est buscando paquetes RPM construidos por Red Hat, se
pueden encontrar en los siguientes sitios:

Los CD-ROMs Red Hat Linux oficiales


La pgina de errata de Red Hat a disposicin en
http://www.redhat.com/apps/support/errata/

Existe un sitio espejo FTP de Red Hat en http://www.redhat.com/download/mirror.html

66

Red Hat Network

Instalacin de RPM
Los paquetes RPM normalmente tienen nombres de archivo como foo-1.0-1.i386.rpm. El nombre
de archivo incluye el nombre de paquete (foo), versin (1.0), lanzamiento (1) y arquitectura (i386).
La instalacin de un paquete es tan simple como teclear el siguiente comando en el intrprete de
comandos de shell:
rpm -Uvh foo-1.0-1.i386.rpm
Si la instalacin es correcta ver lo siguiente:
Preparing...
1:foo

########################################### [100%]
########################################### [100%]

Como podr ver, RPM imprime el nombre del paquete y luego imprime una serie de almohadillas
(#) mientras se instala el paquete como una especie de medidor de progreso.
Si empieza con la versin 4.1 del RPM, la firma del paquete se autentica en el momento de la
instalacin o de la actualizacin del paquete. Si la verificacin de la firma falla, ver el siguiente
mensaje de error:
error: V3 DSA signature: BAD, key ID 0352860f
Si se trata de una nueva firma en el cabezal, ver el siguiente error:
error: Header V3 DSA signature: BAD, key ID 0352860f
Si no tiene instalada la clave apropiada para verificar la firma, el mensaje dir NOKEY y ser como
lo siguiente:
warning: V3 DSA signature: NOKEY, key ID 0352860f
Para mayor informacin sobre la verificacin de la firma del paquete, consulte la correspondiente.
Nota
Si est instalando un paquete del kernel, use el comando rpm -ivh.
La instalacin de paquetes est ideada para ser sencilla, pero de vez en cuando podra haber
errores.
Paquete ya instalado
Si ya est instalado un paquete de la misma versin, ver:

67

Preparing...
########################################### [100%]
package foo-1.0-1 is already installed
Si desea instalar el paquete de todos modos y la versin que est intentando instalar ya est
instalada, podr usar la opcin --replacepkgs, la cual le dir a RPM que ignore el error:
rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
Esta opcin es til si se borraron los archivos instalados del RPM o si desea que se instalen los
archivos de configuracin originales del RPM.
Archivos en conflicto
Si intenta instalar un paquete que contiene un archivo que ya ha sido instalado por otro paquete o
una versin ms antigua del mismo paquete, ver lo siguiente:
Preparing...
########################################### [100%]
file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package
bar-2.0.20
Para hacer que RPM ignore este error, use la opcin --replacefiles:
rpm -ivh --replacefiles foo-1.0-1.i386.rpm
Dependencias no resueltas
Los paquetes RPM pueden "depender" de otros paquetes, lo cual significa que requieren de la
instalacin de otros paquetes para poder ejecutarse adecuadamente. Si intenta instalar un paquete
que tiene una dependencia no resuelta, ver lo siguiente:
Preparing...
########################################### [100%]
error: Failed dependencies:
bar.so.2 is needed by foo-1.0-1
Suggested resolutions:
bar-2.0.20-3.i386.rpm
Si est instalando un paquete oficial de Red Hat, se le sugerir resolver la dependencia de este
paquete. Encuentre este paquete en los CD-ROMs de Red Hat Linux o en el sitio FTP (o espejo) y
adalo al comando:
rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm
Si se realiza la instalacin correctamente, ver lo siguiente:
Preparing...
1:foo
2:bar

########################################### [100%]
########################################### [ 50%]
########################################### [100%]

Si no se le suguiere resolver la dependencia, puede intentar usar la opcin --redhatprovides para


determinar el paquete que contenga el archivo requerido. Necesita instalar el paquete rpmdbredhat para usar esta opcin.

68

rpm -q --redhatprovides bar.so.2


Si el paquete que contiene el archivo bar.so.2 se encuentra en la base de datos instalada del
paquete rpmdb-redhat aparecer el nombre del paquete:
bar-2.0.20-3.i386.rpm
Si desea forzar la instalacin de todas maneras (no es una buena idea ya que el paquete no
funcionar correctamente), use la opcin --nodeps.
32.2.3. Desinstalacin
Desinstalar un paquete es tan simple como instalarlo. Teclee el siguiente comando en el intrprete
de comandos de la shell:
rpm -e foo
Nota
Observe que hemos usado el nombre foo del paquete, no el nombre de archivo foo-1.01.i386.rpm del paquete original. Para desinstalar un paquete necesitar sustituir foo con el
verdadero nombre de paquete del paquete original.
Podra encontrarse con un error de dependencia cuando est desinstalando un paquete si otro
paquete instalado depende del que est tratando de eliminar. Por ejemplo:
Preparing... ########################################### [100%] error: removing these
packages would break dependencies: foo is needed by bar-2.0.20-3.i386.rpm
Para hacer que RPM ignore este error y desinstale el paquete de todos modos (que tampoco es
buena idea ya que al hacerlo, el paquete que depende de l probablemente dejar de funcionar
correctamente), use la opcin --nodeps.
Actualizacin
Actualizar un paquete es parecido a instalarlo. Teclee el siguiente comando en un intrprete de
comandos de la shell:
rpm -Uvh foo-2.0-1.i386.rpm
Lo que no se ve arriba es que RPM ha desinstalado automticamente cualquier versin antigua del
paquete foo. De hecho, tal vez desee usar -U siempre para instalar paquetes, ya que funcionar
aunque no haya versiones precedentes del paquete instaladas.
Ya que RPM lleva a cabo la actualizacin inteligente de paquetes con archivos de configuracin, tal
vez vea un mensaje como el siguiente:
saving /etc/foo.conf as /etc/foo.conf.rpmsave
Este mensaje significa que los cambios hechos al archivo de configuracin podran no ser
"compatibles a reenvo" con el archivo de configuracin nuevo en el paquete, as que RPM ha

69

almacenado su archivo original y ha instalado uno nuevo. Debera averiguar cules son las
diferencias entre los dos archivos de configuracin y resuelva el problema tan pronto como le sea
posible para asegurarse que su sistema contine funcionando correctamente.
La actualizacin es en realidad una combinacin de las actividades de desinstalacin e instalacin,
as que durante una actualizacin RPM, podr encontrar errores de desinstalacin e instalacin,
adems de cualquier otro tipo de error. Si RPM cree que usted est tratando de actualizar a un
nmero de versin de paquete ms antiguo, aparecer lo siguiente:
package foo-2.0-1 (which is newer than foo-1.0-1) is already installed
Para hacer que RPM "actualice" de todos modos, use la opcin --oldpackage:
rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
Refrescamiento
Refrescar un paquete es parecido a actualizarlo. Teclee el siguiente comando en un intrprete de
comandos shell:
rpm -Fvh foo-1.2-1.i386.rpm
La opcin de refrescamiento RPM compara las versiones de los paquetes especificados en la lnea
de comandos con las versiones de los paquetes que ya han sido instalados en su sistema. Cuando
la opcin de refrescamiento de RPM elabora una versin ms reciente de un paquete ya instalado,
ste ser actualizado a la versin ms reciente. Sin embargo, la opcin de refrescamiento de RPM
no instalar un paquete si no existe un paquete previamente instalado del mismo nombre. Esto no
es igual a la opcin de actualizacin de RPM, ya que una actualizacin s instalar paquetes, no
importa si ya est instalada una versin ms antigua de un paquete.
La opcin de refrescamiento de RPM funciona ya sea para paquetes individuales que para un
grupo de paquetes. Si usted acaba de descargar una gran cantidad de paquetes diferentes y slo
desea actualizar los paquetes que ya estaban instalados en su sistema, la solucin es el
refrescamiento. Si utiliza la opcin de refrescamiento, antes de usar RPM no tendr que eliminar
ningn paquete indeseado del grupo que ha descargado.
En este caso, puede ejecutar el comando siguiente:
rpm -Fvh *.rpm
RPM actualizar automticamente slo los paquetes que ya estn instalados.
Consultas
Use el comando rpm -q para hacer consultas a la base de datos de los paquetes instalados. El
comando rpm -q foo imprimir el nombre de paquete, versin y nmero de lanzamiento del paquete
foo instalado:

70

foo-2.0-1
Nota
Observe que hemos utilizado el nombre foo del paquete. Al hacer una consulta sobre un
paquete, necesitar sustituir foo con el verdadero nombre del paquete.
En vez de especificar el nombre del paquete, se pueden usar las siguientes opciones con -q para
especificar lo(s) paquete(s) que desea consultar. Se llaman Opciones de especificacin de
paquetes.

-a consulta todos los paquetes actualmente instalados.


-f <file> consultar el paquete que posea <file>. Cuando especifique un archivo, deber
especificar la ruta completa del archivo (/usr/bin/ls, por ejemplo).

-p <packagefile> consulta el paquete <packagefile>.

Hay varias maneras de especificar qu informacin mostrar sobre los paquetes consultados. Las
siguientes opciones sirven para seleccionar el tipo de informacin que usted est buscando. Se
llaman Opciones de seleccin de informacin.

-i muestra informacin del paquete como el nombre, la descripcin, la versin, el tamao,


la fecha de construccin, la fecha de instalacin, el distribuidor, y otra informacin
miscelnea.
-l muestra la lista de archivos contenidos en el paquete.

-s muestra el estado de todos los archivos en el paquete.

-d muestra una lista de archivos marcados como documentacin (pginas de manual,


pginas de informacin, archivos LAME, etc.).

-c muestra una lista de archivos marcados como archivos de configuracin. Estos son los
archivos que usted cambia despus de la instalacin para adaptar el paquete a su sistema
(como sendmail.cf, passwd, inittab, etc.).

Para acceder a opciones que muestran listas de archivos, puede aadir -v al comando para que
muestre las listas en un formato ls -l conocido.
Verificacin
La verificacin de un paquete tiene que ver con comparar la informacin sobre archivos instalados
de un paquete con la misma informacin del paquete original. Entre otras cosas, la verificacin
compara el tamao, la suma MD5, los permisos, el tipo, el dueo y el grupo de cada archivo.
El comando rpm -V verifica un paquete. Usted puede utilizar cualquiera de las Opciones de
seleccin de paquete de la lista para pedir que se especifiquen los paquetes que desea verificar.
Un modo sencillo de verificar es rpm -V foo, que verifica si todos los archivos en el paquete foo se
encuentran en el mismo estado en que estaban cuando originalmente fueron instalados. Por
ejemplo:

Para verificar un paquete que contiene un determinado archivo:

71

rpm -Vf /bin/vi


Para verificar TODOS los paquetes instalados:

rpm -Va
Para verificar un paquete instalado contra un archivo de paquete RPM

rpm -Vp foo-1.0-1.i386.rpm


Este comando puede ser til si sospecha que sus bases de datos de RPM estn daadas.

Si todo fue verificado correctamente, no habr salida. Si se encuentran discrepancias, sern


mostradas. El formato de la salida es una cadena de ocho caracteres (una c identifica un archivo
de configuracin) seguido por el nombre del archivo. Cada uno de los ocho caracteres seala el
resultado de una comparacin entre un atributo del archivo al valor de ese atributo escrito en la
base de datos de RPM. Un slo . (punto) significa que ha pasado la prueba. Los siguientes
caracteres sealan que ciertas pruebas no han sido pasadas:

5 MD5 suma de verificacin


S tamao de archivo

L enlace simblico

T hora de modificacin de archivo

D dispositivo

U usuario

G grupo

M modo (incluye permisos y tipos de archivos)

? archivo que no se puede leer

Si ve alguna salida, use su buen juicio para determinar si debera quitar o reinstalar el paquete o
resolver el problema de otra manera.

Verificando la firma del paquete


Si desea verificar si algn paquete ha sido daado o alterado examine slo la suma md5 tecleando
el siguiente comando en un intrprete de comandos de shell (sustituya <rpm-file> con el nombre de
archivo de su paquete):
rpm -K --nogpg <rpm-file>
Aparecer el mensaje <rpm-file>: md5 OK. Este breve mensaje significa que el archivo no ha sido
daado al momento de la descarga. Si desea un mensaje ms detallado, reemplace -K por -Kvv en
el comando.

72

Por otra parte, cunto es de fiable el desarrollador que cre el paquete? Si el paquete est
firmado con la clave GnuPG del desarrollador, sabr que el desarrollador de verdad es quien dice
ser.
Se puede firmar un paquete RPM usando la Gnu Privacy Guard (o GnuPG), para ayudarle a
asegurarse que el paquete descargado es de fiar.
GnuPG es una herramienta para comunicacin segura; reemplaza completa y gratuitamente la
tecnologa de encriptacin de PGP, un programa electrnico de privacidad. Con GnuPG usted
puede autentificar la validez de los documentos y encriptar/descifrar datos de y hacia otros
destinatarios. Adems, GnuPG es capaz de descifrar y verificar archivos PGP 5.x.
Durante la instalacin de Red Hat Linux, GnuPG est instalado por defecto. De este modo podr
usar inmediatamente GnuPG para verificar cualquier paquete que reciba desde Red Hat. En primer
lugar necesitar importar la clave pblica privada de Red Hat.

Importar claves
Para verificar los paquetes de Red Hat tiene que importar las claves de GPG de Red Hat. Para ello,
ejecute el siguiente comando en el intrprete de comandos de la shell:
rpm --import /usr/share/rhn/RPM-GPG-KEY
Para ver la lista de todas las claves instaladas para la verificacin de RPM, ejecute el comando:
rpm -qa gpg-pubkey*
Para la clave de Red Hat, la salida incluye:
gpg-pubkey-db42a60e-37ea5438
Para mostrar ms detalles sobre una clave determinada, use rpm -qi seguido de la salida del
anterior comando:
rpm -qi gpg-pubkey-db42a60e-37ea5438

Verificacin de la firma de paquetes


Para controlar la firma GnuPG de un archivo RPM despus de importar la clave del constructor
GnuPG, use el siguiente comando (sustituya <rpm-file> con el nombre de archivo de su paquete
RPM):
rpm -K <rpm-file>
Si todo va bien, ver el siguiente mensaje: md5 gpg OK. Esto significa que el paquete no est
daado.

73

Impresione a sus amigos con RPM


RPM es una herramienta til ya sea para administrar su sistema que para diagnosticar y solucionar
problemas. La mejor manera de comprender todas sus opciones es viendo algunos ejemplos.

Tal vez usted haya borrado algunos archivos accidentalmente, pero no est seguro de lo
que ha eliminado. Si desea verificar su sistema entero y ver lo que podra hacer falta,
podra intentarlo con el siguiente comando:
rpm -Va
Si faltan algunos archivos o parecen daados, probablemente debera o reinstalar el
paquete o desinstalarlo y luego reinstalarlo.
Tal vez alguna vez ver un archivo que no reconoce. Para saber a qu paquete pertenece,
tecleara:
rpm -qf /usr/X11R6/bin/ghostview
La salida es parecida a lo siguiente:
gv-3.5.8-22
Podemos combinar los dos ejemplos de arriba en la siguiente hiptesis. Digamos que est
teniendo problemas con /usr/bin/paste. Le gustara verificar el paquete al cual pertenece
ese programa, pero no sabe a cul paquete pertenece paste. Simplemente teclee el
siguiente comando:
rpm -Vf /usr/bin/paste
y se verificar el paquete correcto.
Desea encontrar ms informacin sobre un determinado programa? Puede intentar el
siguiente comando para localizar la documentacin que acompaaba el paquete al cual
pertenece ese programa:
rpm -qdf /usr/bin/free
La salida debera ser parecida a la siguiente:
/usr/share/doc/procps-2.0.11/BUGS
/usr/share/doc/procps-2.0.11/NEWS
/usr/share/doc/procps-2.0.11/TODO
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/oldps.1.gz
/usr/share/man/man1/pgrep.1.gz
/usr/share/man/man1/pkill.1.gz
/usr/share/man/man1/ps.1.gz
/usr/share/man/man1/skill.1.gz
/usr/share/man/man1/snice.1.gz

74

/usr/share/man/man1/tload.1.gz
/usr/share/man/man1/top.1.gz
/usr/share/man/man1/uptime.1.gz
/usr/share/man/man1/w.1.gz
/usr/share/man/man1/watch.1.gz
/usr/share/man/man5/sysctl.conf.5.gz
/usr/share/man/man8/sysctl.8.gz
/usr/share/man/man8/vmstat.8.gz

Podra encontrar un RPM nuevo y no saber para qu sirve. Para encontrar informacin
sobre l, use el siguiente comando:
rpm -qip crontabs-1.10-5.noarch.rpm
La salida es parecida a lo siguiente:

Name : crontabs Relocations: (not relocateable) Version : 1.10 Vendor: Red Hat, Inc.
Release : 5 Build Date: Fri 07 Feb 2003 04:07:32 PM EST Install date: (not installed) Build
Host: porky.devel.redhat.com Group : System Environment/Base Source RPM: crontabs1.10-5.src.rpm Size : 1004 License: Public Domain Signature : DSA/SHA1, Tue 11 Feb
2003 01:46:46 PM EST, Key ID fd372689897da07a Packager : Red Hat, Inc.
<http://bugzilla.redhat.com/bugzilla> Summary : Root crontab files used to schedule the
execution of programs. Description :The crontabs package contains root crontab files.
Crontab is the program used to install, uninstall, or list the tables used to drive the cron
daemon. The cron daemon checks the crontab files to see when particular commands are
scheduled to be executed. If commands are scheduled, then it executes them.
Quizs desea ver qu archivos instala el RPM crontabs. Ingrese lo siguiente:

rpm -qlp crontabs-1.10-5.noarch.rpm


La salida ser de la siguiente manera:
Name : crontabs Relocations: (not relocateable) Version : 1.10 Vendor: Red Hat, Inc.
Release : 5 Build Date: Fri 07 Feb 2003 04:07:32 PM EST Install date: (not installed) Build
Host: porky.devel.redhat.com Group : System Environment/Base Source RPM: crontabs1.10-5.src.rpm Size : 1004 License: Public Domain Signature : DSA/SHA1, Tue 11 Feb
2003 01:46:46 PM EST, Key ID fd372689897da07a Packager : Red Hat, Inc.
<http://bugzilla.redhat.com/bugzilla> Summary : Root crontab files used to schedule the
execution of programs. Description :The crontabs package contains root crontab files.
Crontab is the program used to install, uninstall, or list the tables used to drive the cron
daemon. The cron daemon checks the crontab files to see when particular commands are
scheduled to be executed. If commands are scheduled, then it executes them.

Estos son solamente algunos ejemplos. Al usarlo, descubrir muchos ms usos para RPM

PERMISOS ESPECIALES

75

Cuando vimos los comandos para modificar los permisos de un archivo, el


comando umask muestra informacin acerca del modo de un archivo; pero el
formato de salida de este comando es el siguiente:
[usuario @ localhost usuario]$ umask
0002
[usuario @ localhost usuario]$
Los numeros de la cuarta posicin de izquierda a derecha, indican lo siguiente:
Valor
0
1
2
3
4
5
6
7

Significado
Sin permisos especiales (pretederminado)
Activar el bit de persistencia (t)
Activar el bit suid de grupo (s)
Activar el bit suid de grupo y el de persistencia
Activar el bit suid de propietario
Activar el bit suid de propietario y el de persistencia
Activar el bit suid de propietario y el de grupo
Activar el bit suid de propietario, de grupo y el de persistencia

Si desea dar lectura, escritura y ejecucin al propietario; lectura y ejecucin al


grupo; y solo ejecucin a todos los demas, el comando tendria el siguiente
aspecto:
chmod 751 < nombre de archivo >
Si se desea que el archivo anterior se ejecuta con el identificador de grupo del
grupo propietario, <sgid>, el comando seria como sigue:
chmod 2751 < nombre de archivo >
Nota
Un usuario tiene algunos privilegios especiales en su directorio principal. Si el usuario root es
propietario de un archivo y solo el usuario root tiene permisos de lectura/escritura para ste
archivo, el usuario normal puede leer, escribir y eliminar aquel archivo en su directorio
principal (hogar). Sin embargo, no puede cambiar la propiedad o los permisos de dicho
archivo.

El bit SUID, el bit GID y el bit de persistencia

76

Se ha visto como activar el bit SUID, SGID y el bit de persistencia. Pero, qu es


esto exactamente? Con un archivo ejecutable, activar el bit UID de propietario
obliga al archivo ejecutable binario (lo que no funcionar con scripts o archivos
ejecutables no binarios) a ejecutarse como si lo hubiera lanzado el usuario
propietario del archivo y no realmente quien lo lanzo. Normalmente, el usuario root
es propietario los ejecutables binarios con el SUID activo, de forma que cualquiera
que pueda ejecutar el programa, lo ejecuta como usuario root. Cuando un
programa es SUID o SGID, una s sustituye a la x que corresponde al bit de
ejecucin de usuario del usuario o grupo. Esto es peligroso pero necesario para
algunos programas. Por ejemplo, un usuario normal no puede leer o escribir en el
archivo /etc/shadow. Para que este usuario normal (sin privilegios) pueda cambiar
su contrasea, el ejecutable passwd debe ser SUID del usuario root. El bit SGID
funciona del mismo modo para los grupos.
Cuando los bits SUID o SGID se refieren a directorios, los archivos que se
almacenan en estos directorios adoptan el propietario o grupo del directorio, en
vez de adoptar el del usuario que cre el archivo (que es caso habitual).
El bit de persistencia, mostrado como t en lugar del bit de ejecucin normal para
el nivel otros se usa normalmente en directorios tales como /tmp. Este atributo en
concreto hace que solo el propietario del archivo pueda eliminarlo. Otros pueden
leerlo, pero slo el propietario puede eliminarlo.
Modificacin de la propiedad de usuario o grupo
Como ya se ha visto en el capitulo anterior, la clave del concepto de permisos es
el hecho de que un archivo dispone tanto de un indicador de propietario como de
un indicador de grupo. La utilidad chown modifica el indicador de propietario, la
utilidad chgrp modifica el indicador de grupo. Solo el superusuario puede modificar
la propiedad de un archivo.
Precaucin
No cambie nunca el indicador de propietario o el indicador de grupo en ningun archivo del
sistema como el archivo /etc/passwd. Solamente se deben modificar de esta forma los
archivos de datos que se han de compartir como parte de un grupo lgico. La modificacin
de algunos archivos del sistema puede hacer inservibles ciertos servicios.

El indicador de propietario de un archivo se puede modificar como sigue:


# chown pepito /tmp/archivo-de-prueba
# ls l /tmp
-rwxr--r-- 1 pepito users

1688 mar 29 20:16 archivo-de-prueba

El indicador de grupp de un archivo se puede modificar como sigue:

77

# chgrp ing /tmp/archivo-de-prueba


# ls l /tmp
-rwxr--r-- 1 pepito ing

1688 mar 29 20:16 archivo-de-prueba

Consejo
El comando chown se puede utilizar para modificar tanto el indicador de propietario como el
indicador de grupo, especificando ambos y separndolos con uno o dos puntos:
chown pepito.ing /tmp/archivo-de-prueba

CLIENTE REMOTO Y SERVIDOR X


El sistema X Window, conocido generalmente como X, es un sistema de
ventanas portable, que se ejecuta de forma transparente en red en diferentes
plataformas y sistemas operativos. El sistema X permite que los programas
presenten ventanas, que pueden contener informacin textual y grafica, en
cualquier computador que soporte el protocolo X Window. Este protocolo
especifica cual es la informacin que debe ser transmitida entre los procesos
activos en el sistema X haciendo que se consiga una compatibilidad, no solo a
nivel de cdigo fuente, sino tambin a nivel binario. Gracias a este mecanismo
podemos tener maquinas con arquitecturas diferentes e incluso con distintos
sistemas operativos intercambiando informacin por medio de una red local.
El sistema X Window fue desarrollado en el MIT (Instituto Tecnolgico de
Massachussets) con la ayuda de la compaa DEC (Digital Equipment
Corporation). Su arquitecto principal fue Robert Sheifler. X Window evolucion a
partir de un sistema de ventanas desarrollado en la Universidad de Stanford
conocido como sistema W.
Conexin en red en el sistema X Window
El sistema X Window esta diseado para ofrecer sus servicios a travs de la red.
Esto quiere decir que las aplicaciones que utilizan el protocolo X pueden utilizar la
red para intercambiar informacin. Para los programadores que desarrollen
aplicaciones X Window en UNIx (o cualquier variante del mismo) utilizando
lenguaje C, existe una biblioteca denominada Xlib que permite el acceso al
sistema X abstrayendo el protocolo, lo que permite centrarnos exclusivamente en
aspectos relacionados con la aplicacin. Existen otros servicios de ms alto nivel
construidos sobre Xlib y que proporcionan una gestin an ms cmoda. Estos
servicios se conocen como Toolkit, y como ejemplos podemos citar X Toolkit,
OSF/Motif Toolkit, Qt o GTK.
78

Xlib proporciona servicios bsicos como crear ventanas, primitivas de dibujo como
lneas, crculos, arcos, rectngulos, etc., as como el control de dispositivos
(teclado y ratn) y comunicacin entre diferentes programas. Los Toolkit son
servicios ms avanzados basados en el modelo de programacin orientada a
objetos. Estas bibliotecas permiten la creacin de ventanas de diferentes tipos:
ventanas de dibujo, ventanas de men desplegables, de men de botones, etc.
Tambin permiten dotar a las ventanas de una decoracin con objeto de poder
manipularlas ms cmodamente.
La figura muestra como es la estructura del sistema X Window. En la parte ms
superior se encuentra la aplicacin, la cual puede hacer uso de todos los servicios
X Window, los cuales a su vez pueden apoyarse en los servicios de red.

Clientes y servidores X
X Display Manager (XDM)

79

XDM, o X Display Manager, es un programa que facilita la utilizacin del sistema.


Xdm proporciona servicios similares a aquellos proporcionados por init, getty y
login en terminales alfanumericos, es decir, preguntar porel nombre de usuario y
su contrasea, autentificar al usuario e iniciar una sesin pero todo aquello bajo un
entorno grafico.
Arranque de xdm
Xdm puede ser configurado por el administrador del sistema para que sea el modo
estndar de conexin al sistema. Para ello el administrador debe modificar el
archivo /etc/inittab y definir un nuevo nivel de arranque por defecto, generalmente
el numero 5. asi pues, la lnea que indica el nivel de inicio por defecto, que viene a
ser algo como lo siguiente:
Id:3:initdefault:
Debe pasar a lo siguente:
Id:5:initdefault:
A partir de este momento, cada vez que se arranque el sistema, el inicio de sesin
ser a travs de la presentacin de una pantalla grfica.
Escritorio Remoto: conexin con un servidor X en red
Con la opcin display podemos especificar cual es el servidor X donde se va a
visualizar el cliente. De este modo podemos provocar que un cliente sea
visualizado en otra maquina que este conectada a la nuestra por medio de la red
local. Su sintaxis es la siguiente:
-display [nodo]:Servidor [.pantalla]
Nodo: es la direccin Internet asociada al servidor X con el que deseamos
comunicarnos y que recibir las ordenes del cliente. Esta direccin puedes
ser un alias o un numero IP.
Servidor: es el numero de servidor que va a recibir las ordenes del cliente.
En un sistema multiusuario pueden existir varios terminales X y cada uno de
ellos necesita su propio servidor. En un sistema con un nico terminal, el
servidor se identifica con el numero 0.
Pantalla: es el numero de pantalla donde ese van a representar los grficos
del cliente. Un terminal X se puede componer de varias pantallas pero todas
ellas comparten un mismo teclado y raton. Cada terminal X debe estare
gestionado por un servidor X, y un mismo servidor puede atender a las
diferentes pantallas.

80

Para nuestro ejemplo, utilizaremos el software propietario llamado MIX de la


empresa Microimage. Este software simula un servidor X y jalar la pantalla
grfica de una mquina Linux a travs de la red y la depositar en la pantalla con
Windows XP. Esto sera en escritorio remoto.

Desde la maquina con Windows XP, abra una conexin telnet o ssh utilizando el
cliente putty hacia la mquina Linux. Debe tener una cuenta de usuario registrada
en dicha mquina. Luego, utilizando la variable de entorno DISPLAY, exporte la
pantalla del cliente Linux hacia la mquina que ejecute el servidor MIX. Para lo
cual, una vez en el shell de Linux, ejecute lo siguiente:
export DISPLAY=[valor de la IP de la mquina Win XP]:0.0
si la mquina tuviera ip=192.168.1.1, entonces el comando sera:
export DISPLAY=192.168.1.1:0.0
De esta manera, la salida grafica se enva a la mquina Win XP y no se ejecuta en
forma local.
Una vez ejecutado esto, instale el software en la mquina Win XP, nos referimos al
programa MIX. Una vez instalado, ejecutelo y vera una pantalla similar a la
siguiente:

81

A continuacin, el servidor X esta listo para ejecutarse en la mquina Win XP


jalando toda aplicacin grfica que nosotros ejecutemos. Por ejemplo, si
deseamos ver el escritorio de Linux en la mquina con Windows, ejecute la
siguiente orden desde la ventana putty:
nautilus

82

Como puede observar, aparece el escritorio predeterminado de Linux. La malla


cuadricular que aparece se debe a que el usuario ejecuto otra aplicacin grfica y
el servidor X de la mquina Win XP espera a que usted ubica la posicin donde
aparecer la ventana de dicha aplicacin grafica.
Para ejecutar aplicaciones, haga doble clic sobre el icono llamado Empezar aqu
y aparecer una ventana que le permitir acceder a las aplicaciones
representadas por iconos. Por ejemplo, para ejecutar el navegador incluido
llamado mozilla, entre a Empezar aqu, haga doble clic en Aplicaciones y luego
en Internet y finalmente el icono Mozilla y aparecer lo siguiente:

Note como se observa claramente el boton de inicio de Windows XP; sin embargo
la pantalla mostrada es el escritorio de Linux, y encima de el, el navegador
mozilla. Esto se muestra como si usted estuviera sentado al frente de la
mquina Linux. Esto es un escritorio remoto.

83

INSTALACIN DE APLICACIONES EN FORMATO TAR


COMO TRABAJAR CON ARCHIVOS TAR
Cuando el software no se encuentra em formato de paquete RPM, lo ms comn
es encontrarlo entonces como archivo TAR. TAR significa Tape Archive (Archivo de
Cinta), y hace referencia al uso que tenian estos archivos originalmente, que era
archivar informacin en cintas magnticas. Ahora, el trmino se usa para cualquier
conjunto de archivos creados con el comando tar. En trminos de administracin
de paquetes, esta seccin serefiere solamente a archivos TAR que contienen
software que va a ser usado en el sistema.
Un archivo TAR se parece a un archivo de paquete en que contiene archivos y
directorios, junto con su informacin sobre el autor, permisos, tamao y fecha. Sin
embargo, puesto que un archivo TAR no incluye la informacin adicional que un
paquete s tiene, no se consiguen ni mucho menos los mismos beneficios en la
administracin. A menudo son ms complicados de instalar y es ms difcil
seguirles la pista cuando estn instalados. Por lo tanto, procure buscar primero el
software que necesite en formato de paquete rpm, y slo si no lo consigue, haga
uso de los archivos TAR.
A menudo, un archivo TAR contiene programas binarios que se pueden ejecutar
directamente en su sistema, pero otras veces contienen el cdigo fuente del
software, que debe compilarse.
Los archivos TAR tpicos tienen la extensin .tar, sin embargo, es ms comn
encontrarlos comprimidos, con lo que tienen la extensin .tar.gz, .tgz, o .tar.Z. El
comando tar es capaz de manejar archivos comprimidos y descomprimidos.
Nota
Los archivos .tar.gz y .tgz se comprimen por medio de la utilidad gzip de
GNU, mientras que los archivos Z se comprimen con la utilidad compress,
ms antigua. tar soporta automticamente ambos tipos de compresin.
Los archivos y directorios de un archivo TAR comparten todos un directorio raz
comn. Por ello, despus de instalar un archivo TAR, a menudo es necesario
seguir realizando operaciones adicionales para mover archivos desde su rbol de
directorios comn a sus locaciones propias de la instalacin.

84

Pasos para la instalacin


Lo primero que hay que decidir al instalar un archivo TAR, es donde colocarlo. En
el capitulo correspondiente a Sistema de Archivos, se describe las diversas
partes del sistema de archivos Linux y donde se sita cada cosa. Generalmente, el
software que viene como parte de la distribucin, se coloca en las jerarquas de
directorios / y /usr. Es muy recomendable que site cualquier software que instale,
bajo la jerarqua de directorios /usr/local. Esto permite mantener al software de los
archivos TAR separado del proporcionado por su distribucin, lo que permite que
sea ms fcil de localizar despus, as como de actualizarlo o eliminarlo. Si esta
manejando un archivo TAR que contiene cdigo fuente, ubquelo en /usr/local/src.
Para ubicar cualquier otro archivo, es mejor hacerlo en su propio directorio bajo
/usr/local.
Un archivo TAR se puede organizar de tres maneras distintas que, normalmente,
requieren un tratamiento distinto. Observe el archivo TAR por medio de uno de los
siguientes comandos:
tar tf tarfile.tar
tar tfz tarfile.tar.gz
Nota
Observe que debe incluir la opcin z slo para archivos comprimidos (.tar.gz
o .tgz). Adems, fjese en que el comando tar no utiliza un guin (-) antes de
sus parmetros de opcin. A causa del formato inusual de los parmetros de
tar (por lo dems, conocido por razones histricas), tradicionalmente no se
incluye el guin inicial (-). Si se hace esto, aunque es legal en la mayor parte
de las versiones modernas de tar, se cambia sutilmente la forma de
interpretacin de los parmetros, por lo que no se recomienda.
La opcin t solicita que se muestre una tabla de contenidos, y la opcin f
indica que el parmetro siguiente es el archivo, que se va a usar (en lugar del
origen, por omisin, que es la unidad de cinta).
Por ejemplo veamos como se aplica esta ultima informacin al archivo llamado
install_flash_player_7_linux.tar.gz:
# tar ztf install_flash_player_7_linux.tar.gz
install_flash_player_7_linux/
install_flash_player_7_linux/flashplayer.xpt
install_flash_player_7_linux/libflashplayer.so
install_flash_player_7_linux/flashplayer-installer
install_flash_player_7_linux/Readme.htm
install_flash_player_7_linux/Readme.txt
85

Cuando examine la tabla de contenidos, probablemente ver uno de los siguientes


formatos:

Nivel superior, directorio relativo. Es posible que un archivo TAR como el


anterior tenga un directorio de nivel superior como
install_flash_player_7_linux/. Si es as, copie este archivo en /usr/local y
extrigalo all.

Directorio relativo, pero no de nivel superior. De nuevo, al usar un


archivo TAR como el anterior, es posible que observe que los archivos no
tienen un directorio por encima. Antes de extraer este archivo, cree un
directorio en /usr/local con el mismo nombre que el archivo tar (sin las
extensiones). Mueva el archivo tar a este directorio antes de extraerlo.

Directorios absolutos. Algunos archivos tar (algo poco habitual hoy en


da), almacenan rutas de directorios absolutas. Por ejemplo, si el creador
del archivo pretenda que el archivo pppd se instale en /usr/bin/pppd, esa
ruta completa se listar en el archivo. Esto es muy incmodo, porque
dificulta mucho el poder mirar el archivo sin instalarlo. Es tan incmodo, que
la mayora de las versiones modernas de tar no permiten crear este tipo de
archivos sin usar unos parmetros especiales. Incluso el fabricante lo
disee de esta forma, la mayor parte de las versiones de tar, ignoran por
omisin la ruta absoluta, y extraen el archivo como si el directorio actual
fuera /.

Segn este ejemplo (/usr/local/pppd), si se ejecuta tar sobre /usr/local/pppd, esl


archivo se extraer a /usr/local/pppd/usr/bin/pppd. Generalmente, este es el mejor
modo de extraer estos archivos. Despus de que los haya revisado, siempre podr
mover los archivos a dnde tengan que estar.
Despus de que haya revisado los contenidos del archivo tar, puede extraer los
archivos con alguno de los siguientes comandos:
tar xvf tarfile.tar
tar xvfz tarfile.tar.gz
Observe una vez ms, que la opcin z debe usarse solamente para archivos
comprimidos (.tar.gz, .tgz, .tar.Z).

86

Ayudas comunes para la instalacin


Puesto que losa rchivos TAR pueden incluir cualquier estructura concebible de
archivos, o necesitar de cualquier secuencia de pasos para su instalacin, es
imposible cubrir todos los posibles aspectos de instalacin de TAR. Sin embargo,
hay algunos convenios comunes para tratar con este tipo de archivos.
Casi todos los archivos TAR contienen un conjunto de instrucciones en un archivo
README o INSTALL en la raz de su rbol de directorios. Lo mejor es leer dichas
instrucciones cuidadosamente y seguirlas con exactitud.
Algunas veces, los archivos TAR que contienen binarios, tienen un programa de
instalacin con un nombre fcil de identificar, como install (instalar) o setup
(configurar).
Los archivos TAR que contienen cdigo fuente, a menudo incluyen un script
llamado configure (generado por el sistema autoconf de GNU). Este script trata
de detectar informacin sobre su sistema y configurar automticamente el entorno
para ese cdigo fuente, para que as se pueda compilar en el sistema. Se pueden
identificar esa clase de sistemas si se busca un archivo con el nombre configure.
Si se encuentra un archivo as, an habra que mirar en los archivos INSTALL y
README; pero, de manera casi universal, se deberan seguir los siguientes pasos
en la instalacin (se debe ejecutar estos comandos estando ubicado en el
directorio de instalacin generado por la descompresin de los archivos):
./configure
Make install
La utilidad configure acepta muchas opciones de personalizacin, que pueden
listarse por medio del siguiente comando:
./configure --help
Bsicamente, los paquetes RPM y deb son normalmente mucho ms faciles de
instalar que los archivos TAR, y los paquetes desarrollados especficamente para
su distribucin, se instalarn normalmente de manera mucho ms fcil y
coherente. Incluso as, y puesto que la inmensa mayora de distribuciones TAR
usan ahora, como se mostr antes, una interfaz autoconf muy coherente, su
compilacin e instalacin es, por lo general, muy sencilla.

87

Nota
Si se tiene suficiente espacio en disco, es til guardar el rbol de archivos d
cdigo fuente para las distribuciones tar generadas por autoconf. Si se dirige
al directorio de archivos de cdigo fuente y escribe make uninstall, se puede
normalmente eliminar el paquete del sistema sin dejar huella. Para guardar el
rbol pero ahorrando mucho espacio en disco, se puede ejecutar make clean.
Esto borrar los archivos del rbol que haya instalado en otro lugar de su
sistema, y borrar tambin varios archivos derivados.
COMPATIBILIDAD ENTRE BIBLIOTECAS
Esta seccin, aclara la forma de resolver el problema de incompatibilidad entre los
programas y las bibliotecas compartidas que hay instaladas en su sistema.
La mayor parte del software que se instala en el sistema hace uso de bibliotecas
compartidas. Estas bibliotecas son archivos con subrutinas compartidas y
funciones que los programas usan para realizar sus operaciones. Cuando un
programa se compila para usar bibliotecas compartidas, como ocurre casi
siempre, el montador graba la informacin del nmero de versin de la biblioteca
compartida con la que el programa necesita ejecutarse.
Algunas veces se encontrar software que se compil para versiones de
bibliotecas compartidas diferentes a las que tiene en su sistema. Por fortuna, hay
formas sencillas de tratar este problema.
Como se asignan nmeros de versin las bibliotecas compartidas
Primero, necesita conocer cmo se determinan las versiones de las bibliotecas
compartidas, y como se expresan en el sistema de archivos.
Los nmeros de versin de las bibliotecas, ofrecen al menos dos y algunas veces
tres niveles de nmeros de versin. Por ejemplo, una instancia de la biblioteca
compartida libc tiene el nmero de versin 5.4.38. La versin principal de software
es la que ms cuenta respecto a la compatibilidad de software. Si mira en los
directorios /lib/gnulibc1 y /lib, se dar cuenta de que libc.so.5 es un enlace
simblico (una referencia) a libc.so.5.4.46, y que libc.so.6 es un enlace simblico a
libc-2.1.1.so, que es la principal biblioteca compartida C de su sistema. Esta
biblioteca es por s misma la ms importante y la ms ampliamente usada en su
sistema.
El sistema de bibliotecas compartidas se mantiene con ldconfig. Cada vez que se
instala una biblioteca compartida en su sistema, ldconfig se ejecuta y se aade
una nueva entrada al archivo /etc/ld.so.cache. entonces se crea un enlace
88

simblico con el nombre de la biblioteca y su nmero de versin principal, lomcual


crea la referencia entre el archivo real de la biblioteca compartida y la versin
completa de su nombre. Esto ocurre automticamente cuando se instalan
paquetes utilizando RPM, ya que los paquetes que instalan bibliotecas
compartidas tienen generalmente un script de post-instalacin que ejecuta
ldconfig. Si ha instalado bibliotecas compartidas desde archivos TAR, puede que
necesite ejecutar comandos manualmente para que las bibliotecas se registren en
el sistema.

89

You might also like