Está en la página 1de 210

Sistemas

Operativos
Avanzados
2 Sistemas Operativos Avanzados
Sistemas Operativos Avanzados 3

Agradecimientos

Extractos de documentos extraidos de:

http://www,redhat.com Pgina Web de Red Hat


http://www.europe.redhat.com/ Pgina Web de Red Hat Europa
http://www.wikilearning.com/ Comunidad Wiki
http://www.linuxparatodos.net Linux Para Todos - Factor Evolucin

CIBERTEC CARRERAS PROFESIONALES


4 Sistemas Operativos Avanzados

ndice

Presentacin
Red de contenidos
Sesiones de aprendizaje
SEMANA 1 : Introduccin al software libre, caractersticas de Linux
SEMANA 2 : Comandos Bsicos, configuracin de red
SEMANA 3 : Administracin de cuentas de usuarios y grupos
SEMANA 4 : Estructura y seguridad del sistema de archivos
SEMANA 5 : Manejo de filesystems en Linux
SEMANA 6 : Instalacin de paquetes en Linux
SEMANA 7 : Semana de Exmenes Parciales de Teora
SEMANA 8 : Examen Parcial de Laboratorio
SEMANA 9 : Archivos de registro, cuotas de disco
SEMANA 10 : Servidor NFS, servidor Samba
SEMANA 11 : Servidor DNS
SEMANA 12 : Servidor DHCP
SEMANA 13 : Servidor HTTP
SEMANA 14 : Servidor de Correo
SEMANA 15 : Examen Final de Laboratorio
Sistemas Operativos Avanzados 5

Presentacin

El curso Linux Avanzado muestra como primera parte temas de introduccin al


sistema operativo Linux, con el cual se va tomar una primera visin de este
maravilloso sistema operativo, para luego entrara mas en detalle el tema de la
administracin de este.

La segunda parte se enfoca en la configuracin de Servidores de Internet: Servidor


Samba, Servidor NFS, Servidor DNS, Servidor DHCP, Servidor Web, Servidor de
Correo. La instalacin y configuracin de estos servidores se realizara modificando
sus archivos de configuracin correspondientes, de tal manera que el participante
podr realizar sus propias experiencias sin importar la Distribucin Linux a usar, sin
embargo la distribucin utilizada para la explicacin del presente curso ser CentOS
Linux 5.0 y el Entorno de Escritorio Gnome.

La seguridad de la red TCP/IP se deja para un curso posterior.

CIBERTEC CARRERAS PROFESIONALES


6 Sistemas Operativos Avanzados

1
SEMANA

Introduccion al Software Libre


TEMA
Aspectos Generales GNU/Linux

OBJETIVOS ESPECFICOS
Conocer que es un sistema Operativo

Conocer el proyecto GNU

Identificar conceptos de software

CONTENIDOS
Sistema Operativo

Proyecto GNU

Proyecto Linux

Software Libre

Distribuciones Linux

Escritorios Graficos en Linux


Sistemas Operativos Avanzados 7

Aspectos Generales de GNU/Linux

1. Sistema Operativo

Un sistema operativo es el encargado de llevar a cabo todas las gestiones sobre los
recursos de una computadora, es decir, un conjunto de programas de computadora
destinado a permitir una administracin eficaz de sus recursos. Comienza a trabajar
cuando se enciende el computador, y gestiona el Hardware de la mquina desde los
niveles ms bsicos, permitiendo tambin la interaccin con el usuario.

1.1 Funcin de un Sistema Operativo


Los sistemas operativos simplifican el manejo de la computadora, desempean una
serie de funciones bsicas esenciales para la gestin del equipo. Entre las ms
destacables, cada una ejercida por un componente interno (mdulo en ncleos
monolticos y servidor en microncleos), podemos resear las siguientes:
Proporcionar ms comodidad en el uso de un computador.
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para
los procesos (programas)
Brindar una interfaz al usuario, ejecutando instrucciones (comandos).

CIBERTEC CARRERAS PROFESIONALES


8 Sistemas Operativos Avanzados

Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin
interferir con los servicios que ya se prestaban (evolutividad).

1.2 UNIX
Unix es un sistema operativo portable, multitarea y multiusuario; desarrollado, en
principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T,
entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy
Durante fines de la dcada de 1970 y principios de la dcada de 1980, la influencia
de Unix en crculos acadmicos indujo a su adopcin en masa (principalmente la
variante BSD, que haba surgido en la Universidad de California, Berkeley) en varias
compaas que se iniciaban por aquel entonces, siendo la ms destacada Sun
Microsystems. Hoy en da, junto a los sistemas Unix certificados, tambin se pueden
encontrar sistemas similares a Unix, como Linux y los derivados de BSD.

1.3 BSD
BSD son las inciales de Berkeley Software Distribution (en espaol, Distribucin de
Software Berkeley) y se utiliza para identificar un sistema operativo derivado del
sistema Unix nacido a partir de los aportes realizados a ese sistema por la
universidad de California en Berkeley.
En los primeros aos del sistema Unix sus creadores, los Laboratorios Bell de la
compaa AT&T, autorizaron a la Universidad de California en Berkeley y a otras
universidades a utilizar el cdigo fuente y adaptarlo a sus necesidades. Durante la
dcada de los setenta y los ochenta Berkeley utiliz el sistema para sus
investigaciones en materia de sistemas operativos. Cuando AT&T retir el permiso
de uso a la universidad por motivos comerciales, la universidad promovi la creacin
de una versin inspirada en el sistema Unix utilizando las aportaciones que ellos
haban realizado, permitiendo luego su distribucin con fines acadmicos y al cabo
de algn tiempo reduciendo al mnimo las restricciones referente a su copia,
distribucin o modificacin.
Algunos sistemas operativos descendientes del sistema desarrollado por Berkeley
son Solaris, FreeBSD, NetBSD, OpenBSD y Mac OS X. BSD tambin ha hecho
grandes contribuciones en el campo de los sistemas operativos en general, como
por ejemplo:

El manejo de memoria virtual paginado por demanda


El control de trabajos
El Fast FileSystem
El protocolo TCP/IP
El editor de texto vi
Sistemas Operativos Avanzados 9

1.4 GNU/Linux
Linux es un sistema operativo tipo Unix que se distribuye bajo la Licencia Pblica
General de GNU (GPL), es decir que es software libre. Su nombre proviene del
Ncleo de Linux, desarrollado en 1991 por Linus Torvalds en conjunto con las
aplicaciones de sistema creadas por el proyecto GNU liderado por Richard Stallman.

1.4.1 El Proyecto GNU


El proyecto GNU naci el 27 de septiembre de 1983 por la persona ms relevante
del movimiento del software libre en la actualidad, nos referimos a Richard Stallman.
El proyecto GNU fue diseado con el objetivo de crear un sistema operativo
completamente libre as como tambin para ser totalmente compatible con UNIX
(sistema operativo desarrollado en los laboratorios Bell por Dennis Ritchie).
Para asegurar que el software GNU permaneciera libre para que todos los usuarios
pudieran "ejecutarlo, copiarlo, modificarlo y distribuirlo", el proyecto deba ser
liberado bajo una licencia diseada para garantizar esos derechos al tiempo que
evitase restricciones posteriores de los mismos. La idea se conoce como la Licencia
General Pblica de GNU (GPL).

En 1985, Stallman cre la Free Software Foundation para proveer soportes


logsticos, legales y financieros al proyecto GNU. La FSF tambin contrat
programadores para contribuir a GNU, aunque una porcin sustancial del desarrollo
fue (y contina siendo) producida por voluntarios. A medida que GNU ganaba
renombre, negocios interesados comenzaron a contribuir al desarrollo o
comercializacin de productos GNU y el correspondiente soporte tcnico. El ms
prominente y exitoso de ellos fue Cygnus Solutions, ahora parte de Red Hat.

CIBERTEC CARRERAS PROFESIONALES


10 Sistemas Operativos Avanzados

1.4.1.1 Etimologa
GNU es un acrnimo recursivo que significa GNU No es Unix (GNU is Not Unix). En
espaol, se recomienda pronunciarlo u como el antlope africano, por ello, el
trmino mayoritariamente se deletrea (GNU) para su mejor comprensin.

1.4.1.2 Free Software Foundation


La Fundacin para el Software Libre (Free Software Foundation) es una
organizacin creada en Octubre de 1985 por Richard Matthew Stallman y otros
entusiastas del Software Libre con el propsito de difundir este movimiento.
"La Fundacin para el Software Libre (FSF) est dedicada a eliminar las
restricciones sobre la copia, redistribucin, entendimiento, y modificacin de
programas de computadoras. Con este objeto, promociona el desarrollo
y uso del software libre en todas las reas de la computacin, pero muy
particularmente, ayudando a desarrollar el sistema operativo GNU.

1.4.1.3 Licencia GPL


La Licencia Pblica General de GNU o ms conocida por su acrnimo en ingls
(General Public License), esta es una licencia creada por la Free Software
Foundation a mediados de los 80, y est orientada principalmente a proteger
la libre distribucin, modificacin y uso de software. Su propsito es declarar que el
software cubierto por esta licencia es software libre y protegerlo de intentos de
apropiacin que restrinjan esas libertades a los usuarios.

1.4.4 Licencia LGPL


La Licencia Pblica General Reducida de GNU (Lesser General Public License) es
una licencia de software creada por la Free Software Foundation. Los contratos de
licencia de la mayor parte del software estn diseados para jugar con su libertad de
compartir y modificar dicho software. En contraste, la "GNU General Public License"
pretende garantizar su libertad de compartir y modificar el software "libre", esto es
para asegurar que el software es libre para todos sus usuarios. Esta licencia pblica
general se aplica a la mayora del software de la "FSF" o "Free Software Foundation"
(Fundacin para el Software Libre) y a cualquier otro programa de software cuyos
autores as lo establecen.
Algunos otros programas de software de la Free Software Foundation estn
cubiertos por la "LGPL Lesser General Public License" (Licencia pblica general
reducida), la cual puede aplicar a sus programas tambin.
Esta licencia se aplica a cualquier programa o trabajo que contenga una nota puesta
por el propietario de los derechos del trabajo estableciendo que su trabajo puede ser
distribuido bajo los trminos de esta "GPL General Public License". El "Programa",
utilizado en lo subsecuente, se refiere a cualquier programa o trabajo original, y el
"trabajo basado en el Programa" significa ya sea el Programa o cualquier trabajo
derivado del mismo bajo la ley de derechos de autor: es decir, un trabajo que
contenga el Programa o alguna porcin de l, ya sea ntegra o con modificaciones o
traducciones a otros idiomas.
Otras actividades que no sean copia, distribucin o modificacin si estn cubiertas
en esta licencia y estn fuera de su alcance. El acto de ejecutar el programa no est
restringido, y la salida de informacin del programa est cubierta slo si su contenido
constituye un trabajo basado en el Programa (es independiente de si fue resultado
de ejecutar el programa). Si esto es cierto o no depende de la funcin del programa.
Sistemas Operativos Avanzados 11

El proyecto OpenOffice.org de Sun Microsystems emplea la LGPL.

1.4.2 El Proyecto Linux


La historia de Linux est fuertemente vinculada a la del proyecto GNU. El proyecto
GNU, iniciado en 1983, tiene como objetivo el desarrollo de un sistema Unix
completo compuesto enteramente de software libre. Hacia 1991, cuando la primera
versin del ncleo Linux fue liberada, el proyecto GNU haba producido varios de los
componentes del sistema operativo, incluyendo un intrprete de comandos, una
biblioteca C y un compilador, pero an no contaba con el ncleo que permitiera
completar el sistema operativo.
Entonces, el ncleo creado por Linus Torvalds, quien se encontraba por entonces
estudiando en la Universidad de Helsinki, llen el hueco final que el sistema
operativo GNU exiga. Subsecuentemente, miles de programadores
voluntarios alrededor del mundo han participado en el proyecto, mejorndolo
continuamente y agregando ms lneas al cdigo original.
Linux se refiere estrictamente al ncleo Linux, pero es comnmente utilizado para
describir al sistema operativo tipo Unix, que utiliza primordialmente filosofa y
metodologas libres (tambin conocido como GNU/Linux) y que est formado
mediante la combinacin del ncleo Linux con las bibliotecas y herramientas del
proyecto GNU y de muchos otros proyectos/grupos de software (libre o no libre).
Linux es usado ampliamente en servidores y supercomputadoras y cuenta con el
respaldo de corporaciones como Dell, HewlettPackard, IBM, Novell, Oracle, Red Hat
y Sun Microsystems.
Las variantes de estos sistemas Linux se denominan "distribuciones". Algunas son
gratuitas y otras de subscripcin, algunas insertan software no libre y otras solo
software libre. Algunas de las distribuciones ms populares son:

CentOS (Community ENTerprise Operating System) es un clon a nivel binario


de la distribucin Red Hat Enterprise Linux, compilado por voluntarios a partir
del cdigo fuente liberado por Red Hat. Los desarrolladores de CentOS usan
ese cdigo fuente para crear un producto final que es muy similar al Red Hat
Enterprise Linux y est libremente disponible para ser bajado y usado por el
pblico, pero no es mantenido ni asistido por Red Hat. CentOS usa yum para
bajar e instalar las actualizaciones, herramienta tambin utilizada por Fedora.

Red Hat es una empresa dedicada al software libre, y adems es un


importante proveedor, distribuidor y promotor de Linux. Red Hat fue fundada
en 1995 y tiene su sede en Raleigh, Carolina del Norte con oficinas en todo el
mundo.
La compaa es mejor conocida por su sistema operativo Red Hat Enterprise
Linux (RHEL), y ms recientemente, a travs de la adquisicin de la empresa
de cdigo abierto JBoss que es un servidor de aplicaciones.

Fedora es una distribucin Linux patrocinada oficialmente por Red Hat. El


Proyecto Fedora Linux desarrollaba paquetes extra para viejas distribuciones
de Red Hat Linux (RHL 8, RHL 9, FC 1, FC 2), antes de convertirse en parte
del Proyecto Fedora.
Cuando la distribucin Red Hat Linux qued entre Red Hat Enterprise Linux y
el Proyecto Fedora existente, los usuarios domsticos y de pequeas
empresas tuvieron incertidumbre acerca de qu hacer; Red Hat Professional

CIBERTEC CARRERAS PROFESIONALES


12 Sistemas Operativos Avanzados

Workstation se cre en este mismo momento con la intencin de llenar el


nicho que Red Hat Linux haba ocupado una vez, pero con un futuro incierto.
Esta opcin cay rpidamente para aquellos que no eran usuarios de Red
Hat Linux en favor del Proyecto Fedora.
Recientemente, la comunidad Fedora ha prosperado, y la distribucin Fedora
tiene la reputacin de ser una distribucin completamente abierta enfocada
en la innovacin y abierta al trabajo en grupo con las comunidades de Linux

Debian es una comunidad conformada por desarrolladores y usuarios, que


pretende crear y mantener un sistema operativo GNU basado en software
libre pre compilado y empaquetado, en un formato sencillo para mltiples
arquitecturas y en varios ncleos. Debian nace como una apuesta por separar
en sus versiones el software libre del software no libre. El modelo de
desarrollo del proyecto es ajeno a motivos empresariales o comerciales,
siendo
llevado adelante por los propios usuarios, aunque cuenta con el apoyo de
varias empresas en forma de infraestructuras. Debian no vende directamente
su software, lo pone a disposicin de cualquiera en Internet, aunque s
permite a personas o empresas distribuir comercialmente este software
mientras se respete su licencia.

Ubuntu es una distribucin Linux que ofrece un sistema operativo enfocado a


computadoras de escritorio aunque tambin proporciona soporte para
servidores. Es una de las ms importantes distribuciones de GNU/Linux a
nivel mundial. Basada en Debian GNU/Linux, Ubuntu concentra su objetivo en
la facilidad y libertad de uso, la facilidad de instalacin y los lanzamientos
regulares (cada 6 meses). Ubuntu es patrocinado por Canonical Ltd., una
empresa privada fundada y financiada por el empresario sudafricano Mark
Shuttleworth. El nombre de la distribucin proviene del concepto zul y xhosa
de Ubuntu, que significa "humanidad hacia otros" o "yo soy porque nosotros
somos".

OpenSuse es el nombre de la distribucin y proyecto libre auspiciado por


Novell y AMD para el desarrollo y mantenimiento de un sistema operativo
basado en Linux. Luego de adquirir SUSE Linux en enero de 2004, Novell
decidi lanzar SUSE Linux Professional como un proyecto completamente de
cdigo abierto, involucrando a la comunidad en el proceso de desarrollo. La
versin inicial fue una versin beta de SUSE Linux 10.0

1.4.2.1 El Kernel Linux


Actualmente Linux es un ncleo monoltico hbrido. Los controladores de dispositivos
y las extensiones del ncleo normalmente se ejecutan en un espacio privilegiado
conocido como anillo 0, con acceso irrestricto al hardware, aunque algunos se
ejecutan en espacio de usuario. A diferencia de los ncleos monolticos
tradicionales, los controladores de dispositivos y las extensiones al sistema operativo
se pueden cargar y descargar fcilmente como mdulos, mientras el sistema
contina funcionando sin interrupciones. Tambin, a diferencia de los ncleos
monolticos tradicionales, los controladores pueden ser prevolcados (detenidos
momentneamente por actividades ms importantes) bajo ciertas condiciones. Esta
habilidad fue agregada para gestionar correctamente interrupciones de hardware, y
para mejorar el soporte de Multiprocesamiento Simtrico.
Un sistema operativo con ncleo monoltico concentra todas las funcionalidades
posibles (planificacin, sistema de archivos, redes, controladores de dispositivos,
gestin de memoria, etc) dentro de un gran programa. El mismo puede tener un
Sistemas Operativos Avanzados 13

tamao considerable, y deber ser recompilado por completo al aadir una nueva
funcionalidad. Todos los componentes funcionales del ncleo tienen acceso a todas
sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede
propagarse a todo el ncleo. Todos sus componentes se encuentran integrados en
un nico programa que ejecuta en un nico espacio de direcciones. En este tipo de
sistemas, todas las funciones que ofrece el sistema operativo se ejecutan en modo
supervisor.
El hecho de que Linux no fuera desarrollado siguiendo el diseo de un microncleo
(diseo que, en aquella poca, era considerado el ms apropiado para un ncleo por
muchos tericos informticos) fue asunto de una famosa y acalorada discusin entre
Linus Torvalds y Andy Tanenbaum.

A diferencia de los ncleos monolticos tradicionales, los controladores de


dispositivos son fcilmente configurables como mdulos del ncleo cargables, y se
pueden cargar o descargar mientras se est ejecutando el sistema.

1.5 Que es el Software Libre u OpenSource?


Se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar,
cambiar y mejorar el software; de modo ms preciso, se refiere a cuatro libertades
de los usuarios del software:

1. La libertad de usar el programa, con cualquier propsito


2. Estudiar el funcionamiento de la aplicacin y adaptarlo a las necesidades
3. Distribuir copias, con lo que puede ayudar a otros.
4. Mejorar el programa y hacer pblicas las mejoras, de modo que toda la
comunidad se beneficie.

Otro de los requisitos fundamentales para considerar a una aplicacin como


Software Libre es el acceso al cdigo fuente de la aplicacin.

1.5.1 Que es el Freeware y Shareware

1.5.1.1 Freeware
El trmino en ingls freeware define un tipo de software que se distribuye sin costo y
por tiempo ilimitado. A veces se incluye el cdigo fuente, pero no es lo usual.
El freeware suele incluir una licencia de uso, que permite su redistribucin pero con
algunas restricciones, como no modificar la aplicacin en s, ni venderla, y dar
cuenta de su autor. Tambin puede desautorizar el uso en una compaa con fines
comerciales o en una entidad gubernamental.

1.5.1.2 Shareware
Se denomina Shareware a una modalidad de distribucin de software el cual permite
al usuario evaluar de forma gratuita el producto, por un lapso de tiempo, aunque
tambin las limitaciones pueden estar en algunas de las formas de uso o las
capacidades finales.
Para adquirir una licencia de software que permite el uso del software de manera
completa se requiere de un pago.

CIBERTEC CARRERAS PROFESIONALES


14 Sistemas Operativos Avanzados

No debe confundirse el shareware con el sistema freeware que indica que un


software es totalmente gratuito, si bien es cierto que el primero se inspira y tiene sus
races en el segundo. Tampoco debe confundirse el hecho de que un software sea
Shareware o freeware con el hecho de que sea de cdigo abierto, ya que esto ltimo
depende de la disponibilidad o no del cdigo fuente.

1.5.1.3 Ventajas del OpenSource contra el Freeware, Shareware y


Software privativo
FLEXIBILIDAD. Si el cdigo fuente est disponible, los desarrolladores pueden
aprender y modificar los programas a su antojo, adaptndolo para realizar tareas
especficas. Adems, se produce un flujo constante de ideas que mejora la calidad
de los programas.

FIABILIDAD Y SEGURIDAD. Con varios programadores a la vez mirndose el


mismo trabajo, los errores se detectan y corrigen antes, por lo que el producto
resultante es ms fiable y eficaz que el comercial.

RAPIDEZ DE DESARROLLO. Las actualizaciones y ajustes se realizan a travs


de una comunicacin constante va Internet. Menores tiempos de desarrollo debido a
la amplia disponibilidad de herramientas y libreras.

RELACIN CON EL USUARIO. El programador se acerca mucho ms a la


necesidad real de su cliente, y puede crear un producto especfico para l.

LIBRE. Es de libre distribucin, cualquier persona puede regalarlo, venderlo o


prestarlo.

COMBATE EFECTIVAMENTE LA PIRATERA DE SOFTWARE.

AHORRO EN LICENCIAS. No se tienen que pagar ningn tipo de licencias para


poder usarlo, por lo que hace al Software Libre una perfecta alternativa para el
sector Educativo Publico de Pas

1.6 El Estndar POSIX


POSIX es el acrnimo de Portable Operating System Interface; la X viene de UNIX.
El trmino POSIX fue sugerido por Richard Stallman en respuesta a la demanda de
la IEEE, que buscaba un nombre fcil de recordar. Una traduccin aproximada del
acrnimo podra ser "Interfaz de Sistema Operativo Porttil basado en UNIX".

Estndar Posix es una familia de estndares de llamadas al sistema operativo


definido por el IEEE y especificado formalmente en el IEEE 1003. Persiguen
generalizar las interfaces de los sistemas operativos (Linux o Unix) para que una
misma aplicacin pueda ejecutarse en distintas plataformas (Arquitecturas). Estos
estndares surgieron de un proyecto de normalizacin de las API y describen un
conjunto de interfaces de aplicacin adaptables a una gran variedad de
implementaciones de sistemas operativos.
Sistemas Operativos Avanzados 15

1.7 Linux Standard Base


La Base Estndar para Linux (Linux Standard Base, abreviado LSB), es un proyecto
conjunto de varias Distribuciones de Linux bajo la estructura organizativa del Free
Standards Group con el objeto de crear y normalizar la estructura interna de los
sistemas operativos derivados de Linux. La LSB est basada en la Especificacin
POSIX, la Especificacin nica de UNIX (Single UNIX Specification) y en varios
otros estndares abiertos, aunque extiende stos en ciertas reas.De acuerdo a la
definicin de la propia LSB:

El objetivo de la LSB es desarrollar y promover un conjunto de estndares que


aumentarn la compatibilidad entre las distribuciones de Linux y permitirn que los
programas de aplicacin puedan ser ejecutados en cualquier sistema que se adhiera
a ella. Adems, la LSB ayudar a coordinar esfuerzos tendentes a reclutar
productores y proveedores de programas que creen productos originales para Linux
o adaptaciones de productos existentes.
Mediante un proceso de certificacin es posible obtener la conformidad a la LSB de
un producto. Dicha certificacin la lleva a cabo el Open Group en colaboracin con el
Free Standards Group (Grupo de Estndares Libres).
Como ejemplo, la LSB especifica: libreras estndar, un conjunto de rdenes y
utileras que extienden el estndar POSIX, la estructura jerrquica del sistema de
archivos, los niveles de ejecucin, y varias extensiones al sistema grfico X Window.

1.8 Que es Live CD?


Un Live CD o Live DVD, ms genricamente Live Distro, es un sistema operativo
(normalmente acompaado de un conjunto de aplicaciones) almacenado en un
medio extrable, tradicionalmente un CD o un DVD (de ah sus nombres), que puede
ejecutarse desde ste sin necesidad de instalarlo en el disco duro de una
computadora, para lo cual usa la memoria RAM como disco duro virtual y el propio
medio como sistema de ficheros.
Algunos Live CD incluyen una herramienta que permite instalarlos en el disco duro.
Otra caracterstica es que por lo general no se efectan cambios en la computadora
utilizada, aunque algunos pueden almacenar preferencias si
as se desea.
Para usar un Live CD es necesario obtener uno (muchos de ellos distribuyen
libremente una imagen ISO que puede bajarse de Internet y grabarse en disco) y
configurar la computadora para que arranque desde la unidad lectora,
reiniciando luego la computadora con el disco en la lectora, con lo que el Live CD se
iniciar automticamente.

1.8.1 Caractersticas
La mayora usa un sistema operativo basado en el ncleo Linux, pero tambin se
usan otros sistemas como BeOS, FreeBSD, Minix, Solaris, OS/2 o incluso Microsoft
Windows (sin embargo, distribuir un Live CD de ste ltimo es ilegal).
El primer Live CD Linux fue Yggdrasil Linux en 1995,aunque fue poco exitosa.
Posteriormente surgiDemoLinux (ao 2000). El auge de esta modalidad de Linux se
inici alrededor del ao 2003 con la distribucin alemana de Knoppix, basada, a su
vez, en la distribucin de software Debian. Una de las mejoras de este mtodo fue la
compresin cloop, esto permiti sobrepasar los 650700 MB del CD (se usaba el
driver loop) y lograr introducir hasta 2 GB.

CIBERTEC CARRERAS PROFESIONALES


16 Sistemas Operativos Avanzados

Uno de los mayores inconvenientes de este sistema es el requerimiento de una gran


cantidad de memoria RAM (256 son ms que suficientes y hay distribuciones que
funcionan perfectamente en 128), una parte para su uso habitual y otra para
funcionar como el disco virtual del sistema. En el arranque, se le pueden dar
distintos parmetros para adaptar el sistema al computador, como la resolucin de
pantalla o para activar o desactivar la bsqueda automtica de determinado
hardware.

1.9 Identificando los escritorios en Linux


El escritorio Linux, refiere al uso que se le da al sistema operativo Linux, al ser
instalado en una computadora personal. El termino est destinado a clarificar el uso
personal del computador de otros roles, como por ejemplo, usar Linux en un
servidor. Los dos roles son similares en el ncleo, porque los dos estn basados en
el Kernel Linux. El escritorio linux generalmente tendr instalado por defecto
paquetes destinados al "usuario final". Algunas distribuciones Linux se han centrado
especficamente en el rol de escritorio. Otras incluyen un conjunto de todas las
aplicaciones para la plataforma. En ese caso, el usuario puede seleccionar entre
"escritorio" o "servidor" al momento de ser instalado el sistema operativo.

A continuacin hablaremos de los dos proyectos de escritorio Linux ms importantes

1.9.1 Gnome

GNOME es un entorno de escritorio para sistemas operativos de tipo Unix bajo


tecnologa X Window. Forma parte oficial del proyecto GNU. Naci como una
alternativa a KDE.
Se encuentra disponible actualmente en 48 idiomas en su ltima versin

1.9.1.1 Objetivo
El Proyecto GNOME pone un gran nfasis en la simplicidad, usabilidad y en hacer
que las cosas funcionen. Otros objetivos del proyecto son:

La libertad para crear un entorno de escritorio que siempre tendr el cdigo fuente
disponible para reutilizase bajo una licencia de software libre.
El aseguramiento de la accesibilidad, de modo que pueda ser utilizado por
cualquiera, sin importar sus conocimientos tcnicos y discapacidad fsica.
Hacer que est disponible en muchos idiomas. En el momento est siendo
traducido a ms de 100 idiomas.
Sistemas Operativos Avanzados 17

Un ciclo regular de liberaciones y una estructura de comunidad disciplinada.

1.9.1.2 Historia
El proyecto GNOME (GNU Network Object Model Environment) surgi en agosto de
1997 como proyecto liderado por los mexicanos Miguel de Icaza y Federico Mena
para crear un entorno de escritorio completamente libre para sistemas operativos
libres, en especial para GNU/Linux. Desde el principio, el objetivo principal de
GNOME ha sido proporcionar un conjunto de aplicaciones amigables y un escritorio
fcil de utilizar. GNOME tambin es una palabra del idioma ingls que significa
gnomo.
En esos momentos exista otro proyecto anterior con los mismos objetivos, pero con
diferentes medios: KDE. Los primeros desarrolladores de GNOME criticaban a dicho
proyecto por basarse en la biblioteca de controles grficos Qt, cuya licencia (QPL),
aunque libre, no era compatible inicialmente con la licencia GPL de la FSF.
Aos ms tarde los problemas de licencia de Qt se han resuelto y estas crticas han
cesado. Sin embargo, los dos proyectos siguen rumbos tecnolgicos distintos y se
hacen una competencia amigable.
Como con la mayora de los programas GNU, GNOME ha sido diseado para
ejecutarse en toda la gama de sistemas operativos de tipo Unix con X Window, y
especialmente pensado para GNU/Linux. Desde sus inicios se ha utilizado la
biblioteca de controles grficos GTK, originalmente desarrollada para el programa
The GIMP.

A medida que el proyecto ha ido progresando en los ltimos aos, los objetivos del
mismo se han extendido para tratar una serie de problemas en la infraestructura
Unix existente Actualmente el proyecto evoluciona bajo amparo de la Fundacin
GNOME.

CIBERTEC CARRERAS PROFESIONALES


18 Sistemas Operativos Avanzados

1.9.2 KDE

De acuerdo con su pgina web, KDE es un entorno de escritorio contemporneo


para estaciones de trabajo Unix. KDE llena la necesidad de un escritorio amigable
para estaciones de trabajo Unix, similar a los escritorios de MacOS o Windows
La K, originariamente, representaba la palabra Kool , pero su significado fue
abandonado ms tarde. Actualmente significa simplemente K, la letra
inmediatamente anterior a la L (inicial de Linux) en el alfabeto.

1.9.2.1 Objetivo
KDE se basa en el principio de la personalizacin. Todos los componentes de KDE
pueden ser configurados en mayor o menor medida por el usuario. Las opciones
ms comunes son accesibles en su mayora desde mens y dilogos de
configuracin. Los usuarios avanzados pueden optar por editar los archivos de
configuracin manualmente, obteniendo en algunos casos un mayor control sobre el
comportamiento del sistema.
La apariencia de KDE es configurable en varios niveles. Tanto el gestor de ventanas
(llamado Kwin) como los controles (botones, mens, etc.) utilizan "estilos"
intercambiables, que definen cada aspecto de su apariencia. Es por este motivo que
KDE no mantiene una nica apariencia entre versiones, sino que se opta por aquella
ms ampliamente aceptada en el momento de cada nuevo lanzamiento.
La intencin del proyecto KDE es la de crear un entorno de escritorio que no se
comporte de un modo predefinido, sino que permita al usuario adecuar el sistema a
su gusto y comodidad. Esto no impide que KDE resulte fcil de usar para nuevos
usuarios, detalle al que no se resta importancia.
Algunas personas externas al proyecto a menudo critican su similitud con los
escritorios Windows y su falta de innovacin. Esta observacin, sin embargo, recae
sobre la seleccin de parmetros predefinidos del sistema, a menudo
orientada a facilitar la integracin de nuevos usuarios, acostumbrados en su mayora
a trabajar con Windows. Pese a todo esta crtica no tiene fundamento alguno, ya que
debido a que KDE tiene una alta capacidad de configuracin se pueden realizar
efectos de escritorio muy innovadores (inclusive algunos son comparables con
Compiz o Beryl).
Sistemas Operativos Avanzados 19

1.9.2.2 Historia
El proyecto fue iniciado en octubre de 1996 por el programador alemn Matthias
Ettrich, quien buscaba crear una interfaz grfica unificada para sistemas Unix. En
sus inicios imit a CDE (Common Desktop Environment), un entorno de escritorio
utilizado por varios Unix. Dos factores llevaron a la creacin del proyecto alternativo
GNOME en 1997: la eleccin de la biblioteca Qt, que por aquel entonces posea una
licencia incompatible con la GPL de GNU, aunque libre: la QPL, y en menor medida
la importancia del lenguaje C++ para el desarrollo de KDE. La rivalidad actual entre
ambos proyectos se considera beneficiosa generalmente y existe, de hecho, una
constante cooperacin e inspiracin mutua.

KDE 1: Al ao siguiente, se public KDE 1.0. Esta versin contena un panel (barra
de tareas y lanzador de aplicaciones), un escritorio sobre el cual dejar iconos, un
administrador de archivos (Kfm) y un gran nmero de
utilidades.

KDE 2: KDE 2.0, lanzado en el ao 2000, fue reescrito casi por completo. Esta
versin inclua Konqueror (un navegador web y gestor de archivos) adems de
muchas nuevas tecnologas con el objetivo de mejorar la
integracin entre aplicaciones. En esta versin mejor parcialmente el aspecto
visual.
KDE 3: KDE 3.0 fue publicado en el ao 2002, y es la evolucin de KDE 2. El
aspecto de la interfaz no vari hasta KDE 3.1, en el que consta una importante
mejora referente al tema visual: Keramik es incluido como nuevo tema por omisin
junto con el conjunto de iconos Crystal GT y el antialisado de fuentes. En KDE 3.2
Crystal GT fue reemplazado por Crystal SVG. En KDE 3.4 Keramik fue reemplazado
por Plastik.

CIBERTEC CARRERAS PROFESIONALES


20 Sistemas Operativos Avanzados

1.9.3 XFCE

Xfce (xfeis) es un entorno de escritorio ligero para sistemas tipo Unix como Linux,
BSD, Solaris y derivados.
Se configura ntegramente con el ratn o mouse. Su creador, Olivier Fourdan, dice
de l: Diseado para la productividad, las aplicaciones se cargan y se ejecutan
rpidamente, mientras conserva recursos de sistema Xfce tambin provee el marco
de trabajo para el desarrollo de aplicaciones. Adems de Xfce mismo, hay otros
programas que tambin utilizan las bibliotecas de Xfce, como el editor de texto
Mousepad, el reproductor multimedia Xfmedia o el emulador de consola Terminal.

Xfce est basado en la biblioteca GTK+ 2.x y utiliza el gestor de ventanas Xfwm.
Xfce se pareca en sus inicios al entorno de escritorio CDE, pero fue alejndose
notablemente debido a que fue reprogramado nuevamente desde cero(ya lo haba
hecho entre las versiones 2.x y 3.x), y a diferencia de sus anteriores versiones,
ahora cuenta con un sistema modular pudiendo gestionar un sistema de tipo
multihead de manera bastante sencilla, y sigue todos los estndares establecidos
por Freedesktop.org.
El nombre Xfce originalmente provena de XForms Common Enviroment, pero
debido a los grandes cambios en el cdigo, ya no usa el kit de herramientas de
XForms, como originalmente lo haca. El nombre sobrevivi, pero ya no se
indica como XFce sino Xfce. Los desarrolladores estn de acuerdo en que el nombre
carece de significado actualmente, aunque se le suele desglosar como X Free
Choresterol Environment (entorno X libre de colesterol) en referencia al poco
consumo de memoria que realiza y a la velocidad con que se ejecuta al no tener
elementos superfluos a diferencia de otros entornos de escritorio ms grandes.
Thunar es el nuevo gestor de archivos predeterminado para Xfce desde la versin
4.4. Es similar a Nautilus y est diseado para una mxima velocidad y un mnimo
consumo de memoria. Xfce tambin posee un gestor de archivos
comprimidos llamado Xarchiver.
Sistemas Operativos Avanzados 21

1.9.4 Enlightenment

Enlightenment, tambin conocido simplemente como E, es un gestor de ventanas


ligero para UNIX y GNU/Linux. Uno de sus objetivos es llegar a ser un entorno de
escritorio completo. Es muy configurable y muy atractivo visualmente. Durante un
tiempo fue el gestor de ventanas de GNOME.
La ltima versin estable es la 0.16.8.6 (tambin llamada DR16). El siguiente
lanzamiento importante ser la versin 0.17 (DR17) que est actualmente en fase de
desarrollo y se basa en las nuevas Enlightenment Foundation Libraries (EFL). DR17
no est basado en DR16 sino que ha sido reescrito totalmente.

CIBERTEC CARRERAS PROFESIONALES


22 Sistemas Operativos Avanzados

1.9.4.1 Caractersticas actuales de la versin 0.17


DR17 est en fase desarrollo en este momento, pero ciertas caractersticas del
ncleo ya estn disponibles:

Soporte de temas mediante un sistema de mens y una interfaz de cambio de


temas en lnea de comandos.
La parrilla de escritorios virtuales.
Diseo modular puede cargar mdulos externos desde un paquete separado de
'emdulos'. Los mdulos actuales incluyen un paginador de escritorios, 'iBar', un
lanzador de aplicaciones animado, un mdulo de sombreado de ventanas, notas de
escritorio, un reloj (analgico o digital) y un monitor de carga de la batera.
Fondos de escritorio animados, tems de men, tems de iBar y widgets de
escritorio son posibles.
Ajustes de sombreado de ventanas, iconizado, maximizado y pegado.
Combinaciones de teclas personalizables disponibles.
Soporte para internacionalizacin.
Sistemas Operativos Avanzados 23

Autoevaluacin

1. Indique que es un sistema operativo y cual es su funcin

2. Indique que es el proyecto Linux, y que distribuciones conoce

3. Indique los principales escritorios grficos y de una breve descripcin de ellos

CIBERTEC CARRERAS PROFESIONALES


24 Sistemas Operativos Avanzados

2
SEMANA

Comandos Basicos y Configuracion


de Red
TEMA
Conocer los comandos bsicos para el manejo de Linux

OBJETIVOS ESPECFICOS
Conocer los comandos bsicos del entorno linux

Aprender a modificar los parmetros de red en Linux

CONTENIDOS
Comandos para informacin del sistema

Comandos para manejo de archivos

Comandos para configuracin de red


Sistemas Operativos Avanzados 25

1. Informacion del Sistema


A continuacion daremos una serie de comandos utiles para conocer aspectos
generales del sistema

1.1. arch
Este comando sirve para mostrarnos la arquitectura del procesador de nuestro
sistema:

1.2. uname [parametros]


La funcion de este comando es similar al anterior, la unica diferencia es que este nos
arroja mas informacin del sistema de acuerdo al numero de parametros que le
pasemos.Los parametros que podemos usar son:

-a: Imprimeel nombre kernel,del equipo, version del kernel, fecha en que fue
apagado el sistema por ultima vez, arquitectura del sistema
- s: Imprime el nombre del kernel
- n: Imprime el nombre del equipo
- r: Imprimeversion del kernel
- i o p: Imprime la arquitectura del equipo
- o:.Imprime el nombre del sistema operativo

Ejemplo:

1.3. /proc/cpuinfo
Nos muestra la informacion referente al procesador del sistema
Ejemplo:

CIBERTEC CARRERAS PROFESIONALES


26 Sistemas Operativos Avanzados

1.4. /proc/meminfo
Verifica el uso de la memoria

Ejemplo:
Sistemas Operativos Avanzados 27

1.5. /proc/swaps
Nos muestra el uso del espacio en memoria SWAP

Ejemplo:

1.6. /proc/mounts
Nos muestra los sistemas de ficheros que se encuentran montados

Ejemplo:

1.7. date
Nos muestra la fecha que tiene registrado el sistema

Ejemplo:

En caso de querer modificar la fecha solo se debe de seguir la siguiente sintaxis:

date [MesDiaHoraMinutoAo.Segundos]

Ejemplo:

CIBERTEC CARRERAS PROFESIONALES


28 Sistemas Operativos Avanzados

1.8. w
Nos indica los usuarios que se encuentran en el sistema asi como lo que hacen en el
Ejemplo:

1.9. df h
Nos reporta el uso de espacio en los discos duros
Ejemplo

1.10. ps xa
Este comando lista los procesos que se estan ejecutando en el sistema
Sistemas Operativos Avanzados 29

1.11. mkdir
Este comando sirve para crear una carpeta
Ejemplo:

Tambien puede usarse en conjunto con el parametro p para crear un arbol de


carpetas

Ejemplo

1.12. touch
Sirve para generar archivos sin contenido

Ejemplo

CIBERTEC CARRERAS PROFESIONALES


30 Sistemas Operativos Avanzados

1.13. cd
Comando que nos permite movernos entre directorios, su sintaxis es:

cd [carpetaDondeQuieroMoverme]

Ejemplo:

para regresar un nivel entre directorios es:

1.14. cp
Comando que sirve para copiar archivos o carpetas, su sintaxis es
cp [parametros] [archivo/Directorio] [rutaDestino]
Los parametros son:

-r: Copiadirectorios recursivamente


-v: Muestra el estado de la copia
-f: Forza la copia sin pedirnos confirmacin

Ejemplo 1:
Copiando un archivo a una carpeta

Ejemplo 2:

Copiando una carpeta a otra carpeta


Sistemas Operativos Avanzados 31

1.15. mv
Comando que sirve para mover archivos o carpetas, su sintaxis es
mv [parametros][archivo/Directorio] [rutaDestino]
Los parametros son:

-v: Muestra el estado del proceso


-f: Forza el movimiento sin pedirnos confirmacin

Ejemplo 1:

Moviendo un archivo a una carpeta

Ejemplo 2:
Moviendo un archivo a una carpeta

1.16. rm
Comando que sirve para eliminar archivos o carpetas, su sintaxis es
rm [parametros] [archivo/Directorio]

Los parametros son:


-r: Borra directorios recursivamente
-v: Muestra el estado de la borrado
-f: Forza el borrado sin pedirnos confirmacin

Ejemplo 1:

CIBERTEC CARRERAS PROFESIONALES


32 Sistemas Operativos Avanzados

Ejemplo2:

1.17. ls
Lista los archivos que contiene una carpeta, su sintaxis es
ls [parametros]

Los parametros son:

-l: Muestra los detalles de archivos y carpetas


-a: Muestra los archivos o carpetas ocultas

Ejemplo:

1.18. find
Busca archivos en una ruta especifica, su sintaxis es
find [ruta] [expresion]

Ejemplo1.
Buscar archivos y carpetas con el nombre archivo.txt en todo el directorio Raiz

Ejemplo 2.
Buscar archivos y carpetas que le pertenezcan al usuario rdelvillar en todo el
directorio raiz
Sistemas Operativos Avanzados 33

Ejemplo 3.
Buscar archivos con extension .bin dentro del directorio '/home/rdelvillar'

Ejemplo 4.
Buscar archivos binarios que no han sido usados en los ultimos 100 dias

Ejemplo5.
Buscar archivos binarios creados o modificados en los ultimos diez dias

1.19. updatedb
Este comando sirve para actualizar la base de datos de nuestro sistema

1.20. mount
El comando mount nos sirve para montar desde particiones de disco, hasta
dispositivos externos como cd's, dvd's, floopy drives, imagenes ISO, o dispositivos
de almacenamiento masivo de datos.

La manera de usar este comando es la siguiente:

Ejemplo1. Montando un DVD

CIBERTEC CARRERAS PROFESIONALES


34 Sistemas Operativos Avanzados

Ejemplo 2. Montando en CD

Ejemplo 3. Montando un floppy drive

Ejemplo 4.Montando una imagen ISO

Ejemplo 5.Montando un sistema de ficheros de Windows

Ejemplo 6.Montando un sistema de ficheros de Linux


Sistemas Operativos Avanzados 35

2. Compresion de Archivos

2.1 tar
El comando tar es utilizado normalmente para empaquetar o desempaquetar
archivos.
La sintaxis para el buen uso de este comando es:

[root@localhost ~]# tar [parametros] [fichero1] [fichero2]

Los parametros son:


-c: Crea un fichero tar
-v: Muestra el estado de la borrado
-x: Extrae los archivos (descomprime los ficheros que se encuentran dentro del
archivo tar)
-z: Comprime el archivo tar con gzip
-j: Comprime el archivo tar bzip
-f: Al usar el parametro -c junto con este parametro se especifica que se utilizara el
nombre del archivo especificado para la creacion del archivo tar

Ejemplo 1.Empaquetar un archivo con TAR

Ejemplo 2.Desempaquetar ficheros TAR

Ejemplo 3.Comprimir una carpeta con TAR.GZ

Ejemplo4.Descomprimir una carpeta TAR.GZ

CIBERTEC CARRERAS PROFESIONALES


36 Sistemas Operativos Avanzados

Ejemplo 5.Comprimir una carpeta con TAR.BZ

Ejemplo 6.Descomprimir una carpeta TAR.BZ

2.2. zip
El comando zip es utilizado normalmente para comprimir paquetes.
La sintaxis para el buen uso de este comando es:

[root@localhost ~]# zip [parametros]

Ejemplo 1. Comprimiendo un archivo con ZIP

Ejemplo 2.Descomprimiendo un archivo ZIP


Sistemas Operativos Avanzados 37

3. Configuracion de interfaces de red

La configuracin de la interfaz es importante en un servidor o equipo de escritorio.


Los principales archivos de configuracin son:

Este archivo de configuracin contiene los


nombres de equipos dentro de una red local y se
utilizar para resolver su nombre cuando no se
tiene un servidor de DNS en la red local, tambin
/etc/hosts
este archivo define la direccin de loopback que
representa al propio equipo independientemente
de la direccin IP que se le haya asignado

Este archivo especifica las direcciones IP de los


/etc/resolv.conf servidores DNS

Este archivo de configuracin es utilizado para


/etc/sysconfig/network definir las caractersticas de red deseadas

Estos archivos de configuracin son utilizados


/etc/sysconfig/networkscripts/
para especificar la configuracin de la tarjeta de
ifcfg<interfaz>
red

3.1. Configuracion del archivo /etc/hosts


Este archivo de texto asocia las direcciones IP con el nombre del equipo (hostname).
Este archivo debe tener la siguiente forma:

Direccion IP nombre.del.equipo alias

Las modificaciones realizadas en este archivo de configuracin son reflejados


inmediatamente

Nota: Este archivo se encuentra la direccin de loopback (127.0.0.1), esta direccin


es utilizada por varias aplicaciones para su funcionamientos, se recomienda que no
modifique esta linea.

Ejemplo:

127.0.0.1 localhost.localdomain localhost


192.168.1.10 mail.redfactor.net mail
192.168.1.13 www.red.factor.net www

3.2 Configuracion del archivo /etc/resolv.conf


Este archivo de configuracin contiene las direcciones IP de los servidores DNS.
Sus parmetros de configuracin son:

CIBERTEC CARRERAS PROFESIONALES


38 Sistemas Operativos Avanzados

Define las direcciones IP de los servidores de nombre en los


nameserver cuales se debern resolver las bsquedas. El archivos hosts
solo permite hasta 3 servidores de nombre diferentes
Define el nombre de dominio local en el cual pertenecen los
domain
equipos en una red local
Este parmetro define la lista de bsqueda nombres de
search equiposes til cuando se busca un equipo dentro de la red
local por un nombre corto
Este parmetro indica la preferencia de los nameserver
sortlist
definidos

3.3 Configuracion del archivo /etc/resolv.conf


Los parmetros que utiliza este este archivo son:

NETWORKING Los valores que admites son:


yes Permite la configuracin de los servicio de red.
no No permite la configuracin de los servicio de red.

FORWARD_IPV4 Habilita el reenvo de paquetes. Los valores que admite son


yes o no.

HOSTNAME Define el nombre del equipo, el cual debe de tener la forma del
Fully Qualified Domain Name (FQDN). Por ejemplo:
equipo.ejemplo.net

GATEWAY Este parametro define la direccin IP del Gateway

3.4 Configuracin de la interfaz de red


El directorio de configuracin de la interfaz de red se encuentra en:

/etc/sysconfig/networkscripts/

Dentro de este directorio se encuentran los archivos de configuracin de los


dispositivos, dependiendo del numero de interfaces de red instaladas en el
computadora ser el numero de archivos de configuracin, el nombre de estos
archivos depende del tipo de dispositivo

Ethernet ifcfgeth0,ifcfgeth1, ..., ifcfgethN.


WiFi ifcfgwlan0, ifcfgwlan1,..., IfcfgwlanN.
Modem ifcfgppp0, ifcfgppp1, ..., ifcfgpppN.

en donde N representa el numero de interfaz a configurar.

Los parmetros que admiten los archivos de configuracin de la interfaz de red


Ethernet son los siguientes:
Sistemas Operativos Avanzados 39

DEVICE Define el nombre del dispositivo fsico

BOOTPROTO
none No utiliza ningn protocolo de arranque.
static Se define de forma manual los parmetros de red.
dhcp Obtiene los parmetros de red por medio de un
servidor de DHPC

IPADDR Define la direccin IP asignada a ese dispositivo.

NETMASK Define la mscara de red.

NETWORK Define el segmento de red

HWADDR Define el direccin MAC del dispositivo de red. Se


recomienda que modificar el valor de este parmetro.

GATEWAY Define la Direccin IP del Gateway en la red

ONBOOT Establece si el dispositivo debe activarse con los servicios


de red

DNS1, DNS2 Define las direcciones de los servidores DNS primario y


secundario a utilizar.

DHCP_HOSTNAME Esta opcin establece un nombre al equipo. Utilice esta


opcin si el servidor DHCP requiere que el cliente
especifique el nombre de su equipo antes de recibir una
direccin IP.

Ejemplo del archivo de configuracin.

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.2.10
NETMASK=255.255.255.0
NETWORK=192.168.2.0
GATEWAY=192.168.2.254
DNS1=192.168.2.1
HWADDR= 00:1E:EC:6E:CD:51

CIBERTEC CARRERAS PROFESIONALES


40 Sistemas Operativos Avanzados

Autoevaluacin

1. Cul es el comando que te permite conocer la hora del sistema?


(a) cd
(b) mkdir
(c) date
(d) messages

2. Cul es el comando que te permite conocer los usuarios conectados al


sistema?
(a) ls
(b) cat
(c) w
(d) tar

3. Cul es el archivo donde se almacena los DNS del sistema?


(a) hosts
(b) messages
(c) resolv.conf
(d) grub.conf
Sistemas Operativos Avanzados 41

3
SEMANA

Administracin de Usuarios y Grupos

TEMA
Aprender cmo administrar usuarios y grupos en un ambiente Windows

OBJETIVOS ESPECFICOS
Aprender a crear, editar y eliminar usuarios

Aprender a crear, editar y eliminar grupos

CONTENIDOS
Introduccin

Herramientas para la creacin de usuarios

Usuarios y Grupos estndares

Contraseas

Ejemplos

CIBERTEC CARRERAS PROFESIONALES


42 Sistemas Operativos Avanzados

1. Introduccin
El control de los usuarios y grupos es un elemento clave en la administracin de
sistemas Linux.

Los tipos de usuarios en Linux son:

Usuario Administrador
Es la cuenta del administrador del Sistema en caso de Linux y Unix el usuario
es el usuario root

Usuarios de Servicio
Cuentas que existen para ser usadas con aplicaciones especificas

Usuarios Standard
Cuentas ligadas a un usuario fsico en particular

Los Grupos son expresiones lgicas de organizacin, reuniendo usuarios para un


propsito comn.

Los usuarios dentro de un mismo grupo pueden leer, escribir o ejecutar archivos que
pertenecen a ese grupo.

Cada usuario y grupo tiene un nmero de identificacin nico llamado identificador


de usuario (UID) y un identificador de grupo (GID) respectivamente.
Un usuario que crea un archivo se convierte en el propietario y el propietario de
grupo para ese archivo. Al archivo tambin se le asignan permisos separados de
lectura, escritura y ejecucin para el propietario del archivo, para el grupo y para
cualquier otro usuario.
Solamente el superusuario (root) puede cambiar el propietario de un archivo, y los
permisos de acceso se pueden cambiar tanto por el superusuario como por el
creador del archivo.
Linux soporta listas de control de acceso (ACLs) para archivos y directorios lo que
permite colocar permisos para usuarios especficos adems del creador.

Una de las tareas ms importantes de cualquier administrador del sistema, es la de


administrar adecuadamente usuarios y grupos, as como asignar y revocar permisos.

2. Herramientas de administracin de usuarios y grupos

La gestin de usuarios y grupos ha sido tradicionalmente tediosa, pero Linux


proporciona algunas herramientas y convenciones que facilitan su gestin.
La forma ms fcil de manejar usuarios y grupos es a travs de la aplicacin grfica,
Administrador de usuarios (system-config-users).
Sistemas Operativos Avanzados 43

Las siguientes herramientas de lnea de comandos tambin se pueden utilizar para


manejar usuarios y grupos:

. useradd, usermod y userdel. Mtodos estndar de la industria para aadir,


eliminar y modificar cuentas de usuarios.

. groupadd, groupmod y groupdel. Mtodos estndar de la industria para aadir,


eliminar y modificar grupos de usuarios.

. gpasswd. Mtodos estndar de la industria para administrar el archivo /etc/group.

. pwck, grpck. Herramientas para la verificacin de contraseas, grupo y archivos


shadow asociados.

. pwconv, pwunconv. Herramientas para la conversin de contraseas a


contraseas shadow (oscurecimiento de contraseas) y de vuelta a contraseas
estndar.

3. Usuarios despues de una instalacin comun


En la tabla siguiente se lista los usuarios estndar configurados en el archivo
/etc/passwd para una instalacin. El groupid (GID) en esta tabla es el grupo primario
para el usuario.

CIBERTEC CARRERAS PROFESIONALES


44 Sistemas Operativos Avanzados

Usuario UID GID Directorio principal Shell


root 0 0 /root /bin/bash
bin 1 1 /bin /sbin/nologin
daemon 2 2 /sbin /sbin/nologin
adm 3 4 /var/adm /sbin/nologin
lp 4 7 /var/spool/lpd /sbin/nologin
sync 5 0 /sbin /bin/sync
shutdown 6 0 /sbin /sbin/shutdown
halt 7 0 /sbin /sbin/halt
mail 8 12 /var/spool/mail /sbin/nologin
news 9 13 /etc/news
uucp 10 14 /var/spool/uucp /sbin/nologin
operator 11 0 /root /sbin/nologin
games 12 100 /usr/games /sbin/nologin
gopher 13 30 /var/gopher /sbin/nologin
ftp 14 50 /var/ftp /sbin/nologin
nobody 99 99 / /sbin/nologin
rpm 37 37 /var/lib/rpm /sbin/nologin
vcsa 69 69 /dev /sbin/nologin
dbus 81 81 / /sbin/nologin
ntp 38 38 /etc/ntp /sbin/nologin
canna 39 39 /var/lib/canna /sbin/nologin
nscd 28 28 / /sbin/nologin
rpc 32 32 / /sbin/nologin
xfs 43 43 /etc/X11/fs /sbin/nologin
gdm 42 42 /var/gdm /sbin/nologin
htt 100 101 /usr/lib/im /sbin/nologin
mysql 27 27 /var/lib/mysql /bin/bash
webalizer 67 67 /var/www/usage /sbin/nologin
mailnull 47 47 /var/spool/mqueue /sbin/nologin
smmsp 51 51 /var/spool/mqueue /sbin/nologin
squid 23 23 /var/spool/squid /sbin/nologin
ldap 55 55 /var/lib/ldap /bin/false
netdump 34 34 /var/cras /bin/bash
pcap 77 7 /var/arpwatc /sbin/nologin
radiusd 95 95 / /bin/false
radvd 75 75 / /sbin/nologin
quagga 92 92 /var/run/quagga /sbin/login
wnn 49 49 /var/lib/wn /sbin/nologin
dovecot 97 97 /usr/libexec/dovecot /sbin/nologin

4. Grupos despus de una instalacin comun


En la tabla siguiente se lista los grupos estndar configurados por una instalacin.
Los grupos son almacenados en el archivo /etc/group.

Grupo GID Miembros


root 0 root
bin 1 root, bin,daemon
Sistemas Operativos Avanzados 45

daemon 2 root,bin,daemon
sys 3 root,bin,adm
adm 4 Root, adm,daemon
tty 5
disk 6 root
lp 7 daemon,
mem 8
kmem 9
wheel 10 root
mail 12 mail,post_x,exim
news 13 news
uucp 14 uucp
man 15
games 20
gopher 30
dip 40
ftp 50
lock 54
nobody 99
usuarios 100
rpm 37
utmp 22
_oppy 19
vcsa 69
dbus 81
ntp 38
canna 39
nscd 28
rpc 32
postdrop 90
post_x 89
mailman 41
named 25
postgres 26
sshd 74
rpcuser 29
nfsnobody 65534
pvm 24
apache 48
xfs 43
gdm 42
htt 101
mysql 27
webalizer 67
mailnull 47
smmsp 51
squid 23
ldap 55

CIBERTEC CARRERAS PROFESIONALES


46 Sistemas Operativos Avanzados

netdump 34
pcap 77
quaggavt 102
quagga 92
radvd 75
slocate 21
wnn 49
dovecot 97
radiusd 95

5. Grupos de usuario privado


Linux utiliza un esquema de grupo privado de usuario (UPG), lo que hace ms fcil
de manejar los grupos de UNIX.
Se crea un UPG siempre que se aade un nuevo usuario al sistema. Un UPG tiene
el mismo nombre que el usuario para el cual se crea y ese usuario es el nico
miembro de ese UPG.

Los UPGs hacen que sea ms seguro configurar los privilegios por defecto para un
nuevo archivo o directorio lo que permite a ambos, tanto el usuario como al grupo de
ese usuario hacer modificaciones al archivo o directorio.
El parmetro que determina qu permisos son aplicados a un nuevo archivo o
directorio es llamado un umask y se configura en el archivo /etc/bashrc.
Tradicionalmente en sistemas UNIX, el umask es configurado a 022, lo que slo
permite al usuario que cre el archivo o directorio realizar modificaciones.
Bajo este esquema, todos los dems usuarios incluyendo miembros del grupo del
creador no tienen derecho a realizar ninguna modificacin. Sin embargo, bajo el
esquema UPG, esta "proteccin de grupo" no es necesaria puesto que cada usuario
tiene su propio grupo privado.

6. Contraseas Shadow

En entornos multiusuario es muy importante utilizar contraseas shadow tambin


conocido como Oscurecimiento de contraseas, (proporcionadas por el paquete
shadow-utils). Haciendo esto se mejora la seguridad de los archivos de autenticacin
del sistema. Por esta razn, el programa de instalacin activa por defecto las
contraseas shadow.

Lo siguiente es una lista de las ventajas de las contraseas shadow sobre el mtodo
tradicional de almacenar contraseas en los sistemas basados en UNIX:

. Mejora la seguridad del sistema al mover las contraseas encriptadas desde


el archivo /etc/passwd que puede leer todo el mundo, a /etc/shadow, el cual
slo puede ser ledo por el usuario root.
. Almacena informacin sobre las vigencias de las contraseas.
. Permite el uso del archivo /etc/login.defs para reforzar las polticas de
seguridad.
Sistemas Operativos Avanzados 47

La mayora de las utilidades proporcionadas por el paquete shadow-utils funcionan


adecuadamente sin importar si las contraseas shadow estn activadas o no. Sin
embargo, puesto que la informacin sobre la vigencia de las contraseas es
almacenada exclusivamente en el archivo /etc/shadow, cualquier comando que cree
o modi_que la informacin sobre la vigencia de las contraseas, no funcionar.

Abajo se muestra una lista de los comandos que no funcionan a menos que se
activen primero las contraseas shadow:

. chage
. gpasswd

. Las opciones /usr/sbin/usermod -e o -f


. Las opciones /usr/sbin/useradd -e o -f

7. Ejemplos

Lo primero: la orden useradd.

El primer paso para crear una nueva cuenta consiste en utilizar el mandato useradd
del siguiente modo:

useradd nombre_del_usuario

Ejemplo:

Lo segundo: la orden passwd.

Despus de crear la nueva cuenta con useradd o que sigue a continuacin es


especificar una contrasea para el usuario. Determine una que le resulte fcil de
recordar, que mezcle nmeros, maysculas y minsculas y que, preferentemente, no
contenga palabras que se encontraran fcilmente en el diccionario.

Aunque el sistema siempre tratar de prevenirlo cuando se escoja una mala


contrasea, el sistema no le impedir que lo haga. Especificar una nueva contrasea
para un usuario, o bien cambiar la existente, se puede realizar utilizando el mandato
passwd del siguiente modo:

passwd nombre_del_usuario

Ejemplo:

CIBERTEC CARRERAS PROFESIONALES


48 Sistemas Operativos Avanzados

El sistema solicitar entonces que proceda a teclear la nueva contrasea para el


usuario y que repita sta para confirmar. No ver el echo, por seguridad, el sistema
no mostrar los caracteres tecleados, por lo que debe hacerlo con cuidado. Si se
considera que tal vez se cometieron errores de tecleado, puede presionarse las
veces que sean necesarias la tecla <Backspace> o <Retroceso>. De cualquier forma
el sistema le informar si coincide o no lo tecleado. Si todo sali bien recibir como
respuesta del sistema code 0. Si en cambio recibe code 1, significa que deber
repetir el procedimiento, ya que ocurri un error.

Este procedimiento tambin puede utilizarse para cambiar una contrasea existente.

Opciones avanzadas.

En muchos casos pueden no ser necesarios, pero si se esta administrando un


servidor o estacin de trabajo, o bien se es un usuario un poco ms experimentado,
y se quiere crear una cuenta con mayores o menores restricciones, atributos y/o
permisos, pueden utilizarse las siguientes opciones de useradd:

-c comment
Se utiliza para especificar el archivo de comentario de campo para la
nueva cuenta.

-d home dir
Se utiliza para establecer el directorio de trabajo del usuario. Es
conveniente, a fin de tener un sistema bien organizado, que este se
localice dentro del directorio /home.

-e expire date
Se utiliza para establecerla fecha de expiracin de una cuenta de
usuario. Esta debe ingresarse en el siguiente formato: AAAA-MM-DD.

-g initial group
Se utiliza para establecer el grupo inicial al que pertenecer el usuario.
De forma predeterminada se establece como nico grupo 1. Nota: el
grupo asignado debe de existir.

-G group,[...]
Se utiliza para establecer grupos adicionales a los que pertenecer el
usuario. Estos deben separarse utilizando una coma y sin espacios.
Esto es muy conveniente cuando se desea que el usuario tenga
acceso a determinados recursos del sistema, como acceso a la unidad
Sistemas Operativos Avanzados 49

de disquetes, administracin de cuentas PPP y POP. Nota: los grupos


asignado deben de existir.

-m
Se utiliza para especificar que el directorio de trabajo del usuario debe
ser creado si acaso este no existiese, y se copiaran dentro de este los
archivos especificados en /etc/skel.

-s shell
Se utiliza para establecer el Shell que podr utilizar el usuario. De
forma predeterminada, en Red Hat Linux y Fedora Core, se
establece bash como Shell predefinido.

-u uid
Se utiliza para establecer el UID, es decir, la ID del usuario. Este debe
ser nico. De forma predeterminada se establece como UID el nmero
mnimo mayor a 99 y mayor que el de otro usuario existente. Cuando
se crea una cuenta de usuario por primera vez, como ocurre en Red
Hat Linux y Fedora Core generalmente se asignar 500 como
UID del usuario. Los UID entre 0 y 99 son reservados para las cuentas
de los servicios del sistema.

Ejemplo:

Lo anterior crear una cuenta de usuario llamada jperez, que se encuentra incluido
en los grupos operadores y linux, que tendr un UID=521, utilizar Bash como
intrprete de mandatos y tendr un directorio de trabajo en /home/jperez.

Existen ms opciones y comentarios adicionales para el mandato useradd, estas se


encuentran especificadas en los manuales -Man pages-. Para acceder a esta
informacin, utilice el mandato man useradd desde una ventana terminal.

Eliminar una cuenta de usuario.

En ocasiones un administrador necesitar eliminar una o ms cuentas de usuario.


Este es un procedimiento principalmente utilizado en servidores y estaciones de
trabajo a los cuales acceden mltiples usuarios. Para tal fin nos valdremos del
mandato userdel. La sintaxis bsica de userdel es la siguiente:

userdel nombre_del_usuario

CIBERTEC CARRERAS PROFESIONALES


50 Sistemas Operativos Avanzados

Ejemplo:

Si se desea eliminar tambin todos los archivos y sub-directorios contenidos dentro


del directorio de trabajo del usuario a eliminar, se debe agregar la opcin -r:

userdel -r nombre_del_usuario

Ejemplo:

Manejo de Grupos.

Alta de grupos.

groupadd grupo-que-sea

Alta de grupos de sistema.

Un grupo de sistema es aquel que tiene un nmero de identidad de grupo (GID) por
debajo del 500. Regularmente se asigna automticamente el nmero de identidad de
grupo ms bajo disponible.
Sistemas Operativos Avanzados 51

Baja de grupos

Asignacin de usuario existente a grupos existentes.

Tambien se pueder agregar o modificar el grupo principal con el siguiente comando

CIBERTEC CARRERAS PROFESIONALES


52 Sistemas Operativos Avanzados

Autoevaluacin

1. Cuales son los tipos de usuarios que existen en Linux?

2. Cul es el archivo donde se graba la configuracin principal de los usuarios?


(a) passwd
(b) shadow
(c) hosts
(d) messages

3. Cul es el archivo donde se graba el password de los usuarios?


(a) passwd
(b) shadow
(c) hosts
(d) messages
Sistemas Operativos Avanzados 53

4
SEMANA

Proceso de arranque en Linux

TEMA
Describir el proceso de aranque en Linux, asi como los componetes que intervienen
en el

OBJETIVOS ESPECFICOS
Comprender el proceso de aranque, inicio y cierre del sistema

Conocer el gestor de arranque Grub

Concer la estructura de archivos

CONTENIDOS
Proceso de aranque, inicio y cierre del sistema

El Grub en linux

La estructura de archivos

CIBERTEC CARRERAS PROFESIONALES


54 Sistemas Operativos Avanzados

1. Proceso de arranque, inicio y cierre del sistema


Una de las caractersticas ms importantes y poderosas de Linux es el mtodo
abierto y configurable para el inicio del sistema operativo. Los usuarios son libres de
configurar muchos aspectos del proceso de arranque, incluyendo qu programas se
lanzarn al momento de arranque. De forma parecida, el cierre del sistema finaliza
los procesos de forma organizada y configurable, aunque la personalizacin de este
proceso casi nunca es necesaria.
Entender el funcionamiento del proceso de arranque y cierre no slo le permitir
personalizar, sino que tambin le facilitar resolver problemas relacionados con el
inicio y el cierre del sistema.

1.1. Proceso de arranque


A continuacin obtendr las etapas bsicas del proceso de arranque para un
sistema x86:
1. La BIOS del sistema comprueba y lanza la primera etapa del gestor de
arranque del MBR del disco duro primario.
2. La primera etapa del gestor de arranque se autocarga en memoria y lanza
la segunda etapa del gestor de arranque desde la particin /boot/.
3. La segunda etapa del gestor de arranque carga el kernel en memoria, lo
cual en su momento carga los mdulos necesarios y monta la particin root
para slo-lectura.
4. El kernel transfiere el control del proceso de arranque al programa /sbin/init.
Sistemas Operativos Avanzados 55

5. El programa /sbin/init carga todos los servicios y herramientas de espacio


del usuario y monta todas las particiones listadas en /etc/fstab.
6. Se le presenta al usuario una pantalla de inicio de conexin para el sistema
Linux recin iniciado. Ya que la configuracin del proceso de arranque es ms
comn que la del proceso de cierre, en el resto del captulo se discutir el
modo en el que el proceso de arranque funciona y cmo se puede
personalizar para satisfacer sus necesidades.

1.2. Vista detallada del proceso de arranque


El inicio del proceso de arranque vara dependiendo de la plataforma de hardware
usada. Sin embargo, una vez que se encuentra el kernel y se carga por el gestor de
arranque, el proceso de arranque por defecto es idntico a travs de todas las
arquitecturas. Este captulo se basa principalmente en la arquitectura x86.

1.2.1. La BIOS
Cuando un ordenador x86 se carga, el procesador busca al final de la memoria del
sistema por Basic Input/Output System o el programa BIOS y lo ejecuta. La BIOS
controla no slo el primer paso del proceso de arranque, sino que tambin
proporciona una interfaz de bajo nivel para dispositivos perifricos. Por este motivo
se escribe tan slo en modo lectura, memoria permanente y est siempre disponible
para el uso.
Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel
equivalentes a aquellas de la BIOS en el sistema x86. Por ejemplo, los ordenadores
basados en Itanium usan el Shell Interfaz de Firmware extendible (Extensible
Firmware Interface, EFI).

CIBERTEC CARRERAS PROFESIONALES


56 Sistemas Operativos Avanzados

Una vez que se haya cargado, la BIOS chequea los perifricos y localiza un
dispositivo con el que arrancar el sistema. Habitualmente, en primer lugar
comprueba cualquier disquete y unidades de CDROM presente por los medios de
arranque, y a continuacin si esto falla, echa un vistazo a las unidades de disco duro
del sistema. En la mayora de los casos, el orden de bsqueda de las unidades para
arrancar es controlado por una configuracin de la BIOS y busca por el dispositivo
maestro IDE en el bus IDE primario. La BIOS carga en memoria cualquier programa
que resida en el primer sector de este dispositivo, llamado Registro de arranque
principal o Master Boot Record (MBR). La MBR slo tiene 512 bytes de tamao y
contiene las instrucciones de cdigo de mquina para el arranque del equipo,
llamado un gestor de arranque, as como tambin la tabla de particiones. Una vez
que la BIOS haya encontrado y cargado el gestor de arranque en memoria, le deja el
control del proceso de arranque a ste.

1.2.2. El gestor de arranque


Dependiendo de la arquitectura del sistema, el proceso de arranque diferir
Ligeramente. Un gestor de arranque para la plataforma x86 se divide en al menos
dos etapas. La primera es un cdigo binario de mquina pequea en el MBR. Su
nica funcin es la de localizar el gestor de arranque de la segunda etapa y cargar la
primera parte de ste en memoria.GRUB tiene la ventaja de ser capaz de leer
particiones ext2 y ext3 1 y cargar su archivo de configuracin. /boot/grub/grub.conf.
al momento de arranque.
Sistemas Operativos Avanzados 57

Una vez que el gestor de arranque de la segunda etapa haya determinado qu


kernel arrancar, localizar el binario del kernel correspondiente en el directorio
/boot/. El kernel binario es llamado usando el siguiente formato. /boot/vmlinuz-
<kernel-version> (donde <kernel-version> corresponde a la versin del kernel
especificada en las configuraciones del gestor de arranque).
Para instrucciones sobre el uso del gestor de arranque para suministrar argumentos
de lnea de comandos al kernel.
El gestor de arranque luego coloca una o ms de las imgenes apropiadas de
initramfs en la memoria. Luego, el kernel descomprime estas imgenes desde la
memoria a /boot/, un sistema de archivos virtual basado en RAM, a travs de cpio. El
initrd es usado por el kernel para cargar controladores y mdulos necesarios para
arrancar el sistema. Esto es muy importante si posee unidades de disco duro SCSI o
si est el sistema utiliza el sistema de archivos ext3.
Una vez que el kernel y la imagen initramfs se cargan en memoria, el gestor de
arranque pasa el control del proceso de arranque al kernel.

1.2.3. El kernel
Cuando se carga el kernel, ste inicializa y configura la memoria del ordenador y el
diferente hardware conectado al sistema, incluyendo todos los procesadores,
subsistemas de entrada/salida y dispositivos de almacenamiento. A continuacin
buscar la imagen comprimida de initramfs en una ubicacin predeterminada en
memoria, la descomprimir directamente a /sysroot/ y cargar todos los
controladores necesarios. A continuacin inicializa los dispositivos virtuales
relacionados con el sistema de ficheros, tal como LVM o software RAID antes de
completar los procesos initramfs y de liberar toda la memoria que la imagen del
disco ocup anteriormente.

CIBERTEC CARRERAS PROFESIONALES


58 Sistemas Operativos Avanzados

El kernel luego crea un dispositivo root, monta la particin root como slo lectura y
libera cualquier memoria no utilizada. Llegados a este punto, el kernel est cargado
en memoria y operativo. Sin embargo, como no hay aplicaciones de usuario que
permitan la entrada significativa de datos al sistema, no se puede hacer mucho ms.
Para configurar el entorno de usuario, el kernel inicia el programa /sbin/init.

1.2.4. Programa /sbin/init


El programa /sbin/init (tambin llamado init) coordina el resto del proceso de
arranque y configura el ambiente del usuario. Cuando el comando init arranca, se
vuelve el padre o abuelo de todos los procesos que comienzan automticamente en
el sistema. Primero, ejecuta el script /etc/rc.d/rc.sysinit, que establece la ruta del
entorno, activa el swap, verifica los sistemas de archivos y se encarga de todo lo que
el sistema necesita tener hecho al momento de la inicializacin. Por ejemplo, la
mayora de los sistemas usan un reloj, por lo tanto, el rc.sysinit lee el archivo de
configuracin para iniciar el hardware del reloj. Otro ejemplo es si hay procesos
especiales en los puertos seriales que deben ser inicializados, rc.sysinit ejecutar el
archivo /etc/rc.serial.
El comando init luego ejecuta el script /etc/inittab, el cual describe cmo se debera
configurar el sistema en cada nivel de ejecucin SysV init. Los niveles de ejecucin
son un estado, o modo, definido por los servicios listados en el SysV directorio
/etc/rc.d/rc<x>.d/, donde <x> es el nmero de nivel de ejecucin.

A continuacin, el comando init configura la biblioteca de funciones fuente,


/etc/rc.d/init.d/functions, para el sistema, que establece el modo en cmo iniciar o
matar un programa y cmo determinar el PID del programa.
El programa init inicia todos los procesos de fondo buscando en el directorio
apropiado rc para el nivel de ejecucin especificado por defecto en /etc/inittab. Los
directorios rc estn numerados para corresponder al nivel de ejecucin que
representan. Por ejemplo, /etc/rc.d/rc5.d/ es el directorio para el nivel de ejecucin 5.

Cuando se arranca el nivel de ejecucin 5, el programa init consulta el directorio


/etc/rc.d/rc5.d/ para determinar qu procesos iniciar o parar.
Casi todos los ficheros en /etc/rc.d/rc5.d/ son enlaces simblicos apuntando a los
scripts localizados en el directorio /etc/rc.d/init.d/. Los enlaces simblicos se usan en
cada uno de los directorios rc de manera que los niveles de ejecucin puedan ser
reconfigurados al crear, modificar y eliminar los enlaces simblicos sin que afecte a
los scripts actuales a los que se refiere.
El nombre de cada enlace simblico comienza con K o S. Los enlaces K son
procesos eliminados en ese nivel de ejecucin, mientras que aquellos que inician por
S son procesos a iniciar.
El comando init en primer lugar detiene todos los enlaces simblicos de K en el
directorio mediante la ejecucin del comando /etc/rc.d/init.d/<command> <stop>, en
el que < command>es el proceso a matar.
A continuacin inicia todos los enlaces simblicos S al ejecutar
/etc/rc.d/init.d/<command>. start.

1.3. Ejecutar programas adicionales en el momento de arranque


El script /etc/rc.d/rc.local lo ejecuta el comando init en tiempo de arranque, o cuando
se cambien niveles de ejecucin. El agregar comandos al final de este script es una
forma fcil de realizar tareas necesarias como arrancar servicios especiales o
Sistemas Operativos Avanzados 59

inicializar dispositivos sin tener que escribir scripts complejos de inicializacin en el


directorio /etc/rc.d/init.d/ y creando enlaces simblicos.
Se usa el script /etc/rc.serial si se deben configurar puertos seriales en el momento
de arranque.
Este script ejecuta los comandos setserial para configurar los puertos seriales del
sistema.

1.4. Niveles de ejecucin de SysV Init


El sistema de niveles de ejecucin SysV init provee de un proceso estndar para
controlar cules programas init lanza o detiene cuando se inicializa un nivel de
ejecucin. SysV init fu escogido porque es ms fcil de usar y ms fiexible que el
proceso tradicional init estilo BSD.
Los ficheros de configuracin para SysV init estn en el directorio /etc/rc.d/. Dentro
de este directorio, se encuentran los scripts rc, rc.local, rc.sysinit, y, opcionalmente,
los scripts rc.serial as como los siguientes directorios:
init.d/
rc0.d/
rc1.d/
rc2.d/
rc3.d/
rc4.d/
rc5.d/
rc6.d/
El directorio init.d/ contiene los scripts usados por el comando /sbin/init cuando se
controlan los servicios. Cada uno de los directorios numerados representan los seis
niveles de ejecucin predeterminados configurados por defecto bajo Linux.

1.4.1. Niveles de ejecucin


La idea detrs de los niveles de ejecucin de SysV init gira alrededor del hecho que
sistemas diferentes se pueden usar de formas diferentes. Por ejemplo, un servidor
corre de forma ms eficiente sin el consumo de recursos del sistema excesivo
creado por el sistema X. Otras veces, el administrador del sistema puede necesitar
operar el sistema en un nivel ms bajo de ejecucin para realizar tareas de
diagnstico, como reparar corrupcin del disco duro en el nivel de ejecucin 1.
Las caractersticas de un nivel de ejecucin dado determinan qu servicios son
detenidos o iniciados por init. Por ejemplo, el nivel de ejecucin 1 (modo usuario
nico) detiene cualquier servicio de red, mientras que el nivel 3 arranca estos
servicios. Asignando servicios especficos a ser detenidos o iniciados en un nivel
dado, init puede fcilmente cambiar el modo de la mquina sin que el usuario tenga
que manualmente arrancar o detener servicios.
Los siguientes niveles de ejecucin estn definidos de forma predeterminada para
Linux:
. 0 . Parar
. 1 . Modo texto usuario nico
. 2 . Sin usar (usuario-definible)
. 3 . Modo texto multiusuario completo
. 4 . Sin usar (usuario-definible)
. 5 . Modo grfico multiusuario completo (con una pantalla de inicio de sesin basada
en X)
. 6 . Rearrancar

CIBERTEC CARRERAS PROFESIONALES


60 Sistemas Operativos Avanzados

Generalmente, los usuarios utilizan Linux al nivel de ejecucin 3 o nivel de ejecucin


5.ambos modos multiusuario. Ya que los niveles de ejecucin 2 y 4 no son usados,
los usuarios a veces personalizan estos niveles para cubrir necesidades especficas.
El nivel de ejecucin por defecto para el sistema est listado en /etc/inittab. Para
saber el nivel de ejecucin por defecto de un sistema, busque por la lnea similar a la
que se muestra abajo cerca de la parte superior de /etc/inittab:
id:5:initdefault:
El nivel de ejecucin predeterminado en este ejemplo es cinco, como indica el
nmero despus del punto y coma. Para cambiarlo, modifique /etc/inittab como
usuario root.

1.4.2. Utilidades de los niveles de ejecucin


Una de las mejores formas de configurar los niveles de ejecucin es usando la
utilidad initscript.Estas herramientas estn diseadas para simplificar las tareas de
mantener archivos en la jerarqua del directorio SysV init y descargan a los
administradores de sistemas de tener que directamente
manipular numerosos enlaces simblicos en los subdirectorios de /etc/rc.d/.
Linux ofrece tres de tales utilidades:
. /sbin/chkconfig . La utilidad /sbin/chkconfig es una herramienta de lnea de
comandos
sencilla para mantener la jerarqua del directorio /etc/rc.d/init.d.
. /sbin/ntsysv.La utilidad basada en ncurses /sbin/ntsysv provee de una interfaz
interactiva basada en texto, que muchos encuentran ms fcil de usar que
chkconfig.
. Herramienta de configuracin de servicios . El programa de interfaz grfica
Herramienta de configuracin de servicios (system-config-services) es una
utilidad fiexible para la configuracin de niveles de ejecucin.
Sistemas Operativos Avanzados 61

1.5. Apagar
Para apagar Linux, el usuario root puede ejecutar el comando /sbin/shutdown.
La pgina man para shutdown tiene una lista completa de opciones, pero las dos
usadas ms comnmente son:

/sbin/shutdown -h now
/sbin/shutdown -r now

Despus de apagar todo, la opcin -h detendr la mquina, y la opcin -r la


reiniciar.
Los usuarios de consola PAM pueden usar los comandos reboot y halt para apagar
el equipo mientras se est en niveles de ejecucin 1 hasta 5. Para ms informacin
sobre los usuarios de consola
Si la computadora no se apaga asmisma, tenga cuidado de no apagar la
computadora hasta que aparezca un mensaje indicando que el sistema ha sido
detenido.
Si no espera por este mensaje puede significar que no todas las particiones del
disco duro han sido desmontadas, y puede llevar a un sistema de archivos corrupto.

CIBERTEC CARRERAS PROFESIONALES


62 Sistemas Operativos Avanzados

2. El gestor de arranque GRUB

Cuando se enciende un equipo con Red Hat Enterprise Linux, el sistema operativo
es cargado en memoria por un programa especial llamado gestor de arranque. Un
programa gestor de arranque existe en el disco duro primario del sistema (o en otros
dispositivos) y es responsable de la carga del kernel de Linux con sus archivos
necesarios o (en algunos casos) de otros sistemas operativos en la memoria.

2.1. Gestores de arranque y arquitectura del sistema


Cada arquitectura de sistemas que pueda ejecutar Red Hat Enterprise Linux usa un
gestor de arranque diferente. La lista siguiente muestra los gestores de arranque
disponibles para cada arquitectura.

Arquitectura Gestores de arranque


AMD AMD64 GRUB
IBM eServer. iSeries. OS/400
IBM eServer. pSeries. YABOOT
IBM S/390 z/IPL
IBM eServer. zSeries z/IPL
Intel Itanium. ELILO
x86 GRUB
Sistemas Operativos Avanzados 63

Este captulo explica comandos y opciones de configuracin para el gestor de


arranque GRUB suministrado con Linux para la arquitectura x86.
2.2. GRUB
GNU GRand Unified Boot loader o GRUB es un programa que habilita al usuario a
seleccionar qu sistema operativo instalado o kernel cargar en el momento de
arranque del sistema. Permite tambin que el usuario transmita argumentos al
kernel.

2.2.1. Proceso de arranque en un sistema x86 y GRUB


Esta seccin explica con ms detalle el papel especfico que desempea GRUB al
arrancar un sistema x86. Para hacerse una idea del proceso de arranque, GRUB se
carga asimismo en la memoria en las diferentes etapas:

1. La etapa 1 o cargador de arranque primario se lee en la memoria por el BIOS


desde el MBR1.El gestor de arranque primario existe en menos de 512 bytes de
espacio en disco dentro del MBR y es capaz de cargar bien sea la etapa 1.5 o la
etapa 2 del gestor de arranque.
2. La Etapa 1 del gestor de arranque se lee en la memoria por el gestor de arranque
de la Etapa 1, si es necesario. Determinados hardware requieren un paso intermedio
para pasar a la Etapa 2 del gestor de arranque. Esto sucede a menudo cuando la
particin /boot/ est por encima del cilindro 1024 del disco duro o cuando se usa el
modo LBA. La Etapa 1.5 del gestor de arranque se encuentra en la particin /boot/ o
en una pequea parte del MBR y la particin /boot/.
3. La Etapa 2 o el gestor de arranque secundario se lee en la memoria. El gestor de
arranque secundario visualiza el men GRUB y el entorno de comandos. Esta
interfaz le permite seleccionar qu sistema operativo o kernel arrancar, pasar
argumentos al kernel o ver los parmetros del sistema.
4. El gestor de arranque secundario lee el sistema operativo o el kernel as como
tambin los contenidos de /boot/sysroot/ en memoria. Una vez que GRUB determina
qu sistema operativo iniciar, ste lo carga en la memoria y transfiere el control de la
mquina a dicho sistema operativo.
El mtodo usado para arrancar Linux se conoce como mtodo de carga directa
porque el gestor de arranque carga el sistema operativo directamente. No existe un
intermediario entre el gestor de arranque y el kernel.
El proceso de arranque usado por otros sistemas operativos puede variar. Por
ejemplo, los sistemas operativos de Microsoft Windows, as como otros sistemas
operativos, se cargan mediante un mtodo de arranque de carga encadenada. Bajo
este mtodo, el MBR seala el primer sector de la particin que tiene el sistema
operativo. All encuentra los archivos necesarios para arrancar el sistema operativo.
GRUB soporta ambos mtodos de arranque, directo y de carga encadenada,
permitiendo arrancar desde casi cualquier sistema operativo.

2.2.2. Funciones de GRUB


GRUB contiene una serie de funciones que lo convierten en el mtodo favorito
respecto al resto de gestores de arranque disponibles para la arquitectura x86. A
continuacin tiene una lista de las caractersticas ms importantes:
. GRUB proporciona un verdadero entorno basado en comandos, pre-sistema
operativo, para las mquinas x86. Esta funcionalidad le otorga al usuario una gran
flexibilidad en la carga de sistemas operativos con opciones especficas o con la
recopilacin de informacin sobre el sistema. Durante muchos aos, las

CIBERTEC CARRERAS PROFESIONALES


64 Sistemas Operativos Avanzados

arquitecturas diferentes a x86 han usado entornos previos al sistema operativo que
permiten arrancar el sistema desde una lnea de comandos.
. GRUB soporta el modo Direccionamiento Lgico de Bloques (LBA). El modo LBA
coloca la conversin de direccionamiento utilizada para buscar archivos en la unidad
de disco duro del firmware y se utiliza en muchos discos IDE y en todos los discos
duros SCSI. Antes de LBA, los gestores de arranque encontraban la limitacin del
cilindro 1024 del BIOS, donde el BIOS no poda encontrar un archivo despus de
ese cabezal de cilindro del disco. El soporte LBA permite que GRUB arranque los
sistemas operativos desde las particiones ms all del lmite de 1024 cilindros,
siempre y cuando el BIOS del sistema soporte el modo LBA. La mayora de las
revisiones ms modernas de la BIOS soportan el modo LBA..
GRUB puede leer las particiones ext2. Esto permite que GRUB acceda a su archivo
de configuracin, /boot/grub/grub.conf, cada vez que el sistema arranca, eliminando
la necesidad que tiene el usuario de escribir una nueva versin de la primera etapa
del gestor de arranque al MBR en caso de que se produzcan cambios de la
configuracin. El nico caso en el que el usuario necesitara reinstalar GRUB en el
MBR es en caso de que la localizacin fsica de la particin /boot/ se traslade en el
disco.

2.3. Instalacin de GRUB


Si no instal GRUB durante el proceso de instalacin, se puede hacer despus. Una
vez instalado, se convierte en el gestor de arranque por defecto. Antes de instalar
GRUB, debera asegurarse de que cuenta con el ltimo paquete disponible de
GRUB desde los CD-ROMs de instalacin.
Una vez que el paquete GRUB est instalado, abra un intrprete de comandos de la
shell y ejecute el comando /sbin/grub-install <ubicacin> donde <ubicacin> es la
ubicacin en la que la Etapa 1 de GRUB debera ser instalado. Por ejemplo, el
comando siguiente instala GRUB al MBR del dispositivo maestro IDE en el bus IDE
primario:
/sbin/grub-install /dev/hda
La prxima vez que arranque el sistema, el men del gestor de arranque grfico
GRUB aparecer antes del que el kernel se cargue en memoria.

2.4. Terminologa de GRUB


Una de las cuestiones ms importantes que deben entenderse antes de utilizar
GRUB es cmo el programa hace referencia a los dispositivos, por ejemplo, a los
discos duros y a las particiones. Esta informacin es muy importante si desea
configurar GRUB para arrancar varios sistemas operativos.

2.4.1. Nombres de dispositivos


Cuando se refiera a un dispositivo especfico con GRUB, haga esto usando el
formato siguiente (observe que los parntesis y las comas son muy importantes en
la sintaxis):
(<tipo-de-dispositivo> <numero-dispositivo-bios> , <numero-particion> )

El <tipo-de-dispositivo> especifica el tipo de dispositivo desde el cual inicia GRUB.


Las dos opciones ms comunes son hd para un disco duro o fd para un disquete de
3.5. Un tipo de dispositivo menos usado tambin est disponible, llamado nd para un
disco de la red.
Sistemas Operativos Avanzados 65

El <numero-dispositivo-bios> es el nmero del dispositivo BIOS. El disco duro IDE


primario se numera 0 y un disco duro IDE secundario se numera 1. La sintaxis es
equivalente a aquella utilizada para los dispositivos por el kernel. Por ejemplo, a en
hda para el kernel es anlogo a 0 en hd0 para GRUB, b en hdb es anlogo a 1 en
hd1, y as sucesivamente.
El <numero-particion> hace referencia al nmero de una particin concreta en un
dispositivo. Al igual que en el caso de <nmero-dispositivo-bios> , la mayora de los
tipos de particiones son numeradas comenzando por 0. Aunque la mayora de las
particiones se especifican con nmeros, si el sistema usa particiones BSD a stas se
har referencia con letras, con a correspondiendo a 0, b correspondiendo a 1 y as
sucesivamente.

2.4.2. Nombres de archivos y listas de bloqueo


Al escribir comandos en GRUB que hagan referencia a un archivo, como una lista de
mens, es necesario especificar una ruta de archivos absoluta despus de los
nmeros de dispositivo y particin.

Lo siguiente ilustra la estructura de tal comando:

(<tipo-dispositivo><numero-dispositivo> , <numero-particion>) </ruta/a/archivo>


En este ejemplo, reemplace <tipo-dispositivo> con hd, fd o nd. Reemplace
<finumero-dispositivo> con el nmero entero para el dispositivo. Reemplace
</ruta/a/archivo> con una ruta absoluta relativa al nivel ms superior del dispositivo.

Tambin puede especificar archivos a GRUB que no aparecen realmente en el


sistema de archivos, tal como un gestor de arranque en cadena que aparece en los
primeros bloques de la particin. Para cargar tales archivos, deber indicar una lista
de bloques, que indique a GRUB, bloque por bloque, la ubicacin exacta del archivo
en la particin. Puesto que un archivo puede estar formado por varios conjuntos de
bloques, hay una sintaxis especfica para escribir listas de bloques. Cada bloque que
contiene el archivo se describe con un nmero de desplazamiento de bloques
seguido de un nmero de bloques de ese punto de desplazamiento. Los
desplazamientos de bloques se listan secuencialmente y delimitados por comas.
La siguiente es una lista de bloques de ejemplo:
0+50,100+25,200+1

Esta lista de bloques de ejemplo especifica un archivo que empieza en el primer


bloque de la particin y que usa los bloques del 0 al 49, del 99 al 124, y el 199.
Saber cmo escribir listas de bloques es til al utilizar GRUB para cargar sistemas
operativos que usan el mtodo de carga encadenada. Puede suprimir el nmero de
desplazamiento de bloques si empieza por el bloque 0. Por ejemplo, el archivo de
carga encadenada de la primera particin del primer disco duro tendr el nombre
siguiente:

(hd0,0)+1

Lo siguiente muestra el comando chainloader con una designacin de lista de


bloques similar en la lnea de comandos de GRUB despus de establecer el
dispositivo correcto y la particin adecuada como raz:

CIBERTEC CARRERAS PROFESIONALES


66 Sistemas Operativos Avanzados

chainloader +1

2.4.3. El Sistema de archivos raz y GRUB


Algunos usuarios se confunden con el uso del trmino sistema de archivos raz tiene
un significado diferente con relacin a GRUB. Es importante recordar que el sistema
de archivos raz de GRUB no tiene nada que ver con el sistema de archivos raz de
Linux.
El sistema de archivos raz de GRUB es el nivel superior del dispositivo
especificado. Por ejemplo, el archivo imagen (hd0,0)/grub/splash.xpm.gz est
ubicado dentro del directorio /grub/ en el nivel superior (o raz) de la particin (hd0,0)
(la cual es en verdad la particin /boot/ para el sistema).
Luego, se ejecuta el comando kernel con la ubicacin del archivo del kernel como
una opcin. Una vez que el kernel de Linux inicia, establece el sistema de archivos
raz con el cual los usuarios de Linux estn familiarizados. El sistema de archivos
raz de GRUB original y sus montajes se olvidan; la nica finalidad de su existencia
era arrancar el archivo del kernel.

2.5. Archivo de configuracin de men de GRUB


El archivo de configuracin (/boot/grub/grub.conf), usado para crear la lista en la
interfaz de men de GRUB de los sistemas operativos para el arranque,
bsicamente permite al usuario seleccionar un grupo predefinido de comandos para
su ejecucin. de configuracin.

2.5.1. Estructura del archivo de configuracin


El archivo de configuracin de la interfaz de men de GRUB es /boot/grub/grub.conf.
Los comandos para configurar las preferencias globales para la interfaz de men
estn ubicados al inicio del archivo, seguido de las diferentes estrofas para cada
sistema operativo o kernels listados en el men.
El siguiente es un ejemplo de archivo de configuracin de men de GRUB muy
bsico diseado para arrancar bien sea Linux o Microsoft Windows 2000:

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux AS (2.6.8-1.523)
root (hd0,0)
kernel /vmlinuz-2.6.8-1.523 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.8-1.523.img
# section to load Windows
title Windows
rootnoverify (hd0,0)
chainloader +1

Este archivo indicar a GRUB que cree un men con Linux como el sistema
operativo predeterminado y que establezca un arranque automtico despus de 10
segundos. Se proporcionan dos secciones, una para cada entrada de sistema, con
comandos especficos para la tabla de particin del sistema.
Sistemas Operativos Avanzados 67

2.6. Cambiar los niveles de ejecucin en el tiempo de arranque


Bajo Linux, es posible cambiar el nivel de ejecucin predeterminado en el momento
de arranque. Para cambiar el nivel de ejecucin de una sesin de arranque, utilice
las instrucciones siguientes:
. Cuando la pantalla de men de GRUB aparece durante el arranque, presione
cualquier tecla para entrar al men de GRUB (dentro de los primeros tres segundos).
. Presione la tecla [a] para aadir al comando kernel.
. Aada
*
espacio
+fi*
nivel-de-ejecucion
+
al final de la lnea de opciones de arranque para iniciar en el nivel de ejecucin
deseado. Por ejemplo, la entrada siguiente iniciar un proceso de arranque en el
nivel 3.

grub append> ro root=LABEL=/ rhgb quiet 3

CIBERTEC CARRERAS PROFESIONALES


68 Sistemas Operativos Avanzados

3. Estructura del sistema de archivos

3.1. Por qu compartir una estructura comn


La estructura de un sistema de archivos de un sistema operativo es el nivel ms
bsico de organizacin.
Casi todas las formas en que un sistema operativo interacta con sus usuarios,
aplicaciones y modelos de seguridad dependen de la manera en que almacena y
organiza los archivos en los dispositivo de almacenamiento.
El proporcionar una estructura de sistema de archivos comn asegura que los
usuarios y programas pueden acceder y escribir a los archivos.
Los sistemas de archivos dividen los archivos en dos categoras lgicas:
. archivos compartibles vs. no compartibles
. archivos variables vs. estticos
Los archivos compartibles son aqullos a los que se puede acceder desde varios
hosts; mientras que los archivos no compartibles slo estn disponibles localmente.
Los archivos variables, tales como documentos, pueden cambiar en cualquier
momento; los archivos estticos, tales como binarios, no cambian sin una actuacin
por parte del administrador de sistemas. La razn para visualizar a los archivos de
esta manera es para ayudar a correlacionar la funcin del archivo con los permisos
otorgados a los directorios que los sostienen. El modo en que el sistema operativo y
sus usuarios interactan con un archivo dado determina el directorio en el cual estos
archivos estn ubicados, si ese directorio est montado como de slo lectura o slo
escritura y el nivel de acceso que cada usuario tiene a ese archivo. El nivel superior
de esta organizacin es crucial. El acceso a los directorios inferiores puede estar
restringido o se pueden manifestar problemas de seguridad si el nivel superior es
dejado sin organizar o no sigue ninguna estructura rgida.

3.2. Vista preliminar del estndar de jerarqua del sistema de


archivos (FHS)

Linux est comprometido a respetar el Estndar de Jerarqua de Sistemas de


archivos (FHS del ingls Filesystem Hierarchy Standard), un documento de
consenso que define los nombres, la ubicacin y los permisos de muchos tipos de
archivos y directorios.

El documento que define el FHS es la referencia autorizada para cualquier sistema


compatible FHS, sin embargo el estndar da pie a la extensibilidad de unas reas o
no define otras. En esta seccin se proporciona un resumen del estndar y una
descripcin de aquellas partes del sistema de archivos que no cubre el estndar.

El cumplimiento del estndar significa varias cosas, pero los dos aspectos ms
importantes son la compatibilidad con otros sistemas que siguen el estndar y la
capacidad de poder montar la particin /usr/ en modo slo lectura. Este segundo
punto es importante porque el directorio contiene ejecutables comunes y no est
pensado para ser alterado por los usuarios. Por este motivo, el directorio /usr/ se
monta como de slo lectura, y esto se puede hacer directamente desde el CD-ROM
o desde otro ordenador a travs de NFS en modo slo lectura.
Sistemas Operativos Avanzados 69

3.2.1. Organizacin de FHS


Los directorios y archivos aqu anotados, son slo un subconjunto de los
especificados por el FHS. Vase la ltima versin del FHS para una descripcin
detallada.
El estndar completo est disponible en lnea desde http://www.pathname.com/fhs/.

3.2.1.1. El directorio /boot/


El directorio /boot/ contiene archivos estticos requeridos para arrancar el sistema,
tales como el kernel de Linux. Estos archivos son esenciales para que el sistema
arranque correctamente.

3.2.1.2. El directorio /dev/


El directorio /dev/ contiene entradas del sistema de archivos que representan
dispositivos del sistema. Estos archivos son esenciales para el correcto
funcionamiento del sistema.

3.2.1.3. El directorio /etc/


El directorio /etc/ est reservado para los archivos de configuracin que son locales
a su ordenador. No deben colocarse binarios en /etc/. Los binarios que antiguamente

CIBERTEC CARRERAS PROFESIONALES


70 Sistemas Operativos Avanzados

se colocaban en /etc/ deberan de colocarse en /sbin/ o en /bin/. Los directorios X11/


y skel/ son subdirectorios del directorio /etc/:
/etc
|- X11/
|- skel/

El directorio /etc/X11/ es para los archivos de configuracin de X Window System,


como
xorg.conf. El directorio /etc/skel/ es para archivos "esqueleto" (del ingls "skeleton")
de
usuarios, que son archivos utilizados para rellenar el directorio principal de un
usuario la primera vez que este es creado.

3.2.1.4. El directorio /lib/


El directorio /lib/ debera contener slo las bibliotecas (libraries) necesarias para
ejecutar los binarios en /bin/ y en /sbin/. Estas imgenes de bibliotecas compartidas
son particularmente importantes para arrancar el sistema y ejecutar comandos en el
sistema de archivos raz.

3.2.1.5. El directorio /media/


El directorio /media/ contiene los subdirectorios utilizados como puntos de montaje
para la media removible, tales como CD-ROMs y discos Zip.

3.2.1.6. El directorio /mnt/


El directorio /mnt/ est reservado para sistemas de archivos montados
temporalmente, tales como montajes de NFS. Para toda la media removible utilice el
directorio /media/.

3.2.1.7. El directorio /opt/


El directorio /opt/ proporciona un rea para almacenar habitualmente paquetes de
software de una aplicacin esttica y amplia. Un paquete que coloca archivos en el
directorio /opt/ crea un directorio con el mismo nombre del paquete. Este directorio a
su vez, guarda archivos que de otra forma estaran esparcidos por el sistema
de archivos, dndole as al administrador del sistema una forma fcil de determinar
el papel de cada archivo dentro de un paquete particular.
Por ejemplo, si sample fuese el nombre de un paquete de software particular
localizado en el directorio /opt/, entonces todos sus archivos podran ser emplazados
en directorios dentro de /opt/sample/, tales como /opt/sample/bin/ para binarios y
/opt/sample/man/ para pginas de manual.
Los paquetes grandes que abarcan diferentes subpaquetes, cada uno de los cuales
desempean una tarea especfica, tambin se ubican dentro de /opt/, aportando a
este gran paquete un modo estndar de organizarse. De este modo, el paquete
sample puede tener diferentes herramientas que cada una ir en sus propios
subdirectorios, tales como /opt/sample/tool1/ y /opt/sample/tool2/, cada uno de los
cuales puede tener su propio bin/, man/ y otros directorios similares.

3.2.1.8. El directorio /proc/


El directorio /proc/ contiene "archivos" especiales que o bien extraen informacin del
kernel o bien la envan a ste. Debido a la gran variedad de datos que contiene el
Sistemas Operativos Avanzados 71

directorio /proc/ y a la gran cantidad de maneras que este directorio utiliza para
comunicar con el kernel.

3.2.1.9. El directorio /sbin/


El directorio /sbin/ almacena los ejecutables usados por el usuario root. Los
ejecutables en /sbin/ slo se usan para arrancar y hacer operaciones de
recuperacin del sistema. De este directorio, la FHSdice:
/sbin contiene los archivos binarios esenciales para arrancar, restaurar, recuperar
y/o reparar el sistema, adems de los binarios en /bin. Los programas ejecutados
despus de /usr/, son montados (si no surge ningn problema) y ubicados en
/usr/sbin. Los programas de administracin del sistema instalados localmente se
deberan ubicar en /usr/local/sbin.

Los siguientes programas deberan encontrarse, al menos, en /sbin/:


arp, clock,halt,
init, fsck.*, grub,
ifconfig, mingetty, mkfs.*,
mkswap, reboot, route,
shutdown, swapoff, swapon

3.2.1.10. El directorio /srv/


El directorio /srv/ contiene datos especficos al sitio proporcionada por su sistema
ejecutando Linux. Este directorio le da a los usuarios la ubicacin de los archivos de
datos para un servicio en particular, tal como FTP, WWW o CVS. Los datos que slo
pertenecen a un usuario especfico deberan de ir en el directorio /home/.

3.2.1.11. El directorio /sys/


El directorio /sys/ utiliza el nuevo sistema de archivos virtual sysfs especfico al
kernel 2.6. Ahora con el soporte ms extendido para los dispositivos de conexin en
caliente (hot plug) en el kernel 2.6, el directorio /sys/ contiene informacin similar a la
que se encuentra en /proc/, pero muestra una vista jerrquica de la informacin de
dispositivos especfica con relacin a los dispositivos de conexin en caliente.
Para ver ciertos dispositivos USB y Firewire montados, consulte la pgina man de
/sbin/hotplug
and /sbin/udev.

3.2.1.12. El directorio /usr/


El directorio /usr/ es para archivos que puedan ser compartidos a travs de muchas
mquinas. El directorio /usr habitualmente tiene su propia particin y se monta en
slo lectura. Como mnimo, los siguientes directorios deberan ser subdirectorios de
/usr/:
/usr
|- bin/
|- etc/
|- games/
|- include/
|- kerberos/
|- lib/
|- libexec/

CIBERTEC CARRERAS PROFESIONALES


72 Sistemas Operativos Avanzados

|- local/
|- sbin/
|- share/
|- src/
|- tmp -> ../var/tmp/
|- X11R6/

Bajo el directorio /usr/, el directorio bin/ contiene ejecutables, el directorio etc/


contiene archivos de configuracin de sistema, games es para juegos, include/
contiene los archivos de cabecera C,kerberos/ contiene binarios y otros archivos
relacionados con Kerberos y lib/ contiene archivos objeto y bibliotecas que no estn
diseadas para ser directamente utilizadas por usuarios o scripts de shell. El
directorio libexec/ contiene pequeos programas de ayuda llamados por otros
programas, sbin/ es para los binarios de administracin del sistema (aqullos que no
pertenecen al directorio /sbin/), share/ contiene archivos que no son de una
arquitectura especfica, src/ es para cdigo
fuente y X11R6/ es para el sistema X Window (XFree86 en Linux).

3.2.1.13. El directorio /usr/local/


El FHS dice: La jerarqua /usr/local es para el uso del administrador del sistema al
instalar software localmente. Necesita estar protegido contra sobreescrituras cuando
se actualiza el software del sistema. Puede ser utilizado por programas y datos
compartidos entre grupos de hosts, pero que no se encuentran en /usr.
El directorio /usr/local/ es similar en estructura al directorio /usr/. Tiene los siguientes
subdirectorios, que son similares en propsito a los del directorio /usr/:
/usr/local
|- bin/
|- etc/
|- games/
|- include/
|- lib/
|- libexec/
|- sbin/
|- share/
|- src/
En Linux, el propsito del directorio /usr/local/ es ligeramente diferente de lo
especificado por FHS. El FHS establece que en /usr/local/ debera memorizarse el
software que permanece seguro de las actualizaciones de software de sistemas. Ya
que las actualizaciones de sistemas se pueden hacer de forma segura con el Red
Hat Package Manager (RPM), no es necesario proteger archivos ponindolos en
/usr/local/. En vez de esto, el directorio /usr/local/ es usado para software que es
local a la mquina.
Por ejemplo, si usted ha montado /usr/ slo lectura de NFS desde un host remoto,
an es posible instalar un paquete o programa bajo el directorio /usr/local/.

3.2.1.14. El directorio /var/


Ya que el FHS requiere que Linux sea capaz de montar /usr/ en slo lectura,
cualquier programa que escriba archivos log o que necesite los directorios spool/ o
lock/ debera escribirlos en el directorio /var/. El FHS especifica que /var/ es para:
Sistemas Operativos Avanzados 73

Archivos de datos variables. Esto incluye archivos y directorios spool, datos de


administracin, de registro y archivos temporales.

Abajo se muestran algunos de los directorios encontrados dentro del directorio /var/:
/var
|- account/
|- arpwatch/
|- cache/
|- crash/
|- db/
|- empty/
|- ftp/
|- gdm/
|- kerberos/
|- lib/
|- local/
|- lock/
|- log/
|- mail -> spool/mail/
|- mailman/
|- named/
|- nis/
|- opt/
|- preserve/
|- run/
+- spool/
|- at/
|- clientmqueue/
|- cron/
|- cups/
|- exim/
|- lpd/
|- mail/
|- mailman/
|- mqueue/
|- news/
|- postfix/
|- repackage/
|- rwho/
|- samba/
|- squid/
|- squirrelmail/
|- up2date/
|- uucp
|- uucppublic/
|- vbox/
|- tmp/
|- tux/
|- www/
|- yp/

CIBERTEC CARRERAS PROFESIONALES


74 Sistemas Operativos Avanzados

Los archivos de registro del sistema tales como messages/ y lastlog/ van en el
directorio /var/log/. El directorio /var/lib/rpm/ tambin contiene las bases de datos
RPM. Los archivos lock van en /var/lock/, habitualmente en directorios para el
programa usando el archivo. El directorio /var/spool/ tiene subdirectorios para
programas en los que se almacenan archivos de datos.
Sistemas Operativos Avanzados 75

Autoevaluacin
1. Explique que es el grub y cual es su funcin

2. Indique cuales son los runlevels y que se realiza con cada uno de ellos

3. Que es FHS, y cual es su ventaja?

CIBERTEC CARRERAS PROFESIONALES


76 Sistemas Operativos Avanzados

5
SEMANA

Filesystems en Linux

TEMA
Describir el manjeo de los particiones en linux

OBJETIVOS ESPECFICOS
Comprender como se interpretar, crear, modificar y eliminar particiones en Linux

CONTENIDOS
Particiones conceptos basicos

Herramientas de administracion

Creacion de particiones en Linux


Sistemas Operativos Avanzados 77

1. Particiones.

1.1. Conceptos bsicos:


En linux las particiones donde residen los archivos van sobre los sistemas ext2 o
ext3 generalmente, aunque tambin soportan otro tipo de sistema de ficheros.

Las particiones swap son equivalente al pagefile.sys de M$ windows es decir son las
encargadas de gestionar la memoria "no fisica" del sistema (memoria virtual), en
principio el tamao de la particion swap no deberan ser menos de 128MB, en
general se aplica una regla que si bien no esta establecida como un axioma, si es
aceptada por casi todos los usuarios de sistema linux-unix.

El tamao de la memoria SWAP es el doble que la fisica disponible

EJM: 512 mgb de ram=1024mgb de swap.

En una PC standard las particiones se reparten de la siguiente manera:

-Se le asigna una etiqueta comn a los discos IDE: hd


-Se le asigna una etiqueta comn a los disco SCSI : sd
-Se le asigna una letra a cada disco, usando un orden alfanumrico: "a" primer
disco,"b" segundo disco, "c" tercer disco y "d" la cuarto disco.
-Se le asigna un numero a cada particin: 1, 2, 3...n
Por lo que tendramos: hda3 (Primer disco IDE, particin 3)hdb2 (Segundo disco
IDE, particin 2)sdc1 (Tercer disco SCSI, particin 1)
-En linux solo se pueden montar 4 particiones primarias.
3 particiones primarias y 1 extendida que puede estar vaca o alojar varias
particiones o unidades lgicas.

En Linux se denotan igual que si fueran 4 primarias, la extendida no tiene por que
ser la ultima, Por ejemplo: tenemos la particin extendida hda2, las que estn
"dentro", las lgicas, pueden ser hda4, hda5, hda5.

Los sistemas operativos linux soportan mltiples tipos de particin, para el


almacenamiento de datos, que no para su ejecucin, dependiendo de que mdulos
estn cargados en el kernel (ver con lsmod), generalmente particiones
fat16,fat32,ntfs... son soportadas en las ultimas versiones de los kernels 2.4.x.

1.2. Herramientas para la administracin.

En casi todos los sistemas Linux o basados en Unix (freebsd, solaris, es distinto)
existen una serie de utilidades para el manejo de particiones.
Para mostrar informacin en pantalla existen multitud de aplicacin en modo X que
lo hacen, pero una manera casi absoluta de saberlo es, o bien en modo consola, o
bien un front-end que muestre la informacin del archivo /proc/partitions.
Para hacerlo en modo consola bastara con hacer un cat al archivo (cat
/proc/partitions)

CIBERTEC CARRERAS PROFESIONALES


78 Sistemas Operativos Avanzados

Como se puede ver, se muestra gran informacin como: uso, principio y fin de los
bloques, capacidad, sectores, nombre asignado, estado, etc.
El comando df nos muestra informacin til sobre el estado de las unidades
montadas.

La particin donde esta alojado el s.o se muestra como raz (/), las dems pueden ir
montadas en directorios, algunas deben estar en su directorio especifico si tienen

-/boot donde ira montada la particin de arranque (no es necesario para el


funcionamiento puesto que los archivos se pueden montar en el mismo directorio sin
necesidad de ser una particin distinta a la raz).

-/home aqu se pueden montar los archivos que se usen en un servidor o espacio
para usuarios.

-/directorio.cualquiera en este se pueden montar las particiones que se deseen,


pejm: montar la particin de M$ win 98, otro s.o de linux, y la particin donde se
encuentra M$ win 2000, se podran distribuir a su antojo, /win98, /debian/win2000 o
dentro de cualquier directorio, por defecto la mayora de distribuciones montan las
particiones no raz, no especificas en el directorio /mnt.

Partiendo de esto, para usar una particin hay que montarla,para montar una
particin se usa el comando mount o un front-end para ello, el comando tiene una
serie de opciones que se describen muy bien en el man del comando.
Sistemas Operativos Avanzados 79

La sntesis bsica del comando es la siguiente:

mount -[parametros de montaje] [tipo de particin] [dev/archivo donde se ubique la


particin] [directorio donde se desee montarla]

El comando para desmontar la particin es umount con la misma sntesis

Fichero /etc/mtab

Contiene una lista de los filesystem que estn montados en el sistema

Ejemplo de fichero /etc/mtab

CIBERTEC CARRERAS PROFESIONALES


80 Sistemas Operativos Avanzados

Fichero /etc/fstab

Al iniciar el sistema se montan los filesystems listados en /etc/fstab

cada lnea del fichero tiene las siguientes columnas


(file system) (mount point) (tipo) (opciones) (dump) (pass)
Ejemplo:
/dev/hda9 /home ext3 defaults 0 2
Alguna de las opciones son:
o rw monta tipo lectura/escritura
o ro slo lectura
o auto/noauto monta/no monta con mount -a (monta/no monta al inicio)
o exec/noexec Permite/no permite la ejecucin de ficheros binarios en la
particin
o suid/nosuid permite/no permite que los bits setuid y setgid tengan
efecto
o dev/nodev interpreta/no interpreta dispositivos de bloques o caracteres
en el filesystem
o async toda la I/O se realiza de forma asncrona
o user puede montarlo un usuario (y slo el que lo monta puede
desmontarlo); implica las opciones noexec, nosuid y nodev, a menos
que se fuercen (p.e. user,exec,suid,dev)
o users puede montarlo/desmontarlo un usuario y el que desmonta no
tiene que ser el que lo mont; implica las mismas opciones que user
o defaults selecciona opciones por defecto (rw, suid, dev, exec, auto,
nouser y async)
Filesystems especficos pueden tener opciones especficas:
o ver el manual de mount para ms detalles
Si un directorio aparece listado en el fstab puede montarse sin especificar el
dispositivo:

$ mount /home

Campos dump y pass

dump
lo usa el comando dump para determinar de que filesystems hacer copias de
seguridad
Sistemas Operativos Avanzados 81

o valor 1 o 0 segn si la particin va a tener un backup controlado por


dump o no (normalmente no se usa)

pass
lo usa el comando fsck para determinar el orden en que se chequean los
filesystems al iniciar el sistema

o si 0, el filesystem no se chequea
o si > 0, los filesystems se chequean en el orden indicado por los
nmeros
si varios tienen el mismo nmero, se chequean en paralelo (si
es posible)
normalmente / tendr 1 y el resto 2

Si se desea agregar una particin para se monte automticamente cuando se incie


el sistema operativo, se tendra que agregar dentro del fstab

Ntese que se ha aadido una particin ext3 que se encuentra en el primer disco
IDE que corresponde a la primera particin lgica de este, la cual se montara en el
diracorui /mnt/Debian con sistema de archivos ext3, y opciones de montaje por
default.

Viendo el ejemplo, nos damos cuenta de que el fstab no solo sirve para las
particiones, si no que sirve para multitud de hardware, el disco de 3/14 , las unidades
de cd-rom,las unidades tipo cmaras digitales, video dv, unidades externas por USB,
unidades por red tipo NFS, samba, etc; todos ellos tienen un archivo nodo en dev, se
montan en algn directorio, y se les asigna un valor.

En linux existe un comando fdisk, que nos permite la modificacin, creacin y otros
parametros para el uso con particiones y discos ( ver man del comando) este
comando tiene la funcionalidad del mismo de M$ DOS( puesto que es una adopcin
de los sistemas Unix para este s.o) pero el original, como suele decirse, es mejor,
las posibilidades de fdisk en linux no son comparables de ninguna manera a los
sistemas basados en ms-dos.

CIBERTEC CARRERAS PROFESIONALES


82 Sistemas Operativos Avanzados

Tambin existen herramientas en modo grafico, (qtparted, gparted, diskdruid,


diskdrake) para poder trabajar con discos.
Sistemas Operativos Avanzados 83

Hoy en da, exceptuando algunas distribuciones muy especificas, las dems


permiten una instalacin teniendo en cuenta que el usuario novel en linux
probablemente desconozca detalles sobre estos temas, es decir proporcionan
herramientas graficas y asistentes comprensibles para realizar un particionado de
manera automtica.

Ejemplos de montaje de ficheros:

En este caso montamos la tercera particin del primer disco en el directorio


/home, el sistema de ficheros es ext3.

CIBERTEC CARRERAS PROFESIONALES


84 Sistemas Operativos Avanzados

En este otro montamos la segunda particin del segundo disco en el directorio


/mnt/Windows, es el sistema de ficheros es vfat, tambin podra ser NTFS.

Aqu estamos montando un sistemas de ficheros nfs que nos provee la


maquina 192.168.10.2 (concretamente nos comparte /home) en nuestro
directorio /home.

En este caso hemos montado una imagen iso en un directorio /imgenes

1. Creacion de particiones en Linux

si aadimos un nuevo disco al sistema ya instalado deberemos crear las


particiones y los sistemas de ficheros
esta operacin implica los siguientes pasos:
1. creacin de particiones (comando fdisk)
2. creacin de los sistemas de ficheros (comando mkfs)
3. montado de los sistemas de ficheros (comando mount)
Sistemas Operativos Avanzados 85

2.1. El comando para crear particiones es fdisk

Formato:

fdisk [opciones] dispositivo

donde dispositivo es el dispositivo del disco (/dev/hdx en IDE, /dev/sdx para


SCSI o SATA)

Debemos tener permiso de administrador para usarlo


Opciones:
o -l muestra la tabla de particiones del dispositivo

fdisk se usa mediante un men:

CIBERTEC CARRERAS PROFESIONALES


86 Sistemas Operativos Avanzados

Ejemplo

Cree una particin primaria de 5 GB

usamos n (new):

Command (m for help): n


Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-20805, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-20805, default 20805): +5G
Command (m for help): p
Disk /dev/hdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 9689 4883224+ 83 Linux

Por defecto, crea la particin tipo Linux (Id 83)

con l (list) vemos el tipo de particiones soportadas


para cambiar el tipo de particin se usa t (type)

Command (m for help): t 1


Selected partition 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/hdb: 10.7 GB, 10737418240 bytes


16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System


/dev/hdb1 1 9689 4883224+ 82 Linux swap / Solaris

Para que se guarden los cambios debemos usar w (write)


Sistemas Operativos Avanzados 87

2.2. Otras herramientas


Existen otras herramientas para modificar las particiones:

cfdisk
interfaz para el fdisk (tambin escribe la tabla de particiones)
parted
programa de GNU que permite crear, destruir, cambiar el tamao, chequear y
copiar particiones
qtparted
clnico del Partition Magic para Linux (basado en libparted)
Partition Magic
programa comercial de la compaa Symantec que puede manejar diversos
filesystems

2. Creacin de los sistemas de ficheros


Sobre cada particin debemos crear sistemas de ficheros con el comando mkfs

Formato:

mkfs [-V] [-t filesystem] dispositivo [n_bloques]

Opciones:
o -V verbose
o -t filesystem tipo de sistema de ficheros a crear (ext2, ext3, xfs, etc.)
si no se especifica se crea el por defecto del sistema (en Linux
ext2)
o n_bloques nmero de bloques usados para el sistema de ficheros (si
no se pone, se usa toda la particin)

mkfs es un front-end a distintos comandos, que permiten crear particiones de los


tipos especficos:

mkfs.ext2 o mke2fs crea sistemas ext2


mkfs.ext3 crea sistemas ext3, equivalente a mkfs.ext2 -j
mkfs.jfs, mkfs.reiserfs, mkfs.xfs crean sistemas JFS, ReiserFS y XFS,
respectivamente
mkfs.msdos, mkfs.vfat crea sistemas MS-DOS
mkswap crea un sistema de ficheros de tipo Linux swap

Cada uno de estos comandos pueden tener distintas opciones

Comandos relacionados

dumpe2fs muestra informacin de sistemas de ficheros ext2/ext3


o informacin sobre inodos, bloques y grupos
tune2fs permite ajustar parmetros en sistemas ext2/ext3
o p.e. define el intervalo entre chequeos automticos, convierte ext2 en
ext3, etc.
e2label cambia la etiqueta de un sistema ext2/ext3

CIBERTEC CARRERAS PROFESIONALES


88 Sistemas Operativos Avanzados

existen comandos similares para otros tipos de sistemas de ficheros, p.e.


reiserfstune, jfs_tune, etc.

3.1. Particin de intercambio

Si lo que creamos es una particin de intercambio, la debemos inicializar con


mkswap

# fdisk -l /dev/hd
Disk /dev/hdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 9689 4883224+ 83 Linux
/dev/hdb2 9690 20805 5602464 82 Linux swap / Solaris

# mkswap /dev/hdb2
Setting up swapspace version 1, size = 5736919 kB
no label, UUID=a6c2849b-c33e-478e-8a8d-fecfe3f18f6d

Una vez creada debemos activarla con swapon

# swapon /dev/hdb2
# swapon -s
Filename Type Size Used Priority
/dev/hda7 partition 377488 0 -1
/dev/hdb2 partition 5602456 0 -2

Finalmente, para que se active en el arranque, debe incluirse la entrada


correspondiente en el fichero /etc/fstab

/dev/hda2 none swap sw 0 0

3. Montado de los sistemas de ficheros

Para poder acceder a los sistemas de ficheros debemos montarlos

los comandos para montar y desmontar son: mount y umount

Comando mount

Permite asociar (montar) directorios a sistemas de ficheros


Sistemas Operativos Avanzados 89

Ejemplo

$ mount -t ext3 /dev/hdb1 /home2

Formato

mount [opciones] [-t tipo] [disp.] [dir.]

Algunas opciones:
o tipo tipo de sistema de ficheros (ext2, ext3, reiserfs, vfat, etc.); si se
pone auto intenta determinar de forma automgica
o -a monta los filesystems listados en /etc/fstab
o -r/-w monta los sistemas de slo lectura/escritura
o -f simulacin; usado con -v (verbose) para chequear
o -n monta sin aadir la entrada a /etc/mtab; se usa cuando /etc es slo
lectura
o -o opciones opciones de montado; formato igual al usado en el fichero
fstab

Comando umount

Desmonta los sistemas de ficheros

Formato

umount [opciones] directorio

Ejemplo:

$ umount /home2

Algunas opciones
o -a desmonta los filesystems listados en /etc/mtab
o -r si falla, intenta remontar slo lectura
o -f fuerza el desmontado
Si hay algn proceso bloqueando el filesystem, este no se puede desmontar:
o usar el comando fuser -c directorio para ver el PID del proceso

Autofs

Sistema que permite montar los filesystems ``bajo demanda''

cuando se accede al directorio, este se monta


se desmonta automticamente despus de un tiempo de inactividad (por
defecto, 5 minutos)
suele usarse para montar sistemas remotos con NFS
Ficheros de configuracin:
o /etc/auto.master define los puntos de montado
por cada uno de los puntos definidos, se inicia un proceso
automount usando los parmetros indicados

CIBERTEC CARRERAS PROFESIONALES


90 Sistemas Operativos Avanzados

Ejemplo de auto.master:

/home /etc/auto.home
/misc /etc/auto.misc --timeout 60

o Los ficheros le indican al automount los filesystems a montar


o Ejemplo de auto.misc

cdrom -fstype=iso9660,ro :/dev/cdrom


floppy -fstype=auto :/dev/fd0
windoz -fstype=vfat :/dev/hda1

o esto monta el cdrom, el floppy y la particin /dev/hda1 en los directorios


/misc/cdrom, /misc/floppy y /misc/windoz respectivamente

Supermount

Tipo de pseudofilesystem que para manejar dispositivos removibles (como cdroms o


diskettes)

el filesystem se monta/desmonta automticamente cuando se introduce/saca


el CD o disquete
la lnea correspondiente en el fstab debe ser del tipo:
none /mnt/cdrom supermount dev=/dev/cdrom,fs=auto 0 0
se incluye ''de serie'' en algunas distribuciones (p.e. Mandriva)
o en otras es necesario bajarse un parche para el kernel

pmount

Comando que permite al usuario montar dispositivos hotpluggable (como cdroms,


pendrives, etc.)

el dispositivo se monta debajo del directorio /media


no necesita estar listado en /etc/fstab
puede usar HAL (Hardware Abstraction Layer) pra obtener informacin de los
dispositivos

gnome-volume-manager

En el entorno GNOME monta automticamente dispositivos removibles cuando se


conectan o se inserta un CD

usa udev y HAL


el usuario puede configurar la accin realizada al conectarse el dispositivo
(p.e. empezar a tocar un CD de musica cuando se inserta)
Sistemas Operativos Avanzados 91

4. Chequeo del sistema de ficheros


Peridicamente es necesario chequear los sistemas de ficheros

el comando bsico para chequeo y reparacin es fsck


Al igual que mkfs, fsck es un front-end a comandos especficos para cada
filesystem:

e2fsck, fsck.ext2 o fsck.ext3 chequean sistemas ext2/ext3


fsck.jfs, fsck.reiserfs, fsck.xfs para JFS, ReiserFS y XFS
fsck.msdos, fsck.vfat para sistemas MS-DOS

Alguno de los errores que pueden aparecer se deben a:

Varios ficheros que usan el mismo bloque


Bloques marcados libres y ocupados simultneamente
Nmero de enlaces errneo
Nodos-i conteniendo informacin pero que no estn en la entrada del
directorio (la informacin se recupera en el directorio lost+found con el
nmero de nodo-i)
Entradas del directorio que apuntan a nodos-i ilegales o vacos
etc.

Algunas de las opciones de fsck son:

-t filesystem tipo de filesystem a chequear


-A chequea los filesystems listados en /etc/fstab
-N no ejecuta; simplemente indica lo que hara
-R usado con -A no chequea el filesystem raz
Otras opciones dependen del filesystem particular

5. Otras utilidades

du: muestra el espacio de disco usado por los ficheros y subdirectorios de un


directorio
o Formato:

du [opciones] [directorio]

o Algunas opciones:
-a muestra valores para ficheros y directorios (por defecto, solo
muestra directorios)
-b, -k tamaos en bytes/KBytes
-h salida ms legible
-s muestra slo la ocupacin total
o Ejemplo:
o $ du -sh /home /usr
o 1,2G /home
o 2,3G /usr

CIBERTEC CARRERAS PROFESIONALES


92 Sistemas Operativos Avanzados

df: muestra el espacio de disco usado y disponible de los sistemas de ficheros


montados
o Formato:

df [opciones]

o Algunas opciones:
-a muestra todos los filesystems (incluso los de tamao 0)
-h salida ms legible
-i da informacin sobre los inodos
-l slo muestra filesystems locales
-T muestra el tipo de sistema de ficheros
o Ejemplo:
o $ df -h
o Filesystem Tamao Usado Disp Uso% Montado en
o /dev/hda1 67M 50M 13M 80% /
o tmpfs 63M 0 63M 0% /dev/shm
o /dev/hda9 272M 8,1M 250M 4% /home
o /dev/hda8 23M 1,1M 20M 5% /tmp
o /dev/hda5 464M 90M 350M 21% /usr
o /dev/hda6 74M 44M 27M 63% /var
Sistemas Operativos Avanzados 93

6. PERMISOS EN LINUX

El sistema de permisos en Linux se basa en un esquema de usuarios/grupos que lo


convierte en la base principal de la seguridad en Linux, a estos usuarios y grupos se
les asignan distintos derechos sobre los archivos y directorios.

Esta es una de las caractersticas que ayudan a que Linux sea casi inmune a los
Virus de computadora, los virus deben ser capaces de escribir sobre un archivo para
poder infectarlo y ejecutarse de alguna manera para poder infectar mas archivos,
con el sistema de permisos de Linux los virus no pueden copiarse a cualquier
archivo, si el usuario carece de permisos el virus no podr infectar ms archivos y
por lo tanto no podr reproducirse.

Todos los archivos y directorios en Linux tienen permisos que verifican quien puede
hacer o no alguna accin con l.

Cuales son los permisos

Los permisos propiamente dichos son tres:

r: read (lectura): Cuando el permiso de lectura est activo sobre un directorio


significa que se podr listar los recursos almacenados en l, si est asignado a
un archivo se podr leer su contenido.
w: write (escritura): Cuando el permiso de escritura est activo sobre un
directorio significa que se podr crear y borrar archivos en su interior, si esta
activado para un archivo significa que se podr modificar su contenido.
x: execute (ejecucin): Si el permiso de ejecucin est activo sobre un
directorio significa que el usuario podr realizar otras funciones dentro de l
mediante los otros permisos de lectura y escritura, y si est activo sobre un
archivo se podr ejecutarlo desde la lnea de comandos.

Y donde estn los permisos?

Para poder ver los permisos de los archivos y directorios es necesario ejecutar el
siguiente comando:

$ ls l

Este comando nos dar una salida similar a la siguiente:

CIBERTEC CARRERAS PROFESIONALES


94 Sistemas Operativos Avanzados

Ahora describamos la salida que hemos obtenido:

Con la siguiente lnea interpretamos la informacin as:

- rw- r-- r-- 1 raul raul 594 2005-09-13 13:13 foto1.png



12 3 4 56 7 8 9 10 11

1 : Tipo de archivo = es un archivo regular


2 : Permisos = los permisos para el propietario son de lectura y escritura
3 : Permisos = el grupo tiene permiso de slo lectura
4 : Permisos = los otros usuarios tienen el permiso de slo lectura
5 : Enlace Fsico = tiene un enlace fsico
6 : Propietario = el usuario raul es el propietario de este archivo
7 : Grupo = este archivo pertenece al grupo raul
8 : Tamao = su tamao es de 246417 bytes
9 : Fecha = fue creado el 03 de marzo de 2005
10 : Hora = a 13:13 horas
11 : Nombre = el archivo se llama foto1.png
Sistemas Operativos Avanzados 95

Como habrs apreciado los permisos estn asignados en grupos de 3 (rwx) y


corresponde al: propietario (owner: dueo del archivo o directorio), grupo (group:
grupo del archivo o directorio) y otros (others: otro usuario diferente del propietario).

En la siguiente imagen resaltamos nuevamente la ubicacin de los permisos en caso


no lo hayamos notado:

7. COMANDOS RELACIONADOS

Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el


grupo de un archivo y/o directorio respectivamente:

Comando chmod : se utiliza para cambiar los permisos del archivo o


directorio
$ chmod [permisos] [archivo/directorio] [opciones]

Comando chown : se utiliza para cambiar el propietario del archivo o


directorio
# chown [nuevo usuario propietario] [archivo/directorio] [opciones]

Comando chgrp : utilizado para cambiar el grupo del archivo o directorio


# chgrp [nuevo grupo] [archivo/directorio] [opciones]

COMO SE CAMBIAN LOS PERMISOS?

Para cambiar los permisos se puede hacer de 2 maneras:

1. Utilizando taquigrafa basada en caracteres, o


2. Utilizando nmeros.

CIBERTEC CARRERAS PROFESIONALES


96 Sistemas Operativos Avanzados

8.1. CAMBIO DE PERMISOS UTILIZANDO TAQUIGRAFA DE


CARACTERES

Para poder utilizar la taquigrafa basada en caracteres tomemos en cuenta la


siguiente lista con su respectiva correspondencia:

Smbolo Descripcin
u Es el usuario propietario del archivo o directorio
g Es el grupo al que pertenece el archivo o directorio
Identidades
o Otros usuarios, el resto del mundo, ni el propietario ni su grupo
a Todo el mundo propietario, grupo y otros
r Acceso de lectura
Permisos w Acceso de escritura
x Acceso de ejecucin
+ Aade los permisos
Acciones - Elimina los permisos
= el nico permiso

Vamos a practicar con el comando chmod, para ello lo primero que haremos ser
crear el archivo foto1.png para ver los cambios de permisos, as que les recomiendo
seguir la secuencia:

Resultado
Ejemplo Descripcin

$ touch foto1.png creamos el archivo foto1.png foto1.png


$ chmod a-rwx
quitamos todos los permisos al archivo foto1.png ---------
foto1.png
$ chmod u+rwx
aadimos todos los permisos para el propietario rwx------
foto1.png
$ chmod g+x
aadimos el permiso de ejecucin para el grupo rwxx---
foto1.png
$ chmod o+r aadimos el permiso de lectura para los otros
rwxxr--
foto1.png usuarios
$ chmod u-rw eliminamos los permisos de lectura y escritura
--xxr--
foto1.png para el propietario
$ chmod a=r establecemos como unico permiso de lectura para
rrr--
foto1.png los 3 grupos
Sistemas Operativos Avanzados 97

$ chmod a=rx establecemos los permisos de lectura y ejecucin


r-xr-xr-x
foto1.png para los 3 grupos
$ chmod a=-
quitamos todos los permisos ----------
foto1.png
$ chmod u+rx,o+x aadimos los permisos de lectura y ejecucin al
r-x-----x
foto1.png propietario y ejecucin a otros
$ chmod g+rx,o-x aadimos permiso de lectura y ejecucin al grupo
r-xr-x---
foto1.png y eliminamos permiso de ejecucin a otros
aadimos permiso de escritura y ejecucin al
$ chmod ug+wx,o-x
propietario y grupo, y eliminamos permiso de rwxrwx---
foto1.png
ejecucin a otros
$ chmod a=rw permite a cualquiera modificar el contenido e
rw-rw-rw-
foto1.png incluso eliminar el archivo

Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan


efecto sobre todos sus subdirectorios y archivos slo deberemos aadir la opcin
R. Ejemplo:

$ chmod a=rw DIRECTORIO R

8.2. CAMBIO DE PERMISOS UTILIZANDO NMEROS

Cada permiso tienen asignado un valor, incluso cuando el permiso no est activo.
Para poder utilizar los nmeros tendremos que tener en cuenta la siguiente tabla con
sus respectivos valores:

r = 4 (lectura)
w = 2 (escritura)
x = 1 (ejecucion)
- = 0 (sin permisos)

Cuando asignamos los permisos utilizando nmeros debemos tener en cuenta que
primero se sumarn los valores y dicho resultado ser el que se coloque, aqu una
tabla que muestra dichos valores:

Valor Permisos Descripcin


0 --- El valor cero significa que no se han asignado permisos
1 --x slo se ha asignado el de ejecucin
2 -w- slo permiso de escritura
3 -wx permisos de escritura y ejecucin
4 r-- slo permiso de lectura
5 r-x permisos de lectura y ejecucin
6 rw- permisos de lectura y escritura
7 rwx permisos: lectura, escritura y ejecucin

CIBERTEC CARRERAS PROFESIONALES


98 Sistemas Operativos Avanzados

Los permisos por nmeros se asignan en grupos de 3, es decir, para el propietario-


grupo-otros, no es factible asignar solo para uno o dos de ellos.

Ejemplos:

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.
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. Tampoco
es buena eleccin!

Utilizaremos el mismo ejercicio anterior para poder practicar con los permisos
utilizando nmeros, el nico cambio que haremos ser utilizar otro archivo llamado
foto2.png:

Ejemplo Descripcin Resultado


$ touch foto2.png creamos el archivo foto2.png foto2.png
$ chmod 000
quitamos todos los permisos al archivo foto2.png ----------
foto2.png
$ chmod 700
aadimos todos los permisos para el propietario -rwx------
foto2.png
$ chmod 710
aadimos el permiso de ejecucin para el grupo -rwxx---
foto2.png
$ chmod 714 aadimos el permiso de lectura para los otros
-rwxxr--
foto2.png usuarios
$ chmod 114 eliminamos los permisos de lectura y escritura
---xxr--
foto2.png para el propietario
$ chmod 444 establecemos como unico permiso de lectura para
-rrr--
foto2.png los 3 grupos
$ chmod 555 establecemos los permisos de lectura y ejecucin
-r-xr-xr-x
foto2.png para los 3 grupos
$ chmod 000
quitamos todos los permisos -----------
foto2.png
$ chmod 501 aadimos los permisos de lectura y ejecucin al
-r-x-----x
foto2.png propietario y ejecucin a otros
Sistemas Operativos Avanzados 99

$ chmod 550 aadimos permiso de lectura y ejecucin al grupo


-r-xr-x---
foto2.png y eliminamos permiso de ejecucin a otros
aadimos permiso de escritura y ejecucin al
$ chmod 770
propietario y grupo, y eliminamos permiso de -rwxrwx---
foto2.png
ejecucin a otros
$ chmod 666 permite a cualquiera modificar el contenido e
-rw-rw-rw-
foto2.png incluso eliminar el archivo

CAMBIANDO PROPIETARIOS Y GRUPOS


Otra de los puntos a la hora de establecer permisos es la necesidad de poder
cambiar el propietario y grupo del archivo o directorio, para hacer esta operacin
debe estar como root y los usuarios y grupos que utilizar deben haber sido creados
previamente.

Cambiando el propietario
Utilizamos el comando chown explicado lneas arriba:

# chown clases foto1.png # estamos cambiando el propietario del archivo, ahora


el usuario clases ser el propietario del archivo foto1.png

# chown raul foto2.png # el usuario raul ser el propietario del archivo foto2.png

Si vamos a cambiar el propietario de un directorio y con todos sus subdirectorios y


archivos en forma recursiva utilizaremos la opcin R:

# chown clases datos/ R # el usuario clases sera el nuevo propietario de todos


los archivos y subdirectorios que estn dentro del directorio datos/

Cambiando el grupo
Utilizamos el comando chgrp explicado lneas arriba:

# chgrp clases foto1.png # estamos cambiando el propietario del archivo, ahora el


archivo foto1.png ser del grupo clases

# chgrp raul foto2.png # el archivo foto2.png ser del grupo raul

Si vamos a cambiar el grupo de un directorio y con todos sus subdirectorios y


archivos en forma recursiva utilizaremos la opcin R:

# chgrp clases datos/ R # todos los archivos y sub directorios del directorio datos/
sern del grupo clases

CIBERTEC CARRERAS PROFESIONALES


100 Sistemas Operativos Avanzados

Autoevaluacin
1. Cul es el comando que se usa para crear un filesystem?
(a) fsck
(b) mkfs
(c) fdisk
(d) chmod

2. Cul es el comando que te permite reparar una particion?


(a) mkfs
(b) mount
(c) fdisk
(d) fsck

3. Cul es el comando que permite el cambio de permisos?


(a) who
(b) lastlog
(c) chmod
(d) chown

4. Para lograr el permiso rwxr-xr-x, es necesario el valor?


(a) 777
(b) 644
(c) 755
(d) 744
Sistemas Operativos Avanzados 101

6
SEMANA

Instalacion de Aplicaciones en Linux

TEMA
Describir las distintas formas de instalar aplicaciones en Linux

OBJETIVOS ESPECFICOS
Comprender el uso de RPMs

Entender como instalar aplicaciones compilndolas

Instalacion de paquetes via yum

CONTENIDOS
Introduccin a RPM

Manejo de RPM

Construyendo un RPM

Compilacion de aplicacin en Linux

CIBERTEC CARRERAS PROFESIONALES


102 Sistemas Operativos Avanzados

1. RPM (RedHat Package Manager)

RPM es el gestor de paquetes de Red Hat (Red Hat Package Manager). Aunque
aparece Red Hat en su nombre, la intencin es que sea un sistema de empaquetado
abierto y disponible para el uso de cualquiera. Permite a los usuarios tomar el cdigo
fuente (source code) y empaquetarlo en forma de fuentes y binaria de forma que los
ficheros binarios sean fcilmente instalables y rastreables y los fuentes puedan ser
reconstruidas con facilidad. Tambin gestiona una base de datos de todos los
paquetes y sus ficheros que puede ser usada para verificar paquetes e interrogarla
para obtener informacin acerca de ficheros y/o paquetes.

2. Visin general

Con RPP (EL anterior sistema de empaquetado del cual RPM no deriva en
absoluto), los paquetes de fuentes deban ser ``hackeados N.T.: retocados '' para
poder construir las aplicaciones desde ellos. Tericamente, se poda instalar un
paquete fuente RPP y efectuarle un make sin problemas. Pero los fuentes no eran
las originales, y no haba referencia alguna a los cambios que se habia hecho para
que pudieran compilar. Se haca pues necesario bajarse los fuentes originales de
forma separada.

Con RPM, tiene los fuentes originales junto al ``parche N.T.: patch en el original ''
que hemos usado para poder compilarlo. Vemos en esto una gran ventaja. Por
qu? Son varias las razones. La primera es que si sale disponible una nueva versin
de un programa, usted no necesita empezar desde la nada para conseguir que
compile bajo RHL. Puede examinar el parche para saber qu podra necesitar hacer.
De esta manera toda la configuracin por defecto de compilacin queda fcilmente a
la vista.

RPM tambin est diseado para disponer de potentes parmetros de consulta.


Usted puede hacer bsquedas de paquetes a lo largo de toda la base de datos o
slo de ciertos ficheros. Tambin puede encontrar fcilmente a qu paquete
pertenece un fichero y de dnde proviene. Los ficheros RPM en s mismos son
archivos comprimidos, pero puede consultar paquetes independientes fcil y
rpidamente, gracias a una cabecera binaria a medida aadida al paquete con toda
Sistemas Operativos Avanzados 103

la informacin que puede necesitar, almacenada sin comprimir. Esto permite


consultas rpidas.

Otra poderosa caracterstica es la habilidad de verificar paquetes. Si est


preocupado por haber borrado algn fichero importante, slo tiene que verificar el
paquete. Quedar cumplidamente informado de cualquier anomala. Llegados a ese
punto, podr reinstalar el paquete si lo considera necesario. Cualquier fichero de
configuracin que se tenga quedar a salvo.

3. Informacin general
3.1 Adquirir RPM

La mejor forma de conseguir RPM es instalando Red Hat Commercial Linux,CentOS,


etc. Si no quiere hacer eso, puede seguir usando RPM. Puede conseguirse en:

ftp://ftp.redhat.com/pub/redhat/code/rpm

http://rpm.pbone.net

http://www.rpmfind.net/

3.2 Requerimientos de RPM

El principal requerimiento para ejecutar RPM es cpio 2.4.2 o superior. Aunque el


sistema fue ideado para ser usado con Linux, puede ser perfectamente portado a
cualquier sistema Unix. De hecho, ha sido compilado en SunOS, Solaris, AIX, Irix,
AmigaOS, y otros. Queda advertido que los paquetes binarios generados en
diferentes tipos de sistemas Unix no sern compatibles.

Estos son los mnimos requerimientos para instalar RPMs. Para construir RPMs a
partir de los fuentes, necesitar todo lo normalmente requerido para construir un
paquete, cosas como gcc, make, etc.

4. Usando RPM

En su forma ms simple, RPM puede usarse para instalar paquetes:

CIBERTEC CARRERAS PROFESIONALES


104 Sistemas Operativos Avanzados

El siguiente comando ms simple es desinstalar un paquete:

Uno de los ms complejos pero ms tiles comandos le permiten instalar paquetes a


travs de FTP. Si est conectado a la Red y quiere instalar un nuevo paquete, todo
lo que necesita hacer es especificar el fichero con un URL vlido, como esto:

Apercbase de que ahora RPM puede hacer consultas y/o instalaciones a travs de
FTP.

Aunque estos son comandos simples, rpm puede usarse de multitud de formas,
como puede verse en el mensaje de Ayuda:
Sistemas Operativos Avanzados 105

Podr encontrar ms detalles acerca de la funcin de estos parametros en la pgina


del manual de RPM.

5. Manejo de RPM

RPM es una herramienta potentsima y, como puede ver, dispone de varios


parmetros. La mejor forma de apercibirse de ellas es examinando unos cuantos
ejemplos. Antes mostramos una instalacin/desinstalacin sencilla, ahora van unos
cuantos ms:

Supongamos que ha borrado unos cuantos ficheros por accidente, pero no


est seguro de qu es lo que ha borrado. Si quiere verificar completamente su
sistema y ver qu se ha perdido, puede hacer:

CIBERTEC CARRERAS PROFESIONALES


106 Sistemas Operativos Avanzados

Supongamos que se encuentra con un fichero que no reconoce. Para saber a


qu paquete pertenece puede hacer:

Supongamos que acaba de hacerse con un nuevo paquete RPM de koules,


pero no sabe qu puede ser. Para obtener informacin al respecto:
rpm -qpi koules-1.2-2.i386.rpm

La salida podra ser:

Name : koules Distribution: Red Hat Linux Colgate


Version : 1.2 Vendor: Red Hat Software
Release : 2 Build Date: Mon Sep 02 11:59:12 1996
Install date: (none) Build Host: porky.redhat.com
Group : Games Source RPM: koules-1.2-2.src.rpm
Size : 614939
Summary : SVGAlib action game with multiplayer, network, and sound
support
Description :
This arcade-style game is novel in conception and excellent in execution.
No shooting, no blood, no guts, no gore. The play is simple, but you
still must develop skill to play. This version uses SVGAlib to
run on a graphics console.

Ahora quiere saber qu ficheros instala el paquete RPM. Puede hacer:


rpm -qpl koules-1.2-2.i386.rpm

La salida es:

/usr/doc/koules
/usr/doc/koules/ANNOUNCE
Sistemas Operativos Avanzados 107

/usr/doc/koules/BUGS
/usr/doc/koules/COMPILE.OS2
/usr/doc/koules/COPYING
/usr/doc/koules/Card
/usr/doc/koules/ChangeLog
/usr/doc/koules/INSTALLATION
/usr/doc/koules/Icon.xpm
/usr/doc/koules/Icon2.xpm
/usr/doc/koules/Koules.FAQ
/usr/doc/koules/Koules.xpm
/usr/doc/koules/README
/usr/doc/koules/TODO
/usr/games/koules
/usr/games/koules.svga
/usr/games/koules.tcl
/usr/man/man6/koules.svga.6

Estos son slo unos pocos ejemplos. Otros, an ms creativos, podr hacerlos
fcilmente una vez que se haya familiarizado con RPM.

6. Compilar Aplicaciones en Linux


El proceso de compilar un programa e instalarlo desde la consola suele ser una
tarea bastante rutinaria, ya que, salvo raras excepciones, siempre se procede de la
misma manera, y solo son necesarias tres rdenes.

Se debe tener correctamente instalado y configurado nuestro compilador C/C++


(gcc) y todas las bibliotecas necesarias (que, por lo general, es algo de lo que se
encarga el programa de instalacin de nuestra distribucin), daremos por hecho que
todo est dispuesto en nuestro sistema para poder compilar programas de forma
correcta.

El primer paso suele ser descomprimir el archivo comprimido que nos hemos bajado
de Internet (casi siempre con la extensin .tar.gz, lo que se conoce con el nombre de
tarball, aunque puede estar en otros formatos). Abrimos una consola de comandos,
y nos dirigimos hacia el directorio donde se encuentra el archivo (tenemos que tener
permiso de lectura y escritura en ese directorio), tecleamos la siguiente orden:

tar -xvzf nombredelprograma.tar.gz

Comprobamos que se creo un directorio con el nombre del archivo y cambiamos a


ese directorio tecleando la orden:

cd nombredelprograma

Observacion
En este momento sera recomendable leer la documentacin que acompaa al
programa, que normalmente est contenida en un archivo con el nombre README.

CIBERTEC CARRERAS PROFESIONALES


108 Sistemas Operativos Avanzados

Tambin es recomendable leer el archivo INSTALL, si existe, ya que en l se


describe la forma de instalar el programa. Ambos archivos suelen estar escritos en
ingls, y contienen una referencia de las dependencias especiales que necesita el
programa para poder ser compilado y la forma de instalarlo.
Este ltimo paso es muy recomendable, pues cabe la posibilidad de que el programa
se instale de otra forma diferente a la que se detalla ac.

A continuacin deberemos configurar los archivos que nos permitirn compilar el


programa. Como norma general, deberamos instalar nuestros programas en el
directorio /usr/local/bin, ya que sta es la forma ms adecuada de asegurarnos que
podremos acceder a ellos localmente y en todo momento, ya que los otros
directorios que suelen contener programas ejecutables (como /bin y /sbin) pueden
no estar disponibles localmente, sino en algn lugar remoto de la red local, en caso
de que estemos en una. Si se usa ese directorio, el programa ser accesible por
todos los usuarios de nuestro sistema, pero habremos de tener permisos de
superusuario para instalar all nuestra aplicacin. En caso contrario, siempre nos
queda la posibilidad de instalarlo en nuestro directorio personal (por ejemplo, en
/home/usuario/bin), aunque en este caso slo nosotros podremos acceder a l. Si
optamos por instalar el programa en el directorio /usr/local/bin, deberemos
configurarlo mediante la orden:

./configure --prefix=/usr/local

Observacion
Hay que tener cuidado con el paso anterior, ya que, de lo contrario, es posible que
nuestro programa vaya a parar a algn directorio no incluido en nuestro PATH, por lo
que no se podra ejecutar. Tambin es necesario aclarar que la mayora de los
programas ya tienen configurada una ruta de instalacin de forma predeterminada,
como los programas diseados para el escritorio KDE, que suelen detectar la ruta en
la que reside el resto de programas de dicho escritorio para instalarse en el mismo
lugar que ellos. As, la orden ./configure se suele ejecutar casi siempre sin ningn
parmetro adicional.

Tras ejecutar ./configure veremos desfilar una larga sucesin de mensajes por la
consola y, si nuestro sistema dispone de todo lo necesario para llevar a cabo la
compilacin de forma satisfactoria, se nos informar en el ltimo mensaje mostrado.
En el caso de que se produzca algn error, deberemos prestar atencin a los ltimos
mensajes mostrados para tratar de solucionar el problema que se haya detectado en
nuestro sistema. Si todo fue bien, ya podemos pasar a compilar nuestra aplicacin
con la orden:

make

Dependiendo de la complejidad de la aplicacin y del nmero de archivos de cdigo


fuente que la compongan (y, sobre todo, de la velocidad de nuestro procesador y del
rendimiento de nuestro sistema), el proceso puede durar desde pocos segundos
hasta varias horas. Durante todo este tiempo, la consola ir mostrando todo lo que
Sistemas Operativos Avanzados 109

se est haciendo, y tal vez se muestren algunos mensajes de aviso o de error. En


este ltimo caso, la compilacin se detendr y deberemos tratar de solucionar los
problemas que originaron el error, en caso de que sepamos cmo hacerlo (ya que
suelen ser necesarios conocimientos de C/C++). Pero lo normal es que no ocurra
ningn error durante la compilacin, ya que todo suele estar probado por el autor del
programa.

Una vez compilada nuestra aplicacin deberemos instalarla en el directorio que


seleccionamos anteriormente como destino final. Si no tenemos permisos de lectura
y escritura sobre ese directorio, deberemos autentificarnos primero como
superusuario (usuario root) con la orden:

su

Y, finalmente, instalaremos la aplicacin con el comando:

make install

Si todo fue bien y no ocurri ningn error, nuestra aplicacin ya estar lista para ser
usada (y, al contrario que en los entornos Windows, no ser necesario tener que
reiniciar el sistema).

Dependiendo del script de instalacin, es posible que se haya creado alguna entrada
en el men de nuestro escritorio y/o en el propio escritorio, aunque ninguna de estas
opciones suele ser habitual. Lo ms seguro es que tengamos que crear esas
entradas nosotros mismos de forma manual.

Si el directorio de destino de nuestra aplicacin est incluido en nuestro PATH,


podremos ejecutar la aplicacin directamente desde la consola tecleando su
nombre. Lo ms usual es que tanto el directorio /usr/local/bin como el
/home/usuario/bin estn ya incluidos en nuestro PATH personal.

Un poco de limpieza

Durante la compilacin de un programa se genera un buen nmero de archivos


adicionales en el directorio en el que fue descomprimido. Normalmente, esos
archivos no se necesitan para nada (a menos que pensemos modificar el cdigo
fuente del programa y volver a compilarlo), por lo que es recomendable eliminarlos
para ahorrar espacio en nuestro disco duro. Para ello, tras la instalacin podemos
ejecutar la orden:

make clean

Desinstalar un programa compilado

Si lo que queremos es desinstalar un programa compilado a partir del cdigo fuente,

CIBERTEC CARRERAS PROFESIONALES


110 Sistemas Operativos Avanzados

cambiamos en la consola al directorio en el que fue descomprimido, compilado e


instalado, nos autentificamos como usuario root, y a continuacin ejecutamos la
orden:

make uninstall

Despus de la desinstalacin podemos eliminar el directorio donde fue


descomprimido el programa si no pensamos volver a utilizarlo.

Resumen
Como compilar un programa en Linux desde su cdigo fuente, se seguirn los
siguientes pasos:

tar xvzf aplicacin-a-instalar.tar.gz

cd aplicacin-a-instalar

./configure

make

make install

make clean
Sistemas Operativos Avanzados 111

7. Instalacion de aplicaciones via yum

Al instalar una nueva aplicacin o programa con cualquiera de los mtodos


anteriores, podriamos tener algunos problemas de dependencias que algunas veces
nos puede dar mas de un dolor de cabeza, existe un mtodo de instalacin y
actualizacin de paquetes que nos cubre con esa necesidad, ese mtodo es la
instalacin de paquetes via yum.

Yum es un programa automtico para instalar / desinstalar los RPM del sistema.
Obtiene automticamente dependencias y nos permite instalar correctamente los
paquetes.

Procedimientos
Con yum podemos realizar las siguientes tareas frecuentes:

7.1 Actualizar sistema.

Actualizacin del sistema con todas las dependencias que sean necesarias:

7.2 Bsquedas

Realizar una bsqueda de algn paquete o trmino en la base de datos en alguno


de los depsitos yum configurados en el sistema:

yum search cualquier-paquete

Ejemplo:

CIBERTEC CARRERAS PROFESIONALES


112 Sistemas Operativos Avanzados

7.3 Consulta de informacin

Consultar la informacin contenida en un paquete en particular::

yum info cualquier-paquete

Ejemplo:

7.4 Instalacin de paquetes

Instalacin de paquetera con resolucin automtica de dependencias:

yum install cualquier-paquete

Ejemplo:
Sistemas Operativos Avanzados 113

7.5 Desinstalacin de paquetes

Desinstalacin de paquetes junto con todo aquello que dependa de stos:

yum remove cualquier-paquete

Ejemplo:

7.6 Listado de paquetes.

Lo siguiente listar todos los paquetes disponibles en la base de datos yum y que
pueden instalarse:

yum list available | less

Lo siguiente listar todos los paquetes instalados en el sistema:

yum list installed |less

Lo siguiente listar todos los paquetes instalados en el sistema y que pueden


(deben) actualizarse:

yum list updates | less

7.7 Limpieza del sistema.

Yum deja como resultado de su uso cabeceras y paquetes RPM almacenados en el


interior del directorio localizado en la ruta /var/cache/yum/. Particularmente los
paquetes RPM que se han instalado pueden ocupar mucho espacio y es por tal
motivo conviene eliminarlos una vez que ya no tienen utilidad. Igualmente conviene
hacer lo mismo con las cabeceras viejas de paquetes que ya no se encuentran en la
base de datos. A fin de realizar la limpieza correspondiente, puede ejecutarse lo
siguiente:

yum clean all

CIBERTEC CARRERAS PROFESIONALES


114 Sistemas Operativos Avanzados

Autoevaluacin
1. Qu es el RPM?

2. Si se desa consulta la informacin del paquete algo.rpm, se usa?


(a) rpm i algo.rpm
(b) rpm Uvh algo.rpm
(c) rpm qf algo.rpm
(d) rpm qp algo.rpm

3. Cules son los pasoa para instalar una aplicacin desde su cdigo fuente?

4. Qu te permite hacer yum?


Sistemas Operativos Avanzados 115

9
SEMANA

ANLISIS DE ARCHIVOS DE
REGISTRO y CUOTAS DE DISCO

TEMA
Describir y entender el uso de los archivos de registro del sistema Linux
Describir y entender el uso de cuotas de disco en Linux

OBJETIVOS ESPECFICOS
Comprender el funcionamiento de los logs en Linux

Comprender e implementar las cuotas de disco

CONTENIDOS
Archivos de registro

Ubicacin

Visualizacin de los archivos de registro

El daemon SYSLOG

Cuotas de disco

CIBERTEC CARRERAS PROFESIONALES


116 Sistemas Operativos Avanzados

1. ARCHIVOS DE REGISTRO

Los Archivos de registro (o archivos de log) son archivos que contienen mensajes
sobre el sistema, incluyendo el kernel, los servicios y las aplicaciones que se
ejecutan en dicho sistema. Existen diferentes tipos de archivos de log
dependiendo de la informacin. Por ejemplo, existe un archivo de log del sistema,
un archivo de log para los mensajes de seguridad y un archivo de log para las
tareas cron.

Los archivos de registro pueden ser muy tiles cuando se trate de resolver un
problema con el sistema tal como cuando se trata de cargar un controlador del
kernel o cuando se este buscando por intentos no autorizados de conexin al
sistema. Este captulo discute donde encontrar estos archivos de registro, cmo
visualizarlos y qu buscar en ellos.

Algunos archivos de log estn controlados por un demonio llamado syslogd.


Encontrar una lista de mensajes de log mantenidos por syslogd en el archivo de
configuracin /etc/syslog.conf.

2. UBICACIN DE LOS ARCHIVOS DE REGISTRO

La mayora de archivos de log estn localizados en el directorio /var/log. Algunas


aplicaciones como por ejemplo httpd y samba poseen un directorio en /var/log
para sus archivos de log.

Observe los mltiples archivos en el directorio de archivos log seguidos de


nmeros. Estos se crean cuando los archivos de log circulan. Los archivos de log
circulan de manera que los tamaos de los archivos no sean demasiado amplios.
El paquete logrotate contiene una tarea de cron que hace circular
automticamente los archivos de log al archivo de configuracin
/etc/logrotate.conf y los archivos de configuracin en el directorio
/etc/logrotate.d. Por defecto, se configura para circular cada semana y mantener
la validez de los archivos previos de log durante cuatro semanas.
Sistemas Operativos Avanzados 117

3. VISUALIZACIN DE LOS ARCHIVOS DE REGISTRO

La mayora de los archivos de registro estn en formato de texto plano. Puede


visualizarlos con cualquier editor de texto tal como Vi o Emacs. Algunos archivos
log pueden ser ledos por todos los usuarios del sistema; sin embargo se
requiere de privilegios como root para visualizar la mayora de ellos. Para poder
visualizarlos en tiempo real puede usar el comando tail.

Tambin puede utilizar el Visor de registro del sistema. Para iniciar la aplicacin,
hacer clic en Sistema del panel superiorAdministracinRegistro de actividad
del sistema, o digite el comando gnome-system-log en una consola.

CIBERTEC CARRERAS PROFESIONALES


118 Sistemas Operativos Avanzados

4. DEMONIO SYSLOGD

Todos los archivos de registro que se llevan a cabo en un sistema Linux se


manejan por el demonio syslogd y su archivo de configuracin /etc/syslog.conf.
El archivo de configuracin especifica sobre qu subsistemas se deben grabar
los mensajes (por ejemplo cron, daemon, mail, etc.), qu niveles de mensajes
registrar (por ejemplo debug, info, warn, etc) y qu hacer con esos mensajes
(aadirlo a un archivo de registro, enviarlo a la impresora, etc.).

Syslog permite tambin el registro remoto; guardando tus archivos de registro en


otros equipos de la red. La ventaja de esto es que si tu sistema queda
comprometido por alguien sern incapaces de borrar sus pasos de tus archivos
de registro haciendo mas sencillo el buscar su origen y las acciones que llevaron
a cabo.

Podemos ver que cada regla del archivo tiene dos campos: un campo de
seleccin y un campo de accin, separados ambos por espacios o tabuladores.
El campo de seleccin est compuesto a su vez de dos partes separadas por un
punto: una que indica el servicio que enva el mensaje y otra que marca su
prioridad, separadas por un punto (.); ambas son indiferentes a maysculas y
minsculas.

La parte del servicio contiene una de las siguientes palabras clave: auth, auth-
priv, cron, daemon, kern, lpr, mail, mark, news, security (equivalente a auth),
syslog, user, uucp y local0 hasta local7; esta parte especifica el subsistema'
Sistemas Operativos Avanzados 119

que ha generado ese mensaje (por ejemplo, todos los programas


relacionados con el correo generarn mensajes ligados al servicio mail).
En segundo lugar, la prioridad est compuesta de uno de los siguientes
trminos, en orden ascendente: debug, info, notice, warning, warn
(equivalente a warning), err, error (equivalente a err), crit, alert, emerg, y panic
(equivalente a emerg). La prioridad define la gravedad o importancia del
mensaje almacenado. Todos los mensajes de la prioridad especificada y
superiores son almacenados de acuerdo con la accin requerida.

La segunda parte de cada lnea del archivo de configuracin de syslogd es el


campo de accin, y describe el destino de los mensajes (dnde se van a guardar
o qu programa los va a procesar); este destino puede ser uno de los siguientes:

Un archivo plano: Normalmente los mensajes del sistema son almacenados


en archivos planos. Dichos archivos han de estar especificados con la ruta de
acceso completa (comenzando con / ').

Podemos preceder cada entrada con el signo menos, , para omitir la


sincronizacin del archivo (vaciado del buffer de memoria a disco). Aunque
puede ocurrir que se pierda informacin si el sistema cae justo despus de un
intento de escritura en el archivo, utilizando este signo se puede conseguir
una mejora importante en la velocidad, especialmente si estamos ejecutando
programas que mandan muchos mensajes al demonio syslogd.

# Guardamos todos los mensajes de prioridad crtica en "critical"


#
*.=crit /var/adm/critical

Un dispositivo fsico: Tambin tenemos la posibilidad de enviar los registros


del sistema a un dispositivo fsico del mismo, tpicamente un terminal o una
impresora. As conseguimos, entre otras cosas, que esas entradas
permanezcan relativa o totalmente inalteradas (en funcin de qu dispositivo
las reciban). Por ejemplo, podemos tener uno de los terminales virtuales que
muchos sistemas Unix ofrecen en su consola dedicado a listar los mensajes
del sistema, que podrn ser consultados con solo cambiar a ese terminal
mediante la combinacin de teclas correspondiente:

# Enviamos todos los mensajes a tty12 (ALT+F12 en Linux) y todos


# los mensajes criticos del nucleo a consola
#
*.* /dev/tty12
kern.crit /dev/console

Una tubera con nombre: Algunas versiones de syslogd permiten enviar


registros a ficheros de tipo pipe simplemente anteponiendo el smbolo | al
nombre del archivo; dicho archivo ha de ser creado antes de iniciar el
demonio syslogd, mediante comandos como mkfifo o mknod. Esto es til para
debug y tambin para procesar los registros utilizando cualquier aplicacin de
Unix, tal y como veremos al hablar de logs remotos cifrados.

Por ejemplo, la siguiente lnea de /etc/syslog.conf enviara todos los mensajes


de cualquier prioridad a uno de estos archivos denominado /var/log/mififo:

CIBERTEC CARRERAS PROFESIONALES


120 Sistemas Operativos Avanzados

# Enviamos todos los mensajes a la tubera con nombre


# /var/log/mififo
#
*.* |/var/log/mififo

Una mquina remota: Se pueden enviar los mensajes del sistema a otra
mquina, de manera a que sean almacenados remotamente, sin ms que
indicar en el campo de accin el nombre o direccin de dicho sistema
precedido por el signo @ '. Esto es til si tenemos una mquina segura, en la
que podemos confiar, conectada a la red, ya que de esta manera se
guardara all una copia de los mensajes de nuestro sistema, copia que no
podra ser modificada en caso de que alguien entrase en la mquina que los
est generando. Esto es especialmente interesante para detectar usuarios
ocultos en nuestro sistema (usuarios maliciosos que han conseguido los
suficientes privilegios para ocultar sus procesos o su conexin), ya que una
de las principales cosas que har este tipo de atacantes es eliminar cualquier
registro que denote su presencia en la mquina (por ejemplo, sus entradas en
wtmp).

En el siguiente ejemplo utilizamos un sistema a priori confiable para enviarle


algunos de nuestros registros:

# Enviamos los mensajes de prioridad warning y superiores al


# fichero "syslog" y todos los mensajes (incluidos los
# anteriores) a la maquina "secure.upv.es"
#
*.warn /usr/adm/syslog
*.* @secure.upv.es

Unos usuarios del sistema (si estn conectados): Se especifica la lista de


usuarios que deben recibir un tipo de mensajes simplemente escribiendo sus
login, separados por comas:

# Enviamos los mensajes con la prioridad "alert" a root y toni


#
*.alert root, toni

Todos los usuarios que estn conectados: Los errores con una prioridad de
emergencia se suelen enviar a todos los usuarios que estn conectados al
sistema, de manera que se den cuenta de que algo va mal; para ello
utilizamos un asterisco en el campo de accin:

# Mostramos los mensajes urgentes a todos los usuarios


# conectados, mediante wall
*.=emerg *
Sistemas Operativos Avanzados 121

5. Quotas de Disco en Linux

Debe iniciarse el sistema en nivel de corrida 1 (mono usuario), ya que se


requiere no haya procesos activos utilizando contenido de la particin a la
cual se le aplicar la cuota de disco.
Obviamente, durante la instalacin, debi asignarse una particin dedicada
para, por mencionar un ejemplo, los directorios /var y /home.
Con la finalidad de aadir el soporte para cuotas en las particiones
anteriormente mencionadas, se debe aadir en el fichero /etc/fstab los
parmetros usrquota y grpquota a las lneas que definen la configuracin de
las particiones /var y /home:

LABEL=/var /var ext3 defaults,usrquota,grpquota 12


LABEL=/home /home ext3 defaults,usrquota,grpquota 12

Debe remontar las particiones para que surtan efecto los cambios:

mount -o remount /var


mount -o remount /home

Se deben crear los ficheros aquota.user, aquota.group, quota.user y


quota.group, los cuales se utilizarn en adelante para almacenar la
informacin y estado de las cuotas en cada particin.

cd /var
touch aquota.user aquota.group quota.user quota.group
cd /home
touch aquota.user aquota.group quota.user quota.group

Ejecutar:

quotacheck -avug

La primera vez que se ejecuta el mandato anterior es normal marque


advertencias refirindose a posibles ficheros truncados que en realidad no
eran otra cosa sino ficheros de texto simple vacos a los cuales se les acaba
de convertir en formato binario. Si se ejecuta de nuevo quotacheck - avug,
no deber mostrar advertencia alguna.

Para activar las cuotas de disco recin configuradas, solo bastar ejecutar:

quotaon /var
quotaon /home

Vaya al nivel de corrida 3 a fin de aplicar cuota de disco a algunos usuarios.

init 3

CIBERTEC CARRERAS PROFESIONALES


122 Sistemas Operativos Avanzados

5.1. Edquota.

Es importante conocer que significa cada columna mostrada por edquota.

Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que


est utilizando el usuario.

Inodes: Inodos. Corresponde al nmero de ficheros que est utilizando


el usuario. Un inodo (tambin conocido como Index Node) es un
apuntador hacia sectores especficos de disco duro en los cuales se
encuentra la informacin de un fichero. Contiene adems la informacin
acerca de permisos de acceso as como los usuarios y grupos a los
cuales pertenece el fichero.

Soft: Limite de gracia. Limite de bloques de 1 KB que el usuario puede


utilizar y que puede rebasar hasta que sea excedido el periodo de
gracia (de modo predeterminado son 7 das).

Hard: Limite absoluto. Limite que no puede ser rebasado por el usuario
bajo circunstancia alguna.

Asignar cuotas de disco a cualquier usuario o grupo solo har falta utilizar edquota
citando el nombre del usuario al cual se le quiere aplicar:

edquota fulano

Lo anterior deber devolver algo como lo siguiente a travs de vi u otro editor de


texto simple:

Disk quotas for user fulano (uid 501):


Filesystem blocks soft hard inodes soft hard
/dev/hda7 0 0 0 0 0 0
/dev/hda5 24 0 0 10 0 0

5.2. Cuota absoluta (Hard)

Suponiendo que se quiere asignar una cuota de disco de 6 MB para el usuario


fulano en en /dev/hda7 y /dev/hda5, se utilizara lo siguiente:

Disk quotas for user fulano (uid 501):


Filesystem blocks soft hard inodes soft hard
/dev/hda7 0 0 6144 0 0 0
/dev/hda5 24 0 6144 10 0 0

El usuario siempre podr rebasar una cuota de gracia pero nunca una cuota
absoluta.
Sistemas Operativos Avanzados 123

5.3 Cuota de gracia (Soft)

El sistema tiene de modo predeterminado un periodo de gracia de 7 das que se


puede modificar con el mandato edquota -t, donde se puede establecer un nuevo
periodo de gracia por das, horas, minutos o segundos.

Grace period before enforcing soft limits for users:


Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hdb7 7days 7days
/dev/hdb5 7days 7days

La cuota de gracia establece los lmites de bloques o inodos que un usuario tiene
en una particin. Cuando el usuario excede el lmite establecido por la cuota de
gracia, el sistema advierte al usuario que se ha excedido la cuota del disco sin
embargo permite al usuario continuar escribiendo hasta que trascurre el tiempo
establecido por el periodo de gracia, tras el cual al usuario se le impide continuar
escribiendo sobre la particin. Suponiendo que quiere asignar una cuota de gracia
de 6 MB en /dev/hda7 y /dev/hda5, la cual podr ser excedida hasta por 7 das, se
utilizara lo siguiente:

Disk quotas for user fulano (uid 501):


Filesystem blocks soft hard inodes soft hard
/dev/hda7 0 6144 0 0 0 0
/dev/hda5 24 6144 0 10 0 0

Aplicando cuotas masivamente.

Si se quiere que todo aplique para los usuarios existentes, a partir de UID 510, por
ejemplo, suponiendo que tiene al usuario "pepito" como molde (note por favor el
acento grave en el mandato justo antes de awk, no es una comilla ni
apostrofe):

edquota -p pepito `awk -F: '$3 > 510 {print $1}' /etc/passwd`

6. Comprobaciones.

Utilice el mandato edquota con el usuario fulano.

edquota fulano

Asigne al usuario fulano una cuota de disco de 50 MB en todas las particiones con
cuota de disco habilitada:

Disk quotas for user fulano (uid 501):


Filesystem blocks soft hard inodes soft hard
/dev/hda7 0 0 51200 0 0 0
/dev/hda5 24 0 51200 10 0 0

CIBERTEC CARRERAS PROFESIONALES


124 Sistemas Operativos Avanzados

Desde otra terminal acceda hacia el sistema como el usuario fulano y ejecute el
mandato quota y observe con detenimiento la salida:

Disk quotas for user fulano (uid 501):


Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 0 0 51200 1 0 0
/dev/hda5 24 0 51200 10 0 0

Realice una copia del directorio /usr/lib como el subdirectorio ~/prueba-cuotas


dentro de su directorio de inicio:

cp -r /usr/lib ~/prueba-cuotas

Notar que llegar un momento en el que el sistema indicar que ya no es posible


continuar copiando contenido dentro de ~/prueba-cuotas debido a que se ha
agotado el espacio en la particin.

Utilice de nuevo el mandato quota y observe con detenimiento la salida, en donde


aparecer un asterisco justo junto a la cantidad en la columna de bloques bloques, el
cual indica que se ha excedido la cuota del disco:

Disk quotas for user fulano (uid 501):


Filesystem blocks quota limit grace files quota limit grace
/dev/hda7 0 0 51200 1 0 0
/dev/hda5 51200* 0 51200 7439 0 0

Para poder volver a escribir sobre la particin, es necesario liberar espacio. Elimine
por completo el directorio ~/prueba-cuotas y vuelva a utilizar el mandato quota:

rm -fr ~/prueba-cuotas
quota
Sistemas Operativos Avanzados 125

Autoevaluacin
1. Cul es el nombre del archivo que contiene registrado los mensajes de los
servicios de red?
(a) access.log
(b) syslog
(c) spooler
(d) messages

2. Cul es el directorio que contiene los archivos logs del sistema?


(a) /var/log/xferlog
(b) /var/log/maillog
(c) /var/log
(d) /var/log/secure

3. Cul es el comando que informa sobre los ltimos logins de los usuarios en
el sistema?
(a) who
(b) lastlog
(c) dmesg
(d) syslog

4. Indique ejemplos donde se puede aplicar cuotas de disco?

CIBERTEC CARRERAS PROFESIONALES


126 Sistemas Operativos Avanzados

10
SEMANA

SERVIDOR NFS y SAMBA

TEMA
Describirla funion de los servidores NFS y Samba

OBJETIVOS ESPECFICOS
Comprender el funcionamiento del servidor NFS

Comprender el funcionamiento del servidor Samba

CONTENIDOS
Introduccin a NFS

Funcionamiento NFS

Configuracin del servidor NFS

Configuracion del cliente NFS

Introduccion a Samba

Configuracion de samba cliente

Configuracion de samba Servidor


Sistemas Operativos Avanzados 127

1. Servicio NFS - Introduccin

Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas
de archivos sobre la red e interactuar con esos sistemas de archivos como si
estuvieran montados localmente. Esto permite a los administradores de sistemas
consolidar los recursos en servidores centralizados en la red.
Este captulo se centra en los conceptos fundamentales de NFS e informacin
suplementaria. Para instrucciones especficas con respecto a la configuracin y
operacin del software NFS en servidores o clientes.

2. Funcionamiento
Hay tres versiones de NFS actualmente en uso. La versin 2 de NFS (NFSv2), es la
ms antigua y est ampliamente soportada por muchos sistemas operativos. La
versin 3 de NFS (NFSv3) tiene ms carctersticas, incluyendo manejo de archivos
de tamao variable y mejores facilidades de informes de errores, pero no es
completamente compatible con los clientes NFSv2. NFS versin 4 (NFSv4) incluye
seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con
descripcin del estado. Linux soporta clientes tanto NFSv2, NFSv3 como NFSv4, y
cuando monta un sistema de archivos a travs de NFS, Red Hat Enterprise Linux
usa NFSv4 por defecto.

Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones


(TCP) ejecutndose sobre una red IP. En el caso de NFSv4, ste lo requiere. NFSv2
y NFSv3 pueden utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red
IP para proporcionar conexiones de red sin supervisin (stateless) entre el cliente y
el servidor.

Cuando se utiliza NFSv2 o NFSv3 con UDP, bajo condiciones normales la conexin
UDP desatendida minimiza el trfico de la red, ya que el servidor NFS envia un
cookie al cliente despus que este tiene acceso al volumen compartido. Esta cookie

CIBERTEC CARRERAS PROFESIONALES


128 Sistemas Operativos Avanzados

es un valor aleatorio guardado en el lado del servidor y espasado junto con las
peticiones RPC desde el cliente. El servidor NFS puede ser reiniciado sin afectar a
los clientes y las cookies permanecen intactas. Sin embargo, debido a que UDP es
sin supervisin, si el servidor se cae de forma inesperada, los clientes UDP
continan saturando la red con peticiones para el servidor. Por esta razn, TCP es el
protocolo preferido cuando se conecte a un servidor NFS.

Cuando se autentifique utilizando NFSv4, se crea una conexin atenta y, de forma


opcional, est disponible la autenticacin de usuarios y grupos con Kerberos. NFSv4
no tiene interaccin con portmapper, rpc.mountd, rpc.lockd y rpc.statd, pues estos
han sido incorporados en el kernel. NFSv4 escucha en el puerto TCP 2049.

La nica vez que NFS lleva a cabo la autentificacin es cuando el cliente intenta
montar un recurso compartido NFS. Para limitar el acceso al servicio NFS, se utilizan
envolturas TCP (TCP wrappers).

Los TCP wrappers leen los archivos /etc/hosts.allow y /etc/hosts.deny para


determinar si a un cliente particular o red tiene acceso o no al servicio NFS.

Despus de que al cliente se le permite acceso gracias a un TCP wrapper, el


servidor NFS recurre a su archivo de configuracin, /etc/exports, para determinar si
el cliente tiene suficientes privilegios para acceder a los sistemas de archivos
exportados. Una vez otorgado el acceso, todas las operaciones de archivos y de
directorios estn disponibles para el usuario.

3. Servicios requeridos
Linux utiliza una combinacin de soporte a nivel del kernel y procesos demonio
para proporcionar los archivos compartidos con NFS. NFSv2 y NFSv3 confa en las
Llamadas de procedimientos remotos ((RPC)) para enrutar peticiones entre clientes
y servidores. Los servicios RPC bajo Linux son controlados por el servicio portmap.
Para compartir o montar sistemas de archivos NFS, los servicios siguientes
funcionan juntos, dependiendo de cul versin de NFS se tenga implementada:

. nfs . Inicia los procesos RPC apropiados para servir peticiones para los
sistemas de archivos compartidos NFS.

. nfslock.Un servicio opcional que inicia los procesos RPC adecuados para
permitir que clientes NFS bloqueen archivos en el servidor.

. portmap. El servicio RPC para Linux; responde a las peticiones para


servicios RPC y configura las conexiones al servicio RPC solicitado. No se
utiliza con NFSv4.

Los siguientes procesos RPC facilitan los servicios NFS:

. rpc.mountd . Este proceso recibe las peticiones de montaje desde clientes


NFS y verifica que el sistema de archivos solicitado est actualmente
exportado. Este proceso es iniciado automticamente por el servicio nfs y no
requiere de la configuracin del usuario. No se utiliza con NFSv4.
Sistemas Operativos Avanzados 129

. rpc.nfsd . Este proceso es el servidor NFS. Trabaja con el kernel Linux para
satisfacer las demandas dinmicas de clientes NFS, tales como proporcionar
hilos del servidor cada vez que se conecta un cliente NFS. Este proceso
corresponde al servicio nfs.

. rpc.lockd . Un proceso opcional que permite a los clientes NFS bloquear


archivos en el servidor. Esto corresponde al servicio nfslock. No se utiliza con
NFSv4.

. rpc.statd. Este proceso implementa el protocolo RPC Network Status


Monitor (NSM) el cual notifica a los clientes NFS cuando un servidor NFS es
reiniciado luego de haber sido apagado abruptamente. Este proceso es
iniciado automticamente por el servicio nfslock y no requiere configuracin
por parte del usuario. No se utiliza con NFSv4.

. rpc.rquotad . Proporciona informacin de cuotas de usuario para los


usuarios remotos. Este proceso se inicia automticamente por el servicio nfs y
no requiere configuracin por parte del usuario.
. rpc.idmapd . Este proceso proporciona al cliente y servidor NFSv4 llamadas
ascendentes (upcalls) que hacen corresponder los nombres NFSv4 (los
cuales son cadenas en la forma usuario@dominio) y los UIDs y GIDs locales.
Para que idmapd funcione con NFSv4, el /etc/idmapd.conf debe estar
configurado. Se requiere este servicio para su uso con NFSv4.

. rpc.svcgssd . Este proceso proporciona al servidor los mecanismos de


transporte para el proceso de autenticacin (Kerberos versin 5) con NFSv4.
Se requiere este servicio para su uso con NFSv4.

. rpc.gssd. Este proceso proporciona al cliente los mecanismos de transporte


para el proceso de autenticacin (Kerberos versin 5). Se requiere este
servicio para su uso con NFSv4.

4. Iniciar y detener NFS


Para ejecutar un servidor NFS, debe estar ejecutndose el servicio portmap. Para
verificar que portmap est activo, escriba el comando siguiente como root:
/sbin/service portmap status, Si el servicio portmap se est ejecutando, entonces se
puede iniciar nfs.

Para iniciar un servidor NFS, como root escriba:

/sbin/service nfs start

Para detener el servidor, como usuario root, escriba:

/sbin/service nfs stop

La opcin restart es un atajo para detener y luego iniciar NFS. Esta es la


forma ms eficiente de hacer que los cambios en la configuracin tomen
efecto luego de modificar el archivo de configuracin por NFS.

CIBERTEC CARRERAS PROFESIONALES


130 Sistemas Operativos Avanzados

Para reiniciar el servidor, como usuario root, escriba:

/sbin/service nfs restart

La opcin condrestart (reinicio condicional) solamente inicia nfs si este est


actualmente ejecutndose. Esta opcin es til para los scripts, porque no
inicia el demonio si este no se est ejecutando.

Para reiniciar condicionalmente el servidor, como root escriba:

/sbin/service nfs condrestart

Para recargar el archivo de configuracin del servidor NFS sin reiniciar el


servicio, como root escriba:

/sbin/service nfs reload

Por defecto, el servicio nfs no arranca automticamente en el momento del


inicio. Para configurar NFS para que inicie en el momento del arranque, utilice
una utilidad de initscript, tal como /sbin/chkconfig, /sbin/ntsysv o la
Herramienta de configuracin de servicios.

5. Configuracin del servidor NFS


Existen tres formas de configurar un servidor NFS en Linux: usando la Herramienta
de configuracin del servidor NFS (system-config-nfs), modificando manualmente
su archivo de configuracin (/etc/exports), o utilizando el comando /usr/sbin/exportfs.
Sistemas Operativos Avanzados 131

5.1. El archivo de configuracin /etc/exports


El archivo /etc/exports controla cules sistemas de archivos son exportados a las
mquinas remotasy especifica opciones. Las lneas en blanco son ignoradas, se
pueden comentar lneas con el smbolo # y las lneas largas pueden ser divididas
con una barra invertida (\). Cada sistema de archivos
exportado debe tener su propia lnea y cualquier lista de hosts autorizadas colocada
despus de un sistema de archivos exportado, debe estar separada por un espacio.
Las opciones para cada uno de los hosts deben ser colocadas entre parntesis
directamente detrs del identificador del host, sin ningn
espacio de separacin entre el host y el primer parntesis.

Una lnea para un sistema de archivos exportado tiene la estructura siguiente:


<export > <host1> (<options>) <host2> (<options>) <host3> (<options>)

En esta estructura, reemplace


<export> :con el directorio a exportar, reemplace

<host1> : con el host o la red a la cual va a compartir el directorio y reemplace


<options> : con las opciones para ese host o red. Los hosts adicionales se
pueden especificar en una lista separada por espacios.

CIBERTEC CARRERAS PROFESIONALES


132 Sistemas Operativos Avanzados

Se pueden usar los mtodos siguientes para especificar nombres de host:


. host nico .Cuando una mquina en particular es especificada con nombre
completo de dominio, nombre de mquina o direccin IP.

. comodines . Usamos un carcter * o ? para referirnos a un grupo de nombres


completos de dominio o direcciones IP o que coincidan con una cadena
particular de letras. Los comodines no se deberan de utilizar con direcciones
IP; sin embargo, es posible para estos funcionar accidentalmente si fallan las
bsquedas de DNS inversas.
Tenga cuidado cuando especifique comodines con nombres de dominio
completos, pues tienden a ser ms exactos de lo que usted cree. Por ejemplo,
el uso de *.ejemplo.com como comodn, permitir a ventas.ejemplo.com
acceder al sistema de archivos exportado, pero no a bob.ventas.ejemplo.com.
Para coincidir ambas posibilidades, debera usar *.ejemplo.com y
tambin *.*.ejemplo.com

. redes IP . Permite la coincidencia de hosts basados en sus direcciones IP


dentro de una red ms grande. Por ejemplo, 192.168.0.0/28 permite al acceso
a las primeras 16 direcciones IP, desde la 192.168.0.0 a la 192.168.0.15,
acceder al sistema de archivos exportado, pero no a la 192.168.0.16 y
superiores.
. grupos de redes. Permite usar un nombre de grupo de red NIS, escrito como
@<group-name> Esto pone al servidor NIS controlando el acceso de este
sistema de archivos, donde los usuarios pueden ser aadidos o borrados de
un grupo NIS sin que afecte a /etc/exports. En su forma ms sencilla, el archivo
/etc/exports slo especifica el directorio a exportar y los hosts que pueden
usarlo, como en el ejemplo siguiente:

/exported/directory bob.example.com

En el ejemplo, bob.example.com puede montar /exported/directory/. Como no se


especifica ninguna opcin en este ejemplo, tomarn efecto las siguientes
opciones predeterminadas de NFS:

. ro. Se montan los sistemas de archivos como de slo lectura (read-only).


Los host remotos no pueden hacer cambios a los datos compartidos en el
sistema de archivos. Para permitir que los hosts puedan hacer cambios, debe
especificar la opcin rw (lectura-escritura, read-write).

. wdelay. Provoca que el servidor NFS retrase el escribir a disco si sospecha


que otra peticin de escritura es inminente. Esto puede mejorar el rendimiento
reduciendo las veces que se debe acceder al disco por comandos de escritura
separados. Use nofiwdelay para desactivar esta opcin, la cual
slo funciona si est usando la opcin sync
.
. rootfisquash . Previene a los usuarios root conectados remotamente de tener
privilegios como root asignndoles el id del usuario de nobody. Esto
reconvierte el poder del usuario root remoto al de usuario local ms bajo,
previniendo la alteracin desautorizada de archivos en el servidor remoto.
Sistemas Operativos Avanzados 133

Alternativamente, la opcin nofirootfisquash lo desactiva. Para reconvertir a


todos los
usuarios, incluyendo a root, use la opcin allfisquash. Para especificar los ID
de usuario y grupo para usar con usuarios remotos desde un host particular,
utilice las opciones anonuid y anongid, respectivamente. De esta manera,
puede crear una cuenta de usuario especial para que los usuarios NFS
remotos compartan y especificar (anonuid= uid-value, anongid= gid-value ),

donde
<uid-value> es el nmero de ID del usuario y

<gid-value> es el nmero de ID del grupo.

Cada valor predeterminado para un sistema de archivos exportado debe ser


explcitamente ignorado.
Por ejemplo, si no se especifica la opcin rw, entonces el sistema de archivos
es exportado como de slo lectura. Lo siguiente es una lnea de muestra de
/etc/exports la cual sobreescribe dos opciones predeterminadas:

/another/exported/directory 192.168.0.3(rw,sync)

En este ejemplo 192.168.0.3 puede montar /another/exported/directory/ como


lectura/escritura y todas las transferencias al disco son efectuadas antes de
completar la peticin de escritura del cliente.

Adicionalmente, hay otras opciones que estn disponibles que no tienen


especificado un valor predeterminado.
Estas incluyen la habilidad de desactivar la verificacin por subdirectorios,
permitir el acceso desde puertos inseguros y permitir bloquear archivos
inseguros (necesario para algunas implementaciones antiguas de clientes
NFS). Vea la pgina man de exports para estas opciones menos usadas.

5.2. El comando exportfs


Cada sistema de archivos que se exporta a usuarios remotos a travs de NFS, as
como los niveles de acceso relativos a ellos, son listados en el archivo /etc/exports.
Cuando comienza el servicio nfs, se lanza el comando /usr/sbin/exportfs y lee este
archivo, pasa el control a rpc.mountd (si es
NFSv2 or NFSv3) para el proceso de montaje real, luego a rpc.nfsd donde los
sistemas de archivos estn disponibles a los usuarios remotos.

Cuando se ejecuta manualmente, el comando /usr/sbin/exportfs permite al


superusuario exportar o no de forma selectiva, directorios concretos sin reiniciar los
servicios NFS. Cuando se le pasan las opciones apropiadas, el comando
/usr/sbin/exportfs escribe los sistemas de archivos exportados
a /var/lib/nfs/xtab. Como rpc.mountd se refiere al archivo xtab para decidir privilegios de
acceso a un sistema de archivos, los cambios en la lista de sistemas de archivos
exportados toman efecto inmediatamente.
Lo siguiente es una lista de las opciones ms comunes disponibles para
/usr/sbin/exportfs:

CIBERTEC CARRERAS PROFESIONALES


134 Sistemas Operativos Avanzados

. Provoca que todos los directorios listados en /etc/exports sean exportados


. -r
construyendo una nueva lista de exportacin en /etc/lib/nfs/xtab. Esta opcin
refresca la lista de exportacin con cualquier cambio que hubiramos
realizado en /etc/exports.

. Provoca que todos los directorios sean exportados o no, dependiendo de


. -a
qu otras opciones hemos pasado a /usr/sbin/exportfs. Si no se pasan otras
opciones, /usr/sbin/exportfs exporta todos los sistemas de archivos
especificados en /etc/exports.

. -o sistema-de-archivos . Permite especificar directorios a exportar que no estn


listados en /etc/exports. Reemplace sistema-de-archivos con los sistemas de
archivos adicionales a exportar. Estos sistemas de archivos deben tener el
mismo formato en que fueron especificados en /etc/exports. Esta opcin se
utiliza a menudo para probar un sistema de archivos antes de aadirlo de
forma permanente a la lista de sistemas a exportar.

. -i.Ignora /etc/exports; slo las opciones dadas desde la lnea de comandos


son usadas para definir los sistemas de archivos exportados.
. -u . No exporta todos los directorios compartidos. El comando
/usr/sbin/exportfs ua suspende la comparticin de archivos NFS mientras que
mantiene todos los demonios NFS activos. Para reactivar NFS, teclee exportfs
-r.

. -v. Operacin descriptiva, donde los sistemas de archivos exportados o


dejados de exportar son mostrados en gran detalle al ejecutarse el comando
exportfs. Si no se pasan opciones al comando /usr/sbin/exportfs, mostrar una
lista de los sistemas de archivos actualmente exportados.

6. Archivos de configuracin de clientes NFS


Las comparticiones NFS son montadas en el lado del cliente usando el comando
mount. El formato del comando es como sigue:

mount -t <nfs-type> -o <options> <host>:</remote/export> </local/directory>

Reemplace <nfs-type> con nfs para servidores NFSv2 o NFSv3, o nfs4 para
servidores NFSv4. Reemplace <options> con una lista de opciones separadas por
comas para el sistema NFS. Reemplace <host> con el host remoto,
</remote/export> con el directorio remoto que est siendo montado y sustituya
</local/directory> con el directorio local donde el sistema de archivos remoto se
montar.Consulte la pgina man de mount para ms detalles.

Si est accediendo a una comparticin NFS emitiendo manualmente el comando


mount, el sistema de archivos debe ser remontado manualmente despus de
reiniciar el sistema.

6.1. /etc/fstab
El archivo /etc/fstab lo referencia el servicio netfs al momento del arranque, por lo que
las lneas haciendo referencia a las comparticiones NFS tienen el mismo efecto que
escribir manualmente el comando mount durante el arranque.
Sistemas Operativos Avanzados 135

Una muestra de lnea de /etc/fstab para montar un NFS exportado ser parecida a:

<server>:</remote/export> </local/directory> <nfs-type> <options> 0 0

Reemplace <server> con el nombre de la mquina, direccin IP o nombre de


dominio totalmente cualificado del servidor que exporta el sistema de archivos.

Reemplace </remote/export> con la ruta al directorio exportado.


Sustituya </local/directory;> con el sistema de archivos local en el cual se
montar el directorio exportado. Este punto de montaje debe existir antes de
que /etc/fstab sea ledo o el montaje fallar.

Reemplace <nfs-type> con nfs para servidores NFSv2 o NFSv3, o con nfs4
para servidoresNFSv4.

Reemplace <options> con una lista de opciones separada por comas para el
sistema NFS

CIBERTEC CARRERAS PROFESIONALES


136 Sistemas Operativos Avanzados

7. Servicio SAMBA - Introduccin.

7.1. Acerca de Samba.

SAMBA es un conjunto de programas, originalmente creados por Andrew Tridgell y


actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General
GNU, y que implementan en sistemas basados sobre UNIX el protocolo SMB. Sirve
como reemplazo total para Windows NT, Warp, NFS o servidores Netware.

Necesitar tener instalados los siguientes paquetes, que seguramente vienen


incluidos en los discos de instalacin de su distribucin predilecta:

samba: Servidor SMB.


samba-client: Diversos clientes para el protoclo SMB.
samba- Ficheros necesarios para cliente y servidor.
common:

Consulte a la base de datos RPM del sistema si se encuentran instalados estos


paquetes, utilizando el siguiente mandato:

rpm -q samba samba-client samba-common

Si se utiliza Red Hat Enterprise Linux, solo bastar realizar lo siguiente para
instalar o actualizar la programtica necesaria:

up2date -i samba samba-client

Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo bastar realizar lo siguiente
para instalar o actualizar la programtica necesaria:

yum -y install samba samba-client

8. Configuracin bsica de Samba.

Para la mayora de los casos la configuracin de Samba como servidor de archivos


es suficiente.
Sistemas Operativos Avanzados 137

9. Alta de cuentas de usuario.

Es importante sincronizar las cuentas entre el servidor Samba y las estaciones


Windows. Es decir, si en una mquina con Windows ingresamos como el usuario
"paco" con clave de acceso "elpatito16", en el servidor Samba deber existir tambin
dicha cuenta con ese mismo nombre y la misma clave de acceso. Como la mayora
de las cuentas de usuario que se utilizarn para acceder hacia samba no requieren
acceso al interprete de mandatos del sistema, no es necesario asignar clave de
acceso con el mandato passwd y se deber definir /sbin/nologin o bien /bin/false
como interpete de mandatos para la cuenta de usuario involucrada.

useradd -s /sbin/nologin usuario-windows


smbpasswd -a usuario-windows

No hace falta se asigne una clave de acceso en el sistema con el mandato passwd
puesto que la cuenta no tendr acceso al interprete de mandatos.

Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios
como seran Telnet, SSH, etc, es decir, que se permita acceso al interprete de
mandatos, ser necesario especificar /bin/bash como interprete de mandatos y
adems se deber asignar una clave de acceso en el sistema con el mandato
passwd:

useradd -s /bin/bash usuario-windows


passwd usuario-windows
smbpasswd -a usuario-windows

10. El fichero lmhosts

Es necesario empezar resolviendo localmente los nombres NetBIOS asocindolos


con direcciones IP correspondientes. Para fines prcticos el nombre NetBIOS debe
tener un mximo de 11 caracteres. Normalmente tomaremos como referencia el
nombre corto del servidor o el nombre corto que se asigno como alias a la interfaz
de red. Este lo estableceremos en el fichero /etc/samba/lmhosts, en donde
encontraremos lo siguiente:

127.0.0.1 localhost

Debemos aadir entonces el nombre que hayamos elegido asociado a la direccin


IP que se tenga dentro de la red local. Opcionalmente podr aadir tambin los
nombres y direccin IP del resto de las mquinas que conformen la red local. La
separacin de espacios se hace con un tabulador. Ejemplo:

127.0.0.1 localhost
192.168.1.5 maquinalinux
192.168.1.6 isaac
192.168.1.7 finanzas
192.168.1.8 direccion

CIBERTEC CARRERAS PROFESIONALES


138 Sistemas Operativos Avanzados

11. Configuracin del servidor SAMBA

11.1. Parmetros principales del fichero smb.conf.

Modifique el fichero /etc/samba/smb.conf con cualquier editor de texto. Dentro de


este notar que la informacin que le ser de utilidad viene comentada con un
smbolo # y los ejemplos con ; (punto y coma), siendo estos ltimos los que
tomaremos como referencia.

Empezaremos por establecer el grupo de trabajo editando el valor del parmetro


workgroup asignando un grupo de trabajo deseado:

workgroup = MIGRUPO

Opcionalmente puede establecer con el parmetro netbios name otro nombre


distinto para el servidor si acaso fuese necesario, pero siempre tomando en cuenta
que dicho nombre deber corresponder con el establecido en el fichero
/etc/samba/lmhosts:

netbios name = maquinalinux

El parmetro server string es de carcter descriptivo. Puede utilizarse un


comentario breve que de una descripcin del servidor.

server string = Servidor Samba %v en %L

11.2. Parmetros tiles para la seguridad.

La seguridad es importante y esta se puede establecer primeramente estableciendo


la lista de control de acceso que definir que mquinas o redes podrn acceder
hacia el servidor. El parmetro hosts allow sirve para determinar esto. Si la red
consiste en la mquinas con direccin IP desde 192.168.1.1 hasta 192.168.1.254, el
rango de direcciones IP que se definir en hosts allow ser 192.168.1. de modo tal
que solo se permitir el acceso dichas mquinas. Note por favor el punto al final de
cada rango. Modifique sta de manera que quede del siguiente modo:

hosts allow = 192.168.1. 127.

El parmetro interfaces permite establecer desde que interfaces de red del sistema
se escucharn peticiones. Samba no responder a peticiones provenientes desde
cualquier interfaz no especificada. Esto es til cuando Samba se ejecuta en un
servidor que sirve tambin de puerta de enlace para la red local, impidiendo se
establezcan conexiones desde fuera de la red local.

interfaces = 192.168.1.254/24
Sistemas Operativos Avanzados 139

11.3. Impresoras en Samba.

Las impresoras se comparten de modo predeterminado, as que solo hay que


realizar algunos ajustes. Si se desea que se pueda acceder hacia la impresora como
usuario invitado sin clave de acceso, basta con aadir public = Yes en la seccin de
impresoras del siguiente modo:

[printers]
comment = El comentario que guste.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes

Windows NT, 2000 y XP no tendrn problema alguno para acceder e imprimir hacia
las impresoras, sin embargo Windows 95, 98 y ME suelen tener problemas para
comunicarse con Samba para poder imprimir. Por tanto, si se quiere evitar
problemas de conectividad con dichos sistemas operativos hay que agregar algunos
parmetros que resolvern cualquier eventualidad:

[printers]
comment = Impresoras.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
print command = lpr -P %p -o raw %s -r
lpq command = lpstat -o %p
lprm command = cancel %p-%j

Se pude definir tambin a un usuario o bien un grupo (@grupo_que_sea) para la


administracin de las colas de las impresoras:

[printers]
comment = Impresoras.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
print command = lpr -P %p -o raw %s -r
lpq command = lpstat -o %p
lprm command = cancel %p-%j
printer admin = fulano, @opers_impresion

CIBERTEC CARRERAS PROFESIONALES


140 Sistemas Operativos Avanzados

Con lo anterior se define que el usuario fulano y quien pertenezca al grupo


opers_impresion podrn realizar tareas de administracin en las impresoras.

11.4. Compartiendo directorios a travs de Samba.

Para los directorios o volmenes que se irn a compartir, en el mismo fichero de


configuracin encontrar distintos ejemplos para distintas situaciones particulares.
En general, puede utilizar el siguiente ejemplo que funcionar para la mayora:

[Lo_que_sea]
comment = Comentario que se le ocurra
path = /cualquier/ruta/que/desee/compartir

El volumen puede utilizar cualquiera de las siguientes opciones:

Opcin Descripcin
guest ok Define si ser permitir el acceso como usuario
invitado. El valor puede ser Yes o No.
public Es un equivalente del parmetro guest ok, es
decir define si ser permitir el acceso como
usuario invitado. El valor puede ser Yes o No.
browseable Define si se permitir mostrar este recurso en las
listas de recursos compartidos. El valor puede ser
Yes o No.
writable Define si ser permitir la escritura. Es el
parmetro contrario de read only. El valor puede
ser Yes o No. Ejemplos: writable = Yes es lo
mismo que read only = No. Obviamente writable =
No es lo mismo que read only = Yes
valid users Define que usuarios o grupos pueden acceder al
recurso compartido. Los valores pueden ser
nombres de usuarios separados por comas o
bien nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores
write list Define que usuarios o grupos pueden acceder
con permiso de escritura. Los valores pueden ser
nombres de usuarios separados por comas o
bien nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores
admin users Define que usuarios o grupos pueden acceder
con permisos administrativos para el recurso. Es
decir, podrn acceder hacia el recurso realizando
todas las operaciones como super-usuarios. Los
valores pueden ser nombres de usuarios
separados por comas o bien nombres de grupo
Sistemas Operativos Avanzados 141

antecedidos por una @. Ejemplo: fulano, mengano,


@administradores
directory mask Es lo mismo que directory mode. Define que
permiso en el sistema tendrn los subdirectorios
creados dentro del recurso. Ejemplos: 1777
create mask Define que permiso en el sistema tendrn los
nuevos ficheros creados dentro del recurso.
Ejemplo: 0644

En el siguiente ejemplo se compartir a travs de Samba el recurso denominado ftp,


el cual est localizado en el directorio /var/ftp/pub del disco duro. Se permitir el
acceso a cualquiera pero ser un recurso de solo lectura salvo para los usuarios
administrador y fulano. Todo directorio nuevo que sea creado en su interior tendr
permiso 755 y todo fichero que sea puesto en su interior tendr permiso 644.

[ftp]
comment = Directorio del servidor FTP
path = /var/ftp/pub
guest ok = Yes
read only = Yes
write list = fulano, administrador
directory mask = 0755
create mask = 0644

11.5. Configuracin avanzada de Samba.

Samba fue creado con un objetivo: ser en un reemplazo definitivo para Windows
como servidor en una red local. sto, por supuesto, requiere algunos procedimientos
adicionales dependiendo de las necesidades de la red local.

11.6. Re-asignacin de grupos de Windows en Samba.

Los grupos que existen en Windows tambin se utilizan en Samba para ciertas
operaciones, principalmente relacionadas con lo que involucra un Controlador
Primario de dominio (o PDC que significa Primary Domain Controler). Estos grupos
existen de modo predefinido en Samba. Sin embargo, si se ejecuta lo siguiente:

net groupmap list

Devolver la siguiente informacin:

System Operators (S-1-5-32-549) -> -1


Domain Admins (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-
XXXXXXXXXX-512) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Domain Guests (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-

CIBERTEC CARRERAS PROFESIONALES


142 Sistemas Operativos Avanzados

XXXXXXXXXX-514) -> -1
Power Users (S-1-5-32-547) -> -1
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Account Operators (S-1-5-32-548) -> -1
Domain Users (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-
XXXXXXXXXX-513) -> -1
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1

Lo anterior corresponde al mapa de los grupos que, de modo predeterminado,


utilizar Samba si ste fuese configurado como Controlador Primario de Dominio.
XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX corresponde a un nmero generado
aleatoriamente al iniciarse Samba por primera vez. Tome nota de dicho nmero,
ya que lo requerir ms adelante para re-asignar los nombres al espaol en el
mapa de grupos.

Los grupos anteriormente descritos trabajarn perfecta y limpiamente


asocindolos contra grupos en el sistema, pero solo si utiliza alguna versin de
Windows en ingles. Si utiliza alguna versin de Windows en espaol, habr que
re-asignar los nombres de los grupos a los correspondientes al espaol y
asociarles a grupos en el sistema, esto a fin de permitir asignar usuarios a dichos
grupos y de este modo delegar tareas de administracin del mismo modo que en
Windows.

Es por tal motivo que si se tiene la intencin de configurar Samba como Controlador
Primario de Dominio y al mismo tiempo poder hacer uso de los grupos del mismo
modo que en Windows, es decir, por mencionar un ejemplo, permitir a ciertos
usuarios pertenecer al grupo de administradores del dominio con privilegios de
administrador, lo primero ser entonces generar los grupos en el sistema ejecutando
como root los siguientes mandatos:

groupadd -r administradores
groupadd -r admins_dominio
groupadd -r duplicadores
groupadd -r invitados
groupadd -r invs_dominio
groupadd -r opers_copias
groupadd -r opers_cuentas
groupadd -r opers_impresion
groupadd -r opers_sistema
groupadd -r usrs_avanzados
groupadd -r usuarios
groupadd -r usuarios_dominio

Una vez creados los grupos en el sistema, solo resta re-asignar los nombres al
espaol en el mapa de grupo de Samba y asociarles a stos los grupos recin
creados en el sistema. El procedimiento se resume a ejecutar algo como lo
siguiente:
Sistemas Operativos Avanzados 143

net groupmap modify \


ntgroup="Nombre grupo Windows en espaol" \
sid="nmero-de-identidad-en-sistema" \
unixgroup="grupo_en_linux" \
comment="comentario descriptivo acerca del grupo"

Lo anterior establece que se modifique el registro del grupo que corresponda al sid
(identidad de sistema) definido con el nombre establecido con ntgroup, asocindolo
al grupo en el servidor con unixgroup y aadiendo un comentario descriptivo acerca
de dicho grupo con comment.

De modo tal, y a fin de facilitar las cosas a quien haga uso de este manual, puede
utilizar el siguiente guin para convertir los nombres al espaol y asociarlos a grupos
en Linux, donde solo deber definir el nmero de identidad del sistema que
corresponda al servidor:

#!/bin/sh
SIDSAMBA=XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX

net groupmap modify ntgroup="Administradores" \


sid="S-1-5-32-544" unixgroup=administradores \
comment="Los administradores tienen acceso completo y sin
restricciones al equipo o dominio"

net groupmap modify ntgroup="Admins. del dominio" \


sid="S-1-5-21-$SIDSAMBA-512" unixgroup=admins_dominio \
comment="Administradores designados del dominio"

net groupmap modify ntgroup="Duplicadores" \


sid="S-1-5-32-552" unixgroup=duplicadores \
comment="Pueden duplicar archivos en un dominio"

net groupmap modify ntgroup="Invitados del dominio" \


sid="S-1-5-21-$SIDSAMBA-514" unixgroup=invitados \
comment="Todos los invitados del dominio"

net groupmap modify ntgroup="Invitados" \


sid="S-1-5-32-546" unixgroup=invitados \
comment="Los invitados tienen de modopredeterminado el mismo
acceso que los miembros del grupo Usuarios, excepto la cuenta
Invitado que tiene mas restricciones"

net groupmap modify ntgroup="Operadores de copias" \


sid="S-1-5-32-551" unixgroup=opers_copias \
comment="Los operadores de copia pueden sobrescribir restricciones
de seguridad con el unico proposito de hacer copias de seguridad o
restaurar archivos"

net groupmap modify ntgroup="Opers. de cuentas" \

CIBERTEC CARRERAS PROFESIONALES


144 Sistemas Operativos Avanzados

sid="S-1-5-32-548" unixgroup=opers_cuentas \
comment="Pueden administrar cuentas de usuarios y grupos del
dominio"

net groupmap modify ntgroup="Opers. de impresin" \


sid="S-1-5-32-550" unixgroup=opers_impresion \
comment="Pueden operar impresoras del dominio"

net groupmap modify ntgroup="Opers. de servidores" \


sid="S-1-5-32-549" unixgroup=opers_sistema \
comment="Pueden administrar sistemas del dominio"

net groupmap modify ntgroup="Usuarios avanzados" \


sid="S-1-5-32-547" unixgroup=usrs_avanzados \
comment="Los usuarios avanzados tienen mas derechos
administrativos con algunas restricciones. De este modo, pueden
ejecutar aplicaciones heredadas junto con aplicaciones certificadas"

net groupmap modify ntgroup="Usuarios del dominio" \


sid="S-1-5-21-$SIDSAMBA-513" unixgroup=usuarios_dominio \
comment="Todos los usuarios del dominio"

net groupmap modify ntgroup="Usuarios" \


sid="S-1-5-32-545" unixgroup=usuarios \
comment="Los usuarios no pueden hacer cambios accidentales o
intencionados en el sistema. Pueden ejecutar aplic. certificadas, pero
no la mayora de las heredadas"

exit 0

Nota: Este guin en esta incluido en el disco de Extras de curso de Linux Para Todos. Solo basta editarlo y definir la variable
SIDSAMBA y ejecutarlo como root.

Una vez hecho lo anterior, al volver a realizar lo siguiente:

net groupmap list

Se deber de mostrar ahora esto otro:

Opers. de servidores (S-1-5-32-549) -> opers_sistema


Admins. del dominio (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-
XXXXXXXXXX-512) -> admins_dominio
Duplicadores (S-1-5-32-552) -> duplicadores
Invitados (S-1-5-32-546) -> invitados
Invitados del dominio (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-
XXXXXXXXXX-514) -> invitados
Usuarios avanzados (S-1-5-32-547) -> usrs_avanzados
Opers. de impresin (S-1-5-32-550) -> opers_impresion
Administradores (S-1-5-32-544) -> administradores
Opers. de cuentas (S-1-5-32-548) -> opers_cuentas
Sistemas Operativos Avanzados 145

Usuarios del dominio (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-


XXXXXXXXXX-513) -> usuarios_dominio
Operadores de copias (S-1-5-32-551) -> opers_copias
Usuarios (S-1-5-32-545) -> usuarios

De este modo, si por ejemplo, se agrega al usuario fulano al grupo


admins_dominio, se tendr el mismo efecto que si se hiciera lo mismo en Windows
agregando al usuario al grupo Admins. del dominio. Esto por supuesto solamente
tendr utilidad si Samba se configura y utiliza como Controlador Primario de
Dominio.

11.7. Alta de cuentas de usuario en Controlador Primario de Dominio.

Si se configur Samba para funcionar como Controlador Primario de Dominio, ser


necesario asignar a root una clave de acceso en Samba, la cual por supuesto puede
ser diferente a la del sistema, debido a que las estaciones de trabajo necesitan
autenticar primero con el usuario root de Samba para poder unirse dominio y poder
crear de este modo una cuenta de mquina en el sistema a travs del parmetro
add machine script ya descrito anteriormente.

Los usuarios es necesario darlos de alta de modo que queden agregados a los que
correspondan en el sistema a grupos Usuarios y Usuarios del dominio de
Windows, es decir a los grupos usuarios y usuarios_dominio.

useradd -s /sbin/nologin -G usuarios,usuarios_dominio usuario-windows


smbpasswd -a usuario-windows

Si el usuario ya existiese, solo ser necesario agragarlo a los grupos usuarios y


usuarios_dominio con gpassswd del siguiente modo:

gpasswd -a usuario-windows usuarios


gpasswd -a usuario-windows usuarios_dominio

En teora en el directorio definido para el recurso Profiles se deben crear


automticamente los directorios de los usuarios donde se almacenarn los perfiles.
De ser necesario es posible generar stos directorios utilizando el siguiente guin:

cd /home
for user in *
do
mkdir -p /var/lib/samba/profiles/$user
chown $user.$user /var/lib/samba/profiles/$user
done

CIBERTEC CARRERAS PROFESIONALES


146 Sistemas Operativos Avanzados

12. Parmetros de configuracin avanzada en el fichero smb.conf

12.1. Anunciando el servidor Samba en los grupos de trabajo.

La opcin remote announce se encarga de que el servicio nmbd se anuncie a si


mismo de forma peridica hacia una red en particular y un grupo de trabajo
especfico. Esto es particularmente til si se necesita que el servidor Samba
aparezca no solo en el grupo de trabajo al que pertenece sino tambin otros grupos
de trabajo. El grupo de trabajo de destino puede estar en donde sea mientras exista
una ruta y sea posible la transmisin exitosa de paquetes.

remote announce = 192.168.1.255/MI-DOMINIO 192.168.2.255/OTRO-


DOMINIO

El ejemplo anterior defini que el servidor Samba se anuncie a si mismo al los


grupos de trabajo MI-DOMINIO y OTRO-DOMINIO en las redes cuyas IP de
transmisin son 192.168.1.255 y 192.168.2.255 correspondientemente.

12.2. Ocultando y denegando acceso a ficheros.

No es conveniente que los usuarios acceder o bien puedan ver la presencia de


ficheros ocultos en el sistema, es decir ficheros cuyo nombre comienza con un
punto, particularmente si acceden a su directorio personal en el servidor Samba
(.bashrc, .bash_profile, .bash_history, etc.). Puede utilizarse el parmetro hide dot
files para mantenerlos ocultos.

hide dot files = Yes

En algunos casos puede ser necesario denegar el acceso a cierto tipo de ficheros
del sistema. El parmetro veto files se utiliza para especificar la lista, separada por
diagonales, de aquellas cadenas de texto que denegarn el acceso a los ficheros
cuyos nombres contengan estas cadenas. En el siguiente ejemplo, se denegar el
acceso hacia los ficheros cuyos nombres incluyan la palabra Security y los que
tengan extensin o terminen en .tmp:

veto files = /*Security*/*.tmp/

12.3. Opciones para cliente o servidor Wins.

Puede habilitar convertirse en servidor WINS o bien utilizar un servidor WINS ya


existente. Se puede ser un servidor WINS o un cliente WINS, pero no ambas cosas
a al vez.

Si se va ser el servidor WINS, debe habilitarse lo siguiente:


wins support = Yes
Si se va a utilizar un servidor WINS ya existente, debe descomentar la
siguiente lnea y especificar que direccin IP utiliza dicho servidor
WINS:
Sistemas Operativos Avanzados 147

wins server = 192.168.1.1

12.4. Opciones especficas para Controlador Primario de Dominio


(PDC).

Si se va a configurar Samba como Controlador Primario de Dominio, se debe


especificar todos los parmetros descritos a continuacin.

Si se quiere que las claves de acceso del sistema y Windows se mantengan


sincronizadas, es necesario descomentar las siguiente lenas:

unix password sync = Yes


passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n
*ReType*new*UNIX*password* %n\n
*passwd:*all*authentication*tokens*updated*successfully*

El parmetro local master define al servidor como examinador del dominio (o


master browser); El parmetro domain master define al servidor maestro del
dominio; El parmetro preferred master define al servidor como maestro del domino
preferido en caso de haber ms servidores presentes en el mismo dominio como
controladores de dominio; El parmetro time server se utiliza para definir que las
estaciones debern sincronizar la hora con el servidor al unirse al dominio; El
parmetro domain logons define que el servidor permitir a las estaciones
autenticar contra Samba.

local master = Yes


domain master = Yes
preferred master = Yes
time server = Yes
domain logons = Yes

La configuracin de Controlador Primario de Dominio requiere adems definir donde


se almacenarn los perfiles de los usuarios. Windows 95, 98 y ME requieren se
defina con el parmetro logon home, en tanto que Windows NT, 2000 y XP
requieren se haga con el parmetro logon path. Para efectos prcticos y de
previsin, utilice ambos parmetros y defina la unidad H para dicho volumen:

logon path = \\%L\Profiles\%U


logon home = \\%L\%U\.profile
logon drive = H:

Si se va a utilizar Samba como Controlador Primario de Dominio, es necesario


establecer el guin que ejecutarn las estaciones Windows al conectarse hacia el
servidor. Esto se hace a travs del parmetro logon script el cual puede definir o
bien un guin a utilizar por cada usuario (%u.bat) o bien por cada mquina (%m.bat)
o bien de modo general para todos (logon.cmd). Para no complicar las cosas, defina
inicialmente un guin general para todos del siguiente modo:

CIBERTEC CARRERAS PROFESIONALES


148 Sistemas Operativos Avanzados

logon script = logon.cmd

El fichero /var/lib/samba/netlogon/logon.cmd deber contener algo como lo


siguiente:

REM windows client logon script


REM

net time \\mi-servidor /SET /YES


net use H: \\mi-servidor\homes /PERSISTENT:NO

El Controlador Primario de Dominio va a necesitar tambin se definan los guiones a


ejecutar para distintas tareas como alta de mquinas, usuarios y grupos as como la
baja de estos.

add user script = /usr/sbin/useradd %u


add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c
"Cuenta de mquina" -M %u
delete user script = /usr/sbin/userdel %u
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/bin/gpasswd -a %u %g
set primary group script = /usr/sbin/usermod -g %g %u

El parmetro add user script sirve para definir lo que se deber ejecutar en el
trasfondo en el sistema para crear una nueva cuenta de usuario. El parmetro add
machine script es particularmente importante porque es el mandato utilizado para
dar de alta cuentas de mquinas (trust accounts o cuentas de confianza) de modo
automtico. El parmetro delete user script es para definir lo propio para eliminar
usuarios, delete group script para eliminar grupos, add user to group para aadir
usuarios a grupos y set primary group script para establecer un grupo como el
principal para un usuario.

Directorio para Netlogon y perfiles en Controlador Primario de Dominio (PDC).

Si se va a utilizar Samba como Controlador Primario de Dominio, es necesario


definir los recursos donde residir netlogon y tambin donde se almacenarn los
perfiles de los usuarios:

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
write list = @administradores, @admins_dominio
guest ok = Yes
browseable = Yes

[Profiles]
path = /var/lib/samba/profiles
read only = No
guest ok = Yes
Sistemas Operativos Avanzados 149

create mask = 0600


directory mask = 0700

Genere con el mandato mkdir los directorios /var/lib/samba/profiles y


/var/lib/samba/netlogon. El directorio /var/lib/samba/profiles deber pertenecer a
root y al grupo users y tener permiso 1777 a fin de permitir crear el directorio de
perfil correspondiente para cada usuario.

mkdir -p -m 1777 /var/lib/samba/profiles


mkdir -p /var/lib/samba/netlogon
chgrp users /var/lib/samba/profiles
13. Inciar el servicio y aadirlo al arranque del sistema.

Si iniciar Samba por primera vez realice lo siguiente:

/sbin/service smb start

Si va a reiniciar el servicio, realice lo siguiente:

/sbin/service smb restart

Para que Samba inicie automticamente cada vez que inicie el servidor solo ejecute
el siguiente mandato:

/sbin/chkconfig smb on

14. Accediendo hacia Samba.

14.1 Modo texto.

Smbclient.

Indudablemente el mtodo ms prctico y seguro es el mandato smbclient. Este


permite acceder haca cualquier servidor Samba o Windows como si fuese el
mandato ftp en modo texto.

Para acceder al cualquier recurso de alguna mquina Windows o servidor SAMBA


determine primero que volmenes o recursos compartidos posee est. utilice el
mandato smbclient del siguiente modo:

smbclient -U usuario -L alguna_maquina

Lo cual le devolvera ms menos lo siguiente:

Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Sharename Type Comment

CIBERTEC CARRERAS PROFESIONALES


150 Sistemas Operativos Avanzados

--------- ---- -------


homes Disk Home Directories
netlogon Disk Network Logon Service
ftp Disk ftp
IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
epl5900 Printer Created by redhat-config-printer 0.6.x
hp2550bw Printer Created by redhat-config-printer 0.6.x
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Server Comment
--------- -------
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor

Workgroup Master
--------- -------
MI-DOMINIO MI-SERVIDOR

La siguiente corresponde a la sintaxis bsica para poder navegar los recursos


compartidos por la mquina Windows o el servidor SAMBA:

smbclient //alguna_maquina/recurso -U usuario

Ejemplo:

smbclient //LINUX/FTP -U jbarrios

Despus de ejecutar lo anterior, el sistema solicitar se proporcione la clave de


acceso del usuario jbarrios en el equipo denominado LINUX.

smbclient //LINUX/FTP -U jbarrios


added interface ip=192.168.1.254 bcast=192.168.1.255
nmask=255.255.255.0
Password:
Domain=[miusuario] OS=[Unix] Server=[Samba 2.2.1a]
smb: \>

Pueden utilizarse virtualmente los mismos mandatos que en el interprete de ftp,


como seran get, mget, put, del, etc.

Por montaje de unidades de red.

Si necesita poder visualizar desde GNU/Linux a las mquinas con Windows e


interactuar con los directorios compartidos por ests, necesitar realizar algunos
pasos adicionales. De manera predeterminada, y por motivos de seguridad, solo root
puede utilizar los mandatos smbmnt y smbumount. Deber entonces establecer
permisos de SUID a dichos mandatos. Puede hacerlo ejecutando, como root lo
siguiente:

chmod 4755 /usr/bin/smbmnt


Sistemas Operativos Avanzados 151

chmod 4755 /usr/bin/smbumount

Para acceder hacia una mquina Windows determine primero que volmenes o
recursos compartidos posee est. utilice el mandato smbclient del siguiente modo:

smbclient -N -L alguna_maquina

Lo cual le devolvera ms menos lo siguiente:

Anonymous login successful


Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Sharename Type Comment


--------- ---- -------
homes Disk Home Directories
netlogon Disk Network Logon Service
ftp Disk ftp
IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
epl5900 Printer Created by redhat-config-printer 0.6.x
hp2550bw Printer Created by redhat-config-printer 0.6.x
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Server Comment
--------- -------
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor

Workgroup Master
--------- -------
MI-DOMINIO MI-SERVIDOR

En el ejemplo anterior hay un volumen compartido llamado algn_volumen. Si


queremos montar este, debemos crear un punto de montaje. ste puede crearse en
cualquier directorio sobre el que tengamos permisos de escritura. Para montarlo,
utilizamos entonces la siguiente lnea de mandato:

smbmount //alguna_maquina/algn_volumen /punto/de/montaje/

Si la mquina Windows requiere un usuario y una clave de acceso, puede aadir a


lo anterior las opciones -username=el_necesario -password=el_requerido -
workgroup=MIGRUPO

Si la distribucin de GNU/Linux utilizada es reciente, tambin puede utilizar el ya


conocido mandato mount del siguiente modo:

mount -t smbfs -o username=el_necesario,password=el_requerido


//alguna_maquina/algn_volumen /punto/de/montaje/

CIBERTEC CARRERAS PROFESIONALES


152 Sistemas Operativos Avanzados

Si se genera una cuenta pcguest, similar a la cuenta nobody, podemos montar


volmenes SMB sin ingresar una clave de acceso pero con privilegios restringidos, o
aquellos que definamos a un volumen accedido por un usuario invitado. Esto sera el
mtodo por eleccin para compartir volmenes en una red de rea local. Puede
generarse una cuenta pcguest o bien dejar que el sistema tome al usuario nobody.
Si opta por lo primero, solo de de alta la cuenta NO asigne clave de acceso alguna.
Montar volmenes remotos como usuarios invitado es muy sencillo. Un ejemplo real
sera:

mount -t smbfs -o guest //LINUX/FTP //var/ftp

Lo anterior monta un volumen SAMBA de una mquina con GNU/Linux en otra


mquina con GNU/Linux.

Puede aadirse tambin una entrada en /etc/fstab de modo que slo tenga que ser
tecleado mount /punto/de/montaje. Esta lnea sera de modo similar al siguiente:

//LINUX/FTP /var/ftp smbfs user,auto,guest,ro,gid=100 0 0

Recurdese que el volumen compartido debe estar configurado para permitir


usuarios invitados:

[FTP]
comment = Programtica libre (RPMS)
path = /var/ftp/pub
public = Yes
guest ok = Yes

Modo grfico

Desde el entorno de GNOME.

Si utiliza GNOME 2.x o superior, ste incluye un mdulo para Nautilus que permite
acceder hacia los recursos compartidos a travs de Samba sin necesidad de
modificar cosa alguna en el sistema. Solo hay que hacer clic en Servidores de red
en el men de GNOME.
Sistemas Operativos Avanzados 153

Desde Windows.

Por su parte, desde Windows deber ser posible acceder sin problemas hacia
Samba como si fuese hacia cualquier otra mquina con Windows. Vaya, ni Windows
ni el usuario notarn siquiera la diferencia.

Uniendo mquinas al dominio del Controlador Primario de Dominio.

El controlador de dominio permite utilizar a Samba como servidor de autenticacin y


servidor de archivos que adems permite almacenar el perfil, preferencias y
documentos del usuario en el servidor automticamente sin la intervencin del
usuario.

Creando manualmente cuentas de mquinas

Bajo algunas circunstancias ser necesario crear cuentas de mquinas (trust


accounts o cuentas de confianza) a fin de permitir unirse al dominio. el
procedimiento es simple:

/usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de


mquina" -M maquina-windows$
smbpasswd -a maquina-windows$

Es de resaltar que las cuentas de mquinas deben incluir obligatoriamente un


smbolo $ al final del nombre.

Windows 95/98/ME y Windows XP Home

Ya que los sistemas con Windows 95/98/ME y Windows XP Home no incluyen una
implementacin completa como miembros de dominio, no se requieren cuentas de
confianza. El procedimiento para unirse al dominio es el siguiente:

CIBERTEC CARRERAS PROFESIONALES


154 Sistemas Operativos Avanzados

Acceder hacia Men de inicio Configuraciones Panel de control


Red
Seleccione la pestaa de Configuracin
Seleccione Cliente de redes Microsoft
Haga clic en el botn de propiedades
Seleccione Acceder a dominio de Windows NT y especifique el
dominio correspondiente.
Clic en todos los botones de Aceptar y reinicie el sistema
Acceda con cualquier usuario que haya sido dado de alta en el
servidor Samba y que adems cuente con una clave de acceso
asignada con smbpasswd.

Windows NT

Crear manualmente la cuenta de mquina como se decribi


anteriormente.
Acceder hacia Men de inicio Configuraciones Panel de control
Red.
Seleccionar la pestaa de Identificacin.
Clic en el botn de Cambiar.
Ingrese el nombre del dominio y el nombre del sistema. No selecione
Crear una cuenta de mquina en el Dominio.
Clic en Aceptar
Espere algunos segundos.
Deber mostrarse un mensaje emergente de confirmacin que dice
Bienvenido a MI-DOMINIO
Reinicie el sistema
Acceda con cualquier usuario que haya sido dado de alta en el
servidor Samba y que adems cuente con una clave de acceso
asignada con smbpasswd.

Windows 2000/2003 y Windows XP Profesional

Clic derecho en el icono de Mi PC.


Seleccionar Propiedades
Haga clic en la pestaa de Identificacin de red o Nombre del
sistema.
Clic en el botn de Propiedades.
Clic en el botn Miembro de dominio
Ingrese el nombre del dominio y el nombre de la mquina y haga clic
en el botn de Aceptar
Aparecer un dilogo que preguntar por una cuenta y clave de
Sistemas Operativos Avanzados 155

acceso con privilegios de administracin en el servidor. Especifique la


root y la clave de acceso que asign a la cuenta de root con el
mandato smbpasswd (NO LA CLAVE DE ACCESO DE ROOT EN
EL SISTEMA).
Espere algunos segundos.
Deber mostrarse un mensaje emergente de confirmacin que dice
Bienvenido a MI-DOMINIO
Reinicie el sistema
Acceda con cualquier usuario que haya sido dado de alta en el
servidor Samba y que adems cuente con una clave de acceso
asignada con smbpasswd.

CIBERTEC CARRERAS PROFESIONALES


156 Sistemas Operativos Avanzados

Autoevaluacin
1. Qu permite el servicio NFS?

2. Qu permite el servicio samba?

3. Cul es el archivo de configuracin del servicio NFS?


(a) smb.conf
(b) exports
(c) resolv.conf
(d) hosts
Sistemas Operativos Avanzados 157

11
SEMANA

SERVIDORES DNS

TEMA
Describir el uso del Sistema de Nombres de Dominio (DNS).

OBJETIVOS ESPECFICOS
Comprender el funcionamiento del Sistema de Nombres de Dominio

Comprender el funcionamiento del Servidor DNS de solo-cach

CONTENIDOS
Introduccin a DNS

Funcionamiento del DNS

Configuracin del Servidor DNS

Configuracin y consultas del cliente DNS.

Configuracin de DNS Primario

CIBERTEC CARRERAS PROFESIONALES


158 Sistemas Operativos Avanzados

1. SISTEMA DNS
El Sistema de Nombres de Dominio (DNS) se utiliza para buscar equipos y
servicios mediante nombres descriptivos. Cuando un usuario escribe un nombre
DNS en una aplicacin, el servidor DNS puede traducir el nombre a la
informacin asociada con el mismo, como una direccin IP. En la actualidad las
redes son heterogneas (los hosts usan distintos Sistemas Operativos) por lo
que el uso de servidores de nombres es requerido de forma obligatoria ya que los
protocolos usados requieren DNS.

La mayora de empresas son pequeas y medianas con un nmero pequeo de


hosts por lo que la responsabilidad de la administracin de los servidores de
nombres recae en el Proveedor de Servicios de Internet (ISP), esta empresa se
encargar de la administracin del espacio de nombres de su dominio DNS,
alojar y gestionar los datos de su zona DNS.

Para las empresas que un nmero mayor de hosts sea considerable, tendr que
administrar su propio servidor de nombres para facilitar la resolucin de nombres
de su red.

1.1. Berkeley Intenet name Domain - Bind

Bind es una aplicacin de los protocolos del Sistema de Nombre de Dominio


(DNS) y proporciona los principales componentes del Sistema de Nombre
de Dominio, incluyendo:
Un servidor DNS (named).
Una biblioteca resolver DNS (cliente DNS).
Sistemas Operativos Avanzados 159

Herramientas por verificar el funcionamiento apropiado del servidor de


DNS.

La pgina oficial del proyecto es: http://www.isc.org

ISC BIND se puede instalar tanto en Linux como en Windows 2000/XP/2003

2. INSTALACIN DEL SERVIDOR DNS

ISC Bind se puede instalar tanto en Linux como en Windows 2000/XP/2003, para
el caso especfico de Linux se deben instalar los siguientes paquetes:
bind Una implementacin de los protocolos DNS.
bind-utils Contiene una coleccin de utilidades para consultas DNS a
servidores de nombres para encontrar informacin de hosts de Internet.
caching-nameserver Incluye los archivos de configuracin que hacen al
servidor de nombre DNS ISC BIND named actuar como un simple servidor
de nombre de solo-cach.
system-config-bind Proporciona una interface grafica de usuario (GUI)
para configurar el servidor DNS ISC BIND named.

CIBERTEC CARRERAS PROFESIONALES


160 Sistemas Operativos Avanzados

2.1. Demonio: named

Es el demonio encargado de activar/desactivar el servidor DNS y es


manipulado por el script /etc/init.d/named.

BIND almacena su configuracin en las siguientes ubicaciones:


/etc/named.conf Archivo de configuracin para el demonio named.
Directorio /var/named/ - Directorio de trabajo de named el cual almacena
los archivos de zonas, estadsticas y cach.

3. Tipos de servidores DNS.

Hay dos tipos de servidores de nombres:


Servidor Maestro: Tambin denominado Primario. Obtiene los
datos del dominio a partir de un fichero hospedado en el mismo
servidor.
Servidor Esclavo: Tambin denominado Secundario. Al iniciar
obtiene los datos del dominio a travs de un Servidor Maestro
(o primario), realizando un proceso denominado transferencia
de zona.
Un gran nmero de problemas de operacin de servidores DNS se atribuyen a
las pobres opciones de servidores secundarios para las zonas de DNS. De
acuerdo al RFC 2182, el DNS requiere que al menos tres servidores existan para
todos los dominios delegados (o zonas).
Una de las principales razones para tener al menos tres servidores para cada
zona es permitir que la informacin de la zona misma est disponible siempre y
forma confiable hacia los Clientes DNS a travs de Internet cuando un servidor
DNS de dicha zona falle, no est disponible y/o est inalcanzable.
Sistemas Operativos Avanzados 161

Contar con mltiples servidores tambin facilita la propagacin de la zona y


mejoran la eficiencia del sistema en general al brindar opciones a los Clientes
DNS si acaso encontraran dificultades para realizar una consulta en un Servidor
DNS. En otras palabras: tener mltiples servidores para una zona permite contar
con redundancia y respaldo del servicio.
Con mltiples servidores, por lo general uno acta como Servidor Maestro o
Primario y los dems como Servidores Esclavos o Secundarios. Correctamente
configurados y una vez creados los datos para una zona, no ser necesario
copiarlos a cada Servidor Esclavo o Secundario, pues ste se encargar de
transferir los datos de manera automtica cuando sea necesario.

Los Servidores DNS responden dos tipos de consultas:

Consultas Iterativas (no recursivas): El cliente hace una


consulta al Servidor DNS y este le responde con la mejor
respuesta que pueda darse basada sobre su cach o en las
zonas locales. Si no es posible dar una respuesta, la consulta
se reenva hacia otro Servidor DNS repitindose este proceso
hasta encontrar al Servidor DNS que tiene la Zona de
Autoridad capaz de resolver la consulta.

Consultas Recursivas: El Servidor DNS asume toda la carga


de proporcionar una respuesta completa para la consulta
realizada por el Cliente DNS. El Servidor DNS desarrolla
entonces Consultas Iterativas separadas hacia otros
Servidores DNS (en lugar de hacerlo el Cliente DNS) para
obtener la respuesta solicitada.

Zonas de Autoridad.
Permiten al Servidor Maestro o Primario cargar la informacin de una zona. Cada
Zona de Autoridad abarca al menos un dominio y posiblemente sus sub-
dominios, si estos ltimos no son delegados a otras zonas de autoridad.
La informacin de cada Zona de Autoridad es almacenada de forma local en un
fichero en el Servidor DNS. Este fichero puede incluir varios tipos de registros:

Tipo de Registro. Descripcin.


Registro de direccin que resuelve un nombre de un
A (Address)
anfitrin hacia una direccin IPv4 de 32 bits.
Registro de direccin que resuelve un nombre de un
AAAA
anfitrin hacia una direccin IPv6 de 128 bits.
Registro de nombre cannico que hace que un
CNAME (Canonical nombre sea alias de otro. Los dominios con alias
Name) obtiene los sub-dominios y registros DNS del
dominio original.
Registro de servidor de correo que sirve para definir
MX (Mail Exchanger) una lista de servidores de correo para un dominio,
as como la prioridad entre stos.

CIBERTEC CARRERAS PROFESIONALES


162 Sistemas Operativos Avanzados

Tipo de Registro. Descripcin.


Registro de apuntador que resuelve direcciones
IPv4 hacia el nombre anfitriones. Es decir, hace lo
PTR (Pointer)
contrario al registro A. Se utiliza en zonas de
Resolucin Inversa.
Registro de servidor de nombres que sirve para
NS (Name Server) definir una lista de servidores de nombres con
autoridad para un dominio.
Registro de inicio de autoridad que especifica el
Servidor DNS Maestro (o Primario) que
proporcionar la informacin con autoridad acerca
SOA (Start of Authority)
de un dominio de Internet, direccin de correo
electrnico del administrador, nmero de serie del
dominio y parmetros de tiempo para la zona.
Registro de servicios que especifica informacin
acerca de servicios disponibles a travs del dominio.
Protocolos como SIP (Session Initiation Protocol) y
SRV (Service)
XMPP (Extensible Messaging and Presence
Protocol) suelen requerir registros SRV en la zona
para proporcionar informacin a los clientes.
Registro de texto que permite al administrador
insertar texto arbitrariamente en un registro DNS.
Este tipo de registro es muy utilizado por los
servidores de listas negras DNSBL (DNS-based
TXT (Text)
Blackhole List) para la filtracin de Spam. Otro
ejemplo de uso son las VPN, donde suele requerirse
un registro TXT para definir una llave que ser
utilizada por los clientes.

Las zonas que se pueden resolver son:

Zonas de Reenvo.
Devuelven direcciones IP para las bsquedas hechas para nombres FQDN (Fully
Qualified Domain Name).

En el caso de dominios pblicos, la responsabilidad de que exista una Zona de


Autoridad para cada Zona de Reenvo corresponde a la autoridad misma del
dominio, es decir, y por lo general, quien est registrado como autoridad del
dominio tras consultar una base de datos WHOIS. Quienes compran dominios a
travs de un NIC (por ejemplo ejemplo: www.nic.mx) son quienes se hacen cargo
de las Zonas de Reenvo, ya sea a travs de su propio Servidor DNS o bien a
travs de los Servidores DNS de su ISP.
Salvo que se trate de un dominio para uso en una red local, todo dominio debe
ser primero tramitado con un NIC como requisito para tener derecho legal a
utilizarlo y poder propagarlo a travs de Internet.
Sistemas Operativos Avanzados 163

Zonas de Resolucin Inversa.


Devuelven nombres FQDN (Fully Qualified Domain Name) para las bsquedas
hechas para direcciones IP.
En el caso de segmentos de red pblicos, la responsabilidad de que exista de
que exista una Zona de Autoridad para cada Zona de Resolucin Inversa
corresponde a la autoridad misma del segmento, es decir, y por lo general, quien
est registrado como autoridad del segmento tras consultar una base de datos
WHOIS.
Los grandes ISP, y en algunos casos algunas empresas, son quienes se hacen
cargo de las Zonas de Resolucin Inversa.

4. Configuracin del servidor DNS


Para configurar el servidor DNS BIND se puede realizar creando el archivo
/etc/named.conf manualmente, pero para facilitar su configuracin
recomendamos el uso de la herramienta de configuracin Sistema de nombre de
dominio (system-config-bind).

4.1. Archivo /etc/named.conf

Es una coleccin de sentencias que estn encerradas entre llaves { }, y terminan


con punto y coma.

No edite manualmente el archivo /etc/named.conf o cualquiera de los archivos


del directorio /var/named/ si esta usando la herramienta de configuracin
Sistema de nombre de dominio. Cualquier cambio manual a estos ser
sobrescrito la siguiente vez que use la herramienta de configuracin Sistema
de nombre de dominio.

4.2. Configuracin del servidor BIND DNS

Haga clic en el men Sistema del panel superior, luego en Administracin,


luego en Configuracin de servidores, luego en Sistema de nombres de
dominio. Se mostrara la imagen inferior, luego haga clic en el botn
Aceptar.

CIBERTEC CARRERAS PROFESIONALES


164 Sistemas Operativos Avanzados

La siguiente imagen muestra configuracin de los archivos de zona


predeterminados.
Sistemas Operativos Avanzados 165

Guarde los cambios haciendo clic en Guardar, se creara el archivo


/etc/named.conf usando los archivos de zona ubicados en el directorio
/var/named/

Ahora tenemos el servidor BIND DNS en su configuracin bsica para que


funcione como servidor BIND DNS de solo-cach debemos agregar la
sentencia allow-query para permitir las peticiones de consulta de los clientes
DNS (resolvers).
Seleccione Servidor DNS y luego haga clic en el botn Propiedades, se
mostrara la imagen inferior:

En la vista superior derecha seleccionar la opcin allow-query, luego


hacer clic en el botn +.
En la vista inferior derecha seleccionar Direccin IPv4, luego llene los
campos de la lista, agregando la direccin de red y luego haga clic en el
botn Aadir.
Haga clic en el botn Aplicar y luego en el botn Aceptar.
Guarde los cambios haciendo clic en Guardar.

CIBERTEC CARRERAS PROFESIONALES


166 Sistemas Operativos Avanzados

Se mostrar el siguiente mensaje, clic en Si.

Luego se visualiza el siguiente mensaje, clic en Aceptar.

Otra forma de iniciar el servidor DNS es ejecutando el siguiente


comando: /etc/init.d/named start

4.3. Configuracin del Firewall local

En forma predeterminada el equipo tiene configurado un Firewall personal


que permite que el equipo se conecta hacia fuera sin ninguna restriccin
pero cualquier peticin de acceso al equipo es denegada.
Sistemas Operativos Avanzados 167

Para que las peticiones al servidor DNS de solo-cach puedan ingresar al


equipo debemos configurar el Firewall local, permitiendo nicamente que las
peticiones al puerto 53 usando los protocolos TCP y UDP estn permitidas.

Haga clic en el men Sistema del panel superior, luego en Administracin,


luego en Nivel de seguridad y cortafuegos. Se mostrara la imagen
inferior:
Clic en la pestaa Opciones de Cortafuegos.
Clic en la opcin Otros puertos.
Clic en el botn Aadir.

Ingrese el nmero de puerto 53 y elija el protocolo TCP, luego clic en el


botn Aceptar.
Repita este paso para configurar puerto 53, protocolo UDP.

CIBERTEC CARRERAS PROFESIONALES


168 Sistemas Operativos Avanzados

Se mostrara la siguiente imagen:

Haga clic en el botn Aplicar y luego en el botn Aceptar.

4.4. Configuracin del cliente DNS (resolver)

Para configurar el cliente DNS en un equipo Linux solo se debe modificar el


archivo /etc/resolv.conf y agregar la siguiente entrada:

nameserver ip_servidor_dns

En el caso de que el equipo cliente tenga instalado Windows:


Sistemas Operativos Avanzados 169

Seleccione el icono Mis sitios de red, haga clic derecho y seleccione


Propiedades del men de opciones.
Luego haga clic sobre Conexin de rea local y seleccione la opcin
Propiedades.
Seleccione la opcin Protocolo Internet (TCP/IP) de la lista y haga clic en
la opcin Propiedades.
Elija la opcin Usar las siguientes direcciones de servidor DNS e ingrese
la direccin IP de su nuevo servidor DNS en la caja Servidor DNS
preferido.
Presione el botn Aceptar y nuevamente clic en el botn Aceptar, cierre
la ventana Conexiones de red.

CIBERTEC CARRERAS PROFESIONALES


170 Sistemas Operativos Avanzados

5. CONSULTAS A LOS SERVIDORES DNS


5.1. Comando host
Herramienta que permite realizar consultas a los servidores de nombre.

5.2. Comando dig


Herramienta que permite actualizar el archivo de zona named.ca y realizar
consultas DNS.
Sistemas Operativos Avanzados 171

5.3. Comando nslookup


Permite realizar consultas interactivas a los servidores DNS.

debian:~# nslookup
> server a.root-servers.net
Default server: a.root-servers.net
Address: 198.41.0.4#53
> set q=ns
> edu.pe.
Server: a.root-servers.net
Address: 198.41.0.4#53

Non-authoritative answer:
*** Can't find edu.pe.: No answer

Authoritative answers can be found from:


pe nameserver = NS-PE.RIPE.NET.
pe nameserver = ICHU.RCP.NET.pe.
pe nameserver = EKEKO.RCPIP.NET.
ICHU.RCP.NET.pe internet address = 161.132.5.14
EKEKO.RCPIP.NET internet address = 209.45.127.2
NS-PE.RIPE.NET internet address = 193.0.12.173
> server NS-PE.RIPE.NET
Default server: NS-PE.RIPE.NET
Address: 193.0.12.173#53
Default server: NS-PE.RIPE.NET
Address: 2001:610:240:0:53:cc:12:173#53
> set q=ns
> cibertec.edu.pe
Server: NS-PE.RIPE.NET
Address: 193.0.12.173#53

Non-authoritative answer:
*** Can't find cibertec.edu.pe: No answer

Authoritative answers can be found from:


cibertec.edu.pe nameserver = NS3.FIRSTCOM.COM.pe.
cibertec.edu.pe nameserver = DNSCIB.cibertec.edu.pe.
cibertec.edu.pe nameserver = NS3.ATTLA.COM.pe.
DNSCIB.cibertec.edu.pe internet address = 200.0.119.61
> server NS3.FIRSTCOM.COM.pe
Default server: NS3.FIRSTCOM.COM.pe
Address: 200.14.241.36#53
> set q=any
> cibertec.edu.pe
Server: NS3.FIRSTCOM.COM.pe
Address: 200.14.241.36#53

cibertec.edu.pe nameserver = ns3.firstcom.com.pe.


cibertec.edu.pe nameserver = dnscib.cibertec.edu.pe.
cibertec.edu.pe nameserver = ns3.attla.com.pe.
cibertec.edu.pe
origin = dnscib.cibertec.edu.pe
mail addr = root.upc.edu.pe
serial = 3034526519
refresh = 120
retry = 900
expire = 1200
minimum = 1200
cibertec.edu.pe mail exchanger = 10 fenix-si.cibertec.edu.pe.
cibertec.edu.pe mail exchanger = 5 antispamsi.cibertec.edu.pe.

CIBERTEC CARRERAS PROFESIONALES


172 Sistemas Operativos Avanzados

> set q=mx


> cibertec.edu.pe
Server: NS3.FIRSTCOM.COM.pe
Address: 200.14.241.36#53

cibertec.edu.pe mail exchanger = 10 fenix-si.cibertec.edu.pe.


cibertec.edu.pe mail exchanger = 5 antispamsi.cibertec.edu.pe.
> exit

debian:~#

Solo digite el texto que se encuentra resaltado en negrita.

6. CONFIGURACIN DEL SERVIDOR DNS PRIMARIO

Para esta configuracin tendremos que plantear un escenario ficticio:


Nombre del dominio: vasquez.com.pe
Servidores DNS proporcionados por nuestro ISP: 200.48.225.130,
200.48.225.146
Puerta de enlace: 192.168.1.1

6.1. Creacin de una nueva zona directa

Haga clic en el men Sistema del panel superior, luego en Administracin,


luego en Configuracin de servidores, luego en Sistema de nombres de
dominio.
Clic en Nuevo.
Sistemas Operativos Avanzados 173

Seleccionar el elemento a agregar, en este caso Zona.

En la seccin Clase clic en Aceptar.

Ingrese el nombre del domino, clic en Aceptar.

CIBERTEC CARRERAS PROFESIONALES


174 Sistemas Operativos Avanzados

Se mostrara los parmetros de la zona, clic en Aceptar.


Sistemas Operativos Avanzados 175

Se mostrara la venta principal de configuracin


Clic en Guardar.

6.2. Configurando la zona

6.2.1. Agregando un nuevo Registro de Recurso (RR)

Seleccione el dominio.
Clic en Nuevo.

CIBERTEC CARRERAS PROFESIONALES


176 Sistemas Operativos Avanzados

6.2.2. Agregando un nuevo host

Clic en A Direccin IPv4


Se mostrara una nueva ventana
Ingrese el Nombre de dominio totalmente calificado (FQDN), por
ejemplo para el servidor Web: server1.vasquez.com.pe.
Sistemas Operativos Avanzados 177

Marcando la casilla Crear Record de mapeo inverso se creara la


zona inversa.
Clic en Guardar.

6.2.3. Agregando un nuevo alias

Clic en CNAME Alias


Se mostrara una nueva ventana
Ingrese el alias en la casilla Nombre de Dominio.
Ingrese el Nombre de dominio totalmente calificado (FQDN) en la
casilla Nombre Cannico.
Clic en Aceptar.

CIBERTEC CARRERAS PROFESIONALES


178 Sistemas Operativos Avanzados

Se mostrara la ventana principal.


Clic en Guardar.

Luego finalizada la configuracin se crearan en el directorio /var/named los


siguientes archivos:
o vasquez.com.pe.db Archivo de zona directa
o 192.168.1.db Archivo de zona inversa
Sistemas Operativos Avanzados 179

6.3. Consultas al servidor DNS Primario

Desde un equipo cliente ejecutamos los comandos mostrados en la figura


inferior para comprobar el funcionamiento del servidor DNS Primario.

CIBERTEC CARRERAS PROFESIONALES


180 Sistemas Operativos Avanzados

Autoevaluacin

Segn lo expuesto en clase, de un ejemplo de cmo usar el servidor DNS Primario.


Sistemas Operativos Avanzados 181

12
SEMANA

SERVIDOR DHCP

TEMA
Entender e implementar el servidor DHCP

OBJETIVOS ESPECFICOS
Comprender el funcionamiento del servidor DHCP

CONTENIDOS
Introduccin

Configuracin de un servidor DHCP

Configuracin de cliente DHCP

CIBERTEC CARRERAS PROFESIONALES


182 Sistemas Operativos Avanzados

1. Introduccin.
DHCP (acrnimo de Dynamic Host Configuration Protocol que se traduce
Protocolo de configuracin dinmica de servidores) es un protocolo que permite a
dispositivos individuales en una red de direcciones IP obtener su propia
informacin de configuracin de red (direccin IP; mscara de sub-red, puerta de
enlace, etc.) a partir de un servidor DHCP. Su propsito principal es hacer ms
fciles de administrar las redes grandes. DHCP existe desde 1993 como
protocolo estndar y se describe a detalle en el RFC 2131.
Sin la ayuda de un servidor DHCP, tendran que configurarse de forma manual
cada direccin IP de cada anfitrin que pertenezca a una Red de rea Local. Si
un anfitrin se traslada hacia otra ubicacin donde existe otra Red de rea Local,
se tendr que configurar otra direccin IP diferente para poder unirse a esta
nueva Red de rea Local. Un servidor DHCP entonces supervisa y distribuye las
direcciones IP de una Red de rea Local asignando una direccin IP a cada
anfitrin que se una a la Red de rea Local. Cuando, por mencionar un ejemplo,
una computadora porttil se configura para utilizar DHCP, a sta le ser asignada
una direccin IP y otros parmetros de red necesarios para unirse a cada Red de
rea Local donde se localice.

Existen tres mtodos de asignacin en el protocolo DHCP:


Asignacin manual: La asignacin utiliza una tabla con
direcciones MAC (acrnimo de Media Access Control Address,
que se traduce como direccin de Control de Acceso al
Medio). Slo los anfitriones con una direccin MAC definida en
dicha tabla recibir el IP asignada en la misma tabla. sto se
hace a travs de los parmetros hardware ethernet y fixed-
address.
Asignacin automtica: Una direccin de IP disponible dentro
de un rango determinado se asigna permanentemente al
Sistemas Operativos Avanzados 183

anfitrin que la requiera.


Asignacin dinmica: Se determina arbitrariamente un rango
de direcciones IP y cada anfitrin conectado a la red est
configurada para solicitar su direccin IP al servidor cuando se
inicia el dispositivo de red, utilizando un intervalo de tiempo
controlable (parmetros default-lease-time y max-lease-time)
de modo que las direcciones IP no son permanentes y se
reutilizan de forma dinmica.

2. Configuracin de un servidor DHCP en Linux

Se requiere instalar el paquete dhcp el cual deber estar incluido en los discos de
instalacin de la mayora de las distribuciones.

yum -y install dhcp

Si se utiliza Red Hat Enterprise Linux, solo bastar realizar lo siguiente para
instalar o actualizar la programtica necesaria:

up2date -i dhcp

3. DHCP - Fichero de configuracin.

Considerando como ejemplo que se tiene una red local con las siguientes
caractersticas:

Nmero de red 192.168.0.0


Mscara de sub-red: 255.255.255.0
Puerta de enlace: 192.168.0.1
Servidor de nombres: 192.168.0.1, 148.240.241.42 y
148.240.241.10
Servidor Wins: 192.168.0.1
Servidores de tiempo: 66.187.224.4 y 66.187.233.4
Rango de direcciones IP a asignar de modo dinmico:
192.168.0.11-192.168.0.199

Puede utilizar el siguiente contenido para crear desde cero el fichero


/etc/dhcpd.conf.

ddns-update-style interim;
ignore client-updates;
shared-network miredlocal {

CIBERTEC CARRERAS PROFESIONALES


184 Sistemas Operativos Avanzados

subnet 192.168.0.0 netmask 255.255.255.0 {


option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name "redlocal.net";
option domain-name-servers 192.168.0.1, 148.240.241.42,
148.240.241.10;
option netbios-name-servers 192.168.0.1;
option ntp-servers 66.187.224.4, 66.187.233.4;
range 192.168.0.11 192.168.0.199;
default-lease-time 21600;
max-lease-time 43200;
}
host m253 {
option host-name "m253.redlocal.net";
hardware ethernet 00:50:BF:27:1C:1C;
fixed-address 192.168.0.253;
}
host m254 {
option host-name "m254.redlocal.net";
hardware ethernet 00:01:03:DC:67:23;
fixed-address 192.168.0.254;
}
}

Una buena medida de seguridad es hacer que el servicio de dhcpd solo funcione
a travs de la interfaz de red utilizada por la LAN, esto en el caso de tener
mltiples dispositivos de red. Edite el fichero /etc/sysconfig/dhcpd y agregue
como argumento del parmetro DHCPDARGS el valor eth0, eth1, eth2, etc., o lo
que corresponda. Ejemplo, considerando que eth0 es la interfaz correspondiente
a la LAN:

# Command line options here


DHCPDARGS=eth0

Para ejecutar por primera vez el servicio, ejecute:

/sbin/service dhcpd start

Para hacer que los cambios hechos a la configuracin surtan efecto, ejecute:

/sbin/service dhcpd restart

Para detener el servicio, ejecute:

/sbin/service dhcpd stop

Para aadir dhcpd al arranque del sistema, ejecute:


Sistemas Operativos Avanzados 185

/sbin/chkconfig dhcpd on

Hecho lo anterior solo bastar con configurar como interfaces DHCP las
estaciones de trabajo que sean necesarias sin importar que sistema operativo
utilicen.

4. Configuracin de un cliente DHCP:


Para hacer que una mquina linux use IPs dadas por una servidor DHCP basta
indicarle que use IP dinmica, lo que se consigue poniendo las siguientes lneas
en /etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Tambin hay que comentar la lnea GATEWAY=...
en el fichero /etc/sysconfig/network

5. Archivo de registro
En el servidor DHCP podemos apreciar la concesin de la direccin IP al equipo
cliente DHCP ejecutando el siguiente comando:
tail f /var/log/messages

CIBERTEC CARRERAS PROFESIONALES


186 Sistemas Operativos Avanzados

Autoevaluacin
1. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.
Cul es el nombre del servicio que esta siendo accedido?
Sistemas Operativos Avanzados 187

13
SEMANA

SERVIDOR WEB

TEMA
Describir el uso del Servidor HTTP Apache.

OBJETIVOS ESPECFICOS
Comprender el funcionamiento del Servidor HTTP Apache.

CONTENIDOS
Introduccin

Configuracin del Servidor HTTP Apache.

CIBERTEC CARRERAS PROFESIONALES


188 Sistemas Operativos Avanzados

5. INTRODUCCIN
El Servidor HTTP Apache es un servidor Web de tecnologa Open Source slido
y para uso comercial desarrollado por la Apache Software Foundation,
actualmente el proyecto se encuentra en la versin 2.2.4.

Pgina oficial: http://httpd.apache.org.


Documentacin en espaol: http://httpd.apache.org/docs/2.0/es/

Tiene una estructura modular, que permite agregar funciones que no se


encuentran en el cdigo fuente de Apache. Estos mdulos pueden ser
desarrollados por Apache o por terceros.

Adicionalmente se tiene que HTTP Apache registra el acceso de cada navegador


web generando un hit (nombre del host, da, hora, pagina accedida) en el archivo
access.log. Cualquier problema con el servidor HTTP Apache se registra en el
archivo error.log.

6. INSTALACIN DEL SERVIDOR HTTP APACHE


HTTP Apache se puede instalar tanto en Linux como en Windows 2000/2003,
para el caso especfico de Linux se deben instalar los siguientes paquetes:
httpd Potente, eficiente y extensible servidor web.
Sistemas Operativos Avanzados 189

httpd-manual Paquete que contiene el manual y la gua de referencia


para el servidor HTTP Apache.
system-config-httpd Herramienta de configuracin para el servidor HTTP
Apache.

Activamos el demonio httpd:


/etc/init.d/httpd start

No olvidar permitir en el Firewall local las peticiones de acceso al servidor


HTTP Apache.

Desde un equipo cliente podemos cargar la pgina web predeterminada.

CIBERTEC CARRERAS PROFESIONALES


190 Sistemas Operativos Avanzados

7. CONFIGURACIN DEL SERVIDOR HTTP APACHE

El archivo /etc/httpd/conf/httpd.conf es el archivo de configuracin del servidor


HTTP Apache, donde podemos:
Definir las direcciones IP/nmeros de puertos.
Mdulos.
Archivos de registro.
Definir el usuario que inicia el servidor.
Control de acceso.
Mensajes de error.
Hosts virtuales, etc.

Para realizar los respectivos cambios utilizar cualquier editor de textos (vi,
emacs, etc.)

Este archivo es bastante extenso, por este motivo est dividido en tres secciones
principales:
Section 1: Global Environment
Section 2: Main Server Configuration
Section 3: Virtual Hosts

En forma predeterminada despus de la instalacin el servidor HTTP Apache


tiene la configuracin bsica que le permite funcionar.
Sistemas Operativos Avanzados 191

### Section 1: Global Environment


# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
ServerRoot "/etc/httpd"
# PidFile: The file in which the server should record its process
# identification number when it starts.
PidFile run/httpd.pid
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default.
Listen 80
# User/Group: The name (or #number) of the user/group to run httpd as.
User apache
Group apache
### Section 2: 'Main' server configuration
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
ServerAdmin root@localhost
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
DocumentRoot "/var/www/html"
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
DirectoryIndex index.html index.html.var
# ErrorLog: The location of the error log file.
ErrorLog logs/error_log
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
# The location and format of the access logfile (Common Logfile Format).
CustomLog logs/access_log combined
### Section 3: Virtual Hosts

No olvidar configurar el servidor ISC BIND para poder usar el nombre de


domino www.vasquez.com.pe.

3.1. Pagina web predeterminada

La pagina predeterminada index.html para el acceso al servidor web debe


estar ubicada en el directorio /var/www/html/.

Con un editor de textos crearemos nuestra propia pgina web, por ejemplo:
vi /var/www/html/index.html

<html>
<body>
<p align=center><font size=8>Funciona!!!</font></p>
</body>
</html>

CIBERTEC CARRERAS PROFESIONALES


192 Sistemas Operativos Avanzados

3.2. Archivos de registro

En el servidor HTTP Apache podemos apreciar que equipos se conectan al


servidor ejecutando el siguiente comando:
tail f /var/log/httpd/access_log

En caso de algn error en el servidor podemos ejecutar el comando:


tail f /var/log/httpd/error_log
Sistemas Operativos Avanzados 193

Ejercicio 1:
Crear una segunda pgina web en el directorio /var/www/html/datos/ y probar el
acceso.

Anote sus observaciones:

-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------

CIBERTEC CARRERAS PROFESIONALES


194 Sistemas Operativos Avanzados

4. Virtual Hosts
El trmino Hosts Virtuales se refiere al hecho de mantener ms de un servidor en
una misma mquina, diferenciando se nicamente por su nombre de dominio.
Por ejemplo: www.cibertec.com.pe y www.cibertec.org.pe con la misma direccin
IP.

Obviamente estos nombres deben estar registrados en el servidor DNS.

5. CONFIGURACIN DE LOS HOSTS VIRTUALES

Paso 1. Apache identifica un host virtual con el parmetro NameVirtualHost, la IP


indicada ser tomada como referencia para realizar la bsqueda de sitios
virtuales en las secciones definidas para cada sitio empiezan con
<VirtualHost ip> y finaliza con </VirtualHost>.

### Section 3: Virtual Hosts


NameVirtualHost 192.168.1.3
<VirtualHost 192.168.1.3>
ServerName www.vasquez.com.pe
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost 192.168.1.3>
ServerName www.vasquez.org.pe
DocumentRoot /var/www/html1/
</VirtualHost>

Paso 2. Crear el directorio /var/www/html1

Paso 3. Con un editor de textos crearemos nuestra propia pgina web, por
ejemplo: vi /var/www/html1/index.html

<html>
<body>
<p align=center><font size=8>Funciona Host Virtual!!!</font></p>
</body>
</html>

Paso 4. Configuracin del servidor DNS primario para agregar dominio


vasquez.org.pe, y agregar el registro correspondiente
Sistemas Operativos Avanzados 195

Paso 5. Reiniciar los demonios: named y hhtpd.

Paso 6. Probar desde un equipo cliente el acceso al servidor web

CIBERTEC CARRERAS PROFESIONALES


196 Sistemas Operativos Avanzados

Ejercicio 2:
Crear una segunda pgina web en el directorio /var/www/html2 y probar el
acceso.

Anote sus observaciones:

-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
Sistemas Operativos Avanzados 197

Autoevaluacin
2. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.
Cul es el nombre del servicio que esta siendo accedido?
(a) imap
(b) smbd
(c) domain
(d) pop3

3. Cul es el archivo de configuracin del servidor Web?


(a) httpd.conf
(b) apache.conf
(c) web.conf
(d) http.conf

4. El servidor web acepta peticiones al puerto 80 qu directiva debemos


modificar par que ahora solo acepte peticiones la puerto 8080?
(a) Ports
(b) Listen
(c) ServerDocument
(d) ServerRoot

5. Si deseo permitir el acceso al servidor web qu protocolo debo seleccionar


en el cortafuegos?
(a) smtp
(b) imap
(c) pop3
(d) http

CIBERTEC CARRERAS PROFESIONALES


198 Sistemas Operativos Avanzados

14
SEMANA

SERVIDOR DE CORREO

TEMA
Describir e implementar el uso de de un servidor de correo

OBJETIVOS ESPECFICOS
Comprender el funcionamiento de un servidor.

Configuracin del servicio de correo en Linux con Postfix

CONTENIDOS
Introduccin

Funcionamiento

Configuracin
Sistemas Operativos Avanzados 199

1. INTRODUCCIN
Los servidores de Correos estn basados en una estructura Cliente/Servidor y
consta de:
Los Agentes de Transporte o MTA (Mail Transport Agent), que son los
encargados de transferir los mensajes a su correcto destino. Evolution,
Mozilla Mail, Thunderbird, y Mutt, son usados para leer y redactar mensajes.
Los Agentes de Usuario o MUA (Mail User Agent) que tienen como propsito
el aislar al usuario de los Agentes de Transporte. Sendmail, Postfix, y Exim
son los MTAs proporcionados por CentOS.

En Software Libre se tiene que el servidor de Correos consta de los siguientes


elementos mnimos:
Servidor SMTP (Simple Mail Transfer Protocol)
o Proporciona un mtodo para transferir correos sobre un protocolo de
transporte como el TCP/IP.
o Protocolo utilizado para el envo de mensajes a otros servidores de SMTP
y la recepcin de los mensajes de los usuarios.
o El puerto que habilita es el 25.
Servidor POP3 (Post Office Protocol)
o Permite recuperar el correo al MUA, pero este se almacenar localmente
en el disco duro de las mquinas de los usuarios.
o La entrega de los mensajes a los clientes del servidor es mediante un
acceso autenticado.
o El puerto que habilita es el 110.
Servidor IMAP (Internet Message Access Protocol).
o Es un protocolo con ms opciones a comparacin de POP3, soporta
algunas caractersticas que no estn incluidas en POP, como la
manipulacin de mltiples carpetas remotas, visualizar correos sin
necesidad de bajarlo del servidor.
o Facilita la utilizacin de webmails (servicios de correo basado sobre web).
o El puerto que habilita es el 143.

2. INSTALACIN
Para tener funcionando el servidor de Correos se deben instalar los siguientes
paquetes:
postfix MTA (Mail Transport Agent). Servidor SMTP.
dovecot Servidor IMAP/POP3.

3. CONFIGURACIN

3.1. Configuracin Postfix

Postfix tiene dos archivos de configuracin los cuales son:


/etc/postfix/master.cf

CIBERTEC CARRERAS PROFESIONALES


200 Sistemas Operativos Avanzados

Este archivo contiene la configuracin para los procesos maestros de


Postfix. Cada lnea indica como un componente debe funcionar

/etc/postfix/main.cf
Es el archivo principal, donde reside el corazn del funcionamiento de
Postfix. No tiene una estructura concreta, por lo que se recomienda
analizar con mayor detalle las directivas segn sus propias
necesidades.

Paso 1. Agregue las siguientes lneas en el archivo /etc/postfix/main.cf

# Parmetros configurables por el usuario


myhostname = centos.vasquez.com.pe
mydomain = vasquez.com.pe
myorigin = $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
inet_interfaces = all

Paso 2. Desactivar el MTA Sendmail en el arranque del sistema.

Paso 3. Activar el MTA Postfix en el arranque del sistema.

Paso 4. Iniciar el servidor SMTP: /etc/init.d/postfix start


Sistemas Operativos Avanzados 201

3.2. Configuracin dovecot

Paso 1. El archivo de configuracin es /etc/dovecot.conf, agregue la


siguiente lnea:

protocols = imap pop3

Paso 2. Iniciar el servidor SMTP: /etc/init.d/dovecot start

3.3. Configuracin Firewall local

Habilitar los puertos: SMTP (25) y POP3 (110)

CIBERTEC CARRERAS PROFESIONALES


202 Sistemas Operativos Avanzados

3.4. Configuracin del MUA

Se usar el programa KMail como cliente de correo.

Paso 1. Haga clic en el programa KMail, se mostrara la siguiente imagen.

Paso 2. Selecciones el tipo de cuenta POP3, luego clic en el botn


Siguiente.

Paso 3. Ingrese los datos correspondiente en cada casilla, luego clic en el


botn Siguiente.
Sistemas Operativos Avanzados 203

Paso 4. Ingrese el nombre de la cuenta de usuario y la contrasea, luego


clic en el botn Siguiente.

Paso 4. Ingrese la direccin IP de los servidores: entrante (SMTP) y


saliente (POP3), luego clic en el botn Finalizar.

Se mostrara la siguiente imagen.

CIBERTEC CARRERAS PROFESIONALES


204 Sistemas Operativos Avanzados

4. COMPROBANDO EL FUNCIONAMIENTO DEL SERVIDOR DE


CORREOS
Paso 1. Enviar un mensaje usando el comando mail (sistema de
procesamiento de correo inteligente que permite enviar y recibir
mensajes).

Paso 2. Ver en el archivo de registro las transacciones del servidor SMPT.


tail f /var/log/maillog
Sistemas Operativos Avanzados 205

Paso 3. Desde el cliente de correo haga clic en Comprobar correo en, luego
podremos ver en el archivo de registro las transacciones del servidor
POP3.
tail f /var/log/maillog

CIBERTEC CARRERAS PROFESIONALES


206 Sistemas Operativos Avanzados

5. RESTRICCIONES

Para evitar que nuestro servidor de correos sea usado para hacer SPAM o sea
usado como Open Relay tenemos las siguientes restricciones:

Restricciones del emisor (smtpd_sender_restrictions).


Restricciones de nombre/direccin cliente (smtpd_client_restrictions).
Uso del comando HELO (smtpd_helo_required y smtpd_helo_restrictions).
Restricciones del destinatario (smtpd_recipient_restrictions).
o Restricciones UCE.

5.1. Restricciones del emisor


El parmetro smtpd_sender_restrictions restringe las direcciones que el
sistema acepta cuando se ingresa el comando MAIL FROM.

Una configuracin tpica en el main.cf sera:

smtpd_sender_restrictions = hash:/etc/postfix/access,
permit_mynetworks,
reject_unknown_address

Las listas de control de acceso (ACL), son las direcciones de e-mail que NO
pueden enviar correo a nuestro servidor. Contenido del archivo
/etc/postfix/access:

juan@yahoo.com REJECT
techmail.com REJECT

Cada vez que se modifica el archivo /etc/postfix/access debemos ejecutar:


postmap hash:/etc/postfix/access
postfix reload

5.2. Restricciones de nombre/direccin cliente

Parmetro que restringe desde que clientes este sistema acepta conexiones
SMTP. Las listas de bloqueo son unas listas de IP de servidores que
supuestamente envan spam. Entre las listas ms usadas se encuentran las
RBL de mail-abuse.org o las SBL de spamhaus.org.

Una configuracin tpica en el main.cf sera:

smtpd_client_restrictions = hash:/etc/postfix/access,
reject_maps_rbl
maps_rbl_domains = rbl.maps.vix.com,
relays.orbd.org,
sbl.spamhaus.org
Sistemas Operativos Avanzados 207

5.3. Uso del comando HELO

El parametro smtpd_helo_required determina si los clientes deben enviar un


HELO (o EHLO) al servidor antes de comenzar una sesin SMTP. El
parmetro smtpd_helo_restrictions restringe aquellos hosts que pueden
enviar el comando HELO.

Una configuracin tpica en el main.cf sera:

smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
reject_invalid_hostname,
reject_unknown_hostname,
reject_non_fqdn_hostname

5.4. Restricciones del destinatario

El parmetro smtpd_recipient_restrictions restringe los recipientes o


destinatarios que acepta el Servidor de Correos cuando se ejecuta RCPT
TO.

smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
reject_rbl_client relays.orbd.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org

6. COMANDOS
6.1. postqueue

Controla la cola de Postfix

Sintaxis:
postqueue -f
postqueue -p

Donde:
-f Intenta entregar todos los mensajes que se encuentran en la
cola de mensajes.
-p Lista los mensajes que se encuentran en la cola de mensajes.

CIBERTEC CARRERAS PROFESIONALES


208 Sistemas Operativos Avanzados

6.2. postsuper

Gestiona las tareas en la cola Postfix.

Sintaxis:
postsuper d id_cola
postsuper h id_cola
postsuper H id_cola

Donde:
-d Borra un mensaje que se encuentra en la cola Postfix.
Especifique d ALL para borrar todos los mensajes.
-h Mueve un mensaje a la cola hold. Especifique h ALL para
mover todos los mensajes.
-H Mueve un mensaje de la cola hold a la cola deferred.
Especifique H ALL para mover todos los mensajes.
Sistemas Operativos Avanzados 209

6.3. postconf

Utilitario de configuracin que muestra informacin referente al sistema de


correo Postfix.

CIBERTEC CARRERAS PROFESIONALES


210 Sistemas Operativos Avanzados

Autoevaluacin

También podría gustarte