Sistemas Operativos Avanzados v4

210
Sistemas Operativos Avanzados

Transcript of Sistemas Operativos Avanzados v4

Page 1: Sistemas Operativos Avanzados v4

Sistemas Operativos Avanzados

Page 2: Sistemas Operativos Avanzados v4

2 S istemas Operat ivos Avanzados

Page 3: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 3

CIBERTEC CARRERAS PROFESIONALES

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

Page 4: Sistemas Operativos Avanzados v4

4 S istemas Operat ivos Avanzados

Índice

Presentación

Red de contenidos

Sesiones de aprendizaje

SEMANA 1 : Introducción al software libre, características de Linux

SEMANA 2 : Comandos Básicos, configuración de red

SEMANA 3 : Administración de cuentas de usuarios y grupos

SEMANA 4 : Estructura y seguridad del sistema de archivos

SEMANA 5 : Manejo de filesystems en Linux

SEMANA 6 : Instalación de paquetes en Linux

SEMANA 7 : Semana de Exámenes Parciales de Teoría

SEMANA 8 : Examen Parcial de Laboratorio

SEMANA 9 : Archivos de registro, cuotas de disco

SEMANA 10 : Servidor NFS, servidor Samba

SEMANA 11 : Servidor DNS

SEMANA 12 : Servidor DHCP

SEMANA 13 : Servidor HTTP

SEMANA 14 : Servidor de Correo

SEMANA 15 : Examen Final de Laboratorio

Page 5: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 5

CIBERTEC CARRERAS PROFESIONALES

Presentación

El curso Linux Avanzado 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.

Page 6: Sistemas Operativos Avanzados v4

6 S istemas Operat ivos Avanzados

Introduccion 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

S E M A N A

1

Page 7: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 7

CIBERTEC CARRERAS PROFESIONALES

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

Page 8: Sistemas Operativos Avanzados v4

8 S istemas Operat ivos Avanzados

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

1.2 UNIX Unix es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy Durante fines de la 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

Page 9: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 9

CIBERTEC CARRERAS PROFESIONALES

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

Page 10: Sistemas Operativos Avanzados v4

10 S istemas Operat ivos Avanzados

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

Page 11: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 11

CIBERTEC CARRERAS PROFESIONALES

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:

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

Page 12: Sistemas Operativos Avanzados v4

12 S istemas Operat ivos Avanzados

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

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

Page 13: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 13

CIBERTEC CARRERAS PROFESIONALES

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

Page 14: Sistemas Operativos Avanzados v4

14 S istemas Operat ivos Avanzados

No debe confundirse el shareware con el sistema freeware que indica que un software es totalmente gratuito, si bien es cierto que el primero se inspira y tiene sus 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. • 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.

Page 15: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 15

CIBERTEC CARRERAS PROFESIONALES

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

Page 16: Sistemas Operativos Avanzados v4

16 S istemas Operat ivos Avanzados

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.

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.

Page 17: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 17

CIBERTEC CARRERAS PROFESIONALES

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

1.9.1.2 Historia El proyecto GNOME (GNU Network Object Model Environment) surgió en agosto de 1997 como proyecto liderado por los mexicanos Miguel de Icaza y Federico Mena para crear un entorno de escritorio completamente libre para sistemas operativos libres, en especial para GNU/Linux. Desde el principio, el objetivo principal de GNOME ha sido proporcionar un conjunto de aplicaciones amigables y un escritorio 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.

Page 18: Sistemas Operativos Avanzados v4

18 S istemas Operat ivos Avanzados

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

Page 19: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 19

CIBERTEC CARRERAS PROFESIONALES

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.

Page 20: Sistemas Operativos Avanzados v4

20 S istemas Operat ivos Avanzados

1.9.3 XFCE

Xfce (éxfeis) es un entorno de escritorio ligero para sistemas tipo Unix como Linux, BSD, Solaris y derivados. Se configura íntegramente con el 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.

Page 21: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 21

CIBERTEC CARRERAS PROFESIONALES

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

Page 22: Sistemas Operativos Avanzados v4

22 S istemas Operat ivos Avanzados

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.

Page 23: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 23

CIBERTEC CARRERAS PROFESIONALES

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

Page 24: Sistemas Operativos Avanzados v4

24 S istemas Operat ivos Avanzados

Comandos Basicos y Configuracion

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

S E M A N A

2

Page 25: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 25

CIBERTEC CARRERAS PROFESIONALES

1. Informacion del Sistema A continuacion daremos una serie de comandos utiles para conocer aspectos generales del sistema

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

1.2. uname [parametros] La funcion de este comando es similar al anterior, la unica diferencia es que este nos arroja mas 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 Ejemplo:

Page 26: Sistemas Operativos Avanzados v4

26 S istemas Operat ivos Avanzados

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

Page 27: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 27

CIBERTEC CARRERAS PROFESIONALES

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] Ejemplo:

Page 28: Sistemas Operativos Avanzados v4

28 S istemas Operat ivos Avanzados

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

Ejemplo:

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

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

Page 29: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 29

CIBERTEC CARRERAS PROFESIONALES

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

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

1.12. touch Sirve para generar archivos sin contenido Ejemplo

Page 30: Sistemas Operativos Avanzados v4

30 S istemas Operat ivos Avanzados

1.13. cd Comando que nos permite movernos entre directorios, su sintaxis es: cd [carpetaDondeQuieroMoverme] Ejemplo:

para regresar un nivel entre directorios es:

1.14. cp Comando que sirve para copiar archivos o carpetas, su sintaxis es cp [parametros] [archivo/Directorio] [rutaDestino] Los parametros son: -r: Copiadirectorios recursivamente -v: Muestra el estado de la copia -f: Forza la copia sin pedirnos confirmación Ejemplo 1: Copiando un archivo a una carpeta

Ejemplo 2: Copiando una carpeta a otra carpeta

Page 31: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 31

CIBERTEC CARRERAS PROFESIONALES

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 Ejemplo 1:

Page 32: Sistemas Operativos Avanzados v4

32 S istemas Operat ivos Avanzados

Ejemplo2:

1.17. ls Lista los archivos que contiene una carpeta, su sintaxis es ls [parametros] Los parametros son: -l: Muestra los detalles de archivos y carpetas -a: Muestra los archivos o carpetas ocultas Ejemplo:

1.18. find Busca archivos en una ruta especifica, su sintaxis es find [ruta] [expresion] Ejemplo1. Buscar archivos y carpetas con el nombre ―archivo.txt‖ en todo el directorio Raiz

Ejemplo 2. Buscar archivos y carpetas que le pertenezcan al usuario ―rdelvillar‖ en todo el directorio raiz

Page 33: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 33

CIBERTEC CARRERAS PROFESIONALES

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

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

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

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

1.20. mount El comando mount nos sirve para montar desde particiones de disco, hasta dispositivos externos como cd's, dvd's, floopy drives, imagenes ISO, o dispositivos de almacenamiento masivo de datos. La manera de usar este comando es la siguiente: Ejemplo1. Montando un DVD

Page 34: Sistemas Operativos Avanzados v4

34 S istemas Operat ivos Avanzados

Ejemplo 2. Montando en CD

Ejemplo 3. Montando un floppy drive

Ejemplo 4.Montando una imagen ISO

Ejemplo 5.Montando un sistema de ficheros de Windows

Ejemplo 6.Montando un sistema de ficheros de Linux

Page 35: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 35

CIBERTEC CARRERAS PROFESIONALES

2. Compresion de Archivos

2.1 tar El comando tar es utilizado normalmente para empaquetar o desempaquetar archivos. La sintaxis para el buen uso de este comando es: [root@localhost ~]# tar [parametros] [fichero1] [fichero2] Los parametros son: -c: Crea un fichero tar -v: Muestra el estado de la borrado -x: Extrae los archivos (descomprime los ficheros que se encuentran dentro del archivo tar) -z: Comprime el archivo tar con gzip -j: Comprime el archivo tar bzip -f: Al usar el parametro -c junto con este parametro se especifica que se utilizara el nombre del archivo especificado para la creacion del archivo tar Ejemplo 1.Empaquetar un archivo con TAR

Ejemplo 2.Desempaquetar ficheros TAR

Ejemplo 3.Comprimir una carpeta con TAR.GZ

Ejemplo4.Descomprimir una carpeta TAR.GZ

Page 36: Sistemas Operativos Avanzados v4

36 S istemas Operat ivos Avanzados

Ejemplo 5.Comprimir una carpeta con TAR.BZ

Ejemplo 6.Descomprimir una carpeta TAR.BZ

2.2. zip El comando zip es utilizado normalmente para comprimir paquetes. La sintaxis para el buen uso de este comando es: [root@localhost ~]# zip [parametros] Ejemplo 1. Comprimiendo un archivo con ZIP

Ejemplo 2.Descomprimiendo un archivo ZIP

Page 37: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 37

CIBERTEC CARRERAS PROFESIONALES

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:

/etc/hosts

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 este archivo define la dirección de loopback que representa al propio equipo independientemente de la dirección IP que se le haya asignado

/etc/resolv.conf Este archivo especifica las direcciones IP de los servidores DNS

/etc/sysconfig/network Este archivo de configuración es utilizado para definir las características de red deseadas

/etc/sysconfig/networkscripts/ ifcfg<interfaz>

Estos archivos de configuración son utilizados para especificar la configuración de la tarjeta de 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 funcionamientos, se recomienda que no modifique esta linea. Ejemplo:

127.0.0.1 localhost.localdomain localhost 192.168.1.10 mail.redfactor.net mail 192.168.1.13 www.red.factor.net www

3.2 Configuracion del archivo /etc/resolv.conf Este archivo de configuración contiene las direcciones IP de los servidores DNS. Sus parámetros de configuración son:

Page 38: Sistemas Operativos Avanzados v4

38 S istemas Operat ivos Avanzados

nameserver Define las direcciones IP de los servidores de nombre en los cuales se deberán resolver las búsquedas. El archivos hosts solo permite hasta 3 servidores de nombre diferentes

domain Define el nombre de dominio local en el cual pertenecen los equipos en una red local

search Este parámetro define la lista de búsqueda nombres de equiposes útil cuando se busca un equipo dentro de la red local por un nombre corto

sortlist Este parámetro indica la preferencia de los nameserver 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. Los parámetros que admiten los archivos de configuración de la interfaz de red Ethernet son los siguientes:

Page 39: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 39

CIBERTEC CARRERAS PROFESIONALES

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

Page 40: Sistemas Operativos Avanzados v4

40 S istemas Operat ivos Avanzados

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

Page 41: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 41

CIBERTEC CARRERAS PROFESIONALES

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

S E M A N A

3

Page 42: Sistemas Operativos Avanzados v4

42 S istemas Operat ivos Avanzados

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

Page 43: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 43

CIBERTEC CARRERAS PROFESIONALES

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.

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.

Page 44: Sistemas Operativos Avanzados v4

44 S istemas Operat ivos Avanzados

Usuario UID GID Directorio principal Shell

root 0 0 /root /bin/bash

bin 1 1 /bin /sbin/nologin

daemon 2 2 /sbin /sbin/nologin

adm 3 4 /var/adm /sbin/nologin

lp 4 7 /var/spool/lpd /sbin/nologin

sync 5 0 /sbin /bin/sync

shutdown 6 0 /sbin /sbin/shutdown

halt 7 0 /sbin /sbin/halt

mail 8 12 /var/spool/mail /sbin/nologin

news 9 13 /etc/news

uucp 10 14 /var/spool/uucp /sbin/nologin

operator 11 0 /root /sbin/nologin

games 12 100 /usr/games /sbin/nologin

gopher 13 30 /var/gopher /sbin/nologin

ftp 14 50 /var/ftp /sbin/nologin

nobody 99 99 / /sbin/nologin

rpm 37 37 /var/lib/rpm /sbin/nologin

vcsa 69 69 /dev /sbin/nologin

dbus 81 81 / /sbin/nologin

ntp 38 38 /etc/ntp /sbin/nologin

canna 39 39 /var/lib/canna /sbin/nologin

nscd 28 28 / /sbin/nologin

rpc 32 32 / /sbin/nologin

xfs 43 43 /etc/X11/fs /sbin/nologin

gdm 42 42 /var/gdm /sbin/nologin

htt 100 101 /usr/lib/im /sbin/nologin

mysql 27 27 /var/lib/mysql /bin/bash

webalizer 67 67 /var/www/usage /sbin/nologin

mailnull 47 47 /var/spool/mqueue /sbin/nologin

smmsp 51 51 /var/spool/mqueue /sbin/nologin

squid 23 23 /var/spool/squid /sbin/nologin

ldap 55 55 /var/lib/ldap /bin/false

netdump 34 34 /var/cras /bin/bash

pcap 77 7 /var/arpwatc /sbin/nologin

radiusd 95 95 / /bin/false

radvd 75 75 / /sbin/nologin

quagga 92 92 /var/run/quagga /sbin/login

wnn 49 49 /var/lib/wn /sbin/nologin

dovecot 97 97 /usr/libexec/dovecot /sbin/nologin

4. Grupos 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

Page 45: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 45

CIBERTEC CARRERAS PROFESIONALES

daemon 2 root,bin,daemon

sys 3 root,bin,adm

adm 4 Root, adm,daemon

tty 5

disk 6 root

lp 7 daemon,

mem 8

kmem 9

wheel 10 root

mail 12 mail,post_x,exim

news 13 news

uucp 14 uucp

man 15

games 20

gopher 30

dip 40

ftp 50

lock 54

nobody 99

usuarios 100

rpm 37

utmp 22

_oppy 19

vcsa 69

dbus 81

ntp 38

canna 39

nscd 28

rpc 32

postdrop 90

post_x 89

mailman 41

named 25

postgres 26

sshd 74

rpcuser 29

nfsnobody 65534

pvm 24

apache 48

xfs 43

gdm 42

htt 101

mysql 27

webalizer 67

mailnull 47

smmsp 51

squid 23

ldap 55

Page 46: Sistemas Operativos Avanzados v4

46 S istemas Operat ivos Avanzados

netdump 34

pcap 77

quaggavt 102

quagga 92

radvd 75

slocate 21

wnn 49

dovecot 97

radiusd 95

5. Grupos de usuario privado Linux utiliza un esquema de grupo privado de usuario (UPG), lo que hace 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 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.

Page 47: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 47

CIBERTEC CARRERAS PROFESIONALES

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:

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:

Page 48: Sistemas Operativos Avanzados v4

48 S istemas Operat ivos Avanzados

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.

-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

Page 49: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 49

CIBERTEC CARRERAS PROFESIONALES

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:

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

Page 50: Sistemas Operativos Avanzados v4

50 S istemas Operat ivos Avanzados

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:

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.

Page 51: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 51

CIBERTEC CARRERAS PROFESIONALES

Baja de grupos

Asignación de usuario existente a grupos existentes.

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

Page 52: Sistemas Operativos Avanzados v4

52 S istemas Operat ivos Avanzados

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

Page 53: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 53

CIBERTEC CARRERAS PROFESIONALES

Proceso de arranque en Linux

TEMA

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

en el

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

S E M A N A

4

Page 54: Sistemas Operativos Avanzados v4

54 S istemas Operat ivos Avanzados

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

Page 55: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 55

CIBERTEC CARRERAS PROFESIONALES

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

Page 56: Sistemas Operativos Avanzados v4

56 S istemas Operat ivos Avanzados

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.

Page 57: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 57

CIBERTEC CARRERAS PROFESIONALES

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

Page 58: Sistemas Operativos Avanzados v4

58 S istemas Operat ivos Avanzados

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

Page 59: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 59

CIBERTEC CARRERAS PROFESIONALES

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.

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

Page 60: Sistemas Operativos Avanzados v4

60 S istemas Operat ivos Avanzados

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.

Page 61: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 61

CIBERTEC CARRERAS PROFESIONALES

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.

Page 62: Sistemas Operativos Avanzados v4

62 S istemas Operat ivos Avanzados

2. El gestor de arranque GRUB

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

2.1. Gestores de arranque y arquitectura del sistema Cada arquitectura de sistemas que pueda ejecutar Red Hat Enterprise Linux usa un gestor de arranque diferente. La lista siguiente muestra los gestores de arranque disponibles para cada arquitectura. Arquitectura Gestores de arranque AMD® AMD64 GRUB IBM® eServer. iSeries. OS/400® IBM® eServer. pSeries. YABOOT IBM® S/390® z/IPL IBM® eServer. zSeries® z/IPL Intel® Itanium. ELILO x86 GRUB

Page 63: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 63

CIBERTEC CARRERAS PROFESIONALES

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.

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

Page 64: Sistemas Operativos Avanzados v4

64 S istemas Operat ivos Avanzados

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

Page 65: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 65

CIBERTEC CARRERAS PROFESIONALES

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

Page 66: Sistemas Operativos Avanzados v4

66 S istemas Operat ivos Avanzados

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

Page 67: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 67

CIBERTEC CARRERAS PROFESIONALES

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

Page 68: Sistemas Operativos Avanzados v4

68 S istemas Operat ivos Avanzados

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

Page 69: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 69

CIBERTEC CARRERAS PROFESIONALES

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

Page 70: Sistemas Operativos Avanzados v4

70 S istemas Operat ivos Avanzados

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

Page 71: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 71

CIBERTEC CARRERAS PROFESIONALES

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

Page 72: Sistemas Operativos Avanzados v4

72 S istemas Operat ivos Avanzados

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

Page 73: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 73

CIBERTEC CARRERAS PROFESIONALES

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/ |- mailman/ |- mqueue/ |- news/ |- postfix/ |- repackage/ |- rwho/ |- samba/ |- squid/ |- squirrelmail/ |- up2date/ |- uucp |- uucppublic/ |- vbox/ |- tmp/ |- tux/ |- www/ |- yp/

Page 74: Sistemas Operativos Avanzados v4

74 S istemas Operat ivos Avanzados

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.

Page 75: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 75

CIBERTEC CARRERAS PROFESIONALES

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?

Page 76: Sistemas Operativos Avanzados v4

76 S istemas Operat ivos Avanzados

Filesystems en Linux

TEMA

Describir el manjeo de los 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

S E M A N A

5

Page 77: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 77

CIBERTEC CARRERAS PROFESIONALES

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)

Page 78: Sistemas Operativos Avanzados v4

78 S istemas Operat ivos Avanzados

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.

Page 79: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 79

CIBERTEC CARRERAS PROFESIONALES

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

Page 80: Sistemas Operativos Avanzados v4

80 S istemas Operat ivos Avanzados

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

Page 81: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 81

CIBERTEC CARRERAS PROFESIONALES

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.

Page 82: Sistemas Operativos Avanzados v4

82 S istemas Operat ivos Avanzados

También existen herramientas en modo grafico, (qtparted, gparted, diskdruid, diskdrake) para poder trabajar con discos.

Page 83: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 83

CIBERTEC CARRERAS PROFESIONALES

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.

Page 84: Sistemas Operativos Avanzados v4

84 S istemas Operat ivos Avanzados

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)

Page 85: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 85

CIBERTEC CARRERAS PROFESIONALES

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

Page 86: Sistemas Operativos Avanzados v4

86 S istemas Operat ivos Avanzados

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)

Page 87: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 87

CIBERTEC CARRERAS PROFESIONALES

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

Page 88: Sistemas Operativos Avanzados v4

88 S istemas Operat ivos Avanzados

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

Page 89: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 89

CIBERTEC CARRERAS PROFESIONALES

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

Page 90: Sistemas Operativos Avanzados v4

90 S istemas Operat ivos Avanzados

Ejemplo de auto.master:

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

o Los ficheros le indican al automount los filesystems a montar o Ejemplo de auto.misc

cdrom -fstype=iso9660,ro :/dev/cdrom floppy -fstype=auto :/dev/fd0 windoz -fstype=vfat :/dev/hda1

o esto monta el cdrom, el floppy y la 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)

Page 91: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 91

CIBERTEC CARRERAS PROFESIONALES

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

Page 92: Sistemas Operativos Avanzados v4

92 S istemas Operat ivos Avanzados

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

o Formato:

df [opciones]

o Algunas opciones: -a muestra todos los filesystems (incluso los de 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

Page 93: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 93

CIBERTEC CARRERAS PROFESIONALES

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:

Page 94: Sistemas Operativos Avanzados v4

94 S istemas Operat ivos Avanzados

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 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 1 2 3 4 5 6 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

Page 95: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 95

CIBERTEC CARRERAS PROFESIONALES

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.

Page 96: Sistemas Operativos Avanzados v4

96 S istemas Operat ivos Avanzados

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

Identidades

u Es el usuario propietario del archivo o directorio

g Es el grupo al que pertenece el archivo o directorio

o Otros usuarios, el resto del mundo, ni el propietario ni su grupo

a Todo el mundo – propietario, grupo y otros

Permisos

r Acceso de lectura

w Acceso de escritura

x Acceso de ejecución

Acciones

+ Añade los permisos

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

Ejemplo Descripción Resultado

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

$ chmod a-rwx foto1.png

quitamos todos los permisos al archivo foto1.png ---------

$ chmod u+rwx foto1.png

añadimos todos los permisos para el propietario rwx------

$ chmod g+x foto1.png

añadimos el permiso de ejecución para el grupo rwx—x---

$ chmod o+r foto1.png

añadimos el permiso de lectura para los otros usuarios

rwx—xr--

$ chmod u-rw foto1.png

eliminamos los permisos de lectura y escritura para el propietario

--x—xr--

$ chmod a=r foto1.png

establecemos como unico permiso de lectura para los 3 grupos

r—r—r--

Page 97: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 97

CIBERTEC CARRERAS PROFESIONALES

$ chmod a=rx foto1.png

establecemos los permisos de lectura y ejecución para los 3 grupos

r-xr-xr-x

$ chmod a=- foto1.png

quitamos todos los permisos ----------

$ chmod u+rx,o+x foto1.png

añadimos los permisos de lectura y ejecución al propietario y ejecución a otros

r-x-----x

$ chmod g+rx,o-x foto1.png

añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros

r-xr-x---

$ chmod ug+wx,o-x foto1.png

añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de

ejecución a otros rwxrwx---

$ chmod a=rw foto1.png

permite a cualquiera modificar el contenido e incluso eliminar el archivo

rw-rw-rw-

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

Page 98: Sistemas Operativos Avanzados v4

98 S istemas Operat ivos Avanzados

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 foto2.png

quitamos todos los permisos al archivo foto2.png ----------

$ chmod 700 foto2.png

añadimos todos los permisos para el propietario -rwx------

$ chmod 710 foto2.png

añadimos el permiso de ejecución para el grupo -rwx—x---

$ chmod 714 foto2.png

añadimos el permiso de lectura para los otros usuarios

-rwx—xr--

$ chmod 114 foto2.png

eliminamos los permisos de lectura y escritura para el propietario

---x—xr--

$ chmod 444 foto2.png

establecemos como unico permiso de lectura para los 3 grupos

-r—r—r--

$ chmod 555 foto2.png

establecemos los permisos de lectura y ejecución para los 3 grupos

-r-xr-xr-x

$ chmod 000 foto2.png

quitamos todos los permisos -----------

$ chmod 501 foto2.png

añadimos los permisos de lectura y ejecución al propietario y ejecución a otros

-r-x-----x

Page 99: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 99

CIBERTEC CARRERAS PROFESIONALES

$ chmod 550 foto2.png

añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros

-r-xr-x---

$ chmod 770 foto2.png

añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de

ejecución a otros -rwxrwx---

$ chmod 666 foto2.png

permite a cualquiera modificar el contenido e incluso eliminar el archivo

-rw-rw-rw-

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

Page 100: Sistemas Operativos Avanzados v4

100 S istemas Operat ivos Avanzados

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

Page 101: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 101

CIBERTEC CARRERAS PROFESIONALES

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

S E M A N A

6

Page 102: Sistemas Operativos Avanzados v4

102 S istemas Operat ivos Avanzados

1. RPM (RedHat Package Manager)

RPM es el gestor de paquetes de Red Hat (Red Hat Package Manager). Aunque aparece Red Hat en su nombre, la 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 rápidamente, gracias a una cabecera binaria a medida añadida al paquete con toda

Page 103: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 103

CIBERTEC CARRERAS PROFESIONALES

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:

Page 104: Sistemas Operativos Avanzados v4

104 S istemas Operat ivos Avanzados

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:

Page 105: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 105

CIBERTEC CARRERAS PROFESIONALES

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:

Page 106: Sistemas Operativos Avanzados v4

106 S istemas Operat ivos Avanzados

Supongamos que se encuentra con un fichero que no reconoce. Para saber a qué paquete pertenece puede hacer:

Supongamos que acaba de hacerse con un nuevo paquete RPM de koules, pero no sabe qué puede ser. Para obtener 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

Page 107: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 107

CIBERTEC CARRERAS PROFESIONALES

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

Page 108: Sistemas Operativos Avanzados v4

108 S istemas Operat ivos Avanzados

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

Page 109: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 109

CIBERTEC CARRERAS PROFESIONALES

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,

Page 110: Sistemas Operativos Avanzados v4

110 S istemas Operat ivos Avanzados

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:

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

Page 111: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 111

CIBERTEC CARRERAS PROFESIONALES

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:

Page 112: Sistemas Operativos Avanzados v4

112 S istemas Operat ivos Avanzados

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:

Page 113: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 113

CIBERTEC CARRERAS PROFESIONALES

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

Page 114: Sistemas Operativos Avanzados v4

114 S istemas Operat ivos Avanzados

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?

Page 115: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 115

CIBERTEC CARRERAS PROFESIONALES

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

S E M A N A

9

Page 116: Sistemas Operativos Avanzados v4

116 S istemas Operat ivos Avanzados

1. ARCHIVOS DE REGISTRO

Los Archivos de registro (o archivos de log) son archivos que contienen mensajes sobre el sistema, incluyendo el kernel, los servicios y las aplicaciones que se ejecutan en dicho sistema. Existen diferentes tipos de archivos de log dependiendo de la 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.

Page 117: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 117

CIBERTEC CARRERAS PROFESIONALES

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 superiorAdministraciónRegistro de actividad del sistema, o digite el comando gnome-system-log en una consola.

Page 118: Sistemas Operativos Avanzados v4

118 S istemas Operat ivos Avanzados

4. DEMONIO SYSLOGD

Todos los archivos de registro que se llevan a cabo en un sistema Linux se manejan por el demonio syslogd y su archivo de 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'

Page 119: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 119

CIBERTEC CARRERAS PROFESIONALES

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:

Page 120: Sistemas Operativos Avanzados v4

120 S istemas Operat ivos Avanzados

# 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 *

Page 121: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 121

CIBERTEC CARRERAS PROFESIONALES

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 1 2 LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2

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

Page 122: Sistemas Operativos Avanzados v4

122 S istemas Operat ivos Avanzados

5.1. Edquota.

Es importante conocer que significa cada columna mostrada por edquota.

Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que está utilizando el usuario.

Inodes: Inodos. Corresponde al 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.

Page 123: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 123

CIBERTEC CARRERAS PROFESIONALES

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

Page 124: Sistemas Operativos Avanzados v4

124 S istemas Operat ivos Avanzados

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

Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 0 0 51200 1 0 0 /dev/hda5 24 0 51200 10 0 0

Realice una copia del directorio /usr/lib como el subdirectorio ~/prueba-cuotas dentro de su directorio de inicio:

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

Notará que llegará un momento en el que el sistema indicará que ya no es posible continuar copiando contenido dentro de ~/prueba-cuotas debido a que se ha agotado el espacio en la 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

Page 125: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 125

CIBERTEC CARRERAS PROFESIONALES

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?

Page 126: Sistemas Operativos Avanzados v4

126 S istemas Operat ivos Avanzados

SERVIDOR NFS y SAMBA

TEMA

Describirla funion 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

Configuracion del cliente NFS

Introduccion a Samba

Configuracion de samba cliente

Configuracion de samba Servidor

S E M A N A

10

Page 127: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 127

CIBERTEC CARRERAS PROFESIONALES

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 cookie al cliente después que este tiene acceso al volumen compartido. Esta cookie

Page 128: Sistemas Operativos Avanzados v4

128 S istemas Operat ivos Avanzados

es un valor aleatorio guardado en el lado del servidor y espasado junto con las peticiones RPC desde el cliente. El servidor NFS puede ser reiniciado sin afectar a los clientes y las cookies permanecen intactas. Sin embargo, debido a que UDP es sin 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.

Page 129: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 129

CIBERTEC CARRERAS PROFESIONALES

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

Page 130: Sistemas Operativos Avanzados v4

130 S istemas Operat ivos Avanzados

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.

Page 131: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 131

CIBERTEC CARRERAS PROFESIONALES

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.

Page 132: Sistemas Operativos Avanzados v4

132 S istemas Operat ivos Avanzados

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

Page 133: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 133

CIBERTEC CARRERAS PROFESIONALES

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. Lo siguiente es una lista de las opciones más comunes disponibles para /usr/sbin/exportfs:

Page 134: Sistemas Operativos Avanzados v4

134 S istemas Operat ivos Avanzados

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

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.

Page 135: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 135

CIBERTEC CARRERAS PROFESIONALES

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

Page 136: Sistemas Operativos Avanzados v4

136 S istemas Operat ivos Avanzados

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

Ficheros necesarios para cliente y servidor.

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.

Page 137: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 137

CIBERTEC CARRERAS PROFESIONALES

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

Page 138: Sistemas Operativos Avanzados v4

138 S istemas Operat ivos Avanzados

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

Page 139: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 139

CIBERTEC CARRERAS PROFESIONALES

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

Page 140: Sistemas Operativos Avanzados v4

140 S istemas Operat ivos Avanzados

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

Page 141: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 141

CIBERTEC CARRERAS PROFESIONALES

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-

Page 142: Sistemas Operativos Avanzados v4

142 S istemas Operat ivos Avanzados

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

Lo anterior corresponde al mapa de los grupos que, de modo predeterminado, utilizará Samba si éste fuese configurado como Controlador Primario de Dominio. XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX corresponde a un 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:

Page 143: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 143

CIBERTEC CARRERAS PROFESIONALES

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" \

Page 144: Sistemas Operativos Avanzados v4

144 S istemas Operat ivos Avanzados

sid="S-1-5-32-548" unixgroup=opers_cuentas \ comment="Pueden administrar cuentas de usuarios y grupos del dominio" net groupmap modify ntgroup="Opers. de 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

Page 145: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 145

CIBERTEC CARRERAS PROFESIONALES

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

Page 146: Sistemas Operativos Avanzados v4

146 S istemas Operat ivos Avanzados

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:

Page 147: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 147

CIBERTEC CARRERAS PROFESIONALES

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:

Page 148: Sistemas Operativos Avanzados v4

148 S istemas Operat ivos Avanzados

logon script = logon.cmd

El fichero /var/lib/samba/netlogon/logon.cmd deberá contener algo como lo siguiente:

REM windows client logon script REM net time \\mi-servidor /SET /YES net use H: \\mi-servidor\homes /PERSISTENT:NO

El Controlador Primario de Dominio va a necesitar 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

Page 149: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 149

CIBERTEC CARRERAS PROFESIONALES

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

Page 150: Sistemas Operativos Avanzados v4

150 S istemas Operat ivos Avanzados

--------- ---- ------- homes Disk Home Directories netlogon Disk Network Logon Service ftp Disk ftp IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) epl5900 Printer Created by redhat-config-printer 0.6.x hp2550bw Printer Created by redhat-config-printer 0.6.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Server Comment --------- ------- mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor Workgroup Master --------- ------- MI-DOMINIO MI-SERVIDOR

La siguiente corresponde a la sintaxis 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

Page 151: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 151

CIBERTEC CARRERAS PROFESIONALES

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/

Page 152: Sistemas Operativos Avanzados v4

152 S istemas Operat ivos Avanzados

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.

Page 153: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 153

CIBERTEC CARRERAS PROFESIONALES

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:

Page 154: Sistemas Operativos Avanzados v4

154 S istemas Operat ivos Avanzados

• 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

Page 155: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 155

CIBERTEC CARRERAS PROFESIONALES

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.

Page 156: Sistemas Operativos Avanzados v4

156 S istemas Operat ivos Avanzados

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

Page 157: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 157

CIBERTEC CARRERAS PROFESIONALES

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

S E M A N A

11

Page 158: Sistemas Operativos Avanzados v4

158 S istemas Operat ivos Avanzados

1. SISTEMA DNS El Sistema de Nombres de Dominio (DNS) se utiliza para buscar equipos y servicios mediante nombres descriptivos. Cuando un usuario escribe un nombre DNS en una 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).

Page 159: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 159

CIBERTEC CARRERAS PROFESIONALES

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.

Page 160: Sistemas Operativos Avanzados v4

160 S istemas Operat ivos Avanzados

2.1. Demonio: named Es el demonio encargado de activar/desactivar el servidor DNS y es manipulado por el script /etc/init.d/named.

BIND almacena su 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.

Page 161: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 161

CIBERTEC CARRERAS PROFESIONALES

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.

A (Address) Registro de dirección que resuelve un nombre de un anfitrión hacia una dirección IPv4 de 32 bits.

AAAA Registro de dirección que resuelve un nombre de un anfitrión hacia una dirección IPv6 de 128 bits.

CNAME (Canonical Name)

Registro de nombre canónico que hace que un nombre sea alias de otro. Los dominios con alias obtiene los sub-dominios y registros DNS del dominio original.

MX (Mail Exchanger) Registro de servidor de correo que sirve para definir una lista de servidores de correo para un dominio, así como la prioridad entre éstos.

Page 162: Sistemas Operativos Avanzados v4

162 S istemas Operat ivos Avanzados

Tipo de Registro. Descripción.

PTR (Pointer)

Registro de apuntador que resuelve direcciones IPv4 hacia el nombre anfitriones. Es decir, hace lo contrario al registro A. Se utiliza en zonas de Resolución Inversa.

NS (Name Server) Registro de servidor de nombres que sirve para definir una lista de servidores de nombres con autoridad para un dominio.

SOA (Start of Authority)

Registro de inicio de autoridad que especifica el Servidor DNS Maestro (o Primario) que proporcionará la información con autoridad acerca 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.

SRV (Service)

Registro de servicios que especifica información acerca de servicios disponibles a través del dominio. Protocolos como SIP (Session Initiation Protocol) y XMPP (Extensible Messaging and Presence Protocol) suelen requerir registros SRV en la zona para proporcionar información a los clientes.

TXT (Text)

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

Page 163: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 163

CIBERTEC CARRERAS PROFESIONALES

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.

Page 164: Sistemas Operativos Avanzados v4

164 S istemas Operat ivos Avanzados

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

Page 165: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 165

CIBERTEC CARRERAS PROFESIONALES

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.

Page 166: Sistemas Operativos Avanzados v4

166 S istemas Operat ivos Avanzados

Se mostrar el siguiente mensaje, clic en Si.

Luego se visualiza el siguiente mensaje, clic en Aceptar.

Otra forma de iniciar el servidor DNS es ejecutando el siguiente

comando: /etc/init.d/named start

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

Page 167: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 167

CIBERTEC CARRERAS PROFESIONALES

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.

Page 168: Sistemas Operativos Avanzados v4

168 S istemas Operat ivos Avanzados

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

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

Page 169: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 169

CIBERTEC CARRERAS PROFESIONALES

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.

Page 170: Sistemas Operativos Avanzados v4

170 S istemas Operat ivos Avanzados

5. CONSULTAS A LOS SERVIDORES DNS

5.1. Comando host Herramienta que permite realizar consultas a los servidores de nombre.

5.2. Comando dig Herramienta que permite actualizar el archivo de zona named.ca y realizar consultas DNS.

Page 171: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 171

CIBERTEC CARRERAS PROFESIONALES

5.3. Comando nslookup Permite realizar consultas interactivas a los servidores DNS. debian:~# nslookup

> server a.root-servers.net

Default server: a.root-servers.net

Address: 198.41.0.4#53

> set q=ns

> edu.pe.

Server: a.root-servers.net

Address: 198.41.0.4#53

Non-authoritative answer:

*** Can't find edu.pe.: No answer

Authoritative answers can be found from:

pe nameserver = NS-PE.RIPE.NET.

pe nameserver = ICHU.RCP.NET.pe.

pe nameserver = EKEKO.RCPIP.NET.

ICHU.RCP.NET.pe internet address = 161.132.5.14

EKEKO.RCPIP.NET internet address = 209.45.127.2

NS-PE.RIPE.NET internet address = 193.0.12.173

> server NS-PE.RIPE.NET

Default server: NS-PE.RIPE.NET

Address: 193.0.12.173#53

Default server: NS-PE.RIPE.NET

Address: 2001:610:240:0:53:cc:12:173#53

> set q=ns

> cibertec.edu.pe

Server: NS-PE.RIPE.NET

Address: 193.0.12.173#53

Non-authoritative answer:

*** Can't find cibertec.edu.pe: No answer

Authoritative answers can be found from:

cibertec.edu.pe nameserver = NS3.FIRSTCOM.COM.pe.

cibertec.edu.pe nameserver = DNSCIB.cibertec.edu.pe.

cibertec.edu.pe nameserver = NS3.ATTLA.COM.pe.

DNSCIB.cibertec.edu.pe internet address = 200.0.119.61

> server NS3.FIRSTCOM.COM.pe

Default server: NS3.FIRSTCOM.COM.pe

Address: 200.14.241.36#53

> set q=any

> cibertec.edu.pe

Server: NS3.FIRSTCOM.COM.pe

Address: 200.14.241.36#53

cibertec.edu.pe nameserver = ns3.firstcom.com.pe.

cibertec.edu.pe nameserver = dnscib.cibertec.edu.pe.

cibertec.edu.pe nameserver = ns3.attla.com.pe.

cibertec.edu.pe

origin = dnscib.cibertec.edu.pe

mail addr = root.upc.edu.pe

serial = 3034526519

refresh = 120

retry = 900

expire = 1200

minimum = 1200

cibertec.edu.pe mail exchanger = 10 fenix-si.cibertec.edu.pe.

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

Page 172: Sistemas Operativos Avanzados v4

172 S istemas Operat ivos Avanzados

> set q=mx

> cibertec.edu.pe

Server: NS3.FIRSTCOM.COM.pe

Address: 200.14.241.36#53

cibertec.edu.pe mail exchanger = 10 fenix-si.cibertec.edu.pe.

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

> exit

debian:~#

Solo digite el texto que se encuentra resaltado en negrita.

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

Page 173: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 173

CIBERTEC CARRERAS PROFESIONALES

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.

Page 174: Sistemas Operativos Avanzados v4

174 S istemas Operat ivos Avanzados

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

Page 175: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 175

CIBERTEC CARRERAS PROFESIONALES

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.

Page 176: Sistemas Operativos Avanzados v4

176 S istemas Operat ivos Avanzados

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.

Page 177: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 177

CIBERTEC CARRERAS PROFESIONALES

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.

Page 178: Sistemas Operativos Avanzados v4

178 S istemas Operat ivos Avanzados

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

Page 179: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 179

CIBERTEC CARRERAS PROFESIONALES

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.

Page 180: Sistemas Operativos Avanzados v4

180 S istemas Operat ivos Avanzados

Autoevaluación

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

Page 181: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 181

CIBERTEC CARRERAS PROFESIONALES

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

S E M A N A

12

Page 182: Sistemas Operativos Avanzados v4

182 S istemas Operat ivos Avanzados

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

Page 183: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 183

CIBERTEC CARRERAS PROFESIONALES

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 {

Page 184: Sistemas Operativos Avanzados v4

184 S istemas Operat ivos Avanzados

subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option domain-name "redlocal.net"; option domain-name-servers 192.168.0.1, 148.240.241.42, 148.240.241.10; option netbios-name-servers 192.168.0.1; option ntp-servers 66.187.224.4, 66.187.233.4; range 192.168.0.11 192.168.0.199; default-lease-time 21600; max-lease-time 43200; } host m253 { option host-name "m253.redlocal.net"; hardware ethernet 00:50:BF:27:1C:1C; fixed-address 192.168.0.253; } host m254 { option host-name "m254.redlocal.net"; hardware ethernet 00:01:03:DC:67:23; fixed-address 192.168.0.254; } }

Una buena medida de seguridad es hacer que el servicio de dhcpd solo funcione a 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:

Page 185: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 185

CIBERTEC CARRERAS PROFESIONALES

/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

Page 186: Sistemas Operativos Avanzados v4

186 S istemas Operat ivos Avanzados

Autoevaluación

1. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.

¿Cuál es el nombre del servicio que esta siendo accedido?

Page 187: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 187

CIBERTEC CARRERAS PROFESIONALES

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.

S E M A N A

13

Page 188: Sistemas Operativos Avanzados v4

188 S istemas Operat ivos Avanzados

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.

Page 189: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 189

CIBERTEC CARRERAS PROFESIONALES

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.

Page 190: Sistemas Operativos Avanzados v4

190 S istemas Operat ivos Avanzados

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.

Page 191: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 191

CIBERTEC CARRERAS PROFESIONALES

### 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. [email protected]

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>

Page 192: Sistemas Operativos Avanzados v4

192 S istemas Operat ivos Avanzados

3.2. Archivos de registro En el servidor HTTP Apache podemos apreciar que equipos se conectan al servidor ejecutando el siguiente comando:

tail –f /var/log/httpd/access_log

En caso de algún error en el servidor podemos ejecutar el comando:

tail –f /var/log/httpd/error_log

Page 193: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 193

CIBERTEC CARRERAS PROFESIONALES

Ejercicio 1:

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

Anote sus observaciones:

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

Page 194: Sistemas Operativos Avanzados v4

194 S istemas Operat ivos Avanzados

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

Page 195: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 195

CIBERTEC CARRERAS PROFESIONALES

Paso 5. Reiniciar los demonios: named y hhtpd. Paso 6. Probar desde un equipo cliente el acceso al servidor web

Page 196: Sistemas Operativos Avanzados v4

196 S istemas Operat ivos Avanzados

Ejercicio 2:

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

Anote sus observaciones:

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

Page 197: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 197

CIBERTEC CARRERAS PROFESIONALES

Autoevaluación

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

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

(a) httpd.conf

(b) apache.conf

(c) web.conf

(d) http.conf

4. El servidor web acepta peticiones al puerto 80 ¿qué directiva debemos

modificar par que ahora solo acepte peticiones la puerto 8080?

(a) Ports

(b) Listen

(c) ServerDocument

(d) ServerRoot

5. Si deseo permitir el acceso al servidor web ¿qué protocolo debo seleccionar

en el cortafuegos?

(a) smtp

(b) imap

(c) pop3

(d) http

Page 198: Sistemas Operativos Avanzados v4

198 S istemas Operat ivos Avanzados

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

S E M A N A

14

Page 199: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 199

CIBERTEC CARRERAS PROFESIONALES

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

Page 200: Sistemas Operativos Avanzados v4

200 S istemas Operat ivos Avanzados

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

/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

Page 201: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 201

CIBERTEC CARRERAS PROFESIONALES

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)

Page 202: Sistemas Operativos Avanzados v4

202 S istemas Operat ivos Avanzados

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.

Page 203: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 203

CIBERTEC CARRERAS PROFESIONALES

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.

Page 204: Sistemas Operativos Avanzados v4

204 S istemas Operat ivos Avanzados

4. COMPROBANDO EL FUNCIONAMIENTO DEL SERVIDOR DE CORREOS

Paso 1. Enviar un mensaje usando el comando mail (sistema de

procesamiento de correo inteligente que permite enviar y recibir mensajes).

Paso 2. Ver en el archivo de registro las transacciones del servidor SMPT. tail –f /var/log/maillog

Page 205: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 205

CIBERTEC CARRERAS PROFESIONALES

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

Page 206: Sistemas Operativos Avanzados v4

206 S istemas Operat ivos Avanzados

5. RESTRICCIONES

Para evitar que nuestro servidor de correos sea usado para hacer SPAM o sea usado como Open Relay tenemos las siguientes restricciones:

Restricciones del emisor (smtpd_sender_restrictions). Restricciones de nombre/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: [email protected] 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

Page 207: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 207

CIBERTEC CARRERAS PROFESIONALES

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.

Page 208: Sistemas Operativos Avanzados v4

208 S istemas Operat ivos Avanzados

6.2. postsuper

Gestiona las tareas en la cola Postfix.

Sintaxis:

postsuper –d id_cola postsuper –h id_cola

postsuper –H id_cola

Donde: -d Borra un mensaje que se encuentra en la cola Postfix.

Especifique –d ALL para borrar todos los mensajes.

-h Mueve un mensaje a la cola hold. Especifique –h ALL para mover todos los mensajes.

-H Mueve un mensaje de la cola hold a la cola deferred. Especifique –H ALL para mover todos los mensajes.

Page 209: Sistemas Operativos Avanzados v4

Sistemas Operat ivos Avanzados 209

CIBERTEC CARRERAS PROFESIONALES

6.3. postconf

Utilitario de configuración que muestra información referente al sistema de correo Postfix.

Page 210: Sistemas Operativos Avanzados v4

210 S istemas Operat ivos Avanzados

Autoevaluación