Está en la página 1de 222

Sistemas Operativos

Avanzados (Linux)
2

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 3

Índice

Presentación 5
Red de contenidos 6
UNIDAD DE APRENDIZAJE 1
INTRODUCCIÓN AL SOFTWARE LIBRE
TEMA 1 : Introducción al software libre, características de 7
Linux
UNIDAD DE APRENDIZAJE 2
COMANDOS BÁSICOS Y CONFIGURACIÓN DE RED
TEMA 2 : Comandos Básicos para el manejo de Linux 27
UNIDAD DE APRENDIZAJE 3
ADMINISTRACIÓN DE USUARIOS Y GRUPOS
TEMA 3 : Administrar usuarios y grupos en un ambiente 45
Windows
UNIDAD DE APRENDIZAJE 4
PROCESO DE ARRANQUE EN LINUX
TEMA 4 : Proceso de aranque, inicio y cierre del sistema. 57
UNIDAD DE APRENDIZAJE 5
FILESYSTEMS EN LINUX
TEMA 5 : Manejo de las particiones en linux 83
UNIDAD DE APRENDIZAJE 6
INSTALACIÓN DE APLICACIONES EN LINUX
TEMA 6 : Formas de instalar aplicaciones en Linux 109
UNIDAD DE APRENDIZAJE 7
Semana de Exámenes Parciales de Teoría
UNIDAD DE APRENDIZAJE 8
Examen Parcial de Laboratorio
UNIDAD DE APRENDIZAJE 9
ANÁLISIS DE ARCHIVOS DE REGISTRO DEL SISTEMA LINUX
TEMA 9 : Análisis de archivos de registro y cuotas de disco 123

CIBERTEC CARRERAS PROFESIONALES


4

UNIDAD DE APRENDIZAJE 10
SERVIDOR NFS y SAMBA
TEMA 10 : Función de los servidores NFS y Samba 135
UNIDAD DE APRENDIZAJE 11
SERVIDORES DNS
TEMA 11 : Uso del Sistema de Nombres de Dominio (DNS). 167
UNIDAD DE APRENDIZAJE 12
SERVIDOR DHCP
TEMA 12 : Implementar el servidor DHCP 191
UNIDAD DE APRENDIZAJE 13
SERVIDOR WEB
TEMA 13 : Servidor http 197
UNIDAD DE APRENDIZAJE 14
SERVIDOR DE CORREO
TEMA 14 : Implementar el uso de de un servidor de correo 209
Exámenes Finales.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 5

Presentación
El curso Sistemas Operativos Avanzados (Linux) muestra como primera parte temas
de introducción al sistema operativo Linux, con el cual se va tomar una primera
visión de este maravilloso sistema operativo, para luego entrara mas en detalle el
tema de la administración de este.

La segunda parte se enfoca en la configuración de Servidores de Internet: Servidor


Samba, Servidor NFS, Servidor DNS, Servidor DHCP, Servidor Web, Servidor de
Correo. La instalación y configuración de estos servidores se realizara modificando
sus archivos de configuración correspondientes, de tal manera que el participante
podrá realizar sus propias experiencias sin importar la Distribución Linux a usar, sin
embargo la distribución utilizada para la explicación 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 7

UNIDAD DE
APRENDIZAJE

1
TEMA

Introducción al Software Libre


TEMA
Aspectos Generales GNU/Linux

OBJETIVOS ESPECÍFICOS
 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

CIBERTEC CARRERAS PROFESIONALES


8

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 administración eficaz de sus recursos. Comienza a trabajar
cuando se enciende el computador, y gestiona el Hardware de la máquina desde los
niveles más básicos, permitiendo también la interacción con el usuario.

1.1 Función de un Sistema Operativo

Los sistemas operativos simplifican el manejo de la computadora, desempeñan una


serie de funciones básicas esenciales para la gestión del equipo. Entre las más
destacables, cada una ejercida por un componente interno (módulo en núcleos
monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:
• Proporcionar más 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).

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 9

• 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 década de 1970 y principios de la década de 1980, la influencia


de Unix en círculos académicos indujo a su adopción en masa (principalmente la
variante BSD, que había surgido en la Universidad de California, Berkeley) en varias
compañías que se iniciaban por aquel entonces, siendo la más destacada Sun
Microsystems. Hoy en día, junto a los sistemas Unix certificados, también se pueden
encontrar sistemas similares a Unix, como Linux y los derivados de BSD.

1.3 BSD
BSD son las iníciales de Berkeley Software Distribution (en español, Distribución 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 años del sistema Unix sus creadores, los Laboratorios Bell de la
compañía AT&T, autorizaron a la Universidad de California en Berkeley y a otras
universidades a utilizar el código fuente y adaptarlo a sus necesidades. Durante la
década 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 creación
de una versión inspirada en el sistema Unix utilizando las aportaciones que ellos
habían realizado, permitiendo luego su distribución con fines académicos y al cabo
de algún tiempo reduciendo al mínimo las restricciones referente a su copia,
distribución o modificación.

Algunos sistemas operativos descendientes del sistema desarrollado por Berkeley


son Solaris, FreeBSD, NetBSD, OpenBSD y Mac OS X. BSD también 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

CIBERTEC CARRERAS PROFESIONALES


10

1.4 GNU/Linux
Linux es un sistema operativo tipo Unix que se distribuye bajo la Licencia Pública
General de GNU (GPL), es decir que es software libre. Su nombre proviene del
Núcleo 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 más relevante
del movimiento del software libre en la actualidad, nos referimos a Richard Stallman.
El proyecto GNU fue diseñado con el objetivo de crear un sistema operativo
completamente libre así como también 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 debía ser
liberado bajo una licencia diseñada para garantizar esos derechos al tiempo que
evitase restricciones posteriores de los mismos. La idea se conoce como la Licencia
General Pública de GNU (GPL).

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


logísticos, legales y financieros al proyecto GNU. La FSF también contrató

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 11

programadores para contribuir a GNU, aunque una porción sustancial del desarrollo
fue (y continúa siendo) producida por voluntarios. A medida que GNU ganaba
renombre, negocios interesados comenzaron a contribuir al desarrollo o
comercialización de productos GNU y el correspondiente soporte técnico. El más
prominente y exitoso de ellos fue Cygnus Solutions, ahora parte de Red Hat.

1.4.1.1 Etimología
GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). En
español, se recomienda pronunciarlo ñu como el antílope africano, por ello, el
término mayoritariamente se deletrea (GNU) para su mejor comprensión.

1.4.1.2 Free Software Foundation


La Fundación para el Software Libre (Free Software Foundation) es una
organización creada en Octubre de 1985 por Richard Matthew Stallman y otros
entusiastas del Software Libre con el propósito de difundir este movimiento.

"La Fundación para el Software Libre (FSF) está dedicada a eliminar las
restricciones sobre la copia, redistribución, entendimiento, y modificación de
programas de computadoras. Con este objeto, promociona el desarrollo y uso del
software libre en todas las áreas de la computación, pero muy particularmente,
ayudando a desarrollar el sistema operativo GNU.

1.4.1.3 Licencia GPL

La Licencia Pública General de GNU o más conocida por su acrónimo en inglés


(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
distribución, modificación y uso de software. Su propósito es declarar que el software
cubierto por esta licencia es software libre y protegerlo de intentos de apropiación
que restrinjan esas libertades a los usuarios.

1.4.4 Licencia LGPL

La Licencia Pública 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 están diseñados 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 pública
general se aplica a la mayoría del software de la "FSF" o "Free Software Foundation"
(Fundación 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 están


cubiertos por la "LGPL Lesser General Public License" (Licencia pública general
reducida), la cual puede aplicar a sus programas también.

CIBERTEC CARRERAS PROFESIONALES


12

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 términos 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 porción de él, ya sea íntegra o con modificaciones o
traducciones a otros idiomas.

Otras actividades que no sean copia, distribución o modificación si están cubiertas


en esta licencia y están fuera de su alcance. El acto de ejecutar el programa no está
restringido, y la salida de información del programa está cubierta sólo 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 función del programa.

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
versión del núcleo Linux fue liberada, el proyecto GNU había producido varios de los
componentes del sistema operativo, incluyendo un intérprete de comandos, una
biblioteca C y un compilador, pero aún no contaba con el núcleo que permitiera
completar el sistema operativo.

Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces
estudiando en la Universidad de Helsinki, llenó el hueco final que el sistema
operativo GNU exigía. Subsecuentemente, miles de programadores voluntarios
alrededor del mundo han participado en el proyecto, mejorándolo continuamente y
agregando más líneas al código original.

Linux se refiere estrictamente al núcleo Linux, pero es comúnmente utilizado para


describir al sistema operativo tipo Unix, que utiliza primordialmente filosofía y
metodologías libres (también conocido como GNU/Linux) y que está formado
mediante la combinación del núcleo 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 subscripción, algunas insertan software no libre y otras solo
software libre. Algunas de las distribuciones más populares son:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 13

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


de la distribución Red Hat Enterprise Linux, compilado por voluntarios a partir
del código fuente liberado por Red Hat. Los desarrolladores de CentOS usan
ese código 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
público, pero no es mantenido ni asistido por Red Hat. CentOS usa yum para
bajar e instalar las actualizaciones, herramienta también utilizada por Fedora.

Red Hat es una empresa dedicada al software libre, y además 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 compañía es mejor conocida por su sistema operativo Red Hat Enterprise
Linux (RHEL), y más recientemente, a través de la adquisición de la empresa
de código abierto JBoss que es un servidor de aplicaciones.

Fedora es una distribución 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 distribución Red Hat Linux quedó entre Red Hat Enterprise Linux y
el Proyecto Fedora existente, los usuarios domésticos y de pequeñas
empresas tuvieron incertidumbre acerca de qué hacer; Red Hat Professional
Workstation se creó en este mismo momento con la intención de llenar el
nicho que Red Hat Linux había ocupado una vez, pero con un futuro incierto.
Esta opción cayó rápidamente para aquellos que no eran usuarios de Red
Hat Linux en favor del Proyecto Fedora.
Recientemente, la comunidad Fedora ha prosperado, y la distribución Fedora
tiene la reputación de ser una distribución completamente abierta enfocada
en la innovación 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 múltiples
arquitecturas y en varios núcleos. 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 disposición de cualquiera en Internet, aunque sí
permite a personas o empresas distribuir comercialmente este software
mientras se respete su licencia.

Ubuntu es una distribución Linux que ofrece un sistema operativo enfocado a


computadoras de escritorio aunque también proporciona soporte para
servidores. Es una de las más 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 instalación 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 distribución proviene del concepto zulú y xhosa
de Ubuntu, que significa "humanidad hacia otros" o "yo soy porque nosotros
somos".

CIBERTEC CARRERAS PROFESIONALES


14

OpenSuse es el nombre de la distribución 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
código abierto, involucrando a la comunidad en el proceso de desarrollo. La
versión inicial fue una versión beta de SUSE Linux 10.0

1.4.2.1 El Kernel Linux

Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos


y las extensiones del núcleo 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 núcleos monolíticos
tradicionales, los controladores de dispositivos y las extensiones al sistema operativo
se pueden cargar y descargar fácilmente como módulos, mientras el sistema
continúa funcionando sin interrupciones. También, a diferencia de los núcleos
monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos
momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta
habilidad fue agregada para gestionar correctamente interrupciones de hardware, y
para mejorar el soporte de Multiprocesamiento Simétrico.

Un sistema operativo con núcleo monolítico concentra todas las funcionalidades


posibles (planificación, sistema de archivos, redes, controladores de dispositivos,
gestión de memoria, etc) dentro de un gran programa. El mismo puede tener un
tamaño considerable, y deberá ser recompilado por completo al añadir una nueva
funcionalidad. Todos los componentes funcionales del núcleo tienen acceso a todas
sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede
propagarse a todo el núcleo. 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 diseño de un micronúcleo


(diseño que, en aquella época, era considerado el más apropiado para un núcleo por
muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión entre
Linus Torvalds y Andy Tanenbaum.

A diferencia de los núcleos monolíticos tradicionales, los controladores de


dispositivos son fácilmente configurables como módulos del núcleo 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 más preciso, se refiere a cuatro libertades
de los usuarios del software:

1. La libertad de usar el programa, con cualquier propósito

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 15

2. Estudiar el funcionamiento de la aplicación y adaptarlo a las necesidades


3. Distribuir copias, con lo que puede ayudar a otros.
4. Mejorar el programa y hacer públicas las mejoras, de modo que toda la
comunidad se beneficie.

Otro de los requisitos fundamentales para considerar a una aplicación como


Software Libre es el acceso al código fuente de la aplicación.

1.5.1 Que es el Freeware y Shareware

1.5.1.1 Freeware

El término en inglés freeware define un tipo de software que se distribuye sin costo y
por tiempo ilimitado. A veces se incluye el código fuente, pero no es lo usual.

El freeware suele incluir una licencia de uso, que permite su redistribución pero con
algunas restricciones, como no modificar la aplicación en sí, ni venderla, y dar
cuenta de su autor. También puede desautorizar el uso en una compañía con fines
comerciales o en una entidad gubernamental.

1.5.1.2 Shareware

Se denomina Shareware a una modalidad de distribución de software el cual permite


al usuario evaluar de forma gratuita el producto, por un lapso de tiempo, aunque
también 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.

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
raíces en el segundo. Tampoco debe confundirse el hecho de que un software sea
Shareware o freeware con el hecho de que sea de código abierto, ya que esto último
depende de la disponibilidad o no del código fuente.

1.5.1.3 Ventajas del OpenSource contra el Freeware, Shareware y


Software privativo
• FLEXIBILIDAD. Si el código fuente está disponible, los desarrolladores pueden
aprender y modificar los programas a su antojo, adaptándolo para realizar tareas
específicas. Además, se produce un flujo constante de ideas que mejora la calidad
de los programas.

• FIABILIDAD Y SEGURIDAD. Con varios programadores a la vez mirándose el


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

CIBERTEC CARRERAS PROFESIONALES


16

• RAPIDEZ DE DESARROLLO. Las actualizaciones y ajustes se realizan a través


de una comunicación constante vía Internet. Menores tiempos de desarrollo debido a
la amplia disponibilidad de herramientas y librerías.

• RELACIÓN CON EL USUARIO. El programador se acerca mucho más a la


necesidad real de su cliente, y puede crear un producto específico para él.

• LIBRE. Es de libre distribución, cualquier persona puede regalarlo, venderlo o


prestarlo.

• COMBATE EFECTIVAMENTE LA PIRATERÍA DE SOFTWARE.

• AHORRO EN LICENCIAS. No se tienen que pagar ningún tipo de licencias para


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

1.6 El Estándar POSIX

POSIX es el acrónimo de Portable Operating System Interface; la X viene de UNIX.


El término POSIX fue sugerido por Richard Stallman en respuesta a la demanda de
la IEEE, que buscaba un nombre fácil de recordar. Una traducción aproximada del
acrónimo podría ser "Interfaz de Sistema Operativo Portátil basado en UNIX".

Estándar Posix es una familia de estándares 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 aplicación pueda ejecutarse en distintas plataformas (Arquitecturas). Estos
estándares surgieron de un proyecto de normalización de las API y describen un
conjunto de interfaces de aplicación adaptables a una gran variedad de
implementaciones de sistemas operativos.

1.7 Linux Standard Base

La Base Estándar 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 Especificación
POSIX, la Especificación Única de UNIX (Single UNIX Specification) y en varios
otros estándares abiertos, aunque extiende éstos en ciertas áreas.De acuerdo a la
definición de la propia LSB:

El objetivo de la LSB es desarrollar y promover un conjunto de estándares que


aumentarán la compatibilidad entre las distribuciones de Linux y permitirán que los
programas de aplicación puedan ser ejecutados en cualquier sistema que se adhiera
a ella. Además, 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 17

Mediante un proceso de certificación es posible obtener la conformidad a la LSB de


un producto. Dicha certificación la lleva a cabo el Open Group en colaboración con el
Free Standards Group (Grupo de Estándares Libres).

Como ejemplo, la LSB especifica: librerías estándar, un conjunto de órdenes y


utilerías que extienden el estándar POSIX, la estructura jerárquica del sistema de
archivos, los niveles de ejecución, y varias extensiones al sistema gráfico X Window.

1.8 ¿Que es Live CD?

Un Live CD o Live DVD, más genéricamente Live Distro, es un sistema operativo


(normalmente acompañado de un conjunto de aplicaciones) almacenado en un
medio extraíble, 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 característica es que por lo general no se efectúan 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á
automáticamente.

1.8.1 Características

La mayoría usa un sistema operativo basado en el núcleo Linux, pero también 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 surgióDemoLinux (año 2000). El auge de esta modalidad de Linux se
inició alrededor del año 2003 con la distribución alemana de Knoppix, basada, a su
vez, en la distribución de software Debian. Una de las mejoras de este método fue la
compresión cloop, esto permitió sobrepasar los 650700 MB del CD (se usaba el
driver loop) y lograr introducir hasta 2 GB.

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


cantidad de memoria RAM (256 son más 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 parámetros para adaptar el sistema al computador, como la resolución de
pantalla o para activar o desactivar la búsqueda automática de determinado
hardware.

CIBERTEC CARRERAS PROFESIONALES


18

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 núcleo, porque los dos están basados en
el Kernel Linux. El escritorio linux generalmente tendrá instalado por defecto
paquetes destinados al "usuario final". Algunas distribuciones Linux se han centrado
específicamente 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 continuación hablaremos de los dos proyectos de escritorio Linux más importantes

1.9.1 Gnome

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


tecnología X Window. Forma parte oficial del proyecto GNU. Nació como una
alternativa a KDE.
Se encuentra disponible actualmente en 48 idiomas en su última versión

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 código 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 técnicos y discapacidad física.
• Hacer que esté disponible en muchos idiomas. En el momento está siendo
traducido a más de 100 idiomas.
• Un ciclo regular de liberaciones y una estructura de comunidad disciplinada.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 19

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
fácil de utilizar. GNOME también es una palabra del idioma inglés que significa
gnomo.

En esos momentos existía 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 gráficos Qt, cuya licencia (QPL),
aunque libre, no era compatible inicialmente con la licencia GPL de la FSF.

Años más tarde los problemas de licencia de Qt se han resuelto y estas críticas han
cesado. Sin embargo, los dos proyectos siguen rumbos tecnológicos distintos y se
hacen una competencia amigable.

Como con la mayoría de los programas GNU, GNOME ha sido diseñado 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 gráficos GTK, originalmente desarrollada para el programa
The GIMP.

A medida que el proyecto ha ido progresando en los últimos años, 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 Fundación
GNOME.

CIBERTEC CARRERAS PROFESIONALES


20

1.9.2 KDE

De acuerdo con su página web, KDE es un entorno de escritorio contemporáneo


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 más 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 personalización. Todos los componentes de KDE


pueden ser configurados en mayor o menor medida por el usuario. Las opciones
más comunes son accesibles en su mayoría desde menús y diálogos de
configuración. Los usuarios avanzados pueden optar por editar los archivos de
configuración 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, menús, 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
más ampliamente aceptada en el momento de cada nuevo lanzamiento.

La intención 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 fácil 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 innovación. Esta observación, sin embargo, recae
sobre la selección de parámetros predefinidos del sistema, a menudo orientada a
facilitar la integración de nuevos usuarios, acostumbrados en su mayoría a trabajar
con Windows. Pese a todo esta crítica no tiene fundamento alguno, ya que debido a
que KDE tiene una alta capacidad de configuración se pueden realizar efectos de
escritorio muy innovadores (inclusive algunos son comparables con Compiz o Beryl).

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 21

1.9.2.2 Historia

El proyecto fue iniciado en octubre de 1996 por el programador alemán Matthias


Ettrich, quien buscaba crear una interfaz gráfica 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 creación del proyecto alternativo
GNOME en 1997: la elección de la biblioteca Qt, que por aquel entonces poseía 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 cooperación e inspiración mutua.

• KDE 1: Al año siguiente, se publicó KDE 1.0. Esta versión contenía un panel (barra
de tareas y lanzador de aplicaciones), un escritorio sobre el cual dejar iconos, un
administrador de archivos (Kfm) y un gran número de
utilidades.

• KDE 2: KDE 2.0, lanzado en el año 2000, fue reescrito casi por completo. Esta
versión incluía Konqueror (un navegador web y gestor de archivos) además de
muchas nuevas tecnologías con el objetivo de mejorar la
integración entre aplicaciones. En esta versión mejoró parcialmente el aspecto
visual.

• KDE 3: KDE 3.0 fue publicado en el año 2002, y es la evolución 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 omisión
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


22

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 ratón o mouse. Su creador, Olivier Fourdan, dice


de él: “Diseñado para la productividad, las aplicaciones se cargan y se ejecutan
rápidamente, mientras conserva recursos de sistema” Xfce también provee el marco
de trabajo para el desarrollo de aplicaciones. Además de Xfce mismo, hay otros
programas que también 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 parecía en sus inicios al entorno de escritorio CDE, pero fue alejándose
notablemente debido a que fue reprogramado nuevamente desde cero(ya lo había
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 estándares establecidos
por Freedesktop.org.

El nombre Xfce originalmente provenía de XForms Common Enviroment, pero


debido a los grandes cambios en el código, ya no usa el kit de herramientas de
XForms, como originalmente lo hacía. El nombre sobrevivió, pero ya no se indica
como XFce sino Xfce. Los desarrolladores están 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 más grandes.

Thunar es el nuevo gestor de archivos predeterminado para Xfce desde la versión


4.4. Es similar a Nautilus y está diseñado para una máxima velocidad y un mínimo
consumo de memoria. Xfce también posee un gestor de archivos
comprimidos llamado Xarchiver.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 23

1.9.4 Enlightenment

Enlightenment, también 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.

CIBERTEC CARRERAS PROFESIONALES


24

La última versión estable es la 0.16.8.6 (también llamada DR16). El siguiente


lanzamiento importante será la versión 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.

1.9.4.1 Características actuales de la versión 0.17

DR17 está en fase desarrollo en este momento, pero ciertas características del
núcleo ya están disponibles:

• Soporte de temas mediante un sistema de menús y una interfaz de cambio de


temas en línea de comandos.
• La parrilla de escritorios virtuales.
• Diseño modular puede cargar módulos externos desde un paquete separado de
'emódulos'. Los módulos actuales incluyen un paginador de escritorios, 'iBar', un
lanzador de aplicaciones animado, un módulo de sombreado de ventanas, notas
de escritorio, un reloj (analógico o digital) y un monitor de carga de la batería.
• 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 internacionalización.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 25

Autoevaluación

1. Indique que es un sistema operativo y cual es su función

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

3. Indique los principales escritorios gráficos y de una breve descripción de ellos

CIBERTEC CARRERAS PROFESIONALES


26

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 27

UNIDAD DE
APRENDIZAJE

2
TEMA

Comandos Básicos y Configuración de Red


TEMA
Conocer los comandos básicos para el manejo de Linux

OBJETIVOS ESPECÍFICOS
 Conocer los comandos básicos del entorno linux

 Aprender a modificar los parámetros de red en Linux

CONTENIDOS
 Comandos para información del sistema

 Comandos para manejo de archivos

 Comandos para configuración de red

CIBERTEC CARRERAS PROFESIONALES


28

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 más información 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 29

Ejemplo:

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

Ejemplo:

CIBERTEC CARRERAS PROFESIONALES


30

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 [MesDiaHoraMinutoAño.Segundos]

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 31

Ejemplo:

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

CIBERTEC CARRERAS PROFESIONALES


32

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 33

Ejemplo

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 confirmación

Ejemplo 1:
Copiando un archivo a una carpeta

CIBERTEC CARRERAS PROFESIONALES


34

Ejemplo 2:

Copiando una carpeta a otra carpeta

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 confirmación

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 confirmación

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 35

Ejemplo 1:

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]

CIBERTEC CARRERAS PROFESIONALES


36

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

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 37

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

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

CIBERTEC CARRERAS PROFESIONALES


38

Ejemplo 6.Montando un sistema de ficheros de Linux

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 39

Ejemplo 3.Comprimir una carpeta con TAR.GZ

Ejemplo4.Descomprimir una carpeta TAR.GZ

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

CIBERTEC CARRERAS PROFESIONALES


40

3. Configuracion de interfaces de red

La configuración de la interfaz es importante en un servidor o equipo de escritorio.


Los principales archivos de configuración son:

Este archivo de configuración 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, también
/etc/hosts
este archivo define la dirección de loopback que
representa al propio equipo independientemente
de la dirección IP que se le haya asignado

Este archivo especifica las direcciones IP de los


/etc/resolv.conf servidores DNS

Este archivo de configuración es utilizado para


/etc/sysconfig/network definir las características de red deseadas

Estos archivos de configuración son utilizados


/etc/sysconfig/networkscripts/
para especificar la configuración 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 configuración son reflejados


inmediatamente.

Nota: Este archivo se encuentra la dirección de loopback (127.0.0.1), esta dirección


es utilizada por varias aplicaciones para su funcionamiento, 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 configuración contiene las direcciones IP de los servidores DNS.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 41

Sus parámetros de configuración son:

Define las direcciones IP de los servidores de nombre en los


nameserver cuales se deberán resolver las búsquedas. 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 parámetro define la lista de búsqueda nombres de
search equiposes útil cuando se busca un equipo dentro de la red
local por un nombre corto
Este parámetro indica la preferencia de los nameserver
sortlist
definidos

3.3 Configuracion del archivo /etc/resolv.conf

Los parámetros que utiliza este este archivo son:

NETWORKING Los valores que admites son:


 yes Permite la configuración de los servicio de red.
 no No permite la configuración de los servicio de red.

FORWARD_IPV4 Habilita el reenvío 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 dirección IP del Gateway

3.4 Configuración de la interfaz de red


El directorio de configuración de la interfaz de red se encuentra en:

/etc/sysconfig/networkscripts/

Dentro de este directorio se encuentran los archivos de configuración de los


dispositivos, dependiendo del numero de interfaces de red instaladas en el
computadora será el numero de archivos de configuración, 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.

CIBERTEC CARRERAS PROFESIONALES


42

Los parámetros que admiten los archivos de configuración de la interfaz de red


Ethernet son los siguientes:

DEVICE Define el nombre del dispositivo físico

BOOTPROTO
none No utiliza ningún protocolo de arranque.
static Se define de forma manual los parámetros de red.
dhcp Obtiene los parámetros de red por medio de un
servidor de DHPC

IPADDR Define la dirección IP asignada a ese dispositivo.

NETMASK Define la máscara de red.

NETWORK Define el segmento de red

HWADDR Define el dirección MAC del dispositivo de red. Se


recomienda que modificar el valor de este parámetro.

GATEWAY Define la Dirección 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 opción establece un nombre al equipo. Utilice esta


opción si el servidor DHCP requiere que el cliente
especifique el nombre de su equipo antes de recibir una
dirección IP.

Ejemplo del archivo de configuración.

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 43

Autoevaluación

1. ¿Cuál es el comando que te permite conocer la hora del sistema?

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

2. ¿Cuál es el comando que te permite conocer los usuarios conectados al

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

3. ¿Cuál es el archivo donde se almacena los DNS del sistema?

(a) hosts
(b) messages
(c) resolv.conf
(d) grub.conf

CIBERTEC CARRERAS PROFESIONALES


44

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 45

UNIDAD DE
APRENDIZAJE

3
TEMA

Administración de Usuarios y Grupos

TEMA
Aprender cómo administrar usuarios y grupos en un ambiente Windows

OBJETIVOS ESPECÍFICOS
 Aprender a crear, editar y eliminar usuarios

 Aprender a crear, editar y eliminar grupos

CONTENIDOS
 Introducción

 Herramientas para la creación de usuarios

 Usuarios y Grupos estándares

 Contraseñas

 Ejemplos

CIBERTEC CARRERAS PROFESIONALES


46

1. Introducción

El control de los usuarios y grupos es un elemento clave en la administración 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 físico en particular

Los Grupos son expresiones lógicas de organización, reuniendo usuarios para un


propósito común.

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

Cada usuario y grupo tiene un número de identificación ú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 también se le asignan permisos separados de
lectura, escritura y ejecución 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 específicos además del creador.

Una de las tareas más importantes de cualquier administrador del sistema, es la de


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

2. Herramientas de administración de usuarios y grupos

La gestión de usuarios y grupos ha sido tradicionalmente tediosa, pero Linux


proporciona algunas herramientas y convenciones que facilitan su gestión.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 47

La forma más fácil de manejar usuarios y grupos es a través de la aplicación gráfica,


Administrador de usuarios (system-config-users).

Las siguientes herramientas de línea de comandos también se pueden utilizar para


manejar usuarios y grupos:

. useradd, usermod y userdel. Métodos estándar de la industria para añadir,


eliminar y modificar cuentas de usuarios.

. groupadd, groupmod y groupdel. Métodos estándar de la industria para añadir,


eliminar y modificar grupos de usuarios.

. gpasswd. Métodos estándar de la industria para administrar el archivo /etc/group.

. pwck, grpck. Herramientas para la verificación de contraseñas, grupo y archivos


shadow asociados.

. pwconv, pwunconv. Herramientas para la conversión de contraseñas a


contraseñas shadow (oscurecimiento de contraseñas) y de vuelta a contraseñas
estándar.

CIBERTEC CARRERAS PROFESIONALES


48

3. Usuarios despues de una instalación comun

En la tabla siguiente se lista los usuarios estándar configurados en el archivo


/etc/passwd para una instalación. El groupid (GID) en esta tabla es el grupo primario
para el usuario.

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 49

4. Grupos después de una instalación comun

En la tabla siguiente se lista los grupos estándar configurados por una instalación.
Los grupos son almacenados en el archivo /etc/group.

Grupo GID Miembros


root 0 root
bin 1 root, bin,daemon
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

CIBERTEC CARRERAS PROFESIONALES


50

gdm 42
htt 101
mysql 27
webalizer 67
mailnull 47
smmsp 51
squid 23
ldap 55
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 más fácil
de manejar los grupos de UNIX.

Se crea un UPG siempre que se añade 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 más 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 parámetro 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 sólo
permite al usuario que creó el archivo o directorio realizar modificaciones.

Bajo este esquema, todos los demás usuarios incluyendo miembros del grupo del
creador no tienen derecho a realizar ninguna modificación. Sin embargo, bajo el
esquema UPG, esta "protección de grupo" no es necesaria puesto que cada usuario
tiene su propio grupo privado.

6. Contraseñas Shadow

En entornos multiusuario es muy importante utilizar contraseñas shadow también


conocido como Oscurecimiento de contraseñas, (proporcionadas por el paquete
shadow-utils). Haciendo esto se mejora la seguridad de los archivos de autenticación

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 51

del sistema. Por esta razón, el programa de instalación activa por defecto las
contraseñas shadow.

Lo siguiente es una lista de las ventajas de las contraseñas shadow sobre el método
tradicional de almacenar contraseñas en los sistemas basados en UNIX:

. Mejora la seguridad del sistema al mover las contraseñas encriptadas desde


el archivo /etc/passwd que puede leer todo el mundo, a /etc/shadow, el cual
sólo puede ser leído por el usuario root.
. Almacena información sobre las vigencias de las contraseñas.
. Permite el uso del archivo /etc/login.defs para reforzar las políticas de
seguridad.

La mayoría de las utilidades proporcionadas por el paquete shadow-utils funcionan


adecuadamente sin importar si las contraseñas shadow están activadas o no. Sin
embargo, puesto que la información sobre la vigencia de las contraseñas es
almacenada exclusivamente en el archivo /etc/shadow, cualquier comando que cree
o modi_que la información sobre la vigencia de las contraseñas, no funcionará.

Abajo se muestra una lista de los comandos que no funcionan a menos que se
activen primero las contraseñas 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:

CIBERTEC CARRERAS PROFESIONALES


52

Lo segundo: la orden passwd.

Después de crear la nueva cuenta con useradd o que sigue a continuación es


especificar una contraseña para el usuario. Determine una que le resulte fácil de
recordar, que mezcle números, mayúsculas y minúsculas y que, preferentemente, no
contenga palabras que se encontrarían fácilmente en el diccionario.

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


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

passwd nombre_del_usuario

Ejemplo:

El sistema solicitará entonces que proceda a teclear la nueva contraseña 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 también puede utilizarse para cambiar una contraseña existente.

Opciones avanzadas.

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


servidor o estación de trabajo, o bien se es un usuario un poco más 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 53

-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 expiración 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
de disquetes, administración 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 número
mínimo 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:

CIBERTEC CARRERAS PROFESIONALES


54

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
intérprete de mandatos y tendrá un directorio de trabajo en /home/jperez.

Existen más opciones y comentarios adicionales para el mandato useradd, estas se


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

Eliminar una cuenta de usuario.

En ocasiones un administrador necesitará eliminar una o más cuentas de usuario.


Este es un procedimiento principalmente utilizado en servidores y estaciones de
trabajo a los cuales acceden múltiples usuarios. Para tal fin nos valdremos del
mandato userdel. La sintaxis básica de userdel es la siguiente:

userdel nombre_del_usuario

Ejemplo:

Si se desea eliminar también todos los archivos y sub-directorios contenidos dentro


del directorio de trabajo del usuario a eliminar, se debe agregar la opción -r:

userdel -r nombre_del_usuario

Ejemplo:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 55

Manejo de Grupos.

Alta de grupos.

groupadd grupo-que-sea

Alta de grupos de sistema.

Un grupo de sistema es aquel que tiene un número de identidad de grupo (GID) por
debajo del 500. Regularmente se asigna automáticamente el número de identidad de
grupo más bajo disponible.

Baja de grupos

Asignación de usuario existente a grupos existentes.

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

CIBERTEC CARRERAS PROFESIONALES


56

Autoevaluación

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

2. ¿Cuál es el archivo donde se graba la configuración principal de los usuarios?

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

3. ¿Cuál es el archivo donde se graba el password de los usuarios?

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 57

UNIDAD DE
APRENDIZAJE

4
TEMA

Proceso de arranque en Linux

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

OBJETIVOS ESPECÍFICOS
 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


58

1. Proceso de arranque, inicio y cierre del sistema

Una de las características más importantes y poderosas de Linux es el método


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
lanzarán al momento de arranque. De forma parecida, el cierre del sistema finaliza
los procesos de forma organizada y configurable, aunque la personalización de este
proceso casi nunca es necesaria.

Entender el funcionamiento del proceso de arranque y cierre no sólo le permitirá


personalizar, sino que también le facilitará resolver problemas relacionados con el
inicio y el cierre del sistema.

1.1. Proceso de arranque

A continuación obtendrá las etapas básicas 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 partición /boot/.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 59

3. La segunda etapa del gestor de arranque carga el kernel en memoria, lo


cual en su momento carga los módulos necesarios y monta la partición root
para sólo-lectura.

4. El kernel transfiere el control del proceso de arranque al programa /sbin/init.

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 conexión para el sistema


Linux recién iniciado. Ya que la configuración del proceso de arranque es más
común que la del proceso de cierre, en el resto del capítulo se discutirá el
modo en el que el proceso de arranque funciona y cómo se puede
personalizar para satisfacer sus necesidades.

1.2. Vista detallada del proceso de arranque

El inicio del proceso de arranque varía 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 idéntico a través de todas las
arquitecturas. Este capítulo 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 sólo el primer paso del proceso de arranque, sino que también
proporciona una interfaz de bajo nivel para dispositivos periféricos. Por este motivo
se escribe tan sólo 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


60

Una vez que se haya cargado, la BIOS chequea los periféricos 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 continuación si esto falla, echa un vistazo a las unidades de disco duro
del sistema. En la mayoría de los casos, el orden de búsqueda de las unidades para
arrancar es controlado por una configuración 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 sólo tiene 512 bytes de tamaño y
contiene las instrucciones de código de máquina para el arranque del equipo,
llamado un gestor de arranque, así como también 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 código binario de máquina pequeña en el MBR. Su
única función 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 configuración. /boot/grub/grub.conf.
al momento de arranque.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 61

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 versión del kernel
especificada en las configuraciones del gestor de arranque).

Para instrucciones sobre el uso del gestor de arranque para suministrar argumentos
de línea de comandos al kernel.

El gestor de arranque luego coloca una o más de las imágenes apropiadas de


initramfs en la memoria. Luego, el kernel descomprime estas imágenes desde la
memoria a /boot/, un sistema de archivos virtual basado en RAM, a través de cpio. El
initrd es usado por el kernel para cargar controladores y módulos 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 continuación

CIBERTEC CARRERAS PROFESIONALES


62

buscará la imagen comprimida de initramfs en una ubicación predeterminada en


memoria, la descomprimirá directamente a /sysroot/ y cargará todos los
controladores necesarios. A continuación 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.

El kernel luego crea un dispositivo root, monta la partición root como sólo 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 más.
Para configurar el entorno de usuario, el kernel inicia el programa /sbin/init.

1.2.4. Programa /sbin/init


El programa /sbin/init (también 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 automáticamente 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 inicialización. Por ejemplo, la
mayoría de los sistemas usan un reloj, por lo tanto, el rc.sysinit lee el archivo de
configuración para iniciar el hardware del reloj. Otro ejemplo es si hay procesos

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 63

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 cómo se debería
configurar el sistema en cada nivel de ejecución SysV init. Los niveles de ejecución
son un estado, o modo, definido por los servicios listados en el SysV directorio
/etc/rc.d/rc<x>.d/, donde <x> es el número de nivel de ejecución.

A continuación, el comando init configura la biblioteca de funciones fuente,


/etc/rc.d/init.d/functions, para el sistema, que establece el modo en cómo iniciar o
matar un programa y cómo determinar el PID del programa.

El programa init inicia todos los procesos de fondo buscando en el directorio


apropiado rc para el nivel de ejecución especificado por defecto en /etc/inittab. Los
directorios rc están numerados para corresponder al nivel de ejecución que
representan. Por ejemplo, /etc/rc.d/rc5.d/ es el directorio para el nivel de ejecución 5.

Cuando se arranca el nivel de ejecución 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 simbólicos apuntando a los
scripts localizados en el directorio /etc/rc.d/init.d/. Los enlaces simbólicos se usan en
cada uno de los directorios rc de manera que los niveles de ejecución puedan ser
reconfigurados al crear, modificar y eliminar los enlaces simbólicos sin que afecte a
los scripts actuales a los que se refiere.

El nombre de cada enlace simbólico comienza con K o S. Los enlaces K son


procesos eliminados en ese nivel de ejecución, mientras que aquellos que inician por
S son procesos a iniciar.

El comando init en primer lugar detiene todos los enlaces simbólicos de K en el


directorio mediante la ejecución del comando /etc/rc.d/init.d/<command> <stop>, en
el que < command>es el proceso a matar.

A continuación inicia todos los enlaces simbólicos 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 ejecución. El agregar comandos al final de este script es una
forma fácil de realizar tareas necesarias como arrancar servicios especiales o
inicializar dispositivos sin tener que escribir scripts complejos de inicialización en el
directorio /etc/rc.d/init.d/ y creando enlaces simbólicos.

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.

CIBERTEC CARRERAS PROFESIONALES


64

1.4. Niveles de ejecución de SysV Init

El sistema de niveles de ejecución SysV init provee de un proceso estándar para


controlar cuáles programas init lanza o detiene cuando se inicializa un nivel de
ejecución. SysV init fué escogido porque es más fácil de usar y más fiexible que el
proceso tradicional init estilo BSD.

Los ficheros de configuración para SysV init están 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 ejecución predeterminados configurados por defecto bajo Linux.

1.4.1. Niveles de ejecución


La idea detrás de los niveles de ejecución de SysV init gira alrededor del hecho que
sistemas diferentes se pueden usar de formas diferentes. Por ejemplo, un servidor
corre de forma más 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 más bajo de ejecución para realizar tareas de
diagnóstico, como reparar corrupción del disco duro en el nivel de ejecución 1.

Las características de un nivel de ejecución dado determinan qué servicios son


detenidos o iniciados por init. Por ejemplo, el nivel de ejecución 1 (modo usuario
único) detiene cualquier servicio de red, mientras que el nivel 3 arranca estos
servicios. Asignando servicios específicos a ser detenidos o iniciados en un nivel
dado, init puede fácilmente cambiar el modo de la máquina sin que el usuario tenga
que manualmente arrancar o detener servicios.

Los siguientes niveles de ejecución están 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 gráfico multiusuario completo (con una pantalla de inicio de sesión basada
en X)
. 6 . Rearrancar

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 65

Generalmente, los usuarios utilizan Linux al nivel de ejecución 3 o nivel de ejecución


5.ambos modos multiusuario. Ya que los niveles de ejecución 2 y 4 no son usados,
los usuarios a veces personalizan estos niveles para cubrir necesidades específicas.
El nivel de ejecución por defecto para el sistema está listado en /etc/inittab. Para
saber el nivel de ejecución por defecto de un sistema, busque por la línea similar a la
que se muestra abajo cerca de la parte superior de /etc/inittab:
id:5:initdefault:

El nivel de ejecución predeterminado en este ejemplo es cinco, como indica el


número después del punto y coma. Para cambiarlo, modifique /etc/inittab como
usuario root.

1.4.2. Utilidades de los niveles de ejecución

Una de las mejores formas de configurar los niveles de ejecución es usando la


utilidad initscript.Estas herramientas están diseñadas para simplificar las tareas de
mantener archivos en la jerarquía del directorio SysV init y descargan a los
administradores de sistemas de tener que directamente manipular numerosos
enlaces simbólicos en los subdirectorios de /etc/rc.d/.

Linux ofrece tres de tales utilidades:


. /sbin/chkconfig . La utilidad /sbin/chkconfig es una herramienta de línea de
comandos
sencilla para mantener la jerarquía 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 más fácil de usar que
chkconfig.
. Herramienta de configuración de servicios . El programa de interfaz gráfica
Herramienta de configuración de servicios (system-config-services) es una
utilidad fiexible para la configuración de niveles de ejecución.

CIBERTEC CARRERAS PROFESIONALES


66

1.5. Apagar

Para apagar Linux, el usuario root puede ejecutar el comando /sbin/shutdown.


La página man para shutdown tiene una lista completa de opciones, pero las dos
usadas más comúnmente son:

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

Después de apagar todo, la opción -h detendrá la máquina, y la opción -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 ejecución 1 hasta 5. Para más información
sobre los usuarios de consola.

Si la computadora no se apaga asímisma, 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 67

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

CIBERTEC CARRERAS PROFESIONALES


68

Este capítulo explica comandos y opciones de configuración 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 también que el usuario transmita argumentos al
kernel.

2.2.1. Proceso de arranque en un sistema x86 y GRUB

Esta sección explica con más detalle el papel específico que desempeña 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
partición /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 partición /boot/ o
en una pequeña parte del MBR y la partición /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 parámetros del sistema.
4. El gestor de arranque secundario lee el sistema operativo o el kernel así como
también 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
máquina a dicho sistema operativo.
El método usado para arrancar Linux se conoce como método 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 método de arranque de carga encadenada. Bajo
este método, el MBR señala el primer sector de la partición que tiene el sistema
operativo. Allí encuentra los archivos necesarios para arrancar el sistema operativo.
GRUB soporta ambos métodos de arranque, directo y de carga encadenada,
permitiendo arrancar desde casi cualquier sistema operativo.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 69

2.2.2. Funciones de GRUB

GRUB contiene una serie de funciones que lo convierten en el método favorito


respecto al resto de gestores de arranque disponibles para la arquitectura x86. A
continuación tiene una lista de las características más importantes:
. GRUB proporciona un verdadero entorno basado en comandos, pre-sistema
operativo, para las máquinas x86. Esta funcionalidad le otorga al usuario una gran
flexibilidad en la carga de sistemas operativos con opciones específicas o con la
recopilación de información sobre el sistema. Durante muchos años, las
arquitecturas diferentes a x86 han usado entornos previos al sistema operativo que
permiten arrancar el sistema desde una línea de comandos.
. GRUB soporta el modo Direccionamiento Lógico de Bloques (LBA). El modo LBA
coloca la conversión 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 limitación del
cilindro 1024 del BIOS, donde el BIOS no podía encontrar un archivo después de
ese cabezal de cilindro del disco. El soporte LBA permite que GRUB arranque los
sistemas operativos desde las particiones más allá del límite de 1024 cilindros,
siempre y cuando el BIOS del sistema soporte el modo LBA. La mayoría de las
revisiones más modernas de la BIOS soportan el modo LBA..
GRUB puede leer las particiones ext2. Esto permite que GRUB acceda a su archivo
de configuración, /boot/grub/grub.conf, cada vez que el sistema arranca, eliminando
la necesidad que tiene el usuario de escribir una nueva versión de la primera etapa
del gestor de arranque al MBR en caso de que se produzcan cambios de la
configuración. El único caso en el que el usuario necesitaría reinstalar GRUB en el
MBR es en caso de que la localización física de la partición /boot/ se traslade en el
disco.

2.3. Instalación de GRUB

Si no instaló GRUB durante el proceso de instalación, se puede hacer después. Una


vez instalado, se convierte en el gestor de arranque por defecto. Antes de instalar
GRUB, debería asegurarse de que cuenta con el último paquete disponible de
GRUB desde los CD-ROMs de instalación.

Una vez que el paquete GRUB esté instalado, abra un intérprete de comandos de la
shell y ejecute el comando /sbin/grub-install <ubicación> donde <ubicación> es la
ubicación en la que la Etapa 1 de GRUB debería 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 próxima vez que arranque el sistema, el menú del gestor de arranque gráfico
GRUB aparecerá antes del que el kernel se cargue en memoria.

2.4. Terminología de GRUB

Una de las cuestiones más importantes que deben entenderse antes de utilizar
GRUB es cómo el programa hace referencia a los dispositivos, por ejemplo, a los

CIBERTEC CARRERAS PROFESIONALES


70

discos duros y a las particiones. Esta información es muy importante si desea


configurar GRUB para arrancar varios sistemas operativos.

2.4.1. Nombres de dispositivos

Cuando se refiera a un dispositivo específico con GRUB, haga esto usando el


formato siguiente (observe que los paréntesis 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 más comunes son hd para un disco duro o fd para un disquete de
3.5. Un tipo de dispositivo menos usado también está disponible, llamado nd para un
disco de la red.

El <numero-dispositivo-bios> es el número 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 análogo a 0 en hd0 para GRUB, b en hdb es análogo a 1 en
hd1, y así sucesivamente.

El <numero-particion> hace referencia al número de una partición concreta en un


dispositivo. Al igual que en el caso de <número-dispositivo-bios> , la mayoría de los
tipos de particiones son numeradas comenzando por 0. Aunque la mayoría de las
particiones se especifican con números, 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
menús, es necesario especificar una ruta de archivos absoluta después de los
números de dispositivo y partición.

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 número entero para el dispositivo. Reemplace
</ruta/a/archivo> con una ruta absoluta relativa al nivel más superior del dispositivo.

También 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 partición. Para cargar tales archivos, deberá indicar una lista
de bloques, que indique a GRUB, bloque por bloque, la ubicación exacta del archivo
en la partición. Puesto que un archivo puede estar formado por varios conjuntos de
bloques, hay una sintaxis específica para escribir listas de bloques. Cada bloque que
contiene el archivo se describe con un número de desplazamiento de bloques
seguido de un número de bloques de ese punto de desplazamiento. Los
desplazamientos de bloques se listan secuencialmente y delimitados por comas.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 71

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 partición y que usa los bloques del 0 al 49, del 99 al 124, y el 199.
Saber cómo escribir listas de bloques es útil al utilizar GRUB para cargar sistemas
operativos que usan el método de carga encadenada. Puede suprimir el número de
desplazamiento de bloques si empieza por el bloque 0. Por ejemplo, el archivo de
carga encadenada de la primera partición del primer disco duro tendrá el nombre
siguiente:

(hd0,0)+1

Lo siguiente muestra el comando chainloader con una designación de lista de


bloques similar en la línea de comandos de GRUB después de establecer el
dispositivo correcto y la partición adecuada como raíz:

chainloader +1

2.4.3. El Sistema de archivos raíz y GRUB


Algunos usuarios se confunden con el uso del término sistema de archivos raíz tiene
un significado diferente con relación a GRUB. Es importante recordar que el sistema
de archivos raíz de GRUB no tiene nada que ver con el sistema de archivos raíz de
Linux.

El sistema de archivos raíz 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 raíz) de la partición (hd0,0)
(la cual es en verdad la partición /boot/ para el sistema).

Luego, se ejecuta el comando kernel con la ubicación del archivo del kernel como
una opción. Una vez que el kernel de Linux inicia, establece el sistema de archivos
raíz con el cual los usuarios de Linux están familiarizados. El sistema de archivos
raíz de GRUB original y sus montajes se olvidan; la única finalidad de su existencia
era arrancar el archivo del kernel.

2.5. Archivo de configuración de menú de GRUB


El archivo de configuración (/boot/grub/grub.conf), usado para crear la lista en la
interfaz de menú de GRUB de los sistemas operativos para el arranque,
básicamente permite al usuario seleccionar un grupo predefinido de comandos para
su ejecución. de configuración.

2.5.1. Estructura del archivo de configuración

El archivo de configuración de la interfaz de menú de GRUB es /boot/grub/grub.conf.


Los comandos para configurar las preferencias globales para la interfaz de menú
están ubicados al inicio del archivo, seguido de las diferentes estrofas para cada
sistema operativo o kernels listados en el menú.

CIBERTEC CARRERAS PROFESIONALES


72

El siguiente es un ejemplo de archivo de configuración de menú de GRUB muy


básico diseñado 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 automático después de 10
segundos. Se proporcionan dos secciones, una para cada entrada de sistema, con
comandos específicos para la tabla de partición del sistema.

2.6. Cambiar los niveles de ejecución en el tiempo de arranque

Bajo Linux, es posible cambiar el nivel de ejecución predeterminado en el momento


de arranque. Para cambiar el nivel de ejecución de una sesión 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 añadir al comando kernel.
. Añada
*
espacio
+fi*
nivel-de-ejecucion
+
al final de la línea de opciones de arranque para iniciar en el nivel de ejecución
deseado. Por ejemplo, la entrada siguiente iniciará un proceso de arranque en el
nivel 3.

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 73

3. Estructura del sistema de archivos

3.1. Por qué compartir una estructura común

La estructura de un sistema de archivos de un sistema operativo es el nivel más


básico de organización.

Casi todas las formas en que un sistema operativo interactúa 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 común asegura que los


usuarios y programas pueden acceder y escribir a los archivos.

Los sistemas de archivos dividen los archivos en dos categorías lógicas:


. archivos compartibles vs. no compartibles
. archivos variables vs. estáticos

Los archivos compartibles son aquéllos a los que se puede acceder desde varios
hosts; mientras que los archivos no compartibles sólo están disponibles localmente.
Los archivos variables, tales como documentos, pueden cambiar en cualquier
momento; los archivos estáticos, tales como binarios, no cambian sin una actuación

CIBERTEC CARRERAS PROFESIONALES


74

por parte del administrador de sistemas. La razón para visualizar a los archivos de
esta manera es para ayudar a correlacionar la función del archivo con los permisos
otorgados a los directorios que los sostienen. El modo en que el sistema operativo y
sus usuarios interactúan con un archivo dado determina el directorio en el cual estos
archivos están ubicados, si ese directorio está montado como de sólo lectura o sólo
escritura y el nivel de acceso que cada usuario tiene a ese archivo. El nivel superior
de esta organización 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 rígida.

3.2. Vista preliminar del estándar de jerarquía del sistema de


archivos (FHS)

Linux está comprometido a respetar el Estándar de Jerarquía de Sistemas de


archivos (FHS del inglés Filesystem Hierarchy Standard), un documento de
consenso que define los nombres, la ubicación 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 estándar da pie a la extensibilidad de unas áreas o
no define otras. En esta sección se proporciona un resumen del estándar y una
descripción de aquellas partes del sistema de archivos que no cubre el estándar.

El cumplimiento del estándar significa varias cosas, pero los dos aspectos más
importantes son la compatibilidad con otros sistemas que siguen el estándar y la
capacidad de poder montar la partición /usr/ en modo sólo 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 sólo lectura, y esto se puede hacer directamente desde el CD-ROM
o desde otro ordenador a través de NFS en modo sólo lectura.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 75

3.2.1. Organización de FHS

Los directorios y archivos aquí anotados, son sólo un subconjunto de los


especificados por el FHS. Véase la última versión del FHS para una descripción
detallada.

El estándar completo está disponible en línea desde http://www.pathname.com/fhs/.

3.2.1.1. El directorio /boot/

El directorio /boot/ contiene archivos estáticos 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.

CIBERTEC CARRERAS PROFESIONALES


76

3.2.1.3. El directorio /etc/

El directorio /etc/ está reservado para los archivos de configuración que son locales
a su ordenador. No deben colocarse binarios en /etc/. Los binarios que antiguamente
se colocaban en /etc/ deberían 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 configuración de X Window System,


como xorg.conf. El directorio /etc/skel/ es para archivos "esqueleto" (del inglés
"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/ debería contener sólo las bibliotecas (libraries) necesarias para
ejecutar los binarios en /bin/ y en /sbin/. Estas imágenes de bibliotecas compartidas
son particularmente importantes para arrancar el sistema y ejecutar comandos en el
sistema de archivos raíz.

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 aplicación estática 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 estarían esparcidos por el sistema de
archivos, dándole así al administrador del sistema una forma fácil 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 podrían ser emplazados
en directorios dentro de /opt/sample/, tales como /opt/sample/bin/ para binarios y
/opt/sample/man/ para páginas de manual.

Los paquetes grandes que abarcan diferentes subpaquetes, cada uno de los cuales
desempeñan una tarea específica, también se ubican dentro de /opt/, aportando a
este gran paquete un modo estándar de organizarse. De este modo, el paquete

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 77

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 información del
kernel o bien la envían a éste. Debido a la gran variedad de datos que contiene el
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/ sólo se usan para arrancar y hacer operaciones de
recuperación del sistema. De este directorio, la FHSdice:
/sbin contiene los archivos binarios esenciales para arrancar, restaurar, recuperar
y/o reparar el sistema, además de los binarios en /bin. Los programas ejecutados
después de /usr/, son montados (si no surge ningún problema) y ubicados en
/usr/sbin. Los programas de administración del sistema instalados localmente se
deberían ubicar en /usr/local/sbin.

Los siguientes programas deberían 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 específicos al sitio proporcionada por su sistema


ejecutando Linux. Este directorio le da a los usuarios la ubicación de los archivos de
datos para un servicio en particular, tal como FTP, WWW o CVS. Los datos que sólo
pertenecen a un usuario específico deberían de ir en el directorio /home/.

3.2.1.11. El directorio /sys/

El directorio /sys/ utiliza el nuevo sistema de archivos virtual sysfs específico al


kernel 2.6. Ahora con el soporte más extendido para los dispositivos de conexión en
caliente (hot plug) en el kernel 2.6, el directorio /sys/ contiene información similar a la
que se encuentra en /proc/, pero muestra una vista jerárquica de la información de
dispositivos específica con relación a los dispositivos de conexión en caliente.

Para ver ciertos dispositivos USB y Firewire montados, consulte la página man de
/sbin/hotplug
and /sbin/udev.

CIBERTEC CARRERAS PROFESIONALES


78

3.2.1.12. El directorio /usr/

El directorio /usr/ es para archivos que puedan ser compartidos a través de muchas
máquinas. El directorio /usr habitualmente tiene su propia partición y se monta en
sólo lectura. Como mínimo, los siguientes directorios deberían ser subdirectorios de
/usr/:
/usr
|- bin/
|- etc/
|- games/
|- include/
|- kerberos/
|- lib/
|- libexec/
|- local/
|- sbin/
|- share/
|- src/
|- tmp -> ../var/tmp/
|- X11R6/

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


contiene archivos de configuración 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 están
diseñadas para ser directamente utilizadas por usuarios o scripts de shell. El
directorio libexec/ contiene pequeños programas de ayuda llamados por otros
programas, sbin/ es para los binarios de administración del sistema (aquéllos que no
pertenecen al directorio /sbin/), share/ contiene archivos que no son de una
arquitectura específica, src/ es para código
fuente y X11R6/ es para el sistema X Window (XFree86 en Linux).

3.2.1.13. El directorio /usr/local/

El FHS dice: La jerarquía /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 propósito a los del directorio /usr/:
/usr/local
|- bin/
|- etc/
|- games/
|- include/
|- lib/
|- libexec/
|- sbin/
|- share/
|- src/

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 79

En Linux, el propósito del directorio /usr/local/ es ligeramente diferente de lo


especificado por FHS. El FHS establece que en /usr/local/ debería 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 poniéndolos en
/usr/local/. En vez de esto, el directorio /usr/local/ es usado para software que es
local a la máquina.

Por ejemplo, si usted ha montado /usr/ sólo lectura de NFS desde un host remoto,
aún 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 sólo lectura,
cualquier programa que escriba archivos log o que necesite los directorios spool/ o
lock/ debería escribirlos en el directorio /var/. El FHS especifica que /var/ es para:
Archivos de datos variables. Esto incluye archivos y directorios spool, datos de
administración, 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/

CIBERTEC CARRERAS PROFESIONALES


80

|- mailman/
|- mqueue/
|- news/
|- postfix/
|- repackage/
|- rwho/
|- samba/
|- squid/
|- squirrelmail/
|- up2date/
|- uucp
|- uucppublic/
|- vbox/
|- tmp/
|- tux/
|- www/
|- yp/

Los archivos de registro del sistema tales como messages/ y lastlog/ van en el
directorio /var/log/. El directorio /var/lib/rpm/ también 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 81

Autoevaluación
1. Explique que es el grub y cual es su función

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


82

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 83

UNIDAD DE
APRENDIZAJE

5
TEMA

Filesystems en Linux

TEMA
Describir el manejo de las particiones en linux

OBJETIVOS ESPECÍFICOS
 Comprender como se interpretar, crear, modificar y eliminar particiones en Linux

CONTENIDOS
 Particiones – conceptos basicos

 Herramientas de administracion

 Creacion de particiones en Linux

CIBERTEC CARRERAS PROFESIONALES


84

1. Particiones.

1.1. Conceptos básicos:

En linux las particiones donde residen los archivos van sobre los sistemas ext2 o
ext3 generalmente, aunque también 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 tamaño de la particion swap no deberían 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 tamaño 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 común a los discos IDE: hd


-Se le asigna una etiqueta común a los disco SCSI : sd
-Se le asigna una letra a cada disco, usando un orden alfanumérico: "a" primer
disco,"b" segundo disco, "c" tercer disco y "d" la cuarto disco.
-Se le asigna un numero a cada partición: 1, 2, 3...n
Por lo que tendríamos: hda3 (Primer disco IDE, partición 3)hdb2 (Segundo disco
IDE, partición 2)sdc1 (Tercer disco SCSI, partición 1)
-En linux solo se pueden montar 4 particiones primarias.
3 particiones primarias y 1 extendida que puede estar vacía o alojar varias
particiones o unidades lógicas.

En Linux se denotan igual que si fueran 4 primarias, la extendida no tiene por que
ser la ultima, Por ejemplo: tenemos la partición extendida hda2, las que están
"dentro", las lógicas, pueden ser hda4, hda5, hda5.

Los sistemas operativos linux soportan múltiples tipos de partición, para el


almacenamiento de datos, que no para su ejecución, dependiendo de que módulos
estén 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 administración.

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 información en pantalla existen multitud de aplicación 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 información del archivo /proc/partitions.
Para hacerlo en modo consola bastara con hacer un cat al archivo (cat
/proc/partitions)

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 85

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

La partición donde esta alojado el s.o se muestra como raíz (/), las demás pueden ir
montadas en directorios, algunas deben estar en su directorio especifico si tienen

-/boot donde ira montada la partición de arranque (no es necesario para el


funcionamiento puesto que los archivos se pueden montar en el mismo directorio sin
necesidad de ser una partición distinta a la raíz).

-/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 partición de M$ win 98, otro s.o de linux, y la partición donde se
encuentra M$ win 2000, se podrían distribuir a su antojo, /win98, /debian/win2000 o
dentro de cualquier directorio, por defecto la mayoría de distribuciones montan las
particiones no raíz, no especificas en el directorio /mnt.

Partiendo de esto, para usar una partición hay que montarla,para montar una
partición 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.

CIBERTEC CARRERAS PROFESIONALES


86

La síntesis básica del comando es la siguiente:

mount -[parametros de montaje] [tipo de partición] [dev/archivo donde se ubique la


partición] [directorio donde se desee montarla]

El comando para desmontar la partición es umount con la misma síntesis

Fichero /etc/mtab

Contiene una lista de los filesystem que están montados en el sistema

Ejemplo de fichero /etc/mtab

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 87

Fichero /etc/fstab

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

 cada línea 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 sólo lectura
o auto/noauto monta/no monta con mount -a (monta/no monta al inicio)
o exec/noexec Permite/no permite la ejecución de ficheros binarios en la
partición
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 asíncrona
o user puede montarlo un usuario (y sólo 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 específicos pueden tener opciones específicas:
o ver el manual de mount para más 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

CIBERTEC CARRERAS PROFESIONALES


88

o valor 1 o 0 según si la partición 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
números
 si varios tienen el mismo número, se chequean en paralelo (si
es posible)
 normalmente / tendrá 1 y el resto 2

Si se desea agregar una partición para se monte automáticamente cuando se incie


el sistema operativo, se tendría que agregar dentro del fstab

Nótese que se ha añadido una partición ext3 que se encuentra en el primer disco
IDE que corresponde a la primera partición lógica 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 cámaras 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 algún directorio, y se les asigna un valor.

En linux existe un comando fdisk, que nos permite la modificación, creación 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 adopción
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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 89

También existen herramientas en modo grafico, (qtparted, gparted, diskdruid,


diskdrake) para poder trabajar con discos.

CIBERTEC CARRERAS PROFESIONALES


90

Hoy en día, exceptuando algunas distribuciones muy especificas, las demás


permiten una instalación 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 automática.

Ejemplos de montaje de ficheros:

En este caso montamos la tercera partición del primer disco en el directorio


/home, el sistema de ficheros es ext3.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 91

En este otro montamos la segunda partición del segundo disco en el directorio


/mnt/Windows, es el sistema de ficheros es vfat, también podría 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 /imágenes

1. Creacion de particiones en Linux

 si añadimos un nuevo disco al sistema ya instalado deberemos crear las


particiones y los sistemas de ficheros
 esta operación implica los siguientes pasos:
1. creación de particiones (comando fdisk)
2. creación de los sistemas de ficheros (comando mkfs)
3. montado de los sistemas de ficheros (comando mount)

CIBERTEC CARRERAS PROFESIONALES


92

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ú:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 93

Ejemplo

Cree una partición 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 partición tipo Linux (Id 83)

 con l (list) vemos el tipo de particiones soportadas


 para cambiar el tipo de partición 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)

CIBERTEC CARRERAS PROFESIONALES


94

2.2. Otras herramientas


Existen otras herramientas para modificar las particiones:

cfdisk
interfaz para el fdisk (también escribe la tabla de particiones)
parted
programa de GNU que permite crear, destruir, cambiar el tamaño, chequear y
copiar particiones
qtparted
clónico del Partition Magic para Linux (basado en libparted)
Partition Magic
programa comercial de la compañía Symantec que puede manejar diversos
filesystems

2. Creación de los sistemas de ficheros


Sobre cada partición 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 número de bloques usados para el sistema de ficheros (si
no se pone, se usa toda la partición)

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


tipos específicos:

 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 información de sistemas de ficheros ext2/ext3


o información sobre inodos, bloques y grupos
 tune2fs permite ajustar parámetros en sistemas ext2/ext3
o p.e. define el intervalo entre chequeos automáticos, convierte ext2 en
ext3, etc.
 e2label cambia la etiqueta de un sistema ext2/ext3

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 95

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


reiserfstune, jfs_tune, etc.

3.1. Partición de intercambio

Si lo que creamos es una partición 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

CIBERTEC CARRERAS PROFESIONALES


96

 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 automágica
o -a monta los filesystems listados en /etc/fstab
o -r/-w monta los sistemas de sólo lectura/escritura
o -f simulación; usado con -v (verbose) para chequear
o -n monta sin añadir la entrada a /etc/mtab; se usa cuando /etc es sólo
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 sólo lectura
o -f fuerza el desmontado
 Si hay algún 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 automáticamente después de un tiempo de inactividad (por
defecto, 5 minutos)
 suele usarse para montar sistemas remotos con NFS
 Ficheros de configuración:
o /etc/auto.master define los puntos de montado
 por cada uno de los puntos definidos, se inicia un proceso
automount usando los parámetros indicados

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 97

 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 partición /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 automáticamente cuando se introduce/saca


el CD o disquete
 la línea 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 información de los
dispositivos

gnome-volume-manager

En el entorno GNOME monta automáticamente dispositivos removibles cuando se


conectan o se inserta un CD

 usa udev y HAL


 el usuario puede configurar la acción realizada al conectarse el dispositivo
(p.e. empezar a tocar un CD de musica cuando se inserta)

CIBERTEC CARRERAS PROFESIONALES


98

4. Chequeo del sistema de ficheros


Periódicamente es necesario chequear los sistemas de ficheros

 el comando básico para chequeo y reparación es fsck


 Al igual que mkfs, fsck es un front-end a comandos específicos 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 simultáneamente
 Número de enlaces erróneo
 Nodos-i conteniendo información pero que no están en la entrada del
directorio (la información se recupera en el directorio lost+found con el
número de nodo-i)
 Entradas del directorio que apuntan a nodos-i ilegales o vacíos
 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 haría
 -R usado con -A no chequea el filesystem raíz
 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 tamaños en bytes/KBytes
 -h salida más legible
 -s muestra sólo la ocupación total
o Ejemplo:
o $ du -sh /home /usr
o 1,2G /home
o 2,3G /usr

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 99

 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 tamaño 0)
 -h salida más legible
 -i da información sobre los inodos
 -l sólo muestra filesystems locales
 -T muestra el tipo de sistema de ficheros
o Ejemplo:
o $ df -h
o Filesystem Tamaño 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

CIBERTEC CARRERAS PROFESIONALES


100

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 características 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 más 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 acción 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 (ejecución): Si el permiso de ejecución 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 línea de comandos.

Y donde están 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:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 101

Ahora describamos la salida que hemos obtenido:

Con la siguiente línea interpretamos la información 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 sólo lectura
4 : Permisos = los otros usuarios tienen el permiso de sólo lectura
5 : Enlace Físico = tiene un enlace físico
6 : Propietario = el usuario raul es el propietario de este archivo
7 : Grupo = este archivo pertenece al grupo raul
8 : Tamaño = su tamaño 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

CIBERTEC CARRERAS PROFESIONALES


102

Como habrás apreciado los permisos están asignados en grupos de 3 (rwx) y


corresponde al: propietario (owner: dueño 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 ubicación 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 taquigrafía basada en caracteres, o


2. Utilizando números.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 103

8.1. CAMBIO DE PERMISOS UTILIZANDO TAQUIGRAFÍA DE


CARACTERES

Para poder utilizar la taquigrafía basada en caracteres tomemos en cuenta la


siguiente lista con su respectiva correspondencia:

Símbolo Descripción
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 ejecución
+ Añade 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 Descripción

$ 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
añadimos todos los permisos para el propietario rwx------
foto1.png
$ chmod g+x
añadimos el permiso de ejecución para el grupo rwx—x---
foto1.png
$ chmod o+r añadimos el permiso de lectura para los otros
rwx—xr--
foto1.png usuarios
$ chmod u-rw eliminamos los permisos de lectura y escritura
--x—xr--
foto1.png para el propietario
$ chmod a=r establecemos como unico permiso de lectura para
r—r—r--
foto1.png los 3 grupos

CIBERTEC CARRERAS PROFESIONALES


104

$ chmod a=rx establecemos los permisos de lectura y ejecución


r-xr-xr-x
foto1.png para los 3 grupos
$ chmod a=-
quitamos todos los permisos ----------
foto1.png
$ chmod u+rx,o+x añadimos los permisos de lectura y ejecución al
r-x-----x
foto1.png propietario y ejecución a otros
$ chmod g+rx,o-x añadimos permiso de lectura y ejecución al grupo
r-xr-x---
foto1.png y eliminamos permiso de ejecución a otros
añadimos permiso de escritura y ejecución al
$ chmod ug+wx,o-x
propietario y grupo, y eliminamos permiso de rwxrwx---
foto1.png
ejecución 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 sólo deberemos añadir la opción –
R. Ejemplo:

$ chmod a=rw DIRECTORIO –R

8.2. CAMBIO DE PERMISOS UTILIZANDO NÚMEROS

Cada permiso tienen asignado un valor, incluso cuando el permiso no está activo.
Para poder utilizar los números 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 números debemos tener en cuenta que
primero se sumarán los valores y dicho resultado será el que se coloque, aquí una
tabla que muestra dichos valores:

Valor Permisos Descripción


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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 105

Los permisos por números 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) — Sólo el propietario tiene el derecho de leer y escribir.


rw-r--r-- (644) — Sólo el propietario tiene los permisos de leer y escribir; el
grupo y los demás sólo pueden leer.
rwx------ (700) — Sólo 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 demás sólo pueden leer y ejecutar.
rwx--x--x (711) — El propietario tiene los derechos de lectura, escritura y
ejecución; el grupo y los demás sólo pueden ejecutar.
rw-rw-rw- (666) — Todo el mundo puede leer y escribir en el archivo. ¡No es
una buena elección!
rwxrwxrwx (777) — Todo el mundo puede leer, escribir y ejecutar. ¡Tampoco
es buena elección!

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

Ejemplo Descripción 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
añadimos todos los permisos para el propietario -rwx------
foto2.png
$ chmod 710
añadimos el permiso de ejecución para el grupo -rwx—x---
foto2.png
$ chmod 714 añadimos el permiso de lectura para los otros
-rwx—xr--
foto2.png usuarios
$ chmod 114 eliminamos los permisos de lectura y escritura
---x—xr--
foto2.png para el propietario
$ chmod 444 establecemos como unico permiso de lectura para
-r—r—r--
foto2.png los 3 grupos
$ chmod 555 establecemos los permisos de lectura y ejecución
-r-xr-xr-x
foto2.png para los 3 grupos
$ chmod 000
quitamos todos los permisos -----------
foto2.png
$ chmod 501 añadimos los permisos de lectura y ejecución al
-r-x-----x
foto2.png propietario y ejecución a otros

CIBERTEC CARRERAS PROFESIONALES


106

$ chmod 550 añadimos permiso de lectura y ejecución al grupo


-r-xr-x---
foto2.png y eliminamos permiso de ejecución a otros
añadimos permiso de escritura y ejecución al
$ chmod 770
propietario y grupo, y eliminamos permiso de -rwxrwx---
foto2.png
ejecución 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 operación
debe estar como root y los usuarios y grupos que utilizará deben haber sido creados
previamente.

Cambiando el propietario
Utilizamos el comando chown explicado líneas 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 opción –R:

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


los archivos y subdirectorios que estén dentro del directorio datos/

Cambiando el grupo
Utilizamos el comando chgrp explicado líneas 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 opción –R:

# chgrp clases datos/ –R # todos los archivos y sub directorios del directorio datos/
serán del grupo clases

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 107

Autoevaluación
1. ¿Cuál es el comando que se usa para crear un filesystem?

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

2. ¿Cuál es el comando que te permite reparar una particion?

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

3. ¿Cuál 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

CIBERTEC CARRERAS PROFESIONALES


108

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 109

UNIDAD DE
APRENDIZAJE

6
TEMA

Instalacion de Aplicaciones en Linux

TEMA
Describir las distintas formas de instalar aplicaciones en Linux

OBJETIVOS ESPECÍFICOS
 Comprender el uso de RPMs

 Entender como instalar aplicaciones compilándolas

 Instalacion de paquetes via yum

CONTENIDOS
 Introducción a RPM

 Manejo de RPM

 Construyendo un RPM

 Compilacion de aplicación en Linux

CIBERTEC CARRERAS PROFESIONALES


110

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 intención es que sea un sistema de empaquetado
abierto y disponible para el uso de cualquiera. Permite a los usuarios tomar el código
fuente (source code) y empaquetarlo en forma de fuentes y binaria de forma que los
ficheros binarios sean fácilmente instalables y rastreables y los fuentes puedan ser
reconstruidas con facilidad. También gestiona una base de datos de todos los
paquetes y sus ficheros que puede ser usada para verificar paquetes e interrogarla
para obtener información acerca de ficheros y/o paquetes.

2. Visión general

Con RPP (EL anterior sistema de empaquetado del cual RPM no deriva en
absoluto), los paquetes de fuentes debían ser ``hackeados N.T.: retocados '' para
poder construir las aplicaciones desde ellos. Teóricamente, se podía instalar un
paquete fuente RPP y efectuarle un make sin problemas. Pero los fuentes no eran
las originales, y no había referencia alguna a los cambios que se habia hecho para
que pudieran compilar. Se hacía 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 versión
de un programa, usted no necesita empezar desde la nada para conseguir que
compile bajo RHL. Puede examinar el parche para saber qué podría necesitar hacer.
De esta manera toda la configuración por defecto de compilación queda fácilmente a
la vista.

RPM también está diseñado para disponer de potentes parámetros de consulta.


Usted puede hacer búsquedas de paquetes a lo largo de toda la base de datos o
sólo de ciertos ficheros. También puede encontrar fácilmente a qué paquete
pertenece un fichero y de dónde proviene. Los ficheros RPM en sí mismos son
archivos comprimidos, pero puede consultar paquetes independientes fácil y

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 111

rápidamente, gracias a una cabecera binaria a medida añadida al paquete con toda
la información que puede necesitar, almacenada sin comprimir. Esto permite
consultas rápidas.

Otra poderosa característica es la habilidad de verificar paquetes. Si está


preocupado por haber borrado algún fichero importante, sólo tiene que verificar el
paquete. Quedará cumplidamente informado de cualquier anomalía. Llegados a ese
punto, podrá reinstalar el paquete si lo considera necesario. Cualquier fichero de
configuración que se tenga quedará a salvo.

3. Información 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 serán compatibles.

Estos son los mínimos 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 más simple, RPM puede usarse para instalar paquetes:

CIBERTEC CARRERAS PROFESIONALES


112

El siguiente comando más simple es desinstalar un paquete:

Uno de los más complejos pero más útiles comandos le permiten instalar paquetes a
través 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 válido, como esto:

Apercíbase de que ahora RPM puede hacer consultas y/o instalaciones a través de
FTP.

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 113

Podrá encontrar más detalles acerca de la función de estos parametros en la página


del manual de RPM.

5. Manejo de RPM

RPM es una herramienta potentísima y, como puede ver, dispone de varios


parámetros. La mejor forma de apercibirse de ellas es examinando unos cuantos
ejemplos. Antes mostramos una instalación/desinstalación sencilla, ahora van unos
cuantos más:

 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


114

 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 información al respecto:
 rpm -qpi koules-1.2-2.i386.rpm

La salida podría 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 115

/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 sólo unos pocos ejemplos. Otros, aún más creativos, podrá hacerlos
fácilmente 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 instalación de nuestra distribución), 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 extensión .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 sería recomendable leer la documentación que acompaña al
programa, que normalmente está contenida en un archivo con el nombre README.

CIBERTEC CARRERAS PROFESIONALES


116

También 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
inglés, 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 continuación deberemos configurar los archivos que nos permitirán compilar el


programa. Como norma general, deberíamos instalar nuestros programas en el
directorio /usr/local/bin, ya que ésta es la forma más 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 algún 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 aplicación. En caso contrario, siempre nos
queda la posibilidad de instalarlo en nuestro directorio personal (por ejemplo, en
/home/usuario/bin), aunque en este caso sólo 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 algún directorio no incluido en nuestro PATH, por lo
que no se podría ejecutar. También es necesario aclarar que la mayoría de los
programas ya tienen configurada una ruta de instalación de forma predeterminada,
como los programas diseñados 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 ningún
parámetro adicional.

Tras ejecutar ./configure veremos desfilar una larga sucesión de mensajes por la
consola y, si nuestro sistema dispone de todo lo necesario para llevar a cabo la
compilación de forma satisfactoria, se nos informará en el último mensaje mostrado.
En el caso de que se produzca algún error, deberemos prestar atención 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 aplicación
con la orden:

make

Dependiendo de la complejidad de la aplicación y del número de archivos de código


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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 117

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


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

Una vez compilada nuestra aplicación 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 aplicación con el comando:

make install

Si todo fue bien y no ocurrió ningún error, nuestra aplicación 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 instalación, 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 más seguro es que tengamos que crear esas
entradas nosotros mismos de forma manual.

Si el directorio de destino de nuestra aplicación está incluido en nuestro PATH,


podremos ejecutar la aplicación directamente desde la consola tecleando su
nombre. Lo más usual es que tanto el directorio /usr/local/bin como el
/home/usuario/bin estén ya incluidos en nuestro PATH personal.

Un poco de limpieza

Durante la compilación de un programa se genera un buen número 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 código
fuente del programa y volver a compilarlo), por lo que es recomendable eliminarlos
para ahorrar espacio en nuestro disco duro. Para ello, tras la instalación podemos
ejecutar la orden:

make clean

Desinstalar un programa compilado

Si lo que queremos es desinstalar un programa compilado a partir del código fuente,


cambiamos en la consola al directorio en el que fue descomprimido, compilado e
instalado, nos autentificamos como usuario root, y a continuación ejecutamos la
orden:

CIBERTEC CARRERAS PROFESIONALES


118

make uninstall

Después de la desinstalación podemos eliminar el directorio donde fue


descomprimido el programa si no pensamos volver a utilizarlo.

Resumen
Como compilar un programa en Linux desde su código fuente, se seguirán los
siguientes pasos:

tar –xvzf aplicación-a-instalar.tar.gz

cd aplicación-a-instalar

./configure

make

make install

make clean

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 119

7. Instalacion de aplicaciones via yum

Al instalar una nueva aplicación o programa con cualquiera de los métodos


anteriores, podriamos tener algunos problemas de dependencias que algunas veces
nos puede dar mas de un dolor de cabeza, existe un método de instalación y
actualización de paquetes que nos cubre con esa necesidad, ese método es la
instalación de paquetes via yum.

Yum es un programa automático para instalar / desinstalar los RPM del sistema.
Obtiene automáticamente dependencias y nos permite instalar correctamente los
paquetes.

Procedimientos
Con yum podemos realizar las siguientes tareas frecuentes:

7.1 Actualizar sistema.

Actualización del sistema con todas las dependencias que sean necesarias:

7.2 Búsquedas

Realizar una búsqueda de algún paquete o término en la base de datos en alguno


de los depósitos yum configurados en el sistema:

yum search cualquier-paquete

Ejemplo:

CIBERTEC CARRERAS PROFESIONALES


120

7.3 Consulta de información

Consultar la información contenida en un paquete en particular::

yum info cualquier-paquete

Ejemplo:

7.4 Instalación de paquetes

Instalación de paquetería con resolución automática de dependencias:

yum install cualquier-paquete

Ejemplo:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 121

7.5 Desinstalación de paquetes

Desinstalación 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


122

Autoevaluación
1. ¿Qué es el RPM?

2. ¿Si se desa consulta la información 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. ¿Cuáles son los pasoa para instalar una aplicación desde su código fuente?

4. ¿Qué te permite hacer yum?

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 123

UNIDAD DE
APRENDIZAJE

9
TEMA

ANÁLISIS 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 ESPECÍFICOS
 Comprender el funcionamiento de los logs en Linux

 Comprender e implementar las cuotas de disco

CONTENIDOS
 Archivos de registro

 Ubicación

 Visualización de los archivos de registro

 El daemon SYSLOG

 Cuotas de disco

CIBERTEC CARRERAS PROFESIONALES


124

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 información. 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 conexión al
sistema. Este capítulo discute donde encontrar estos archivos de registro, cómo
visualizarlos y qué buscar en ellos.

Algunos archivos de log están controlados por un demonio llamado syslogd.


Encontrará una lista de mensajes de log mantenidos por syslogd en el archivo de
configuración /etc/syslog.conf.

2. UBICACIÓN DE LOS ARCHIVOS DE REGISTRO

La mayoría de archivos de log están 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 múltiples archivos en el directorio de archivos log seguidos de


números. Estos se crean cuando los archivos de log circulan. Los archivos de log
circulan de manera que los tamaños de los archivos no sean demasiado amplios.
El paquete logrotate contiene una tarea de cron que hace circular
automáticamente los archivos de log al archivo de configuración
/etc/logrotate.conf y los archivos de configuración 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 125

3. VISUALIZACIÓN DE LOS ARCHIVOS DE REGISTRO

La mayoría de los archivos de registro están en formato de texto plano. Puede


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

También puede utilizar el Visor de registro del sistema. Para iniciar la aplicación,
hacer clic en Sistema del panel superiorAdministraciónRegistro de actividad
del sistema, o digite el comando gnome-system-log en una consola.

CIBERTEC CARRERAS PROFESIONALES


126

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 configuración /etc/syslog.conf.
El archivo de configuración 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
(añadirlo a un archivo de registro, enviarlo a la impresora, etc.).

Syslog permite también 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 serán 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
selección y un campo de acción, separados ambos por espacios o tabuladores.
El campo de selección está compuesto a su vez de dos partes separadas por un
punto: una que indica el servicio que envía el mensaje y otra que marca su
prioridad, separadas por un punto (“.”); ambas son indiferentes a mayúsculas y
minúsculas.

 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'

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 127

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


relacionados con el correo generarán mensajes ligados al servicio mail).
 En segundo lugar, la prioridad está compuesta de uno de los siguientes
términos, 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 acción requerida.

La segunda parte de cada línea del archivo de configuración de syslogd es el


campo de acción, y describe el destino de los mensajes (dónde 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


sincronización del archivo (vaciado del buffer de memoria a disco). Aunque
puede ocurrir que se pierda información si el sistema cae justo después 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 crítica en "critical"


#
*.=crit /var/adm/critical

 Un dispositivo físico: También tenemos la posibilidad de enviar los registros


del sistema a un dispositivo físico del mismo, típicamente un terminal o una
impresora. Así conseguimos, entre otras cosas, que esas entradas
permanezcan relativa o totalmente inalteradas (en función 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 podrán ser consultados con solo cambiar a ese terminal
mediante la combinación 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 tubería con nombre: Algunas versiones de syslogd permiten enviar


registros a ficheros de tipo pipe simplemente anteponiendo el símbolo ‘ | ‘ 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 también para procesar los registros utilizando cualquier aplicación de
Unix, tal y como veremos al hablar de logs remotos cifrados.

Por ejemplo, la siguiente línea de /etc/syslog.conf enviaría todos los mensajes


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

CIBERTEC CARRERAS PROFESIONALES


128

# Enviamos todos los mensajes a la tubería con nombre


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

 Una máquina remota: Se pueden enviar los mensajes del sistema a otra
máquina, de manera a que sean almacenados remotamente, sin más que
indicar en el campo de acción el nombre o dirección de dicho sistema
precedido por el signo ‘ @ '. Esto es útil si tenemos una máquina segura, en la
que podemos confiar, conectada a la red, ya que de esta manera se
guardaría allí una copia de los mensajes de nuestro sistema, copia que no
podría ser modificada en caso de que alguien entrase en la máquina 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 conexión), ya que una
de las principales cosas que hará este tipo de atacantes es eliminar cualquier
registro que denote su presencia en la máquina (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 están 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 estén conectados: Los errores con una prioridad de
emergencia se suelen enviar a todos los usuarios que estén conectados al
sistema, de manera que se den cuenta de que algo va mal; para ello
utilizamos un asterisco en el campo de acción:

# Mostramos los mensajes urgentes a todos los usuarios


# conectados, mediante wall
*.=emerg *

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 129

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 partición a la
cual se le aplicará la cuota de disco.
 Obviamente, durante la instalación, debió asignarse una partición dedicada
para, por mencionar un ejemplo, los directorios /var y /home.
 Con la finalidad de añadir el soporte para cuotas en las particiones
anteriormente mencionadas, se debe añadir en el fichero /etc/fstab los
parámetros usrquota y grpquota a las líneas que definen la configuración 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 utilizarán en adelante para almacenar la
información y estado de las cuotas en cada partición.

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 refiriéndose a posibles ficheros truncados que en realidad no
eran otra cosa sino ficheros de texto simple vacíos 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 recién 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


130

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 número de ficheros que está utilizando


el usuario. Un inodo (también conocido como Index Node) es un
apuntador hacia sectores específicos de disco duro en los cuales se
encuentra la información de un fichero. Contiene además la información
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 días).

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 través 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 utilizaría 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 131

5.3 Cuota de gracia (Soft)

El sistema tiene de modo predeterminado un periodo de gracia de 7 días que se


puede modificar con el mandato edquota -t, donde se puede establecer un nuevo
periodo de gracia por días, 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 límites de bloques o inodos que un usuario tiene
en una partición. Cuando el usuario excede el límite 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 partición. 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 días, se
utilizaría 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


132

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 partición.

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 partición, es necesario liberar espacio. Elimine
por completo el directorio ~/prueba-cuotas y vuelva a utilizar el mandato quota:

rm -fr ~/prueba-cuotas
quota

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 133

Autoevaluación
1. ¿Cuál 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. ¿Cuál 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. ¿Cuál 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


134

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 135

UNIDAD DE
APRENDIZAJE

10
TEMA

10

SERVIDOR NFS y SAMBA

TEMA
Describirla función de los servidores NFS y Samba

OBJETIVOS ESPECÍFICOS
 Comprender el funcionamiento del servidor NFS

 Comprender el funcionamiento del servidor Samba

CONTENIDOS
 Introducción a NFS

 Funcionamiento NFS

 Configuración del servidor NFS

 Configuración del cliente NFS

 Introduccion a Samba

 Configuración de samba cliente

 Configuración de samba Servidor

CIBERTEC CARRERAS PROFESIONALES


136

1. Servicio NFS - Introducción

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 capítulo se centra en los conceptos fundamentales de NFS e información


suplementaria. Para instrucciones específicas con respecto a la configuración y
operación del software NFS en servidores o clientes.

2. Funcionamiento
Hay tres versiones de NFS actualmente en uso. La versión 2 de NFS (NFSv2), es la
más antigua y está ampliamente soportada por muchos sistemas operativos. La
versión 3 de NFS (NFSv3) tiene más carácterísticas, incluyendo manejo de archivos
de tamaño variable y mejores facilidades de informes de errores, pero no es
completamente compatible con los clientes NFSv2. NFS versión 4 (NFSv4) incluye
seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con
descripción del estado. Linux soporta clientes tanto NFSv2, NFSv3 como NFSv4, y
cuando monta un sistema de archivos a través de NFS, Red Hat Enterprise Linux
usa NFSv4 por defecto.

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


(TCP) ejecutándose 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 supervisión (stateless) entre el cliente y
el servidor.

Cuando se utiliza NFSv2 o NFSv3 con UDP, bajo condiciones normales la conexión
UDP desatendida minimiza el tráfico de la red, ya que el servidor NFS envia un

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 137

cookie al cliente después que este tiene acceso al volumen compartido. Esta cookie
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 supervisión, si el servidor se cae de forma inesperada, los clientes UDP
continúan saturando la red con peticiones para el servidor. Por esta razón, TCP es el
protocolo preferido cuando se conecte a un servidor NFS.

Cuando se autentifique utilizando NFSv4, se crea una conexión atenta y, de forma


opcional, está disponible la autenticación de usuarios y grupos con Kerberos. NFSv4
no tiene interacción 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 autentificación 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.

Después de que al cliente se le permite acceso gracias a un TCP wrapper, el


servidor NFS recurre a su archivo de configuración, /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 están disponibles para el usuario.

3. Servicios requeridos
Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio para
proporcionar los archivos compartidos con NFS. NFSv2 y NFSv3 confía 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 cuál versión 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 automáticamente por el servicio nfs y no
requiere de la configuración del usuario. No se utiliza con NFSv4.

CIBERTEC CARRERAS PROFESIONALES


138

. rpc.nfsd . Este proceso es el servidor NFS. Trabaja con el kernel Linux para
satisfacer las demandas dinámicas 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 automáticamente por el servicio nfslock y no requiere configuración
por parte del usuario. No se utiliza con NFSv4.

. rpc.rquotad . Proporciona información de cuotas de usuario para los


usuarios remotos. Este proceso se inicia automáticamente por el servicio nfs y
no requiere configuración 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 autenticación (Kerberos versión 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 autenticación (Kerberos versión 5). Se requiere este
servicio para su uso con NFSv4.

4. Iniciar y detener NFS


Para ejecutar un servidor NFS, debe estar ejecutándose 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 opción restart es un atajo para detener y luego iniciar NFS. Esta es la


forma más eficiente de hacer que los cambios en la configuración tomen
efecto luego de modificar el archivo de configuración por NFS.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 139

Para reiniciar el servidor, como usuario root, escriba:

/sbin/service nfs restart

La opción condrestart (reinicio condicional) solamente inicia nfs si este está


actualmente ejecutándose. Esta opción 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 configuración del servidor NFS sin reiniciar el


servicio, como root escriba:

/sbin/service nfs reload

Por defecto, el servicio nfs no arranca automáticamente 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 configuración de servicios.

5. Configuración del servidor NFS


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

CIBERTEC CARRERAS PROFESIONALES


140

5.1. El archivo de configuración /etc/exports


El archivo /etc/exports controla cuáles sistemas de archivos son exportados a las
máquinas remotasy especifica opciones. Las líneas en blanco son ignoradas, se
pueden comentar líneas con el símbolo # y las líneas largas pueden ser divididas
con una barra invertida (\). Cada sistema de archivos exportado debe tener su propia
línea y cualquier lista de hosts autorizadas colocada después de un sistema de
archivos exportado, debe estar separada por un espacio. Las opciones para cada
uno de los hosts deben ser colocadas entre paréntesis directamente detrás del
identificador del host, sin ningún espacio de separación entre el host y el primer
paréntesis.

Una línea 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 141

Se pueden usar los métodos siguientes para especificar nombres de host:


. host único .Cuando una máquina en particular es especificada con nombre
completo de dominio, nombre de máquina o dirección IP.

. comodines . Usamos un carácter * 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 deberían de utilizar con direcciones
IP; sin embargo, es posible para estos funcionar accidentalmente si fallan las
búsquedas de DNS inversas.

Tenga cuidado cuando especifique comodines con nombres de dominio


completos, pues tienden a ser más exactos de lo que usted cree. Por ejemplo,
el uso de *.ejemplo.com como comodín, permitirá a ventas.ejemplo.com
acceder al sistema de archivos exportado, pero no a bob.ventas.ejemplo.com.
Para coincidir ambas posibilidades, debería usar *.ejemplo.com y
también *.*.ejemplo.com

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


dentro de una red más 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 añadidos o borrados de
un grupo NIS sin que afecte a /etc/exports. En su forma más sencilla, el archivo
/etc/exports sólo 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 opción en este ejemplo, tomarán efecto las siguientes
opciones predeterminadas de NFS:

. ro . Se montan los sistemas de archivos como de sólo 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 opción rw (lectura-escritura, read-write).

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


que otra petición 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 opción, la cual
sólo funciona si está usando la opción sync
.
. rootfisquash . Previene a los usuarios root conectados remotamente de tener
privilegios como root asignándoles el id del usuario de nobody. Esto

CIBERTEC CARRERAS PROFESIONALES


142

reconvierte el poder del usuario root remoto al de usuario local más bajo,
previniendo la alteración desautorizada de archivos en el servidor remoto.
Alternativamente, la opción nofirootfisquash lo desactiva. Para reconvertir a
todos los
usuarios, incluyendo a root, use la opción 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 número de ID del usuario y

<gid-value> es el número de ID del grupo.

Cada valor predeterminado para un sistema de archivos exportado debe ser


explícitamente ignorado.
Por ejemplo, si no se especifica la opción rw, entonces el sistema de archivos
es exportado como de sólo lectura. Lo siguiente es una línea 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 petición de escritura del cliente.

Adicionalmente, hay otras opciones que están disponibles que no tienen


especificado un valor predeterminado.

Estas incluyen la habilidad de desactivar la verificación por subdirectorios,


permitir el acceso desde puertos inseguros y permitir bloquear archivos
inseguros (necesario para algunas implementaciones antiguas de clientes
NFS). Vea la página man de exports para estas opciones menos usadas.

5.2. El comando exportfs


Cada sistema de archivos que se exporta a usuarios remotos a través 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 están 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 143

Lo siguiente es una lista de las opciones más comunes disponibles para


/usr/sbin/exportfs:

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


construyendo una nueva lista de exportación en /etc/lib/nfs/xtab. Esta opción
refresca la lista de exportación con cualquier cambio que hubiéramos
realizado en /etc/exports.

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


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 estén


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 opción se
utiliza a menudo para probar un sistema de archivos antes de añadirlo de
forma permanente a la lista de sistemas a exportar.

. -i. Ignora /etc/exports; sólo las opciones dadas desde la línea 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 compartición de archivos NFS mientras que
mantiene todos los demonios NFS activos. Para reactivar NFS, teclee exportfs
-r.

. -v . Operación 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 configuración 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 página man de mount para más detalles.

Si está accediendo a una compartición NFS emitiendo manualmente el comando


mount, el sistema de archivos debe ser remontado manualmente después de
reiniciar el sistema.

CIBERTEC CARRERAS PROFESIONALES


144

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

Una muestra de línea 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 máquina, dirección 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 leído 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 145

7. Servicio SAMBA - Introducción.

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 instalación de su distribución 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 programática 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 programática necesaria:

yum -y install samba samba-client

8. Configuración básica de Samba.

Para la mayoría de los casos la configuración de Samba como servidor de archivos


es suficiente.

CIBERTEC CARRERAS PROFESIONALES


146

9. Alta de cuentas de usuario.

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


Windows®. Es decir, si en una máquina con Windows® ingresamos como el usuario
"paco" con clave de acceso "elpatito16", en el servidor Samba deberá existir también
dicha cuenta con ese mismo nombre y la misma clave de acceso. Como la mayoría
de las cuentas de usuario que se utilizarán 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 serían Telnet, SSH, etc, es decir, que se permita acceso al interprete de
mandatos, será necesario especificar /bin/bash como interprete de mandatos y
además 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 asociándolos


con direcciones IP correspondientes. Para fines prácticos el nombre NetBIOS debe
tener un máximo 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 añadir entonces el nombre que hayamos elegido asociado a la dirección


IP que se tenga dentro de la red local. Opcionalmente podrá añadir también los
nombres y dirección IP del resto de las máquinas que conformen la red local. La
separación 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 147

11. Configuración del servidor SAMBA

11.1. Parámetros principales del fichero smb.conf.

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


este notará que la información que le será de utilidad viene comentada con un
símbolo # 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 parámetro


workgroup asignando un grupo de trabajo deseado:

workgroup = MIGRUPO

Opcionalmente puede establecer con el parámetro 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 parámetro server string es de carácter descriptivo. Puede utilizarse un


comentario breve que de una descripción del servidor.

server string = Servidor Samba %v en %L

11.2. Parámetros útiles para la seguridad.

La seguridad es importante y esta se puede establecer primeramente estableciendo


la lista de control de acceso que definirá que máquinas o redes podrán acceder
hacia el servidor. El parámetro hosts allow sirve para determinar esto. Si la red
consiste en la máquinas con dirección 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 máquinas. 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 parámetro interfaces permite establecer desde que interfaces de red del sistema
se escucharán peticiones. Samba no responderá a peticiones provenientes desde
cualquier interfaz no especificada. Esto es útil cuando Samba se ejecuta en un
servidor que sirve también de puerta de enlace para la red local, impidiendo se
establezcan conexiones desde fuera de la red local.

interfaces = 192.168.1.254/24

CIBERTEC CARRERAS PROFESIONALES


148

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 añadir public = Yes en la sección 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 tendrán 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
parámetros que resolverán 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 también a un usuario o bien un grupo (@grupo_que_sea) para la


administración 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 149

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


opers_impresion podrán realizar tareas de administración en las impresoras.

11.4. Compartiendo directorios a través de Samba.

Para los directorios o volúmenes que se irán a compartir, en el mismo fichero de


configuración encontrará distintos ejemplos para distintas situaciones particulares.
En general, puede utilizar el siguiente ejemplo que funcionará para la mayoría:

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

El volumen puede utilizar cualquiera de las siguientes opciones:

Opción Descripción
guest ok Define si ser permitirá el acceso como usuario
invitado. El valor puede ser Yes o No.
public Es un equivalente del parámetro 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
parámetro 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, podrán 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

CIBERTEC CARRERAS PROFESIONALES


150

antecedidos por una @. Ejemplo: fulano, mengano,


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

En el siguiente ejemplo se compartirá a través 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. Configuración 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-asignación de grupos de Windows en Samba.

Los grupos que existen en Windows también 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 información:

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-

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 151

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 número generado
aleatoriamente al iniciarse Samba por primera vez. Tome nota de dicho número,
ya que lo requerirá más adelante para re-asignar los nombres al español en el
mapa de grupos.

Los grupos anteriormente descritos trabajarán perfecta y limpiamente


asociándolos contra grupos en el sistema, pero solo si utiliza alguna versión de
Windows en ingles. Si utiliza alguna versión de Windows en español, habrá que
re-asignar los nombres de los grupos a los correspondientes al español y
asociarles a grupos en el sistema, esto a fin de permitir asignar usuarios a dichos
grupos y de este modo delegar tareas de administración del mismo modo que en
Windows.

Es por tal motivo que si se tiene la intención 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
español en el mapa de grupo de Samba y asociarles a éstos los grupos recién
creados en el sistema. El procedimiento se resume a ejecutar algo como lo
siguiente:

CIBERTEC CARRERAS PROFESIONALES


152

net groupmap modify \


ntgroup="Nombre grupo Windows en español" \
sid="número-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, asociándolo
al grupo en el servidor con unixgroup y añadiendo 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 guión para convertir los nombres al español y asociarlos a grupos
en Linux, donde solo deberá definir el número 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" \

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 153

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 impresión" \


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 mayoría de las heredadas"

exit 0

Nota: Este guión 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 impresión (S-1-5-32-550) -> opers_impresion
Administradores (S-1-5-32-544) -> administradores
Opers. de cuentas (S-1-5-32-548) -> opers_cuentas

CIBERTEC CARRERAS PROFESIONALES


154

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 máquina en el sistema a través del parámetro
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 teoría en el directorio definido para el recurso Profiles se deben crear


automáticamente los directorios de los usuarios donde se almacenarán los perfiles.
De ser necesario es posible generar éstos directorios utilizando el siguiente guión:

cd /home
for user in *
do
mkdir -p /var/lib/samba/profiles/$user
chown $user.$user /var/lib/samba/profiles/$user
done

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 155

12. Parámetros de configuración avanzada en el fichero smb.conf

12.1. Anunciando el servidor Samba en los grupos de trabajo.

La opción remote announce se encarga de que el servicio nmbd se anuncie a si


mismo de forma periódica hacia una red en particular y un grupo de trabajo
específico. Esto es particularmente útil si se necesita que el servidor Samba
aparezca no solo en el grupo de trabajo al que pertenece sino también otros grupos
de trabajo. El grupo de trabajo de destino puede estar en donde sea mientras exista
una ruta y sea posible la transmisión 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
transmisión 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 parámetro 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 parámetro veto files se utiliza para especificar la lista, separada por
diagonales, de aquellas cadenas de texto que denegarán 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 extensión 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 línea y especificar que dirección IP utiliza dicho servidor
WINS:

CIBERTEC CARRERAS PROFESIONALES


156

wins server = 192.168.1.1

12.4. Opciones específicas para Controlador Primario de Dominio


(PDC).

Si se va a configurar Samba como Controlador Primario de Dominio, se debe


especificar todos los parámetros descritos a continuación.

Si se quiere que las claves de acceso del sistema y Windows se mantengan


sincronizadas, es necesario descomentar las siguiente líenas:

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 parámetro local master define al servidor como examinador del dominio (o


master browser); El parámetro domain master define al servidor maestro del
dominio; El parámetro preferred master define al servidor como maestro del domino
preferido en caso de haber más servidores presentes en el mismo dominio como
controladores de dominio; El parámetro time server se utiliza para definir que las
estaciones deberán sincronizar la hora con el servidor al unirse al dominio; El
parámetro 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 configuración de Controlador Primario de Dominio requiere además definir donde


se almacenarán los perfiles de los usuarios. Windows 95, 98 y ME requieren se
defina con el parámetro logon home, en tanto que Windows NT, 2000 y XP
requieren se haga con el parámetro logon path. Para efectos prácticos y de
previsión, utilice ambos parámetros 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 guión que ejecutarán las estaciones Windows al conectarse hacia el
servidor. Esto se hace a través del parámetro logon script el cual puede definir o
bien un guión a utilizar por cada usuario (%u.bat) o bien por cada máquina (%m.bat)
o bien de modo general para todos (logon.cmd). Para no complicar las cosas, defina
inicialmente un guión general para todos del siguiente modo:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 157

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 también se definan los guiones a


ejecutar para distintas tareas como alta de máquinas, 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 máquina" -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 parámetro 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 parámetro add
machine script es particularmente importante porque es el mandato utilizado para
dar de alta cuentas de máquinas (trust accounts o cuentas de confianza) de modo
automático. El parámetro delete user script es para definir lo propio para eliminar
usuarios, delete group script para eliminar grupos, add user to group para añadir
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 también donde se almacenarán 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

CIBERTEC CARRERAS PROFESIONALES


158

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 añadirlo 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 automáticamente 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 método más práctico y seguro es el mandato smbclient. Este


permite acceder hacía cualquier servidor Samba o Windows® como si fuese el
mandato ftp en modo texto.

Para acceder al cualquier recurso de alguna máquina Windows® o servidor SAMBA


determine primero que volúmenes o recursos compartidos posee está. utilice el
mandato smbclient del siguiente modo:

smbclient -U usuario -L alguna_maquina

Lo cual le devolvería más menos lo siguiente:

Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]

Sharename Type Comment

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 159

--------- ---- -------


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 básica para poder navegar los recursos


compartidos por la máquina Windows® o el servidor SAMBA:

smbclient //alguna_maquina/recurso -U usuario

Ejemplo:

smbclient //LINUX/FTP -U jbarrios

Después 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 serían get, mget, put, del, etc.

Por montaje de unidades de red.

Si necesita poder visualizar desde GNU/Linux a las máquinas con Windows® e


interactuar con los directorios compartidos por estás, 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

CIBERTEC CARRERAS PROFESIONALES


160

chmod 4755 /usr/bin/smbumount

Para acceder hacia una máquina Windows® determine primero que volúmenes o
recursos compartidos posee está. utilice el mandato smbclient del siguiente modo:

smbclient -N -L alguna_maquina

Lo cual le devolvería más 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 algún_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 línea de mandato:

smbmount //alguna_maquina/algún_volumen /punto/de/montaje/

Si la máquina Windows® requiere un usuario y una clave de acceso, puede añadir a


lo anterior las opciones -username=el_necesario -password=el_requerido -
workgroup=MIGRUPO

Si la distribución de GNU/Linux utilizada es reciente, también puede utilizar el ya


conocido mandato mount del siguiente modo:

mount -t smbfs -o username=el_necesario,password=el_requerido


//alguna_maquina/algún_volumen /punto/de/montaje/

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 161

Si se genera una cuenta pcguest, similar a la cuenta nobody, podemos montar


volúmenes SMB sin ingresar una clave de acceso pero con privilegios restringidos, o
aquellos que definamos a un volumen accedido por un usuario invitado. Esto sería el
método por elección para compartir volúmenes 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 volúmenes remotos como usuarios invitado es muy sencillo. Un ejemplo real
sería:

mount -t smbfs -o guest //LINUX/FTP //var/ftp

Lo anterior monta un volumen SAMBA de una máquina con GNU/Linux en otra


máquina con GNU/Linux.

Puede añadirse también una entrada en /etc/fstab de modo que sólo tenga que ser
tecleado mount /punto/de/montaje. Esta línea sería de modo similar al siguiente:

//LINUX/FTP /var/ftp smbfs user,auto,guest,ro,gid=100 0 0

Recuérdese que el volumen compartido debe estar configurado para permitir


usuarios invitados:

[FTP]
comment = Programática libre (RPMS)
path = /var/ftp/pub
public = Yes
guest ok = Yes

Modo gráfico

Desde el entorno de GNOME.

Si utiliza GNOME 2.x o superior, éste incluye un módulo para Nautilus que permite
acceder hacia los recursos compartidos a través 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.

CIBERTEC CARRERAS PROFESIONALES


162

Desde Windows.

Por su parte, desde Windows deberá ser posible acceder sin problemas hacia
Samba como si fuese hacia cualquier otra máquina con Windows. Vaya, ni Windows
ni el usuario notarán siquiera la diferencia.

Uniendo máquinas al dominio del Controlador Primario de Dominio.

El controlador de dominio permite utilizar a Samba como servidor de autenticación y


servidor de archivos que además permite almacenar el perfil, preferencias y
documentos del usuario en el servidor automáticamente sin la intervención del
usuario.

Creando manualmente cuentas de máquinas

Bajo algunas circunstancias será necesario crear cuentas de máquinas (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


máquina" -M maquina-windows$
smbpasswd -a maquina-windows$

Es de resaltar que las cuentas de máquinas deben incluir obligatoriamente un


símbolo $ 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
implementación completa como miembros de dominio, no se requieren cuentas de
confianza. El procedimiento para unirse al dominio es el siguiente:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 163

• Acceder hacia Menú de inicio → Configuraciones → Panel de control


→ Red
• Seleccione la pestaña de Configuración
• Seleccione «Cliente de redes Microsoft»
• Haga clic en el botón 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 además cuente con una clave de acceso
asignada con smbpasswd.

Windows NT

• Crear manualmente la cuenta de máquina como se decribió


anteriormente.
• Acceder hacia Menú de inicio → Configuraciones → Panel de control
→ Red.
• Seleccionar la pestaña de «Identificación».
• Clic en el botón de «Cambiar».
• Ingrese el nombre del dominio y el nombre del sistema. No selecione
«Crear una cuenta de máquina en el Dominio».
• Clic en «Aceptar»
• Espere algunos segundos.
• Deberá mostrarse un mensaje emergente de confirmación 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 además 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 pestaña de «Identificación de red» o «Nombre del
sistema».
• Clic en el botón de «Propiedades».
• Clic en el botón «Miembro de dominio»
• Ingrese el nombre del dominio y el nombre de la máquina y haga clic
en el botón de «Aceptar»
• Aparecerá un diálogo que preguntará por una cuenta y clave de

CIBERTEC CARRERAS PROFESIONALES


164

acceso con privilegios de administración 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 confirmación 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 además cuente con una clave de acceso
asignada con smbpasswd.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 165

Autoevaluación
1. ¿Qué permite el servicio NFS?

2. ¿Qué permite el servicio samba?

3. ¿Cuál es el archivo de configuración del servicio NFS?

(a) smb.conf
(b) exports
(c) resolv.conf
(d) hosts

CIBERTEC CARRERAS PROFESIONALES


166

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 167

UNIDAD DE
APRENDIZAJE

11
TEMA

11

SERVIDORES DNS

TEMA
Describir el uso del Sistema de Nombres de Dominio (DNS).

OBJETIVOS ESPECÍFICOS
 Comprender el funcionamiento del Sistema de Nombres de Dominio

 Comprender el funcionamiento del Servidor DNS de solo-caché

CONTENIDOS
 Introducción a DNS

 Funcionamiento del DNS

 Configuración del Servidor DNS

 Configuración y consultas del cliente DNS.

 Configuración de DNS Primario

CIBERTEC CARRERAS PROFESIONALES


168

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 aplicación, el servidor DNS puede traducir el nombre a la
información asociada con el mismo, como una dirección IP. En la actualidad las
redes son heterogéneas (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 mayoría de empresas son pequeñas y medianas con un número pequeño de


hosts por lo que la responsabilidad de la administración de los servidores de
nombres recae en el Proveedor de Servicios de Internet (ISP), esta empresa se
encargará de la administración del espacio de nombres de su dominio DNS,
alojará y gestionará los datos de su zona DNS.

Para las empresas que un número mayor de hosts sea considerable, tendrá que
administrar su propio servidor de nombres para facilitar la resolución de nombres
de su red.

1.1. Berkeley Intenet name Domain - Bind

Bind es una aplicación 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).

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 169

 Herramientas por verificar el funcionamiento apropiado del servidor de


DNS.

La página oficial del proyecto es: http://www.isc.org

ISC BIND se puede instalar tanto en Linux como en Windows 2000/XP/2003

2. INSTALACIÓN DEL SERVIDOR DNS

ISC Bind se puede instalar tanto en Linux como en Windows 2000/XP/2003, para
el caso específico de Linux se deben instalar los siguientes paquetes:
 bind – Una implementación de los protocolos DNS.
 bind-utils – Contiene una colección de utilidades para consultas DNS a
servidores de nombres para encontrar información de hosts de Internet.
 caching-nameserver – Incluye los archivos de configuración 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


170

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 configuración en las siguientes ubicaciones:


 /etc/named.conf – Archivo de configuración para el demonio named.
 Directorio /var/named/ - Directorio de trabajo de named el cual almacena
los archivos de zonas, estadísticas y caché.

3. Tipos de servidores DNS.

Hay dos tipos de servidores de nombres:


• Servidor Maestro: También denominado Primario. Obtiene los
datos del dominio a partir de un fichero hospedado en el mismo
servidor.
• Servidor Esclavo: También denominado Secundario. Al iniciar
obtiene los datos del dominio a través de un Servidor Maestro
(o primario), realizando un proceso denominado transferencia
de zona.

Un gran número de problemas de operación 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 información de la zona misma esté disponible siempre y
forma confiable hacia los Clientes DNS a través de Internet cuando un servidor
DNS de dicha zona falle, no esté disponible y/o esté inalcanzable.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 171

Contar con múltiples servidores también facilita la propagación 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 múltiples servidores para una zona permite contar
con redundancia y respaldo del servicio.

Con múltiples servidores, por lo general uno actúa como Servidor Maestro o
Primario y los demás 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 automática 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 reenvía hacia otro Servidor DNS repitiéndose 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 información 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 información 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. Descripción.


Registro de dirección que resuelve un nombre de un
A (Address)
anfitrión hacia una dirección IPv4 de 32 bits.
Registro de dirección que resuelve un nombre de un
AAAA
anfitrión hacia una dirección IPv6 de 128 bits.
Registro de nombre canónico 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.

CIBERTEC CARRERAS PROFESIONALES


172

Tipo de Registro. Descripción.


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.
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
Resolución 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 información con autoridad acerca
SOA (Start of Authority)
de un dominio de Internet, dirección de correo
electrónico del administrador, número de serie del
dominio y parámetros de tiempo para la zona.
Registro de servicios que especifica información
acerca de servicios disponibles a través 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 información 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 filtración 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 Reenvío.
Devuelven direcciones IP para las búsquedas hechas para nombres FQDN (Fully
Qualified Domain Name).

En el caso de dominios públicos, la responsabilidad de que exista una Zona de


Autoridad para cada Zona de Reenvío 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
través de un NIC (por ejemplo ejemplo: www.nic.mx) son quienes se hacen cargo
de las Zonas de Reenvío, ya sea a través de su propio Servidor DNS o bien a
través de los Servidores DNS de su ISP.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 173

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 través de Internet.

Zonas de Resolución Inversa.


Devuelven nombres FQDN (Fully Qualified Domain Name) para las búsquedas
hechas para direcciones IP.
En el caso de segmentos de red públicos, la responsabilidad de que exista de
que exista una Zona de Autoridad para cada Zona de Resolución 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 Resolución Inversa.

4. Configuración del servidor DNS

Para configurar el servidor DNS BIND se puede realizar creando el archivo


/etc/named.conf manualmente, pero para facilitar su configuración
recomendamos el uso de la herramienta de configuración Sistema de nombre de
dominio (system-config-bind).

4.1. Archivo /etc/named.conf

Es una colección de sentencias que están 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 configuración
Sistema de nombre de dominio. Cualquier cambio manual a estos será
sobrescrito la siguiente vez que use la herramienta de configuración Sistema
de nombre de dominio.

4.2. Configuración del servidor BIND DNS

Haga clic en el menú Sistema del panel superior, luego en Administración,


luego en Configuración de servidores, luego en Sistema de nombres de
dominio. Se mostrara la imagen inferior, luego haga clic en el botón
Aceptar.

CIBERTEC CARRERAS PROFESIONALES


174

La siguiente imagen muestra configuración de los archivos de zona


predeterminados.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 175

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 configuración básica 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 botón Propiedades, se
mostrara la imagen inferior:

 En la vista superior derecha seleccionar la opción allow-query, luego


hacer clic en el botón +.
 En la vista inferior derecha seleccionar Dirección IPv4, luego llene los
campos de la lista, agregando la dirección de red y luego haga clic en el
botón Añadir.
 Haga clic en el botón Aplicar y luego en el botón Aceptar.
 Guarde los cambios haciendo clic en Guardar.

CIBERTEC CARRERAS PROFESIONALES


176

 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. Configuración del Firewall local

En forma predeterminada el equipo tiene configurado un Firewall personal


que permite que el equipo se conecta hacia fuera sin ninguna restricción
pero cualquier petición de acceso al equipo es denegada.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 177

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 estén permitidas.

Haga clic en el menú Sistema del panel superior, luego en Administración,


luego en Nivel de seguridad y cortafuegos. Se mostrara la imagen
inferior:
 Clic en la pestaña Opciones de Cortafuegos.
 Clic en la opción Otros puertos.
 Clic en el botón Añadir.

 Ingrese el número de puerto 53 y elija el protocolo TCP, luego clic en el


botón Aceptar.
 Repita este paso para configurar puerto 53, protocolo UDP.

CIBERTEC CARRERAS PROFESIONALES


178

 Se mostrara la siguiente imagen:

 Haga clic en el botón Aplicar y luego en el botón Aceptar.

4.4. Configuración 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 179

En el caso de que el equipo cliente tenga instalado Windows:

 Seleccione el icono Mis sitios de red, haga clic derecho y seleccione


Propiedades del menú de opciones.
 Luego haga clic sobre Conexión de área local y seleccione la opción
Propiedades.
 Seleccione la opción Protocolo Internet (TCP/IP) de la lista y haga clic en
la opción Propiedades.
 Elija la opción Usar las siguientes direcciones de servidor DNS e ingrese
la dirección IP de su nuevo servidor DNS en la caja Servidor DNS
preferido.
 Presione el botón Aceptar y nuevamente clic en el botón Aceptar, cierre
la ventana Conexiones de red.

CIBERTEC CARRERAS PROFESIONALES


180

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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 181

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 CARRERAS PROFESIONALES


182

cibertec.edu.pe mail exchanger = 5 antispamsi.cibertec.edu.pe.


> 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. CONFIGURACIÓN DEL SERVIDOR DNS PRIMARIO

Para esta configuración 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. Creación de una nueva zona directa

Haga clic en el menú Sistema del panel superior, luego en Administración,


luego en Configuración de servidores, luego en Sistema de nombres de
dominio.
 Clic en Nuevo.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 183

 Seleccionar el elemento a agregar, en este caso Zona.

 En la sección Clase clic en Aceptar.

 Ingrese el nombre del domino, clic en Aceptar.

CIBERTEC CARRERAS PROFESIONALES


184

 Se mostrara los parámetros de la zona, clic en Aceptar.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 185

 Se mostrara la venta principal de configuración


 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


186

6.2.2. Agregando un nuevo host

 Clic en A Dirección IPv4


 Se mostrara una nueva ventana
 Ingrese el Nombre de dominio totalmente calificado (FQDN), por
ejemplo para el servidor Web: server1.vasquez.com.pe.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 187

 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 Canónico.
 Clic en Aceptar.

CIBERTEC CARRERAS PROFESIONALES


188

 Se mostrara la ventana principal.


 Clic en Guardar.

 Luego finalizada la configuración 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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 189

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


190

Autoevaluación

Según lo expuesto en clase, de un ejemplo de cómo usar el servidor DNS Primario.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 191

UNIDAD DE
APRENDIZAJE

12
TEMA

12

SERVIDOR DHCP

TEMA
Entender e implementar el servidor DHCP

OBJETIVOS ESPECÍFICOS
 Comprender el funcionamiento del servidor DHCP

CONTENIDOS
 Introducción

 Configuración de un servidor DHCP

 Configuración de cliente DHCP

CIBERTEC CARRERAS PROFESIONALES


192

1. Introducción.

DHCP (acrónimo de Dynamic Host Configuration Protocol que se traduce


Protocolo de configuración dinámica de servidores) es un protocolo que permite a
dispositivos individuales en una red de direcciones IP obtener su propia
información de configuración de red (dirección IP; máscara de sub-red, puerta de
enlace, etc.) a partir de un servidor DHCP. Su propósito principal es hacer más
fáciles de administrar las redes grandes. DHCP existe desde 1993 como
protocolo estándar y se describe a detalle en el RFC 2131.
Sin la ayuda de un servidor DHCP, tendrían que configurarse de forma manual
cada dirección IP de cada anfitrión que pertenezca a una Red de Área Local. Si
un anfitrión se traslada hacia otra ubicación donde existe otra Red de Área Local,
se tendrá que configurar otra dirección 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 dirección IP a cada
anfitrión que se una a la Red de Área Local. Cuando, por mencionar un ejemplo,
una computadora portátil se configura para utilizar DHCP, a ésta le será asignada
una dirección IP y otros parámetros de red necesarios para unirse a cada Red de
Área Local donde se localice.

Existen tres métodos de asignación en el protocolo DHCP:


• Asignación manual: La asignación utiliza una tabla con
direcciones MAC (acrónimo de Media Access Control Address,
que se traduce como dirección de Control de Acceso al
Medio). Sólo los anfitriones con una dirección MAC definida en
dicha tabla recibirá el IP asignada en la misma tabla. Ésto se
hace a través de los parámetros hardware ethernet y fixed-
address.
• Asignación automática: Una dirección de IP disponible dentro
de un rango determinado se asigna permanentemente al

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 193

anfitrión que la requiera.


• Asignación dinámica: Se determina arbitrariamente un rango
de direcciones IP y cada anfitrión conectado a la red está
configurada para solicitar su dirección IP al servidor cuando se
inicia el dispositivo de red, utilizando un intervalo de tiempo
controlable (parámetros default-lease-time y max-lease-time)
de modo que las direcciones IP no son permanentes y se
reutilizan de forma dinámica.

2. Configuración de un servidor DHCP en Linux

Se requiere instalar el paquete dhcp el cual deberá estar incluido en los discos de
instalación de la mayoría de las distribuciones.

yum -y install dhcp

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

up2date -i dhcp

3. DHCP - Fichero de configuración.

Considerando como ejemplo que se tiene una red local con las siguientes
características:

• Número de red 192.168.0.0


• Máscara 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 dinámico:
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


194

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 través de la interfaz de red utilizada por la LAN, esto en el caso de tener
múltiples dispositivos de red. Edite el fichero /etc/sysconfig/dhcpd y agregue
como argumento del parámetro 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 configuración surtan efecto, ejecute:

/sbin/service dhcpd restart

Para detener el servicio, ejecute:

/sbin/service dhcpd stop

Para añadir dhcpd al arranque del sistema, ejecute:

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 195

/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. Configuración de un cliente DHCP:


Para hacer que una máquina linux use IPs dadas por una servidor DHCP basta
indicarle que use IP dinámica, lo que se consigue poniendo las siguientes líneas
en /etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
También hay que comentar la línea GATEWAY=...
en el fichero /etc/sysconfig/network

5. Archivo de registro
En el servidor DHCP podemos apreciar la concesión de la dirección IP al equipo
cliente DHCP ejecutando el siguiente comando:
tail –f /var/log/messages

CIBERTEC CARRERAS PROFESIONALES


196

Autoevaluación
1. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.
2. ¿Cuál es el nombre del servicio que esta siendo accedido?

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 197

UNIDAD DE
APRENDIZAJE

13
TEMA

13

SERVIDOR WEB

TEMA
Describir el uso del Servidor HTTP Apache.

OBJETIVOS ESPECÍFICOS
 Comprender el funcionamiento del Servidor HTTP Apache.

CONTENIDOS
 Introducción

 Configuración del Servidor HTTP Apache.

CIBERTEC CARRERAS PROFESIONALES


198

5. INTRODUCCIÓN

El Servidor HTTP Apache es un servidor Web de tecnología Open Source sólido


y para uso comercial desarrollado por la Apache Software Foundation,
actualmente el proyecto se encuentra en la versión 2.2.4.

 Página oficial: http://httpd.apache.org.


 Documentación en español: http://httpd.apache.org/docs/2.0/es/

Tiene una estructura modular, que permite agregar funciones que no se


encuentran en el código fuente de Apache. Estos módulos 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, día, hora, pagina accedida) en el archivo
access.log. Cualquier problema con el servidor HTTP Apache se registra en el
archivo error.log.

6. INSTALACIÓN DEL SERVIDOR HTTP APACHE

HTTP Apache se puede instalar tanto en Linux como en Windows 2000/2003,


para el caso específico de Linux se deben instalar los siguientes paquetes:
 httpd – Potente, eficiente y extensible servidor web.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 199

 httpd-manual – Paquete que contiene el manual y la guía de referencia


para el servidor HTTP Apache.
 system-config-httpd – Herramienta de configuración 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 página web predeterminada.

CIBERTEC CARRERAS PROFESIONALES


200

7. CONFIGURACIÓN DEL SERVIDOR HTTP APACHE

El archivo /etc/httpd/conf/httpd.conf es el archivo de configuración del servidor


HTTP Apache, donde podemos:
 Definir las direcciones IP/números de puertos.
 Módulos.
 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 después de la instalación el servidor HTTP Apache


tiene la configuración básica que le permite funcionar.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 201

### 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 página 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


202

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 algún error en el servidor podemos ejecutar el comando:


tail –f /var/log/httpd/error_log

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 203

Ejercicio 1:
Crear una segunda página web en el directorio /var/www/html/datos/ y probar el
acceso.

Anote sus observaciones:

-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------

CIBERTEC CARRERAS PROFESIONALES


204

4. Virtual Hosts
El término Hosts Virtuales se refiere al hecho de mantener más de un servidor en
una misma máquina, diferenciando se únicamente por su nombre de dominio.
Por ejemplo: www.cibertec.com.pe y www.cibertec.org.pe con la misma dirección
IP.

Obviamente estos nombres deben estar registrados en el servidor DNS.

5. CONFIGURACIÓN DE LOS HOSTS VIRTUALES

Paso 1. Apache identifica un host virtual con el parámetro NameVirtualHost, la IP


indicada será tomada como referencia para realizar la búsqueda 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 página 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. Configuración del servidor DNS primario para agregar dominio


vasquez.org.pe, y agregar el registro correspondiente

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 205

Paso 5. Reiniciar los demonios: named y hhtpd.

Paso 6. Probar desde un equipo cliente el acceso al servidor web

CIBERTEC CARRERAS PROFESIONALES


206

Ejercicio 2:
Crear una segunda página web en el directorio /var/www/html2 y probar el
acceso.

Anote sus observaciones:

-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 207

Autoevaluación
3. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.
¿Cuál es el nombre del servicio que esta siendo accedido?
(a) imap
(b) smbd
(c) domain
(d) pop3

4. ¿Cuál es el archivo de configuración del servidor Web?


(a) httpd.conf
(b) apache.conf
(c) web.conf
(d) http.conf

5. 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

6. 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


208

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 209

UNIDAD DE
APRENDIZAJE

14
TEMA

14

SERVIDOR DE CORREO

TEMA
Describir e implementar el uso de de un servidor de correo

OBJETIVOS ESPECÍFICOS
 Comprender el funcionamiento de un servidor.

 Configuración del servicio de correo en Linux con Postfix

CONTENIDOS
 Introducción

 Funcionamiento

 Configuración

CIBERTEC CARRERAS PROFESIONALES


210

1. INTRODUCCIÓN

Los servidores de Correos están 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 propósito
el aislar al usuario de los Agentes de Transporte. Sendmail, Postfix, y Exim
son los MTA’s proporcionados por CentOS.

En Software Libre se tiene que el servidor de Correos consta de los siguientes


elementos mínimos:
 Servidor SMTP (Simple Mail Transfer Protocol)
o Proporciona un método para transferir correos sobre un protocolo de
transporte como el TCP/IP.
o Protocolo utilizado para el envío de mensajes a otros servidores de SMTP
y la recepción 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 máquinas 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 más opciones a comparación de POP3, soporta
algunas características que no están incluidas en POP, como la
manipulación de múltiples carpetas remotas, visualizar correos sin
necesidad de bajarlo del servidor.
o Facilita la utilización de webmails (servicios de correo basado sobre web).
o El puerto que habilita es el 143.

2. INSTALACIÓN

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. CONFIGURACIÓN

3.1. Configuración Postfix

Postfix tiene dos archivos de configuración los cuales son:


 /etc/postfix/master.cf
Este archivo contiene la configuración para los procesos maestros de
Postfix. Cada línea indica como un componente debe funcionar

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 211

 /etc/postfix/main.cf
Es el archivo principal, donde reside el corazón del funcionamiento de
Postfix. No tiene una estructura concreta, por lo que se recomienda
analizar con mayor detalle las directivas según sus propias
necesidades.

Paso 1. Agregue las siguientes líneas en el archivo /etc/postfix/main.cf

# Parámetros 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

CIBERTEC CARRERAS PROFESIONALES


212

3.2. Configuración dovecot

Paso 1. El archivo de configuración es /etc/dovecot.conf, agregue la


siguiente línea:

protocols = imap pop3

Paso 2. Iniciar el servidor SMTP: /etc/init.d/dovecot start

3.3. Configuración Firewall local

Habilitar los puertos: SMTP (25) y POP3 (110)

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 213

3.4. Configuración 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 botón


Siguiente.

Paso 3. Ingrese los datos correspondiente en cada casilla, luego clic en el


botón Siguiente.

CIBERTEC CARRERAS PROFESIONALES


214

Paso 4. Ingrese el nombre de la cuenta de usuario y la contraseña, luego


clic en el botón Siguiente.

Paso 4. Ingrese la dirección IP de los servidores: entrante (SMTP) y


saliente (POP3), luego clic en el botón Finalizar.

Se mostrara la siguiente imagen.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 215

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

CIBERTEC CARRERAS PROFESIONALES


216

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

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 217

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/dirección 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 parámetro smtpd_sender_restrictions restringe las direcciones que el
sistema acepta cuando se ingresa el comando MAIL FROM.

Una configuración típica en el main.cf sería:

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/dirección cliente

Parámetro que restringe desde que clientes este sistema acepta conexiones
SMTP. Las listas de bloqueo son unas listas de IP de servidores que
supuestamente envían spam. Entre las listas más usadas se encuentran las
RBL de mail-abuse.org o las SBL de spamhaus.org.

Una configuración típica en el main.cf sería:

smtpd_client_restrictions = hash:/etc/postfix/access,
reject_maps_rbl
maps_rbl_domains = rbl.maps.vix.com,
relays.orbd.org,
sbl.spamhaus.org

CIBERTEC CARRERAS PROFESIONALES


218

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 sesión SMTP. El
parámetro smtpd_helo_restrictions restringe aquellos hosts que pueden
enviar el comando HELO.

Una configuración típica en el main.cf sería:

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 parámetro 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.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 219

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.

CIBERTEC CARRERAS PROFESIONALES


220

6.3. postconf

Utilitario de configuración que muestra información referente al sistema de


correo Postfix.

CARRERAS PROFESIONALES CIBERTEC


Sistemas Operativos Avanzados (Linux) 221

Autoevaluación

CIBERTEC CARRERAS PROFESIONALES


222

Agradecimientos

Extractos de documentos extraidos de:

http://www,redhat.com Página Web de Red Hat


http://www.europe.redhat.com/ Página Web de Red Hat Europa
http://www.wikilearning.com/ Comunidad Wiki
http://www.linuxparatodos.net Linux Para Todos - Factor Evolución

CARRERAS PROFESIONALES CIBERTEC

También podría gustarte