Issuu on Google+

Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

UNIVERSIDAD NACIONAL DE INGENIERIA CENTRO DE CÓMPUTO DE LA FACULTAD DE INGENIERIA MECANICA

INFOUNI

Operador de Sistemas Linux Guía del Estudiante

Fundamentos, instalación de una distribución Linux, configurando el sistema, comandos básicos y avanzados.(Ver 1.0) www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

1


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI Operador de Sistemas Linux Guía del Estudiante

L. Muga Linux Registered User # 487284 Versión 1.0

Basado en el sistema operativo: Debian Linux 6.0.1 Bajo

Licencia

Creative

Commons:

Reconocimiento

-

No

comercial

2.5

Perú

Usted es libre de: Copiar, Distribuir, Comunicar públicamente la obra y realizar Obras Derivadas bajo las condiciones siguientes: Windows XP, el logotipo de Windows son marcas registradas de Microsoft Corporation. Reconocimiento: Debe reconocer los créditos de la obra de la manera especificada por el autor o licenciante. No comercial: No puede utilizar esta obra para fines comerciales. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Nada en esta licencia menoscaba o restringe los derechos morales del autor.

Puede encontrar la última versión del manual en la siguiente dirección: http://issuu.com/lmugaa

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

2


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Índice: Página

1. Fundamentos de Linux Debian -

Fundamentos del sistema operativo Distribuciones Linux Características, derechos de autor del producto Requisitos de hardware, tipos de arquitecturas (Intel, Alpha, Sparc, PowerPC)

2. Instalando una Distribución Linux Debian -

52

Comandos básicos y uso general

5. Introducción al Scripting -

-

73

Puntos de montaje. Permisos en archivos y carpetas. Servicios de conexión remota: SSH. Compartiendo ficheros con clientes Microsoft Windows: SAMBA.

7. Anexos -

63

Programación en BASH

6. Servicios Básicos de Conectividad -

42

Configurando la red Configurando los repositorios del sistema Conociendo FSTAB Instalación y configuración de escritorio gráfico y herramienta

4. Lista de Comandos -

14

Medios de instalación: CD, red, memorias USB Instalando Debian GRUB: gestor de arranque Tipos de sistemas de archivos usados en Linux: swap, etx2, ext3, ext4 Estructura básica del sistema de archivos de Linux Debian

3. Configurando el Sistema -

04

82

Instalación de VirtualBox Creación de máquinas virtuales Configurando los interfaces de red Configurando imágenes ISO a nuestra máquina virtual Iniciando una máquina virtual Unetbootin

8. Bibliografía

92

9. Silabo del curso

93 www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

3


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

1. Fundamentos de Linux Debian: 1.2 ¿Qué es GNU/Linux? Linux es un sistema operativo: un conjunto de programas que le permiten interactuar con su ordenador y ejecutar otros programas. Un sistema operativo consiste en varios programas fundamentales que necesita el ordenador para poder comunicar y recibir instrucciones de los usuarios; tales como leer y escribir datos en el disco duro, cintas, e impresoras; controlar el uso de la memoria; y ejecutar otros programas. La parte más importante de un sistema operativo es el núcleo. En un sistema GNU/Linux, Linux es el núcleo. El resto del sistema consiste en otros programas, muchos de los cuales fueron escritos por o para el proyecto GNU. Dado que el núcleo de Linux en sí mismo no forma un sistema operativo funcional, preferimos utilizar el término “GNU/Linux” para referirnos a los sistemas que la mayor parte de las personas llaman de manera informal “Linux”. Linux está modelado como un sistema operativo tipo Unix. Desde sus comienzos, Linux se diseñó para que fuera un sistema multi tarea y multi usuario. Estos hechos son suficientes para diferenciar a Linux de otros sistemas operativos más conocidos. Sin embargo, Linux es más diferente de lo que pueda imaginar. Nadie es dueño de Linux, a diferencia de otros sistemas operativos. Gran parte de su desarrollo lo realizan voluntarios de forma altruista. En 1984 comenzó el desarrollo de lo que más tarde sería GNU/Linux cuando la Free Software Foundation (Fundación de software libre) comenzó a desarrollar un sistema operativo libre de tipo Unix, llamado GNU. El proyecto GNU ha desarrollado un conjunto de herramientas de software libre para ser utilizados por Unix™ y sistemas operativos tipo Unix como Linux. Estas herramientas permiten a los usuarios desarrollar tareas que van desde las mundanas (como copiar o eliminar ficheros del sistema) a las arcanas (como escribir y compilar programas o hacer edición sofisticada en una gran variedad de formatos de documento). Aunque hay muchos grupos e individuos que han contribuido a Linux, la Free Software Foundation ha sido quien más ha contribuido. No sólo creó la mayor parte de las herramientas que se utilizan en Linux sino también la filosofía y comunidad que hizo que Linux fuera posible. El núcleo Linux apareció por primera vez en 1991, cuando un estudiante de informática finlandés llamado Linus Torvalds anunció en el grupo de noticias de USENET comp.os.minix, una primera versión de un núcleo de reemplazo para Minix. Para más referencias consulte la página de historia de Linux en Linux Internacional. Linus Torvalds sigue coordinando el trabajo de varios cientos de desarrolladores con la ayuda de cierto número de responsables de subsistemas. Existe una página oficial del núcleo Linux. Se puede encontrar un excelente resumen semanal de las discusiones en la lista de correo linux-kernel en Kernel Traffic. Se puede encontrar más información sobre la lista de correo linux-kernel en el documento PUF de la lista de correo «linux-kernel». Los usuarios de Linux tienen una gran libertad al elegir sus programas. Por ejemplo, un usuario de Linux puede elegir entre docenas de distintos intérpretes de línea de órdenes y www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

4


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

entre distintos entornos de escritorio. Tantas opciones confunden a veces a los usuarios de otros sistemas operativos que no están acostumbrados a poder modificar el intérprete de línea de órdenes o el entorno de escritorio. Es menos probable que un sistema Linux se colapse, además tiene mejor capacidad para ejecutar múltiples programas al mismo tiempo y es más seguro que muchos otros sistemas operativos. Debido a estas ventajas, Linux es el sistema operativo que ha experimentado mayor crecimiento en el mercado de los servidores. Últimamente, Linux está empezando a ser popular entre los usuarios domésticos y en empresas.

1.2 Distribuciones Linux Las distribuciones (distros) Linux son todo un ecosistema de software por demás interesante. Cada una es especial y única, además de que cada una aborda un mismo paradigma; la creación de un sistema operativo completo usando GNU/Linuxde una manera distinta. En gran parte es la gran variedad de distros lo que hace que el desarrollo de Linux sea tan diverso, aunque hay quien critica esto diciendo que es poco práctico que cada uno de estos proyectos esté tratando de crear algo nuevo en lugar de unificar esfuerzos. Además, la diversidad a la hora de escoger hace posible encontrar algo que satisfaga plenamente sus necesidades como usuario. Ya sea que seas un novato en Linux o seas un usuario con más conocimientos que quiere experimentar y aprender, hay una distro Linux para ti.Si quieres empezar con Linux no tienes excusa, escoge tu distribución Linux favorita: Ubuntu Natty Narwhal 11.04: Cada seis meses, Canonical y su comunidad de desarrollo sacan a la luz una nueva versión de Ubuntu. Con el tiempo, Ubuntu se ha convertido en la distribución Linux más conocida, y es que aúna facilidad de uso y seguridad. Ubuntu cuenta con su propio gestor de paquetes, para que instalar un nuevo programa no sea un problema. Reconoce la mayoría de hardware y conectarse a Internet no supone ninguna complicación. Y además puedes probarlo sin necesidad de instalación. Nada más instalar Ubuntu contarás con todas las herramientas necesarias para conectarte a la red, editar y ver documentos y fotografías o reproducir tu película favorita, con total comodidad y gratis. Ubuntu Studio 11.04: Ubuntu Studio es una versión alternativa a Ubuntu auspiciada por la propia Canonical y que añade herramientas multimedia para tratar y gestionar imagen, vídeo y sonido. En el DVD de Ubuntu Studio, de poco más de un giga, encontraremos Ubuntu con Gnome, un tema propio de Escritorio y acceso a programas de todo tipo, que podremos instalar junto con el sistema o posteriormente en función de nuestras necesidades. Ubuntu Studio comparte la facilidad de uso y soporte de hardware que www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

5


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ubuntu, por lo que resulta una buena alternativa para trabajar con fotografías, vídeo o música en un entorno cómodo y libre. CentOS 5.6: Red Hat Enterprise Linux, o RHEL, es la versión comercial de la conocida distribución de Red Hat. CentOS se basa en su código fuente, creando una nueva distribución con prácticamente las mismas características y funcionalidades y abierto al público. Esta versión de CentOS incluye los escritorios KDE y GNOME, instalables por separado o juntos, e incorpora las últimas versiones de las herramientas y aplicaciones más utilizadas y presentes en RHEL, como el instalador Anaconda y el gestor de actualizaciones PUP. Otras aplicaciones presentes son el navegador Firefox, la suite ofimática OpenOffice, el administrador de archivos Nautilus, el editor de imagen GIMP y el reproductor Rhythmbox, entre otros, preparados para ser usados y facilitarnos las tareas más habituales. Podemos descargarnos CentOS en un sólo DVD, disponible desde el enlace de descarga de Softonic, y en 6 discos, accesibles desde la página oficial de CentOS. CrunchBang Linux 10: CrunchBang Linux está basado en Debian con Escritorio Openbox y una serie de programas con el objetivo de correr lo más rápido posible en cualquier equipo. Con Openbox el Escritorio cambia totalmente. El menú de aplicaciones y herramientas del sistema en CrunchBang Linux se muestra haciendo clic con el botón derecho y en todo momento veremos información sobre consumo de memoria y CPU, tiempo en activo y atajos de teclado para acceder a programas y funciones más rápido. CrunchBang Linux cuenta con la facilidad y ventajas de Ubuntu, ahorrando en consumo de memoria y con una selección de programas bastante completa, que incluye la consola Terminator, el cliente de correo Claws, Skype, la herramienta para webcams Cheese, AbiWord, Firefox o deluge entre otros. Debian 6.0.1a: Debian GNU/Linux es una de las distribuciones más conocidas, tanto por su versatilidad como el amplio soporte que brindan a toda clase de arquitecturas y hardware. Además, Debian GNU/Linux es un referente en el panorama linuxero, hasta el punto de ser la base de otras distribuciones, como la popular Ubuntu, y de contar con su propio sistema de paquetes DEB. Debian GNU/Linux está indicado para toda clase de usuarios, tanto recién llegados como expertos, y se encuentra disponible en distintas ediciones, tanto en CD como en DVD, con distintos entornos de Escritorio. DesktopBSD 1.7: DesktopBSD es un sistema operativo UNIX basado en FreeBSD que utiliza KDE como entorno de Escritorio y que reúne en un único DVD una batería de paquetes para www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

6


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

toda clase de tareas, tanto para el más experto como para el principiante. A diferencia de otras versiones abiertas de BSD, DesktopBSD es fácil de usar y de instalar, arrancando en modo gráfico desde el principio. Además, su asistente de instalación te permite compartir el disco duro con varios sistemas operativos sin perder información. Este DVD de DesktopBSD puede usarse en modo vivo, sin realizar cambios en tu disco, o instalarse. Por otra parte, utiliza su propio sistema de empaquetado de aplicaciones, que se llaman ports, muy fáciles de instalar. Fedora Linux: Fedora Linux es la versión gratuita, abierta y para todo el público de Red Hat Enterprise, la distribución comercial enfocada a la empresa realizada por uno de los principales actores del universo Linux. Fedora Linux está enfocada al usuario final y doméstico y está desarrollada por una comunidad abierta a todo el mundo en lo que se ha venido a llamar Proyecto Fedora. Fedora Linux incorpora los entornos de escritorio habituales y una larga lista de aplicaciones actualizadas y optimizadas para su uso en Fedora, buscando facilidad de uso, eficiencia y el uso de los estándares abiertos. OpenSUSE 11.4: OpenSUSE es la versión abierta y gratuita de SUSE, una distribución Linux conocida por todos. Al igual que su predecesora, OpenSUSE se caracteriza por su robustez, fácil instalación y por la gran cantidad de paquetes que cubren todas nuestras necesidades. OpenSUSE incluye todo aquello que ha hecho tan grande a SUSE durante años, como su gestor de sistema YaST, desde el que controlar hardware, preferencias del sistema y qué programas queremos tener, y el instalador gráfico YaST2, uno de los más sencillos y automatizados. A la última versión del Kernel en OpenSUSE se le añaden los entornos de escritorio GNOME, KDE y XFCE, y una interminable lista de software que cubre todas las tareas relacionadas con ofimática, programación, edición y reproducción de audio y vídeo e imagen.

1.3 ¿Qué es Debian? El Proyecto Debian es una asociación de personas que han hecho causa común para crear un sistema operativo (SO) libre. Este sistema operativo que hemos creado se llama Debian GNU/Linux, o simplemente Debian para acortar. Un sistema operativo es un conjunto de programas y utilidades básicas que hacen que su computadora funcione. El centro de un sistema operativo es el núcleo (kernel). El núcleo es el programa más importante en la computadora, realiza todo el trabajo básico y le permite ejecutar otros programas.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

7


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Los sistemas Debian actualmente usan el núcleo de Linux. Linux es una pieza de software creada en un principio por Linus Torvalds y soportada por miles de programadores a lo largo del mundo.Sin embargo, se está trabajando para ofrecer Debian con otros núcleos, en especial con el Hurd. El Hurd es una colección de servidores que se ejecutan sobre un micronúcleo (como Mach) para implementar las distintas funcionalidades. El Hurd es software libre producido por el proyecto GNU. Una gran parte de las herramientas básicas que completan el sistema operativo, vienen del proyecto GNU; de ahí los nombres: GNU/Linux y GNU/Hurd. Estas herramientas también son libres. Desde luego, lo que la gente quiere es el software de aplicación: herramientas que los ayuden a realizar lo que necesiten hacer, desde editar documentos, ejecutar aplicaciones de negocios hasta divertirse con juegos y escribir más software. Debian viene con más de 29000 paquetes (softwareprecompilado y empaquetado en un formato amigable para una instalación sencilla en su máquina), todos ellos de forma gratuita. Es un poco como una torre. En la base está el núcleo. Encima se encuentran todas las herramientas básicas. Después está todo el software que usted ejecuta en su computadora. En la cima de la torre se encuentra Debian; organizando y encajando todo cuidadosamente para que todo el sistema trabaje junto.

1.4¿Todo es gratis? Usted puede preguntarse: ¿por qué gastará la gente horas de su propio tiempo escribiendo software, empaquetándolo cuidadosamente, y luego regalándolo? Las respuestas son tan variadas como la gente que contribuye. A algunas personas les gusta ayudar a otras. Muchas escriben programas para aprender más acerca de los computadores. Más y más personas están buscando maneras de evitar los www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

8


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

precios inflados del software. Un grupo creciente contribuye como un agradecimiento por todo el excelente software libre y gratuito que ha recibido de otros. En las instituciones académicas muchos crean software libre para ayudar a obtener los resultados de sus investigaciones en un uso más amplio. Las empresas ayudan a mantener el software libre para poder observar cómo se desarrolla éste, ¡no hay una manera más rápida de obtener una nueva característica que implementarla uno mismo! Desde luego, muchos de nosotros sólo lo encontramos divertido.Debian está tan comprometido con el software libre que pensamos que sería útil que ese compromiso se encontrara formalizado en algún tipo de documento. Por ello nació nuestro Contrato Social.Aunque Debian cree en el software libre, existen casos en los que la gente quiere o necesita disponer de software que no es libre en sus máquinas. Siempre que sea posible, Debian respaldará esto. Hay un número creciente de paquetes que tienen como única misión instalar software que no es libre en un sistema Debian.

1.5Razones para escoger Debian: Algunas ventajas por las cuales escoger Debian como sistema operativo: Está mantenida por sus usuarios. Si algo necesita ser arreglado o mejorado, simplemente lo hacemos. Soporte incomparable El correo enviado a las listas de correo frecuentemente obtiene respuesta en quince minutos (o menos), gratuitamente, y por las personas que lo desarrollaron. Compare esto al típico soporte telefónico: horas gastadas en el teléfono, pagando dinero, sólo para tener a alguien que no conoce el sistema lo suficientemente bien como para entender su pregunta. No estará solo en su elección Un amplio abanico de organizaciones e individuos usan ya Debian. El mejor sistema de empaquetamiento de software del mundo ¿Cansado de viejos archivos de software tres versiones anteriores al actual desordenando su sistema? ¿O de instalar software sólo para encontrar que hace que su sistema se colapse debido a conflictos de software? Dpkg, el sólido sistema de empaquetamiento de Debian, se encarga de estos asuntos por usted. Instalación sencilla Si ha oído que GNU/Linux es difícil de instalar entonces no ha probado Debian últimamente. Estamos mejorando constantemente el proceso de instalación. Puede realizar la instalación directamente desde un CD, DOS o discos flexibles o incluso a través de la red. Increíble cantidad de software Debian viene con más de 29000 elementos de software diferentes. Cada bit de éstos es libre. Si tiene software propietario que corre bajo GNU/Linux, puede usarlo (de www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

9


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

hecho, puede que incluso exista un instalador en Debian que automáticamente instale y configure todo por usted). Paquetes bien integrados Debian sobrepasa a todas las otras distribuciones en lo bien integrados que están sus paquetes. Como todo el software lo empaqueta un grupo coherente, no sólo puede encontrar todos los paquetes en un mismo sitio sino que puede estar seguro de que hemos eliminado todos los problemas al respecto de complejas dependencias. Aunque creemos que el formato deb tiene algunas ventajas sobre el rpm, es la integración entre paquetes lo que hace a Debian más robusto. Código fuente Si usted es un desarrollador de software, apreciará el hecho de que haya cientos de herramientas y lenguajes de desarrollo, además de millones de líneas de código fuente en el sistema base. Todo el software en la distribución principal es conforme al criterio de las Directrices de Software Libre de Debian (DFSG). Esto significa que usted puede usar libremente este código para estudiarlo o para incorporarlo a un nuevo proyecto de software libre. También hay una buena cantidad de herramientas y código apropiado para el uso en proyectos propios. Actualizaciones fáciles Actualizarse a una nueva versión de Debian es muy fácil gracias a nuestro sistema de empaquetamiento. Sólo tiene que ejecutar apt-get update; apt-get dist-upgrade (o aptitude update; aptitude dist-upgrade, según la versión) y usted puede actualizarse desde un CD en cuestión de minutos o configure apt para que utilice alguno de los trescientos espejos de Debian y actualícelo desde la red. Sistema de seguimiento de errores El sistema de seguimiento de errores de Debian es público. No intentamos esconder la realidad de que el software no siempre trabaja de la manera que los usuarios desean. Aconsejamos a los usuarios que envíen informes de errores y serán notificados cuándo y por qué el error ha sido solucionado. Este sistema permite que Debian responda a los problemas rápida y honestamente. Si usted aún no es usuario de GNU/Linux, puede también disfrutar de los siguientes beneficios: Estabilidad Existen muchos casos de máquinas que trabajan durante más de un año seguido sin reiniciarse. De la misma forma, hay equipos que tan sólo son reinicializados debido a un fallo en el suministro de corriente o a una actualización del hardware. Compare esto con otros sistemas que se colapsan varias veces al día. Rápido y ligero en memoria Otros sistemas operativos pueden ser rápidos en una o dos áreas, pero, estando basado en GNU/Linux, Debian es ligero y humilde. El software para Windows se www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

10


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

ejecuta bajo GNU/Linux usando un emulador a veces más rápido que en su ambiente original. Los controladores para la mayoría del hardware están escrito por usuarios de GNU/Linux, no por el fabricante Mientras que esto puede significar retrasos antes de que el nuevo hardware sea soportado y la no existencia de soporte para algún hardware, permite que continúe el soporte mucho después de que el fabricante haya detenido su producción o haya quebrado. La experiencia ha demostrado que los controladores de fuentes abiertas son usualmente mejores que los controladores propietarios. Buena seguridad del sistema Debian y la comunidad del software libre son muy sensibles a asegurarse de que los arreglos de problemas de seguridad entren en la distribución rápidamente. Normalmente, los paquetes arreglados se hacen disponibles a los pocos días. La disponibilidad del código fuente permite que la seguridad en Debian se evalúe de forma abierta, lo que evita que se implementen modelos de seguridad pobres. Además, la mayoría de los proyectos de software libre tienen sistemas de revisión por terceras partes, que, como primera medida, evitan que se introduzcan en el sistema problemas de seguridad potenciales. Software de seguridad Muchos desconocen que cualquier cosa enviada por la red puede ser leída por cualquier máquina entre usted y el receptor. Debian tiene paquetes del famoso software GPG (y PGP) que permite enviar correo entre usuarios preservando su privacidad. Además, ssh permite crear conexiones seguras a otras máquinas que tengan ssh instalado. Desventajas de usar Debian: Falta de software comercial popular Es cierto que en GNU/Linux no se dispone de algunos paquetes de software populares. Sin embargo, existen programas para reemplazar la mayoría de ellos, diseñados para imitar las mejores características de los programas en propiedad, con el valor añadido de ser software libre. La falta de programas de oficina como Word o Excel debería dejar de ser un problema, porque Debian incluye tres suites de programas de oficina compuestos por entero de software libre, OpenOffice, KOffice y GNOME Office. También dispone de varias suites de programas oficina propietarias: Applixware (Anyware), Oracle Open Office, Hancom Office, Axene y otros. Para aquellos interesados en bases de datos, Debian se distribuye con los programas de bases de datos populares mySQL y PostgreSQL. También existen versiones para GNU/Linux de SAP DB, Oracle, Informix, IBM DB2 y otras. Están apareciendo gran cantidad de otros paquetes propietarios, al tiempo que más compañías descubren la potencia de GNU/Linux y su gran mercado oculto, con una www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

11


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

base de usuarios en rápido crecimiento (ya que GNU/Linux es de distribución libre, no se pueden usar cifras de ventas para estimar sus usuarios. Las mejores estimaciones indican que GNU/Linux tiene un 5% del mercado, lo que da 15 millones de usuarios a principios de 2001). GNU/Linux es difícil de configurar Observe que dice configurar, no instalar, ya que algunas personas encuentran que la instalación inicial de Debian es más fácil que la de Windows. Mucho hardware (impresoras por ejemplo) podría, sin embargo, ser mucho más fácil de instalar. Además, algún software podría tener un script que guiara al usuario a través de la configuración (al menos en las instalaciones más comunes). Ésta es un área en la que se está trabajando. No todo el hardware está soportado Particularmente, hardware realmente nuevo, viejo o raro. También el hardware que depende de software de "controlador" complejo, que el fabricante sólo distribuye para plataformas Windows (por ejemplo los WinModems o las tarjetas WiFi de equipos portátiles). Aun así, en la mayoría de los casos, está disponible hardware equivalente que trabaja con GNU/Linux. Algunos dispositivos no están soportados debido a que el vendedor decidió no dejar las especificaciones disponibles. Esto también es un área en el que se está trabajando.

1.6 Requisitos de Hardware para Debian 6: Dependiendo de sus necesidades, podría arreglarse con menos del hardware recomendado listado en la siguiente tabla. Sin embargo, la mayoría de usuarios se arriesgan a terminar frustrados si ignoran estas sugerencias. Se recomienda como mínimo un Pentium 4, a 1 GHz para un sistema de escritorio. Tipo de instalación RAM (mínimo) RAM (recomendado) Disco duro Sin escritorio 64 Megabytes 256 Megabytes 1 Gigabyte Con escritorio 128 Megabytes 512 Megabytes 5 Gigabytes Los requisitos de memoria mínimos necesarios son en realidad inferiores a los indicados en esta tabla. En función de la arquitectura, es posible instalar Debian en sistemas con tan sólo 20 MB (en el caso de s390) a 60 MB (para amd64). Lo mismo se puede decir del espacio necesario en disco, especialmente si escoge las aplicaciones que va a instalar manualmente. Es posible ejecutar un entorno de escritorio gráfico en sistemas antiguos o de gama baja. En este caso es recomendable instalar un gestor de ventanas que es consuma menos recursos que los utilizados en los entornos de escritorio de GNOME o KDE. Algunas alternativas para estos casos son xfce4, icewm y wmaker, aunque hay más entre los que puede elegir. Es prácticamente imposible dar requisitos generales de memoria y espacio en disco para instalaciones de servidores ya que éstos dependerán en gran medida de aquello para lo que se utilice el servidor.Recuerde que estos tamaños no incluyen todos los otros materiales que se encuentran habitualmente, como puedan ser los ficheros de usuarios, el correo y otros www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

12


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

datos. Siempre es mejor ser generoso cuando uno está pensando qué espacio destinar a sus propios ficheros y datos. Se ha tenido en cuenta el espacio de disco necesario para la operación normal del sistema Debian GNU/Linux en sí en estos requisitos de sistema recomendados. En particular, la partición /var de Debian contiene mucha información de estado específica a Debian, además de su contenido habitual, como puedan ser los ficheros de registro. Los ficheros de dpkg (que incluyen información sobre los paquetes instalados) pueden fácilmente consumir unos 40 MB. Además, hay que tener en cuenta que apt-get ubica los paquetes descargados aquí antes de instalarlos. Por regla general deberá asignar por lo menos 200 MB para /var, y mucho más si va a instalar un entorno gráfico de escritorio. 1.6.1 Espacio en disco requerido para las tareas: Una instalación estándar para amd64, incluyendo todos los paquetes estándar y el núcleo 2.6 utilizado por omisión, ocupa 532 MB de espacio en disco. Una instalación mínima base sin seleccionar la tarea “Sistema estándar” ocupará 368 MB. Importante: En ambos casos es importante tener en cuenta que este es el espacio después de haber terminado la instalación y de que se hayan borrado todos los ficheros temporales. Tampoco tiene en cuenta la cantidad utilizada por el propio sistema de ficheros, por ejemplo por los ficheros de «journal». Esto significa que hace falta bastante más disco durante la instalación y durante el uso habitual del sistema. La siguiente tabla lista los tamaños indicados por aptitude para las tareas listadas en tasksel. Tenga en cuenta que algunas tareas tienen componentes comunes, de modo que el tamaño total instalado para dos tareas juntas podría ser inferior al total obtenido al sumar sus tamaños individualmente. Por omisión, el instalador de Debian instalará el entorno de escritorio GNOME, pero puede seleccionar otros entornos de escritorio usando uno de las imágenes de CD especiales, o especificando el entorno de escritorio deseado cuando se inicia el instalador. Tenga en cuenta que tendrá que añadir los tamaños que se indican en la tabla al tamaño de la instalación estándar para poder determinar el tamaño de sus particiones. La mayoría del espacio en disco que se indica en “Tamaño instalado” acabará utilizándose de /usr y en /lib. Por otro lado, el tamaño que se indica en “Tamaño de descarga” será necesario (temporalmente) en /var. Tarea Entorno de escritorio • GNOME (predeterminado) • KDE • Xfce

Tamaño instalado (MB)

Tamaño de Espacio necesario para descarga (MB) instalar (MB)

2567

954

3521

2159 1672

860 637

3019 2309

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

13


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

• LXDE 1452 566 2018 Portátil 182 59 241 Servidor Web 55 17 72 Servidor de impresoras 196 63 259 Servidor de DNS 4 1 5 Servidor de ficheros 126 42 168 Servidor de correo 64 23 87 Base de datos SQL 49 10 59 Servidor de SSH 1 1 2 Hay algún solape entre la tarea «Portátil» y la tarea «Entorno de escritorio». La tarea «Portátil» sólo utilizará algunos MB adicionales de espacio en disco si instala ambas. Puede que tasksel instale automáticamente una tarea de localización si está realizando la instalación en un idioma que no sea el inglés, siempre y cuando haya una disponible para su idioma. Los requisitos de espacio varían por idioma pero debería, en este caso, tener en cuenta que podría necesitar 350 MB en total para la descarga e instalación de esta tarea. Fuente: http://www.debian.org, http://www.linux-es.org, http://www.pinguinosycia.com

2. Instalando una Distribución Linux Debian: 2.1 Medios de Instalación CD o DVD: Por muchas razones la forma más simple es instalar Debian GNU/Linux desde un juego oficial de CD-ROMs. Puede comprar un juego a algún proveedor o también podría descargar las imágenes de CD-ROM desde una réplica de Debian y hacer su propio juego, si tiene una conexión de red rápida y una grabadora de CDs; se puede asegurar que los ficheros que necesita la mayoría de personas estén en un solo CD. Aunque el juego completo de paquetes binarios requiere varios CDs, es poco probable que necesite los paquetes que se encuentran a partir del tercer CD. También puede considerar usar la versión de DVD, que le ahorra bastante espacio y evita la maratón de intercambio de CDs. Si su máquina no permite el arranque desde CD, pero tiene un juego de CDs, puede usar una estrategia alternativa como disco duro, memoria USB, arranque desde red, o cargar manualmente el núcleo desde el CD para arrancar inicialmente el sistema de instalación. Los ficheros que necesitará para arrancar por otros métodos también están en el CD, el archivo de red de Debian es idéntico a la organización de los directorios de los CDs. De modo que cuando se mencionen rutas de ficheros para ficheros concretos necesarios para arrancar, busque estos ficheros en los mismos directorios y subdirectorios en su CD. Una vez que el instalador haya arrancado, éste podrá obtener el resto de los ficheros necesarios desde el CD.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

14


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Si no tiene un juego de CDs, necesitará descargar los ficheros del sistema de instalación y ubicarlos en el disco duro o memoria USB o un ordenador conectado a la red de modo que puedan usarse para arrancar el instalador. Red: Puede utilizarse la red durante la instalación para recuperar los ficheros para la instalación. El que se utilice la red o no depende del mecanismo de instalación que escoja y de sus respuestas a algunas preguntas que se le realizarán durante la instalación. Este sistema de instalación puede utilizar la mayor parte de las conexiones de red (incluyendo PPPoE, pero no RDSI o PPP) a través tanto de HTTP como FTP. Una vez haya terminado la instalación podrá configurar su sistema para que utilice RDSI y PPP. También puede arrancar el sistema de instalación a través de la red. Otra opción es la instalación sin disco, basada en el arranque a través de red desde una red de área local y en el montaje a través de NFS de todos los sistemas de ficheros locales. El arranque a través de la red requiere que tenga una conexión de red y un servidor de arranque TFTP (DHCP, RARP o BOOTP). Existen varias formas de realizar un arranque con TFTP en i386: Tarjetas de red o placas base que aceptan PXE: Podría ser que su tarjeta de red o placa base provea la funcionalidad de arranque PXE. Lo que es una re implementación de Intel™ del arranque TFTP. De ser su caso podría tener la posibilidad de configurar su BIOS para arrancar desde la red. Tarjeta de red con bootROM: Podría ser que su tarjeta de red (NIC) provea la funcionalidad de arranque usando TFTP. Etherboot: El proyecto etherboot provee disquetes de arranque e incluso “bootroms” que efectúan un arranque usando TFTP. Dispositivos USB: Muchas máquinas Debian sólo necesitan una unidad de disquetes y/o CD-ROM para instalar el sistema o para propósitos de recuperación del sistema. Si gestiona servidores, puede que haya pensado en omitir estas unidades y usar un dispositivo de memoria USB para instalar y (cuando sea necesario) recuperar el sistema. También es útil en el caso de sistemas pequeños que no tienen espacio para unidades innecesarias o laptop y netbooks.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

15


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

2.2 Instalando Debian 6 Configuramos el booteo de nuestro equipo, insertamos el CD o dispositivo USBen nuestro equipo y reiniciamos. Una vez en la pantalla de Debian seleccionamos Graphical Install.

Seleccionamos el idioma de instalación y clic en Continue.

Seleccionamos nuestra localización para la configuración de la zona horaria del sistema.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

16


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Seleccionamos el idioma de nuestro teclado.

Se procede a la carga de los componentes de instalación.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

17


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Configuramos ahora el nombre de la computadora.

Configuramos el nombre dominio a nuestro sistema (dicho nombre debe estar configurado en los equipos que pertenezcan a la red).

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

18


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ingresamos la contraseña de root (superusuario) de nuestro sistema.

Creamos una cuenta de usuario para realizar las tareas no administrativas del sistema.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

19


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Configuramos un nombre para la cuenta de usuario.

Configuramos una clave para la cuenta de usuario.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

20


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

El sistema procede a la configuración de la hora el sistema.

Ahora en el particionado de discos seleccionamos la opción Manual. Clic en Continuar.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

21


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Seleccionamos nuestro disco duro y hacemos clic en Continuar.

Seleccionamos Si para la creación de la tabla de particiones (discos vírgenes).

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

22


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Seleccionamos el ESPACIO LIBRE y hacemos clic en Continuar para la creación de las particiones.

Seleccionamos: Crear una partición nueva.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

23


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Asignamos el tamaño (0.1 GB para el caso de la partición de arranque: /boot).

Seleccionamos como tipo de partición: Primaria.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

24


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ahora la ubicación de nuestra partición: Principio.

Seleccionamos como sistema de archivos: ext3, punto de montaje: /boot y activamos la marca de arranque. Luego doble clic en: Se ha terminado de definir la partición.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

25


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Luego seleccionamos nuevamente el ESPACIO LIBRE para la creación de las demás particiones que integrarán nuestro sistema.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

26


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Creamos una nueva partición.

Asignamos 2 GB de espacio a la partición.

Seleccionamos Lógica como tipo de partición.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

27


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ubicamos la partición al inicio del disco.

En la ventana siguiente nos dirigimos a Utilizar como.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

28


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Seleccionamos usar la partición como área de intercambio. Y luego clic en Continuar.

Clic en Se ha terminado de definir la partición.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

29


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Una vez más seleccionamos el espacio libre del disco para crear una última partición.

Seleccionamos Crear una nueva partición.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

30


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Asignamos todo el espacio libre del disco (6.5 GB en este caso).

Seleccionamos: Lógica, como tipo de partición.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

31


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

En Punto de montaje, seleccionamos la raíz (/) y luego clic en: Se ha terminado de definir la partición.

Se nos muestra el esquema de particiones que conformarán nuestro sistema; para finalizar hacemos clic en: Finalizar el particionamiento y escribir los cambios en disco.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

32


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

En la ventana de resumen seleccionamos Sí para realizar los cambios en el disco.

Se procede a la creación y formateo de las particiones.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

33


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

En la ventana de configuración del gestor de paquetes hacemos clic en Retroceder.

Seleccionamos Sí y hacemos clic en Continuar.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

34


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Se procede a la configuración del gestor de paquetes.

En la ventana de Selección de programas elegimos: Utilidades estándar de sistema.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

35


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Se procede a la instalación del sistema.

Ahora instalamos el cargador de arranque (GRUB) del sistema. Seleccionamos Sí y luego clic en Continuar.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

36


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Una vez finalizada la instalación del sistema. Hacemos clic en Continuar para el reinicio del sistema.

Seleccionamos la primera opción en el menú de selección de booteo: Debian GNU/Linux, with Linux 2.6.32-5-686.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

37


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Procedemos a loguearse como usuario administrador.

Una vez logueados se nos muestra la consola del sistema.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

38


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

2.3 GRUB: gestor de arranque Un gestor de arranque es un programa sencillo que no tiene la totalidad de las funcionalidades de un sistema operativo, diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar. Normalmente se utilizan los cargadores de arranque multietapas, en los que varios programas pequeños se suman los unos a los otros, hasta que el último de ellos carga el sistema operativo. GRUB es un gestor de arranque múltiple, desarrollado por el proyecto GNU, derivado de Grand Unified Bootloader (GRUB), que se usa comúnmente para iniciar uno de dos o más sistemas operativos instalados en un mismo equipo.Se usa principalmente en sistemas operativos GNU/Linux. Técnicamente, un gestor de arranque múltiple es aquel que puede cargar cualquier archivo ejecutable y que contiene un archivo de cabecera en los primeros 8 KB del archivo. Tal cabecera consiste en 32 bits de un número mágico, 32 de indicadores (flags), otros 32 de un número mágico, seguidos de información sobre la imagen ejecutable. Una de las características más interesantes de este tipo de gestor es que no es necesario instalar una partición nueva o un núcleo nuevo, pudiendo cambiar todos los parámetros en el arranque mediante el sistema de órdenes de consola de GRUB. Mientras los gestores de arranque convencionales tienen una tabla de bloques en el disco duro, GRUB es capaz de examinar el sistema de archivos. Actualmente, soporta los siguientes sistemas de archivos: ext2/ext3/ext4 (Grub2) usado por los sistemas UNIX y su variante libre GNU/Linux. ReiserFS. XFS de SGI (aunque puede provocar problemas). UFS. VFAT, como FAT16 y FAT32 usados por Windows 9.x NTFS usado por los sistemas Windows NT (a partir de Windows NT v.3.51). JFS de IBM. HFS de Apple Inc. GRUB soporta 14 colores de fondo, siendo el negro el color por defecto. Algunas distribuciones de GNU/Linux que incluyen GRUB frecuentemente utilizan fondos personalizados con el logotipo de dicha distribución. Los usuarios de GRUB pueden también hacer y colocar sus propios fondos.

2.4 Tipos de Particiones y Sistemas de Archivos Particionar un disco duro es realizar una división en él de modo que, a efectos prácticos, el sistema operativo crea que tienes varios discos duros, cuando en realidad sólo hay un único disco físico dividido en varias partes. De este modo, se pueden modificar o borrar particiones sin afectar a los demás datos del disco. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

39


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Las particiones básicas se llaman primarias y ser un máximo de 4. Esto puede ser suficiente para nuestros intereses. Como a veces no es así, se crearon las particiones extendidas que pueden albergar otras particiones dentro, llamadas lógicas. Los sistemas de archivos indican el modo en que se gestionan los archivos dentro de las particiones. Según su complejidad tienen características como previsión de apagones, posibilidad de recuperar datos, indexación para búsquedas rápidas, reducción de la fragmentación para agilizar la lectura de los datos, etc. Hay varios tipos, normalmente ligados a sistemas operativos concretos. A continuación se listan los más representativos: fat32 o vfat: Es el sistema de archivos tradicional de MS-DOS y las primeras versiones de Windows. Por esta razón, es considerado como un sistema universal, aunque padece de una gran fragmentación y es un poco inestable. ntfs: Es el nuevo sistema de Windows, usado a partir del 2000 y el XP. Es muy estable. El problema es que es privativo, con lo cual otros sistemas operativos no pueden acceder a él de manera transparente. Desde Linux sólo se recomienda la lectura, siendo la escritura en estas particiones un poco arriesgada. ext2: Hasta hace poco era el sistema estándar de Linux. Tiene una fragmentación bajísima, aunque es un poco lento manejando archivos de gran tamaño. ext3: Es la versión mejorada de ext2, con previsión de pérdida de datos por fallos del disco o apagones. En contraprestación, es totalmente imposible recuperar datos borrados. Es compatible con el sistema de archivos ext2. Actualmente es el más difundido dentro de la comunidad GNU/Linux y se considera el estándar de facto. ext4: Es un sistema de archivos con registro por diario (en inglés Journaling), anunciado el 10 de octubre de 2006, como una mejora compatible de ext3. La principal novedad en Ext4 es Extent, o la capacidad de reservar un área contigua para un archivo; esto puede reducir y hasta eliminar completamente la fragmentación de archivos. ReiserFS: Es el sistema de archivos de última generación para Linux. Organiza los archivos de tal modo que se agilizan mucho las operaciones con éstos. El problema de ser tan actual es que muchas herramientas (por ejemplo, para recuperar datos) no lo soportan. swap: Es el sistema de archivos para la partición de intercambio de Linux. Todos los sistemas Linux necesitan una partición de este tipo para cargar los programas y no saturar la memoria RAM cuando se excede su capacidad. En Windows, esto se hace con el archivo pagefile.sys en la misma partición de trabajo.

2.5 Estructura de Archivos en Debian Los directorios y archivos de un sistema Debian tiene una estructura estándar, algunos de los directorios son: /boot: Mantiene el kernel e información indispensable para el arranque del sistema. /bin: Mantiene unos pocos programas que estarán disponibles incluso en los modos de ejecución más restringidos (bash, cat, ls, login, ps). /sbin: Mantiene programas disponibles sólo para el administrador incluso en los modos de ejecución más restringidos (fsck, getty, halt). www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

40


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

/usr: Programas de acceso a usuarios finales y datos de estos programas que no requieren ser modificados (datos de sólo lectura). Algunos de sus subdirectorios son: bin, games (programas disponibles para todos los usuarios), sbin (herramientas para el administrador), dict (diccionarios usados por ejemplo por ispell y look), share (datos de diversos programas, entre sus subdirectorios están: doc, man y info que contienen documentación; locale, i18n que mantiene información sobre internacionalización (locale); zoneinfo que mantiene información sobre zonas horarias), doc, info, man (enlaces o complementos a la documentación disponible en /usr/share/doc, /usr/share/info y /usr/share/man), lib (librerías de funciones comunes a varios programas (algunas como libc indispensables para todos)), include, src (encabezados de algunos componentes del sistema y fuentes de algunos programas), X11R6 (programas y datos de X-Window), local (otros programas y datos compilados por el administrador. En algunos sistemas otros programas se ubican en /opt). /floppy, /cdrom, /mnt: Directorios para montar disquettes, CD-ROMs y otros sistemas de archivos o dispositivos. /proc: Diversos canales de comunicación con algunos programas (por ejemplo con el kernel). /lib: Librerías indispensables y módulos (especialmente requeridas durante el arranque del sistema). /etc: Archivos de configuración de diversos programas. /dev: Abstracciones a los dispositivos conectados (o que podrían conectarse) al computador. /home: Mantiene información de los usuarios del sistema. /root: Mantiene información del administrador del sistema. /tmp: Archivos temporales creados por algunos programas, que serán borrados por el sistema operativo durante el arranque. /var: En este directorio los programas que lo requieran pueden mantener archivos que deban modificarse frecuentemente. Algunos de sus subdirectorios son: mail donde se mantienen colas de correo de cada usuario, log que mantiene bitácoras, run con archivos que mantienen los números de los procesos iniciados al arrancar el sistema, spool colas de impresión y de otros programas, tmp archivos temporales (más persistente que /tmp). /proc: Este directorio es "virtual", no está presente en el disco, es creado por el sistema para intercambiar información con más facilidad. El rigor de esta jerarquía hace que memorizándola sea fácil emplear diversos sistemas Unix, aunque puede no ser la más apropiada en algunas circunstancias. Para simular jerarquías diferentes cada proceso iniciado por el usuario root puede tener un directorio raíz diferente al directorio raíz real del sistema. Para establecerlo se emplea el programa chroot, que recibe como primer parámetro el nuevo directorio raíz y como segundo parámetro el programa por ejecutar. La ruta del programa se especifica con respecto al nuevo directorio raíz y para que el programa pueda ejecutarse, deben ubicarse las librerías que este requiera en la "nueva" jerarquía (por ejemplo en el nuevo directorio /lib). www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

41


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Esta jerarquía de directorios en Linux no necesariamente está en un disco, sino sólo en memoria RAM, por eso pueden tenerse directorios como /proc y pueden montarse diversos sistemas de archivos sobre la misma jerarquía como se presenta en la siguiente sección. Fuente: http://www.debian.org, http://es.wikipedia.org/wiki/GNU_GRUB

3. Configurando el Sistema: 3.1Configurando la Red Para la configuración de la red, abrimos el archivo de configuración de los interfaces de red: 1. vim /etc/network/interfaces

Podemos configurar nuestro interfaz para la obtención de una dirección IP mediante un servidor DHCP o configurarla de manera estática: - Obtención de IP mediante servidor DHCP: auto eth0 iface eth0 inet dhcp

1. auto eth0: Instruye que el interfaz será levantado automáticamente cuando el sistema arranque, equivalente a ifup eth0 una vez iniciado el sistema. 2. iface eth0 inet dhcp: Indica que el primer interfaz de red (eth0) será configurado usando un servidor DHCP. - Configuración IP estática:

auto eth0 iface eth0 inet static address 192.168.50.xxx netmask 255.255.255.0 network 192.168.50.0 gateway 192.168.50.1 broadcast 192.168.50.255 1. auto eth0: Instruye que el interfaz será levantado automáticamente cuando el sistema arranque, equivalente a ifup eth0 una vez iniciado el sistema. 2. iface eth0 inet static: Indica que el primer interfaz de red (eth0) será configurado manualmente con los parámetros definidos. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

42


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

3. address: cada interfaz de red conectada a una red IP es identificada por una IP única de cuatro bytes (32 bits). 4. netmask: es un número que establece qué parte de la IP de un host corresponde a la red y qué parte corresponde a la máquina. 5. network: IP que define el identificador de red. 6. broadcast: es la IP a la que se mandan los paquetes que deben recibir todas las máquinas de la red 7. gateway: es la IP de la máquina de nuestra LAN a través de la cual salimos hacia el exterior. Configuramos los servidores DNS en nuestro sistema. Creamos un respaldo del archivo (si es que existe) y abrimos/creamos el archivo: 1. vim /etc/resolv.conf

Insertamos las direcciones correspondientes a OpenDNS: nameserver 208.67.222.222 nameserver 208.67.220.220

Levantamos/activamos el adaptador de red, realizar las pruebas de conectividad correspondientes, con la puerta de enlace y luego con las direcciones IP de los DNS: 1. ifup eth0 2. ping 192.168.50.1 3. ping 208.67.222.222

3.2 Configurando los Repositorios El repositorio es a todos los efectos un archivo ordenado donde son almacenados los paquetesDebian (sean estos paquetes binarios o fuentes) en modo bien organizado, con unaestructurabien definida y constantemente actualizados. Los paquetes contenidos en un repositorio son indexados en estos archivos: Packages.gz (son paquetes que contienen los binarios). Sources.gz (son aquellos que contienen las fuentes). - El archivo sources.list: En cada sistema Debian, los repositorios utilizados vienen indicados en el archivo /etc/apt/sources.list, en este fichero cada línea representa a un repositorio y la forma en la que se obtendrán los paquetes, así como la rama de Debian que se desea utilizar (stable, testing, unstable). Cada línea que comience con un # será ignorada, así como las líneas vacías. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

43


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

- Orden de ingreso: Es importante ingresar los repositorios en un orden justo, los primeros en la lista, son los más importantes (o favoritos). Para mejorar el rendimiento, es aconsejable ordenarlos por velocidad (primero el CDROM, después la red local, internet, etc). - Sintaxis: Cada línea que describe un repositorio tiene una bien determinada sintaxis: deb url distribution [component...] Analizamos los componentes por separado, así lo entendemos mejor: deb o deb-src:Sirve para indicar si el repositorio indicado contiene paquetes binarios o paquetes fuente (si tiene ambos es necesario especificarlo en dos líneas diferentes). url:Indica la dirección donde es posible encontrar el repositorio, y además podemos elegir entre los siguientes métodos de acceso a los paquetes: - file permite acceder a un repositorio presente en el disco de nuestro pc. Ejemplo: deb file:/home/repo. - cdrom:Permite acceder a un repositorio presente en un cdrom. -http:Permite acceder al protocolo http. -ftp:Permite acceder al protocolo ftp. distribution: Indica la distribución utilizada, es posible usar el nombre en código (squeeze, etch, sid) o el nombre genérico (stable, testing, unstable). component:Indica las secciones del repositorio:non-free, main, contrib. - Estructura de los repositorios: Un repositorio se puede clasificar a grandes rasgos en: main:Es la sección principal, que contiene el 90% de los paquetes presentes en nuestra Debian. contrib:Encontramos los paquetes que cumplen con 5 o 6 puntos de las DFSG(Debian Free Software Guidelines), pero que dependen de paquetes que no la respetan(DFSG = lineamientos o requisitos que una licencia debe cumplir para que sea definida como libresegún el proyecto Debian). non-free: Contiene los paquetes que poseen limitaciones en su distribución (por ejemplo aquellos que no pueden ser usados en ámbito comercial o porque dependen de paquetes que no respetan las DFSG). Fuente: http://www.esdebian.org/wiki/introduccion-repositorios-debian

Para la configuración de los repositorios, abrimos el archivo de configuración y agregamos las siguientes líneas y luego ejecutamos los comandos de actualización de la lista de paquetes www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

44


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

del sistema: 1. vim /etc/apt/sources.list deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib deb-src http://security.debian.org/ squeeze/updates main contrib

2. apt-get update

3.3 Conociendo FSTAB El fichero fstab (file systems table) se encuentra comúnmente en sistemas Unix (en el directorio /etc/) como parte de la configuración del sistema. Lo más destacado de este fichero es la lista de discos y particiones disponibles. En ella se indica como montar cada dispositivo y qué configuración utilizar. Con los comandos mount y umount leen este fichero para determinar qué opciones utilizar a la hora de montar el dispositivo especificado. Por ejemplo:mount /media/música montaría en el directorio /media/música el dispositivo indicado en fstab con las opciones que tiene marcadas, si es que éstas se lo permiten. El administrador del sistema se tiene que encargar de mantener este fichero para el mejor uso de los dispositivos. Esto normalmente se hace mediante un editor de texto aunque existen aplicaciones gráficas para los usuarios más inexpertos. Veremos la estructura de dicho archivo para así posteriormente entender los parámetros de cada uno de estos: <dispositivo> - <punto montaje> - <sistema de archivos> - <opciones> - <dump> - <revisión> Cada (-) significa un tabulador y cada uno de los parámetros significa lo siguiente: - Dispositivo:Como en Linux todo es considerado un fichero, aquí es el fichero que nos indica el dispositivo físico a montar, se encuentra en el directorio /dev y pueden ser hd, sd, fd u otro que signifique un dispositivo físico. - Punto Montaje: Es el directorio que nos permitirá ver y manejar lo que contenga el dispositivo físico que se indica en el parámetro anterior. - Sistema de Archivo: Es el algoritmo que se usara para leer los datos, simplemente es que tipo de datos guardados. EXT4 - actual sistema de archivos de Linux, de altísimo desempeño y seguridad. EXT3 - Sistema de archivos de Linux que permite registros. EXT2 - Sistema viejo de archivos de Linux que no tiene registros (casi no se usa nunca). www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

45


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

NTFS - Sistema de Windows usados desde NT hasta el actual 7. VFAT - Sistema de Windows usados desde el 95 al Me, conocido como FAT32, usado también en las USB, y útil para compartir datos en un PC que tenga los dos sistemas. NFS - Sistema usado por SUN o Solaris. ISO9660 - Sistema usado en los CD y DVD. JFS - Sistema de archivos de IBM que usa registros. SWAP - Sistema de memoria de intercambio usado en Linux. XFS - Sistema usado por Silicon Graphics. UFS - Sistema usado por BSD. Como se puede ver es completamente compatible con todo y nos permite así integrar nuestro sistema a casi cualquier cosa que lo conectemos o que le montemos, para asegurarse que sistemas tienen compilados en el Kernel es bueno revisar el archivo /proc/filesystem. - Opciones: Son los parámetros que se usaran para montar el dispositivo indicado, estas opciones son: async: Escritura asíncrona de datos. auto: Se montara automáticamente. defaults: Los parámetros por defecto del montaje: auto,async,dev,exec,nouser,rw,suid. dev: Dispositivo local al sistema. exec: Que tenga programas ejecutables. gid: Un ID de grupo definido. noauto: No se monta automáticamente, se usa en medios extraíbles. nouser: Solo puede ser montado por root. owner: El usuario que monte el sistema es el que va a ser asignado como propietario ro: Solo lectura. rw: Lectura y escritura. suid: Nos permite usar los bits setuid, que mal administrados pueden comprometer la seguridad del sistema. sync: Escritura síncrona. uid: Establecer el identificador del usuario del sistema de archivos. umask:Permite colocar una máscara para que otros usuarios puedan o no acceder al sistema montado. - Dump: Es el comando que se usa para hacer respaldos solo puede ser 0 o 1, si es cero no hace respaldos y si es uno se realiza con el comando dump. - Revisión: Es un bit que nos permite determinar si este dispositivo será o no revisado al momento de hacer un fsck, al igual que el anterior cero no lo hace y uno lo hace. Con estos datos se puede entender más claramente cómo manejar y usar correctamente el fstab y así montar dispositivos por defecto con todas las normas y todo lo que necesitemos para su uso y seguridad. Fuente: http://diegosamuel.blogspot.com/2010/02/usar-fstab.html, http://es.wikipedia.org/wiki/Fstab

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

46


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

3.4 Instalación y Configuración de Escritorio Gráfico y Herramientas Ahora vamos a instalar y configurar nuestro sistema de manera que obtengamos un escritorio con todas las capacidades de un sistema Microsoft Windows: 1. Nos logueamos como root y procedemos a instalar el servidor de ventanas Xorg y nuestro gestor de ventanas Openbox: 1. apt-get install xorg openbox 2. Ahora instalamos obconf (asistente de configuración de Openbox) y obmenu (editor gráfico del menú de Openbox): 1. apt-get install obconf obmenu 3. Instalamos la pantalla de logueo de Gnome (gdm)y reiniciamos el equipo: 1. apt-get install gdm

4. Nos logueamos como un usuario sin privilegios:

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

47


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

5. Hacemos clic derecho sobre el escritorio, luego en Terminal emulator. Procedemos a instalar Gnome Terminal (terminal con mejores características): 1. apt-get install gnome-terminal

6. Instalamos ahora nuestro navegador web Iceweasel: 1. apt-get install iceweasel 7. Ahora hacemos clic derecho y luego clic en Web browser; donde se nos muestra ya instalado nuestro nuevo navegador:

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

48


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

8. Ahora accedemos a la página oficial de OpenOffice: http://es.openoffice.org y descargamos el paquete para Debian (paquetes deb).

9. Procedemos a descomprimir el paquete (lugar de descarga /home/usuario/Downloads):

1. tar xvfz OOo*.tar.gz 2. cd OO* 3. cd DEBS 4. dpkg --install *.deb 5. cd desktop-integration 6. dpkg --install *.deb 10. Ejecutamos ahora OpenOffice (abrimos un terminal y ejecutamos: openoffice.org3, llenamos la información de registro y nos muestra la siguiente pantalla):

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

49


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

11. Instalamos el cliente de mensajería Pidgin y lo ejecutamos: 1. apt-get install pidgin 2. pidgin

12. Instalamos el plugin de Flash para nuestro navegador web: 1. apt-get install flashplugin-nonfree 13. Instalamos el soporte para archivos Zip y Bzip, instalamos ahora: 1. apt-get install zip unzip bzip2 14. Instalamos el reproductor VLC: 1. apt-get install vlc 15. Por defecto Debian no instala los drivers de sonido, necesitamos ahora instalar Alsa: 1. apt-get install alsa alsa-base alsa-utils alsa-tools alsa-oss alsa-source

16. Si deseamos configurar el sonido ejecutamos: 1. alsamixer

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

50


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

17. Instalamos Gnome Panel, empleado por Gnome: 1. apt-get install gnome-panel 18. Reiniciamos nuestro sistema y ahora ya podemos disfrutar de un panel configurado con todo el software anteriormente instalados:

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

51


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

19. Instalamos VirtualBox para la creación de máquinas virtuales: 1. apt-get install virtualbox-ose

20. Ahora instalaremos Wine por si necesitamos instalar algún software de Microsoft Windows en nuestro equipo: 1. apt-get install wine

4. Lista de Comandos: A addgroup alumnos: crea el grupo 'alumnos' a partir de un asistente en modo texto adduser alumno: crea el usuario 'alumno' a partir de un asistente en modo texto, creando su carpeta dentro de 'home'. adduser alumno alumnos: añade el usuario 'alumno' al grupo 'alumnos' (el usuario y el grupo deben ser creados previamente). alias: listado de alias del usuario. alien wget.rpm: convierte el paquete 'wget.rpm' a 'wget.deb' (conversión de rpm a deb). alsaconf: detecta la tarjeta de sonido del equipo, instala los módulos necesarios y la configura, a partir de una utilidad en modo texto. apt-cache depends lilo: dependencias y conflictos del paquete 'lilo'. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

52


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

apt-cache policy lilo: estado de instalación, versión, revisión y procedencia del paquete 'lilo'. apt-cache search gnome: paquetes de la base de datos que contienen en el nombre o en la descripción el término 'gnome'. apt-cache search gnome | wc –l: total de paquetes de la base de datos que contienen en el nombre o en la descripción el término 'gnome'. apt-cache search window manager | grep "window manager": paquetes de la base de datos que contengan en el nombre o en la descripción la expresión 'window manager'. apt-cache show lilo: información disponible del paquete 'lilo' (dependencias, conflictos, versión, descripción, etc.). No requiere que esté instalado en el sistema. apt-cdrom add: añade un CD-ROM a la lista de paquetes disponibles en '/etc/apt/sources.list'. apt-get autoclean: elimina los paquetes descargados (.deb) que no están instalados en el sistema (almacenados automáticamente en '/var/cache/apt/archives/'). apt-get clean: elimina todos los paquetes (.deb) descargados (almacenados automáticamente en '/var/cache/apt/archives/'). apt-get dist-upgrade: actualiza todos los paquetes instalados en el sistema a la última versión disponible, resolviendo las dependencias y conflictos que puedan surgir. apt-get install –f: comprueba la correcta instalación de los paquetes descargados en '/var/cache/apt/archives/', repitiendo la instalación si fuese necesario o bajando algún paquete dependiente que no se haya descargado. apt-get install aptitude: instala el paquete 'aptitude'. apt-get remove --purge aptitude: elimina el paquete 'aptitude' incluyendo sus ficheros de configuración, teniendo en cuenta las dependencias. apt-get remove aptitude: elimina el paquete 'aptitude' sin eliminar los ficheros de configuración, teniendo en cuenta las dependencias. apt-get update: actualiza la base de datos de paquetes a actualizar o instalar a partir del fichero '/etc/apt/sources.list'. La base de datos la constituyen un conjunto de ficheros ubicados en '/var/lib/apt/lists/'. apt-get upgrade: actualiza todos los paquetes instalados en el sistema a la última versión disponible. aptitude: administra paquetes sobre apt a partir de una intefaz gráfica. arp: adaptadores de red visibles en la LAN (host, dirección MAC). arp –a: adaptadores de red visibles en la LAN (host, dirección IP, dirección MAC). autotrace -input-format='png' -output-format='eps' debian.png > debian.eps: convierte la imagen 'debian.png' (Portable Network Graphics, mapa de bits) a 'debian.eps' (Encapsulated PostScript).

B base-config: configura el sistema base.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

53


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

bash -i 2>&1 | tee fichero: copia desde ese momento las salidas de pantalla al archivo 'fichero' ('tee' bifurca la entrada estándar [teclado] hacia la salida estándar [monitor] y hacia el archivo especificado. Se finaliza con Ctrl+C). bunzip2 fichero.bz2: descomprime el archivo 'fichero.bz2' comprimido con bzip2, renombrándolo a 'fichero' (es necesario emplear este comando si el fichero contiene un único archivo, con lo cual no se ha hecho un tar). bzip2 fichero: comprime el archivo 'fichero', renombrándolo a 'fichero.bz2'

C cat /dev/cdrom > /usr/fichero.iso: crea la imagen ISO-9660 del CD-ROM introducido, con el nombre 'fichero.iso' en el directorio '/usr'. cat /dev/hda > /dev/hdb: copia todo el disco duro 'hda' en el disco duro 'hdb'. cat archivo.wav > /dev/dsp: envía el fichero de música 'archivo.wav' al dispositivo de sonido 'dsp'. Se utiliza para comprobar el funcionamiento de la tarjeta de sonido. cat fichero: vuelca el contenido del archivo 'fichero' en la salida estándar (monitor). cd ..: sube un nivel. cd /: se posiciona en el directorio raíz. chgrp grupo1 archivo1: cambia el grupo del archivo 'archivo1' a 'grupo1'. chmod 1444 archivo: asigna al fichero 'archivo' permisos de lectura para el propietario, grupo e invitado, y lo marca como 'sticky' (bloqueado), dejándolo cargado en la RAM para un acceso más rápido (cambia el último bit 'x' por 't' si es ejecutable, y por 't' si no lo es). chmod 1777 carpeta: asigna al directorio 'carpeta' permisos de lectura (4), escritura (2) y ejecución (1) para el propietario, grupo e invitado, y lo marca como 'sticky' (bloqueado), impidiendo que los usuarios supriman ficheros del mismo (cambia el último bit 'x' por 't'). chmod 4777 archivo: asigna al fichero 'archivo' permisos de lectura (4), escritura (2) y ejecución (1) para el propietario, grupo e invitado, y el permiso SUID (ejecución del fichero siendo root, cambiando 'x' a 's') al propietario (propietario=4000, grupo=2000). chmod 777 archivo: asigna al fichero 'archivo' permisos de lectura (4), escritura (2) y ejecución (1) para el propietario, grupo e invitado. chmod u+s archivo: agrega al fichero 'archivo' el permiso SUID (s) para el propietario (u). chmod ugo+w archivo: agrega al fichero 'archivo' permisos de escritura (w) para el propietario (u), grupo (g) e invitado (o). chown -R usuario1: users:cambia el usuario por 'usuario1' y el grupo por 'users' del directorio '/usr/local' y de todos los archivos y subdirectorios que contiene. chown usuario1 archivo1: cambia el propietario del archivo 'archivo1' a 'usuario1'. cp -r /home/usuario1 /home/usuario1.bak: copia el directorio '/home/usuario1' y su contenido creando el directorio 'home/usuario1.bak'. cp fichero1 fichero2: copia el archivo 'fichero1' con el nombre 'fichero2' (copy). cupsys: inicia el servidor de impresión CUPS. Accesible vía web en http://localhost:631/. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

54


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

cut -c 1-10 access_log: primeros diez caracteres de cada línea del fichero 'access_log'.

D date --set=20:31: establece la hora de la máquina a '20:31'. date -s20:31: establece la hora de la máquina a '20:31'. dd if=/dev/hda5 bs=512 count=1 of=/mnt/win_c/bootsek.lin: copia y convierte un archivo desde la partición de arranque de Linux a una partición de Windows 98, pasándoloal sistema de archivos FAT. El archivo será 'bootsek.lin', escribiéndolo como un bloque de 512 bytes (direct dump). debugfs /dev/hda3: depura de forma interactiva el sistema de ficheros ext2 de la partición 'hda3'. delgroup alumnos: elimina el grupo 'alumnos'. deluser alumno01: elimina el usuario 'alumno01' y todos sus archivos de configuración. depmod 3c59x: comprueba las dependencias del módulo '3c59x' del kernel. df: espacio total, utilizado y disponible en cada una de las particiones del disco (disk free). df –h: espacio total, utilizado y disponible en cada una de las particiones del disco en formato legible (human-readable). df: partición en la que está ubicado el directorio actual. diff fichero1 fichero2: diferencias entre 'fichero1' y 'fichero2'. dmesg: mensajes de inicio de configuración del kernel. dmesg | grep eth0: mensajes de inicio de configuración del sistema de red (interfaz 'eth0'). dpkg --configure –pending: comprueba la correcta instalación de todos los paquetes disponibles en el sistema, configurando aquellos que sea necesario (empleado después de una actualización masiva, de una versión a otra por ejemplo). dpkg --purge aptitude: elimina el paquete 'aptitude' y sus ficheros de configuración. dpkg -i --force-depends archivos.deb: instala el paquete Debian 'archivos.deb', convirtiendo los problemas de dependencias en avisos. dpkg -i /usr/src/archivos.deb: instala el paquete Debian 'archivos.deb' ubicado en '/usr/src/'. dpkg –l: listado de los paquetes disponibles y su estado de instalación. dpkg -r aptitude: elimina el paquete 'aptitude' conservando sus ficheros de configuración. dpkg-reconfigure console-data: reconfigura el uso del teclado en consola gráfica. dpkg-reconfigure locales: reconfigura la zona geográfica. dpkg-reconfigure mc: reconfigura el paquete 'mc'. dselect: administra paquetes sobre dpkg a partir de una intefaz gráfica. du: espacio utilizado por cada directorio, desde el directorio actual. du –h: espacio utilizado por cada directorio, desde el directorio actual, en formato legible (human-readable).

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

55


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

du -s /home/* | sort –nr: espacio total utilizado por cada usuario, ordenado de mayor a menor.

E echo "linux 2.4.18-bf2.4" > datos.txt: crea el archivo 'datos.txt' con el texto 'linux 2.4.18-bf2.4'. echo "linux 2.4.18-bf2.4" >> datos.txt: incorpora al final del archivo 'datos.txt' el texto 'linux 2.4.18-bf2.4'. export: variables de entorno declaradas(comando interno de la shell).

F fdisk –l: estructura y tipo de particiones. fg %1: mueve a primer plano (foreground) el proceso número 1 que está ejecutándose en segundo plano. file listado: tipo de archivo con el que se corresponde 'listado' (ASCII text, gzip compressed data, etc.). find / -iname leame: busca desde el raíz todos los archivos con el nombre 'léame' sin distinguir mayúsculas y minúsculas ('léame', 'Léame', 'LEAME', etc.). finger alumno01: información del usuario 'alumno01' (nombre, directorio propietario, shell, última entrada en el equipo). free: memoria RAM y swap utilizada y disponible. fsck –A: comprueba el sistema de ficheros de todas las particiones y dispositivos incluidos en '/etc/fstab'. Se utiliza en tiempo de carga del sistema, antes de montar los filesystems (file system check). fsck /dev/hda1: comprueba el sistema de ficheros de la partición 'hda1'.

G gdm: arranca GNOME. gpm -t help: tipos de ratón soportados por 'gpm'. gpm start: arranca el daemon 'gpm' (ratón). grep -i install README: busca y muestra las líneas que contienen la palabra 'install' en el fichero 'README', sin distinguir mayúsculas ni minúsculas. groupadd empleados: crea el grupo 'empleados'. groups: grupos a los que pertenece el usuario actual. groups empleado01: grupo al que pertenece el usuario 'empleado01'. grub: lanza la interfaz de comandos del gestor de arranque GRUB (GRand Unified Bootloader). gunzip fichero.gz: descomprime el archivo 'fichero.gz', renombrándolo a 'fichero'. gunzip fichero.tar.gz | tar -xvf fichero.tar: descomprime y desempaqueta el archivo 'fichero.tar.gz'. gzip fichero: comprime el archivo 'fichero', renombrándolo a 'fichero.gz'. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

56


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

H head /var/log/syslog: primeras diez líneas del fichero '/var/log/syslog'. history: listado de comandos utilizados por el usuario. host 192.25.206.10: obtiene el nombre de dominio asignado a esa dirección IP, consultando al servidor DNS especificado en el fichero resolv.conf. host debian.org: traduce el dominio 'debian.org' por su dirección IP. hostname: nombre de la máquina. hwclock --set --date="2004-02-16 17:27": establece la fecha y hora del reloj del sistema indicada.

I Id: usuario actual, grupos a los que pertenece e identificadores numéricos. Ifconfig: información de la interfaz de red (IP, máscara, etc.). ifdown eth0: para el servicio de red 'eth0'. ifup eth0: arranca el servicio de red 'eth0'. init 0: apaga el sistema. init 6: reinicia el sistema. init q: aplica las modificaciones realizadas al fichero '/etc/inittab'. insmod 3c59x: agrega el módulo '3c59x' al kernel.

J jobs: trabajos ejecutados en segundo plano. join fichero1 fichero2: muestra las líneas coincidentes entre los archivos 'fichero1' y 'fichero2'.

K kill -9 100: elimina el proceso con PID '100' de forma inmediata, sin espera (señal número 9). kill 100: elimina el proceso con PID '100' (al no especificar el número de señal, se emplea por defecto la 15: finalización segura, de forma ordenada). killall gnome-panel: restaura (reinicia) el panel de GNOME.

L lastlog: último registro de entrada de los usuarios. less README: visualiza el fichero 'README', con desplazamiento hacia adelante y hacia atrás.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

57


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

ln -s /etc/init.d/xdm /etc/rc2.d/S99xdm: enlace blando (soft link) del fichero 'xdm', ubicado en '/etc/init.d/', con el nombre 'S99xdm' en la ubicación '/etc/rc2.d/' (indicándole al sistema que debe arrancar en modo gráfico). ln /home/webadm/proba /home/webadm/proba2: enlace duro (hard link) del fichero 'proba' con el nombre 'proba2' (los cambios en el enlace afectan al original). locale: zona geográfica configurada. locale –a: zonas geográficas disponibles en el sistema. locale charmap: mapa de caracteres empleado. locate README: busca cualquier aparición de 'README' en la base de datos indexada '/var/lib/locate/locatedb' que contiene todos los ficheros del sistema, creada/actualizada con el comando 'updatedb' (consiguiendo resultados muchomás rápidos que con el comando 'find'). logname: usuario actual. ls:listado del directorio actual. ls -d /etc/m*: listado de todos los archivos y directorios que comienzan por 'm' en el directorio '/etc/', mostrando sólo el nombre de los directorios sin su contenido. ls –F: listado del directorio actual mostrando los directorios con una barra inclinada ('/'). ls -la /usr/local: listado en formato largo (tipo, permisos, propietario, grupo, tamaño, fecha y hora de última modificación) de todos los archivos (incluidos los ocultos que comienzan por '.') del directorio '/usr/local/'. ls –lt: listado en formato largo de los archivos y directorios ordenados por fecha de modificación descendente. ls -R /usr: listado del contenido del directorio '/usr' y de todos sus subdirectorios. lsmod: módulos cargados en el kernel. lspci: dispositivos PCI reconocidos en el sistema. lspci –v: información detallada de los dispositivos PCI reconocidos en el sistema. lsusb: dispositivos USB reconocidos en el sistema. lsusb –v: información detallada de los dispositivos USB reconocidos en el sistema.

M make programa: compila 'programa.c' (o 'programa.cpp') con el nombre 'programa'. man ls: manual del comando 'ls'. md5sum fichero: suma md5 del archivo 'fichero' (verificación de una descarga correcta). mdetect –v: detecta el ratón y los puertos de conexión disponibles. mkdir docs: crea el directorio 'docs' (make directory). mke2fs /dev/hda3: crea un sistema de ficheros ext2 en la tercera partición del primer disco duro. mkfs /dev/hdb1: crea un sistema de ficheros Linux en la primera partición del segundo disco duro, empleando el tipo de sistema de archivos por defecto (actualmente, ext2).

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

58


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

mkfs.ext3 /dev/hdb1: crea un sistema de ficheros Linux ext3 en la primera partición del segundo disco duro. mkisofs -J -o datos.iso /usr/local/: crea una imagen de CD-ROM ISO-9660 con el nombre 'datos.iso' del directorio '/usr/local/'. mkswap /dev/hda2: crea un sistema de ficheros Linux swap (intercambio) en la segunda partición del primer disco duro. modconf: presenta la pantalla de selección de módulos (drivers de dispositivos), ubicados en /lib/modules/version_kernel/kernel/. modprobe 3c59x: prueba el módulo '3c59x' del kernel. more README: visualiza el fichero 'README', con desplazamiento hacia adelante. mount:dispositivos montados en el sistema. mount –av: monta todos los sistemas de ficheros (a) especificados en el fichero '/etc/fstab', excepto aquellos que tengan asignada la opción 'noauto', mostrando en pantalla la acción del comando conforme se va ejecutando (v). mount -rt iso9660 /dev/hdc /cdrom: monta la unidad de cdrom en modo sólo lectura (r), con sistema de ficheros (t) 'iso9660', en el dispositivo '/dev/hdc', disponible en el directorio '/cdrom'. mount -t msdos /dev/fd0 /floppy: monta la unidad de disquete, con sistema de ficheros 'MS-DOS', en el dispositivo '/dev/fd0', disponible en el directorio '/floppy'. mount /cdrom: monta la unidad de cdrom en el directorio '/cdrom', a partir de la información disponible en el fichero '/etc/fstab' (dispositivo, sistema de ficheros, tipo de acceso). mv /home/usuario1/fichero /home/usuario2/fichero: mueve el archivo 'fichero' del directorio '/home/usuario1' al directorio '/home/usuario2' (move). mv fichero1 fichero2: cambia el nombre del archivo 'fichero1' por 'fichero2'.

N netstat –a: puertos abiertos. nice -10 /usr/local/Acrobat5/bin/acroread: ejecuta el programa 'acroread' con un nivel de prioridad -10 (cuanto más bajo sea el número, más rápida será la ejecución. El nivel de prioridad puede establecerse entre -20 y 19, siendo 0 el nivel por defecto). nl fichero.txt: vuelca el contenido del archivo 'fichero.txt' en la salida estándar (monitor) mostrando los números de línea. nmap localhost: puertos abiertos en el servidor.

P ping 192.168.1.1: verifica la conexión con la máquina '192.168.1.1', enviando paquetes de 64 bytes de datos (se finaliza conCtrl+C). ps: procesos activos por una terminal del usuario actual, aportando identificador del proceso, terminal asociada, porcentaje de tiempo de procesador ocupado y nombre del proceso. ps -A | grep bash: busca en todos los procesos activos del sistema los que contengan el término 'bash'. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

59


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

ps auwx: todos los procesos activos del sistema, con información asociada (% de CPU, % de memoria, etc.). ps u: procesos activos por una terminal del usuario actual, con información asociada. pstree: procesos activos del sistema jerarquizados en forma de árbol. pwd: directorio actual (present working directory).

R renice -10 -p 513: establece a -10 el nivel de prioridad del proceso 513. reportbug: envía un bug a Debian a partir de un asistente en modo texto. rm -f sess*: elimina todos los archivos del directorio que comiencen por 'sess' (remove). rm -rf docs: elimina el directorio 'docs' y todos los directorios y archivos que contenga. rm fichero: elimina el archivo 'fichero'. rmdir docs: elimina el directorio 'docs' (debe estar vacío). route: información de la Kernel IP routing table. route add default ppp0: establece la interfaz ppp0 (Point to Point Protocol: puerto serie al que está conectado el módem) como la ruta por defecto a Internet. runlevel: nivel de ejecución actual.

S set: variables locales definidas. shutdown -h now: apaga el sistema. shutdown 15 'Finalice su trabajo': reinicia el sistema en 15 minutos alertando a todos los usuarios con el mensaje 'Finalice su trabajo'. sleep 30 &: espera en segundo plano (background) que transcurran 30 segundos. smbclient -U usuario1 -L 192.168.1.1: recursos compartidos para el usuario 'usuario1' en el servidor Samba de la máquina '192.168.1.1' (requiere contraseña de acceso). smbd: arranca el servidor Samba. smbpasswd -a alumno01: crea el usuario 'aumno01' en el servidor Samba, previa solicitud y confirmación de la contraseña. sort +1 +0 nombres: muestra el fichero 'nombres' ordenado por el segundo campo ('+1') y entonces por el primero ('+0'). sort nombres: muestra el fichero 'nombres' con las líneas ordenadas numérica y alfabéticamente. sort nombres 2> nombres_error: muestra el fichero 'nombres' con las líneas ordenadas numérica y alfabéticamente, redireccionando los errores que ocurran al nuevo fichero 'nombres_error' (redirección de 'stderr' [error estándar]). startx: arranca el window manager (ejecutado sobre X-Window) especificado en el .xsession del usuario (o el 'twm' si es el único instalado). www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

60


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

startx &>fichero.log: redirecciona la salida del sistema X-Window al archivo 'fichero.log' (útil para detectar errores). sudo -u root ifconfig: ejecuta el programa 'ifconfig' como el usuario 'root' (solicita contraseña. El usuario introducido debe estar incluido en /etc/sudoers).

T tail -f access_log: últimas diez líneas del fichero 'access_log' ininterrumpidamente, mostrando así las líneas que se van añadiendo (se finaliza con Ctrl+C). tail /var/log/syslog: últimas diez líneas del fichero '/var/log/syslog'. tar jxvf fichero.tar.bz2: descomprime y desempaqueta el archivo 'fichero.tar.bz2' (comprimido con bzip2). tar xvf fichero.tar: desempaqueta el archivo 'fichero.tar'. tar zxvf fichero.tar.gz: descomprime y desempaqueta el archivo 'fichero.tar.gz'. tasksel: instala tasks (grupos de paquetes) a partir de una interfaz gráfica. testparm /etc/samba/smb.conf: valida la configuración del servidor Samba. toe: tipos de terminal disponibles. top: lista, actualizada cada 5 segundos, con la actividad de la máquina (procesos que ocupan más memoria o CPU). Una vez invocado, puede actualizarse inmediatamente (en lugar de esperar al intervalo) pulsando la barra espaciadora. touch -m 02231000 fichero: cambia la fecha y hora del archivo 'fichero' a 23 de febrero a las 10:00 hs. tr 'A-Z' 'a-z' < fichero.txt: convierte a minúsculas todos los caracteres del archivo 'fichero.txt'. tr ’A-Z’ ’a-z’: cambia el texto a introducir de mayúsculas a minúsculas. tune2fs /dev/hda3: ajusta los parámetros configurables del sistema de ficheros ext2 de la partición 'hda3'.

U umask: configuración de permisos por defecto al crear archivos o directorios. Indica la cantidad sustraída al permiso por defecto (archivos=666, directorios=777) para llegar a los permisos que se le aplicarán al usuario (ej.: 022: archivos=644, directorios=755). umount –a: desmonta todos los sistemas de ficheros montados en ese momento, descritos en el fichero 'etc/mtab' (los dispositivos tienen que estar libres). umount /cdrom: desmonta la unidad de cdrom, disponible en el directorio '/cdrom'. umount /dev/cdrom: desmonta la unidad de cdrom, montada en el dispositivo '/dev/cdrom' ('/dev/cdrom' en realidad es un enlace a '/dev/cdrom0', que a su vez es un enlace al dispositivo '/dev/hdc'). uname –a: nombre del sistema, versión del kernel y tipo de procesador. uname –r: versión del kernel. update-grub: actualiza el fichero 'menu.lst' del gestor de arranque GRUB (necesario al instalar un nuevo kernel). www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

61


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

updatedb: crea o actualiza la base de datos '/var/lib/locate/locatedb', empleada por el comando 'locate'. uptime: muestra en una línea la hora del sistema, el tiempo que lleva funcionando, el número de usuarios conectados y la carga del sistema (media del número de procesos esperando para ejecutarse, en los pasados 1, 5 y 15 minutos). useradd -g empleados empleado01: crea el usuario 'empleado01' en el grupo 'empleados'. useradd empleado01: crea el usuario 'empleado01'. userdel -r empleado01: elimina el usuario 'empleado01' y su directorio 'home'. userdel empleado01: elimina el usuario 'empleado01'. users: usuarios conectados al servidor.

W w: información de 'uptime' y usuarios conectados al servidor. wc fichero: cuenta las líneas, palabras y caracteres del archivo 'fichero' (word count). wget ftp://ftp.debian.org/debian/dists/README:descarga desde internet, a través de ftp, desde el sitio 'debian.org', el fichero 'README'. whatis ls: breve descripción del comando 'ls'. whereis cp: localiza ficheros binarios, fuente y páginas de manual del comando 'cp'. which cp: localiza el comando 'cp' en el sistema. who: usuarios conectados al servidor, y fecha y hora de conexión. who am i: usuario actual (produce el mismo resultado con otros dos argumentos cualquiera, no necesariamente 'am i'). whois debian.org: información disponible sobre el dominio 'debian.org' (Datos del registrador, administrador, contacto técnico, servidor).

X X: lanza las XFree86 directamente (sistema gráfico virgen), sin hacer uso de un gestor de ventanas (omite el fichero '.xession' del usuario). xdm start: arranca el X display manager con validación de usuario, tras lo que lanza el window manager twm (instalado por defecto con X-Window-System). xf86cfg: genera el fichero XF86Config [/etc/X11/] a partir de una utilidad gráfica /usr/X11R6/bin/. xf86cfg –textmode: genera el fichero XF86Config en modo texto. xf86config: genera el fichero XF86Config en modo texto. XFree86 –version: versión del servidor XFree86. xrdb –display: parámetros que acepta 'xrdb'. xrdb –query: propiedades establecidas para las aplicaciones en entorno gráfico. xvncviewer 192.168.1.2: conexión con la IP '192.168.1.2' a partir del visor VNC.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

62


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Z zless README.gz: visualiza el fichero comprimido 'README.gz', con desplazamiento hacia adelante y hacia atrás. zmore README.gz: visualiza el fichero comprimido 'README.gz', con desplazamiento hacia adelante.

5. Introducción al Scripting: Linux, así como la mayoría de los UNIX, utilizan shell scripts para realizar una infinidad de tareas. Un shell script es un programa que se escribe con una sintaxis particular, en un archivo de texto plano, para que sea interpretado por un shell, en este caso /bin/bash. Un shell script es básicamente un programa que llama a otros programas, con la posibilidad de hacer algún tipo de procesamiento propio (como control de flujo, operaciones matemáticas simples, etc.). Por lo tanto la forma de crear un shell script es hacer un archivo con un editor de texto y luego lo llenamos con las instrucciones que deseamos. Por ejemplo: 1. nano /home/holam #!/bin/bash echo "Hola mundo!" # Esto es por costumbre utilizado como ejemplo del primer programa. # Se dice que trae suerte!

Luego le damos permisos de ejecución a ese archivo: chmod +x /home/holam. Y de esta manera ya tendremos listo un shell script que se ejecuta de la siguiente forma: ./holam. Debemos destacar la primera linea de nuestro script bash: #!/bin/bash: esta línea le indica al sistema que el script será interpretado por el programa que se encuentra a continuación de #!, en este caso, /bin/bash. Las últimas dos líneas son comentarios. Los comentarios comienzan con # y se extienden hasta el final de la línea. Es muy útil ir comentando el código que uno escribe, para recordar qué realizan ciertas funciones o algoritmos, y otra persona pueda comprender el funcionamiento de nuestro script.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

63


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

5.1 Variables Las variables en un script BASH son simplemente identificadores, sin tipo. Para asignar un valor a una variable, se utiliza el operador =, Por ejemplo: MIVARIABLE=4. Por convención, los nombres de las variables se usan en mayúsculas, aunque no es obligatorio. Para usar el contenido de la variable, dentro de un script, se usa el operador $. Por ejemplo: echo $MIVARIABLE. Para utilizar el contenido de una variable, seguida de un texto, debemos usar las llaves {} Ejemplo: ARCHIVO="/tmp/ej" mv $ARCHIVO $ARCHIVO-bak

En este caso, bash interpretaría a $ARCHIVO y $ARCHIVO-bak como dos variables distintas, para evitar esto debemos reescribirlo de esta manera: ARCHIVO="/tmp/ej" mv $ARCHIVO ${ARCHIVO}-bak

5.2 Comillas En el shell, el espacio, o el tab, son separadores. Es decir, que cuando al shell le indicamos: ls -l hola que tal; lo interpreta como que le pedimos que nos dé información sobre tres archivos, llamados: hola, que, y tal. Si en realidad, lo que queríamos, era información sobre un archivo llamado "hola que tal", entonces hay varias maneras de indicarle al shell que los espacios entre esas palabras no deben ser separadores. - Escape ( \ ) Hay un caracter de escape, que indica al shell que el siguiente carácter no es especial. Y es la barra invertida. Por lo tanto, podríamos obtener la información del archivo "hola que tal" de la siguiente forma: ls -l hola\ que\ tal. Los espacios no son especiales, no son separadores, y "hola que tal" es una sola palabra. Algunos caracteres especiales más: \ @ ! | < > [ ] { } ( ) ? * $ ' ^ ` " # & ;. Por lo tanto, si queremos incluir la \ en alguna parte, entonces debemos ponerla 2 veces (\\), la primera para decirle a BASH que no tome como carácter especial lo que sigue y la segunda como ese carácter que queremos incluir. Esto es muy común en casos como: www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

64


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

cd algún\ directorio\ con\ espacios. - Comillas dobles ( " " ) Las comillas dobles hacen que los espacios entre las comillas no sean especiales. Por lo tanto, podríamos haber utilizado: ls -l "hola que tal". Todos los otros caracteres siguen siendo especiales. - Comillas simples ( ' ' ) Las comillas simples logran que ningún caracter (salvo la comilla simple misma) sea especial. Por ejemplo, si quisiéramos crear un archivo que se llame *@$&, lo debemos hacer rodeándolo de comillas simples: touch '*@$&'. Si queremos poner una comilla simple, debemos "escaparla". Para crear un archivo llamado que'tal, deberíamos hacerlo así: touch 'que\'tal'. Ya que si no lo hacemos, la segunda comilla "cierra" la primera. - Comilla invertida ( ` ` ) Las comillas invertidas son más raras. Deben rodear un comando. Ese comando será ejecutado, y lo que ese comando imprima reemplazará al contenido de las comillas invertidas. Tal vez lo más sencillo sea un ejemplo: V=`ls` y luego echo $V. El uso más frecuente de las comillas invertidas es poder asignar el "resultado" de un comando a una variable.

5.3 Control de flujo Esto refiere al cauce o flujo normal de los programas. No siempre hay un solo camino a seguir y estas proposiciones permiten que el programa realice distintas tareas, según las condiciones de las variables a interpretar. - "if" El"if" es una proposición de control que verifica si es verdadera o falsa una condición. Sintaxis: if comando-condición then Comandos si la condición es verdadera else Comandos si la condición es falsa fi

Es importante que la ubicación de las líneas se mantenga, ya que las proposiciones if/then/else/fi se controlan línea por línea. La parte else es opcional. En caso de querer hacer todo el control en una sola línea, las proposiciones deberán estar separadas por un punto y coma (;). Los comandos que estén debajo del then se ejecutarán si la condición dio verdadera. Esto quiere decir que el valor de retorno de la condición fue 0 (cero). En caso contrario se ejecutarán los comandos que le siguen al else, si es que se utilizó esta proposición. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

65


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

En la condición se puede poner un comando, donde la ejecución del mismo (su valor de retorno) definirá qué comandos (de qué proposición) se ejecutarán. Si se verifica una condición, se deberán utilizar los corchetes para mayor comprensión. Ejemplos: (utilizando comandos) El hecho de entregar algo como salida se toma como condición lógica verdadera. if ps ax | grep httpd | grep -v grep then echo "El web server está funcionando" else echo "El web server NO está funcionando" fi (utilizando condiciones) if [ -w /etc/passwd ] then echo "Tengo permisos de escritura en el archivo /etc/passwd" else echo "NO tengo permisos de escritura en el archivo /etc/passwd" fi

Puede suceder que tengamos que testear más de una condición, para esto, podemos utilizar la siguiente estructura: if condición1 then Comando1 Comando2 elif condición2 then Comando1 Comando2 else Comando-por-defecto (Ninguna de las condiciones anteriores es verdadera) fi

Esta es una manera de abreviar varias estructuras if - then - else - if en una sola, pudiendo utilizarse más de dos condiciones. La estructura de control if, es muy utilizada con test, que no es más que una operación de comparación, en las condiciones que se requieran.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

66


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Comparaciones de cadenas alfanuméricas Operador cadena1 = cadena2 cadena1 != cadena2 cadena1 < cadena2 cadena1 > cadena 2 -n cadena1 -z cadena1

Verdad (TRUE) si: cadena1 es igual a cadena2. cadena1 no es igual a cadena2. cadena1 es menor que cadena2. cadena1 es mayor que cadena 2. cadena1 no es igual al valor nulo (longitud mayorque 0). cadena1 tiene un valor nulo (longitud 0).

Comparación de valores numéricos Operador x -lt y x -le y x -eq y x -ge y x -gt y x -ne y

Verdad (TRUE) si: x menor que y. x menor o igual que y. x igual que y. x mayor o igual que y. x mayor que y. x no igual que y.

Atributos que se pueden comprobar Operador -d archivo -e archivo -f archivo -r archivo -s archivo -w archivo -x archivo -O archivo -G archivo archivo1 -nt archivo2 archivo1 -ot archivo2

Verdad (TRUE) si: archivo existe y es un directorio. archivo existe. archivo existe y es un archivo regular (no un directorio, u otro tipo de archivo especial). Tienes permiso de lectura en archivo. archivo existe y no está vacío. Permiso de escritura en archivo. Permiso de ejecución en archivo (o de búsqueda si es un directorio). Eres el dueño del archivo. El grupo del archivo es igual al tuyo. archivo1 es más reciente que archivo2. archivo1 es más antiguo que archivo2.

- "case" El "case" es una proposición que puede analizar y validar varios casos (opciones) del valor de una variable.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

67


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Sintaxis: case variable in patrón | patrón) Comando; Comando; Comando;; patrón | patrón) Comando; Comando; Comando;; *) Comandos si ningún otro valor fue igualado;; esac

El case es raramente usado, pero es muy eficiente en algunos casos. Ejemplo: case $mes in ene*|Ene*) echo "Mes de Enero";; feb*|Feb*) echo "Mes de Febrero";; mar*|Mar*) echo "Mes de Marzo";; *) echo "Algún otro mes!";; esac

5.4 Ciclos Los ciclos contienen secciones del programa que se repetirán una determinada cantidad de veces o hasta que alguna condición cambie. - “for” El for debe ser el ciclo más utilizado, es muy práctico cuando se trabaja con shell scripts. A diferencia de los lenguajes de programación más comunes, un ciclo for dentro de un shell script realiza una acción dada sobre cada uno de los elementos de una lista y no sobre una variable que se va incrementando en cada ciclo. La variable utilizada en el for (en este caso $i) es reemplazada por cada una de las palabras de la lista, en cada ciclo del for.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

68


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Sintaxis: for i in lista de palabras do cuerpo del ciclo, $i tiene el valor de elementos sucesivos de la lista done

- “while” Este ciclo utiliza la condición de terminación de un comando (valor de retorno) para controlar la ejecución de los comando dentro del ciclo. Termina la ejecución del ciclo, cuando el comando devuelve falso (algo diferente a 0). Sintaxis: while comando do cuerpo del ciclo ejecutado a condición de que el comando devuelva verdadero done

- “until” Este ciclo se comporta de una manera muy similar al anterior, ya que define su control dependiendo del comando que ejecuta (si éste da verdadero, se sigue ejecutando el ciclo). Sintaxis: until comando do cuerpo del ciclo ejecutado a condición de que el comando devuelva falso. done

5.5 Argumentos Los argumentos sirven para pasarle a un programa o una función valores desde la línea de comando. Variable Descripción $# Número de argumentos $* Todos los argumentos del shell $Opciones suministradas al shell $? Valor de retorno del último comando ejecutado $$ Identificación del PID (número de proceso) $0 Nombre del script $1 Primer argumento $n Argumento "n"

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

69


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

5.6 Funciones Las funciones son un recurso esencial para la buena programación, permiten escribir una sola vez un pedazo de código que se repita varias veces en el script, y así, minimizar el margen de error y también la cantidad de líneas en el programa. Para utilizarlas simplemente se hace un llamado a la función. Las funciones pueden estar dentro del mismo shell script, o en un archivo aparte. Cuando se escriben las funciones en un archivo aparte, es muy importante utilizar el comando "." (punto) para cargarlas en memoria. Si no se cargan en memoria de esta manera, las funciones no estarán disponibles. Uso La sintaxis para utilizar funciones es muy sencilla y no agrega mayor dificultad. El modo de uso se remite a definir la función especificando el nombre y paréntesis que abren y cierran. Todos los comandos que involucran la función se encierran con llaves. Ejemplo: (archivo: lib/arch.sh) # # Funciones para manipulación de archivos # borrar () { arch=$1 if [ -z "$arch" ] then echo "No se recibió ningún archivo" return 2 else if [ -f "$arch" ] then if [ -w "$arch" ] then rm -i $arch else echo "No tengo permisos para borrar $arch" fi else echo "$arch no es un archivo" fi fi } (archivo: principal.sh) #!/bin/bash # # Programa ejemplo para el uso de funciones en shell script # # # Cargo las funciones en memoria www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

70


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI # . lib/arch.sh dir=./ for i in $dir/* do borrar $i done

* Notas sobre el ejemplo: (archivo lib/arch.sh): Esta función toma el archivo a borrar como argumento (arch=$1), verifica que se le haya pasado un argumento realmente (if [ -z "$arch" ]), que un archivo pasado como argumento sea regular (if [ -f "$arch" ]) y que tenga permisos de escritura. En todos los casos de falsedad responde con un mensaje avisando el problema. (archivo principal.sh): El programa hace un ciclo con los archivos de un directorio específico (for i in $dir/*) y se los pasa como argumento a la función borrar. - Valores de retorno Las funciones pueden devolver valores de error utilizando el comando "return <valor>". En caso de que no se especifique un valor de retorno de esta forma, el valor retornado será el que retorne el último comando ejecutado dentro de la función. Desafortunadamente no es posible asignar el valor retornado en una sola línea, siempre es necesario utilizar la variable especial "$?". Ejemplo: #!/bin/sh func () { return $1 } func 0 echo "ret: ($?)" func 1 echo "ret: ($?)" func 2 echo "ret: ($?)" func 3 echo "ret: ($?)"

- Variables locales a la función Existe la posibilidad de utilizar variables locales a la función, esto significa que la variable solamente va a existir durante la ejecución de la función. Para crear una variable local a la función se utilizar el operador "local <nombre_de_variable>". Ejemplo: func () { local x x=$1 echo "Dentro de la función \$x vale ($x)" } www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

71


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

echo "Antes de ejecutar la función \$x vale ($x)" func HOLA!! echo "Después de ejecutar la función \$x vale ($x)"

5.7 Operaciones Aritméticas Existen varias formas de calcular valores dentro de un shell script. Tradicionalmente, estos cálculos se hicieron con programas externos, esto generaba un retardo inmenso en la ejecución del shell script. Hoy los nuevos intérpretes traen la posibilidad de hacer cálculos internamente. Para esto se utiliza una sintaxis especial, y es muy importante que los valores de las variables que utilicen para hacer estos cálculos sean números únicamente. Uso La sintaxis para hacer operaciones aritméticas es la siguiente: $[<expresión>]. Las operaciones que se pueden realizar son: suma $((1+1)) resta $((2-1)) multiplicación $((2*2)) división $((2/2]) otras como suma de bits, sacar el módulo, evaluación de igualdad, etc. Ejemplo: #!/bin/sh # # Operaciones aritméticas # x=2 tot=$[$x+1] echo "tot: ($tot)"

- bc A veces hay conjuntos de herramientas que nos suenan y no las aprovechamos al máximo. Quizás una de esas sea bc. La calculadora que podemos usar desde la consola, que aparte de sumar y restar puede realizar cálculos con una precisión de varios decimales, cambiar de base numérica o programarla, etc. Si ejecutamos bc veremos: 1. bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

72


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

5.8 Interacción con el usuario Muchos programas no serían factibles si no tuviéramos algún mecanismo para interactuar con el usuario, ya sea un simple "Presione Enter para continuar" o algo más sofisticado, como una lista de opciones de las cuales escoger. Cuando el programa está escrito en shell, es muy sencillo lograr ambas cosas, utilizando read. - “read“ El comando read es muy sencillo. Le indicamos que pida el valor de una variable al usuario, el usuario escribe una línea de texto (es decir, cualquier cosa hasta que presione enter), y la variable toma el valor que el usuario ingresó. Ejemplo: 1. read V Hola mundo!

2. echo $V Hola mundo!

6. Servicios Básicos de Conectividad: 6.1 Puntos de Montaje Ahora bien, "montar" un dispositivo (Floppy, CDRom, DVDRom, Pen-drive, etc.) no es otra cosa quecargar los datos o información contenida en dicho dispositivo dentro de un directorio (a diferencia de Microsoft Windows en el que se manejan unidades como A: para el Floppy, D: para el CDRom, etc.; en GNU/Linux, no se utiliza esta nomenclatura, en su lugar, se destinan directorios para cumplir esta función). Antes de empezar a montar dispositivos, veamos donde se encuentran físicamente los dispositivos (sobre todo en el caso de querer montar particiones, un CD, o cualquier dispositivo conectado a un cable IDE). Esto es porque en GNU/Linux se utiliza una nomenclatura que asigna nombres a los dispositivos según donde se encuentren estos conectados. Al dispositivo conectado como master en el IDE primario se le llama hda. Al dispositivo conectado como esclavo en el IDE primario se le llama hdb. Al dispositivo conectado como master en el IDE secundario se le llama hdc. Al dispositivo conectado como esclavo en el IDE secundario se le llama hdd. Para los dispositivos scsi, serial-ata y/o memorias USB se usa la nomenclatura sda, sdb,etc. En caso de que el dispositivo sea un disco duro, las particiones se numeran al finalizar la nomenclatura. Por ejemplo, la primera partición en el disco hda es hda1 la segundahda2, etc. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

73


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Como una acotación, dentro del sistema de ficheros los dispositivos se encuentran en el directorio /dev, es decir, podemos referiremos a ellos como: /dev/hda1, /dev/hdc, etc. Todo esto es válido también para los dispositivos scsi y/o serial-ata. Bueno, ahora que ya sabemos dónde encontrar la referencia al dispositivo que queremos montar, ya podemos proceder a montarlo. Para ello usaremos el comando mount; su sintaxis básica es la siguiente: mount -t [sistema de ficheros] -o [opciones] [dispositivo] [punto de montaje] Dentro de los sistemas de ficheroso archivos que se utilizan comúnmente tenemos: ext2, ext3 Para particiones Linux que usen ese sistema de ficheros. vfat Para particiones Windows que usen fat32. ntfs Para particiones Windows que usen NTFS. iso9660 para CD-Roms. Los dispositivos hacen referencia a la ruta en la que se encuentran los dispositivos en el sistema de ficheros. Por ejemplo "/dev/hdb2". El punto de montaje, es la ruta del directorio en el que se montará el dispositivo. En las ultimas distribuciones de GNU/Linux es común encontrar el directorio "/media" como directorio base para montar los dispositivos extraíbles; y el directorio "/mnt" para montar discos duros y/o particiones. Visto esta breve explicación podemos tener los siguientes ejemplos para montar dispositivos: - mount -t ext3 /dev/hda2 /mnt/Linux - mount -t vfat /dev/hdb1 /mnt/win98 - mount -t vfat /dev/floppy /media/floppy - mount -t iso9660 /dev/hdc /media/cdrom - mount -t vfat /dev/sda1 /media/pendrive Ahora, deben tener en cuenta que para poder retirar un CDRom o algún medio extraíble montado en el sistema, antes de retirarlo, deben "desmontarlo" para esto, utilizamos el comando umount. Su sintaxis es: umount [punto de montaje] Por ejemplo: - umount /mnt/win98 - umount /media/floppy Fuente: http://principiante-linux.blogspot.com

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

74


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

6.2 Permisos en Archivos y Carpetas 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 más 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. - Cuáles 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 está 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: -rw-r--r-- 1 infouni infouni 246417 2005-03-03 13:13 foto1.png -rw-r--r-- 1 infouni infouni 232505 2005-03-03 13:14 carta2.abw Con la siguiente línea interpretamos la información así: -

rw-

r--

r--

1

1

2

3

4

5

infouni infouni

6

7

246417

2005-03-03

13:13

foto1.png

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. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

75


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

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 infouni es el propietario de este archivo. 7: Grupo = este archivo pertenece al grupo infouni. 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. 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). - Comandos relacionados Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el grupo de un archivo y/o directorio respectivamente: Comandochmod : se utiliza para cambiar los permisos del archivo o directorio: $ chmod [permisos] [archivo/directorio] [opciones] Comandochown : se utiliza para cambiar el propietario del archivo o directorio: # chown [nuevo usuario propietario] [archivo/directorio] [opciones] Comandochgrp : utilizado para cambiar el grupo del archivo o directorio: # chgrp [nuevo grupo] [archivo/directorio] [opciones] - ¿Cómo se cambian los permisos? Para cambiar los permisos se puede hacer de 2 maneras: 1. Utilizando caracteres. 2. Utilizando números. 1. Usando caracteres: Tomemos en cuenta la siguiente lista con su respectiva correspondencia: Símbolo Identidades u g o a Permisos r w x Acciones + =

Descripción Es el usuario propietario del archivo o directorio Es el grupo al que pertenece el archivo o directorio Otros usuarios, el resto del mundo, ni el propietario ni su grupo Todo el mundo – propietario, grupo y otros Acceso de lectura Acceso de escritura Acceso de ejecución 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: www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

76


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ejemplo

Descripción

Resultado

touch foto1.png chmod a-rwx foto1.png chmod u+rwx foto1.png chmod g+x foto1.png chmod o+r foto1.png chmod u-rw foto1.png

creamos el archivo foto1.png quitamos todos los permisos al archivo foto1.png añadimos todos los permisos para el propietario añadimos el permiso de ejecución para el grupo añadimos el permiso de lectura para los otros usuarios eliminamos los permisos de lectura y escritura para el propietario

foto1.png --------rwx-----rwx—x--rwx—xr---x—xr--

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. 2. Usando 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 (ejecución) - = 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 0 1 2 3 4 5 6 7

Permisos ----x -w-wx r-r-x rwrwx

Descripción El valor cero significa que no se han asignado permisos sólo se ha asignado el de ejecución sólo permiso de escritura permisos de escritura y ejecución sólo permiso de lectura permisos de lectura y ejecución permisos de lectura y escritura permisos: lectura, escritura y ejecución

Los permisos por números se asignan en grupos de 3, es decir, para el propietario-grupootros, 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. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

77


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

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 chmod 000 foto2.png chmod 700 foto2.png chmod 710 foto2.png chmod 714 foto2.png chmod 114 foto2.png

creamos el archivo foto2.png quitamos todos los permisos al archivo foto2.png añadimos todos los permisos para el propietario añadimos el permiso de ejecución para el grupo añadimos el permiso de lectura para los otros usuarios eliminamos los permisos de lectura y escritura para el propietario establecemos como unico permiso de lectura para los 3 grupos establecemos los permisos de lectura y ejecución para los 3 grupos quitamos todos los permisos añadimos los permisos de lectura y ejecución al propietario y ejecución a otros añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros permite a cualquiera modificar el contenido e incluso eliminar el archivo

foto2.png ----------rwx------rwx—x---rwx—xr----x—xr--

chmod 444 foto2.png chmod 555 foto2.png chmod 000 foto2.png chmod 501 foto2.png chmod 550 foto2.png chmod 770 foto2.png chmod 666 foto2.png

-r—r—r--r-xr-xr-x -----------r-x-----x -r-xr-x---rwxrwx---rw-rw-rw-

- Cambiando propietarios y grupos Otro 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 infouni foto2.png: el usuario infouni 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. www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

78


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

- chown clases datos/ –R: el usuario clases será 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 infouni foto2.png: el archivo foto2.png será del grupo infouni. 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. Fuente: http://www.linuxcentro.net/

6.3 SSH: Secure Shell: 6.3.1 Consideraciones Previas para SSH: SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo. Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. Fuente: http://es.wikipedia.org/wiki/Secure_Shell

6.3.2 Paquetes Necesarios:

1. apt-get install openssh-server

Una vez ya instalado este servicio, procedemos a editar las opciones que trae por defecto para evitar problemas de seguridad: deshabilitamos el logueo como root, configuramos al servidor para que permita solo accesos desde la red local (considerando que nuestroservidortiene configurado en su interfaz para la red local la IP: 192.168.50.1), restringir el acceso de usuarios mediante el parámetro AllowUsers (en caso de que no se encuentre en el archivo de configuración lo creamos al final). Finalmente reiniciamos el servicio:

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

79


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

1. vim /etc/ssh/ssh_config PermitRootLogin no ListenAddress 192.168.50.1

AllowUsers admlinux admlinux2 2. /etc/init.d/ssh restart Nota: Un cliente SSH muy cómodo desde entornos Windows es: PuTTY.

6.4 SAMBA: 6.4.1 Consideraciones Previas para SAMBA: Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios. Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el Mac OS X Server de Apple. Samba es una implementación de una docena de servicios y una docena de protocolos, entre los que están: NetBIOS sobre TCP/IP (NetBT), SMB (también conocido como CIFS), DCE/RPC o más concretamente, MSRPC, el servidor WINS también conocido como el servidor de nombres NetBIOS (NBNS), la suite de protocolos del dominio NT, con su Logon de entrada a dominio, la base de datos del gestor de cuentas seguras (SAM), el servicio Local Security Authority (LSA) o autoridad de seguridad local, el servicio de impresoras de NT y recientemente el Logon de entrada de Active Directory, que incluye una versión modificada de Kerberos y una versión modificada de LDAP. Todos estos servicios y protocolos son frecuentemente referidos de un modo incorrecto como NetBIOS o SMB. Samba configura directorios Unix y GNU/Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de GNU/Linux pueden montar en sus sistemas de archivos estas unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en GNU/Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

80


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente. Fuente: http://es.wikipedia.org/wiki/Samba_%28programa%29

6.4.2 Paquetes Necesarios:

1. apt-get install samba smbfs

Compartiremos un recurso para un cliente Microsoft Windows: - Creamos la carpeta a compartir:

1. mkdir -p /home/sambita - Creamos el usuario que será asociado con la carpeta:

2. adduser sambita - Con motivos de prueba estableceremos todos los permisos sobre la carpeta:

3. chmod 777 /home/sambita - Cambiamos el propietario del recurso a sambita:

4. chown conf1 /home/sambita - Agregamos el usuario a la base de datos de Samba:

5. smbpasswd -a sambita - Respaldamos y abrimos el archivo de configuración. Agregamos las siguientes líneas al final:

6. cp /etc/samba/smb.conf /etc/samba/smb.conf.old 7. vim /etc/samba/smb.conf security = user [compartir] comment = Recurso compartido con Samba writable = yes path = /home/sambita public = yes browseable= yes - Reiniciamos el servicio Samba:

8. /etc/init.d/samba restart

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

81


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

7. Anexos: 7.1 Instalando VirtualBox: Ingresamos a http://www.virtualbox.org/ y procedemos a descargar VirtualBox (la última versión al escribir el manual es 4.0.6). Ejecutamos el archivo descargado y nos aparece la ventana de bienvenida de VirtualBox, clic en Next.

Verificamos que todos los componentes de VirtualBox se encuentren seleccionados y luego clic en Next.

Creamos los accesos directos en nuestro escritorio, clic en Next.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

82


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Nos muestra un mensaje mencionándonos que la creación de interfaces de red virtuales detendrá temporalmente nuestra tarjeta de red física.

El asistente se encuentra ahora listo para comenzar la instalación, clic en Install.

Progreso de la instalación de VirtualBox.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

83


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Instalación completada de VirtualBox.

Ventana de VirtualBox.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

84


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

7.2 Creando una Máquina Virtual: En la ventana principal de VirtualBox hacemos clic en el botón Nueva.

Se nos muestra la ventana de bienvenida para la creación de una nueva máquina virtual, clic en Siguiente.

Asignamos un nombre a nuestra máquina virtual, el tipo de sistema operativo a instalar y la versión. Clic en Siguiente.

Asignamos el tamaño de memoria RAM a emplear, clic en Siguiente.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

85


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ahora procedemos a crear un nuevo disco duro virtual, seleccionamos Crear disco virtual nuevo y luego clic en Siguiente.

Nos muestra la ventana de bienvenida para la creación de un nuevo disco duro virtual, clic en Siguiente.

En Tipo de almacenamiento seleccionamos: expansión dinámica, clic en Siguiente.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

86


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Asignamos un nombre a nuestro nuevo disco virtual y el tamaño máximo del disco. Clic en Siguiente.

Se nos muestra la ventana de resumen de nuestra máquina virtual, clic en Terminar.

Se nos muestra la nueva máquina virtual lista para su uso.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

87


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

7.3 Configurando los Interfaces Virtuales: En la ventana de VirtualBox, seleccionamos la máquina virtual a editar, en la ventana de detalles (derecha) nos dirigimos a Red y hacemos doble clic.

En la opción Conectado a, seleccionamos el tipo de conexión para nuestro adaptador de red virtual. Luego clic en Aceptar.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

88


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

7.4 Configurando una Imagen ISO: En la ventana de VirtualBox, seleccionamos la máquina virtual a editar, en la ventana de detalles (derecha) nos dirigimos a Almacenamiento y hacemos doble clic.

En la parte derecha en la opción de Atributos, hacemos clic en el CD.

Seleccionamos la opción: Seleccionar un archivo de disco virtual de CD/DVD.

Seleccionamos nuestra imagen ISO luego clic en Abrir.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

89


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Ahora ya podemos hacer uso de la imagen ISO sin necesitar un disco compacto físico.

7.5 Unetbootin: Unetbootin (Universal Netboot Installer) es una software multiplataforma que permite la instalación de varias distribuciones GNU/Linux desde una memoria USB o desde un disco duro USB sin necesidad de usar un CD o DVD. Sus principales características son: Multiplataforma (disponible para Windows y Linux). Instalación no-destructiva (no formatea el dispositivo) usando Syslinux. Soporte para las principales distribuciones de Linux (Ubuntu, Fedora, openSUSE, CentOS, Debian, Linux Mint, Arch Linux, Mandriva, Slackware, etc.). Permite cargar varias utilidades, como Parted Magic, Super Grub Disk, Ophcrack, BackTrack o Gujin entre otras. Detección automática de todos los dispositivos extraíbles. Instalación en red, similar a Win32-Loader. Personalización del núcleo. La instalación es la misma que si se hiciera desde el CD/DVD original. Fuente: http://es.wikipedia.org/wiki/UNetbootin

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

90


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Instalaremos ahora la distribución Debian en un dispositivo USB: Descargamos Unetbootin desde su página principal: http://unetbootin.sourceforge.net Iniciamos el programa y se nos muestra la ventana principal:

Seleccionamos la distribución que deseamos instalar en el dispositivo, la versión, la ruta de la imagen ISO y la unidad del dispositivo.

Una vez seleccionadas todas las opciones hacemos clic en Aceptar; se procede la transferencia de la imagen al dispositivo.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

91


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Una vez finalizada la transferencia ya se encuentra nuestro dispositivo USB listo para bootear con la imagen de nuestro sistema operativo.

8. Bibliografía: Curso Preparatorio Parte I y II LPI 101/102 - LOGIC Linux - LOGIC Linux Debian GNU/Linux Bible - Steve Hunger - Hungry Minds

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

92


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

SILABO: OPERADOR DE SISTEMAS LINUX

I. Información General: Prerrequisitos: Estar familiarizado con el uso del computador. Duración:20 horas (3 por clase). Metodología: Teoría 15% - Práctica 85%. Orientado a: público en general con conocimiento a nivel usuario, estudiantes universitarios, asistentes de soporte técnico.

II. Sumilla: Los sistemas GNU/Linux han llegado a un grado de madurez que los hace válidos para integrarlos en cualquier ambiente de trabajo, tanto en la estación de trabajo personal, como los servidores corporativos de una gran empresa. El siguiente curso de formación profesional se encuentra orientado a presentar al participante los fundamentos básicos e intermedios del sistema operativo Linux.

III. Competencias Específicas: El objetivo del desarrollo del estudio será haber adquirido una serie de competencias que habremos trabajado durante el curso: Instalar y configurar un equipo con el sistema operativo Linux. Conocer y comprender los principales componentes del sistema operativo Linux. Operar a través de comandos y entorno gráfico en el sistema operativo Linux. Realizar configuraciones necesarias para la obtención de un sistema operativo Linux funcional para el alumno.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

93


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

IV. Contenidos: Sesión 1: Fundamentos de Linux Fundamentos del sistema operativo. Características, derechos de autor del producto. Distribuciones Linux, usos generales. Requisitos de hardware, tipos de arquitecturas (Intel, Alpha, Sparc, PowerPC).

Sesión 2: Instalando una Distribución Linux Medios de instalación: CD, red, memorias USB. GRUB: gestor de arranque. Tipos de sistemas de archivos usados en Linux: swap, ext2, ext3, ext4. Estructura del sistema de archivos de Linux.

Sesión 3: Configurando el Sistema Primera práctica calificada. Uso de la consola de Linux, uso de editores de texto: nano, vim. Configurando la red. Configurando los repositorios del sistema. Sistema de archivos: detalles del FSTAB. Instalación y configuración de escritorio gráfico y herramientas.

Sesión 4: Comandos, Binarios, Procesos y Demonios pwd, cd, who am i, cp, mv, mkdir, rmdir, touch, hostname, cat, eject, mount, umount, login, logout, echo, wget. Comprimir y descomprimir archivos: .tar, .tar.gz. halt, shutdown, reboot. Ps, nice, top, kill, killall, fg, Jobs.

Sesión 5: Comandos Avanzados Administración de usuarios: useradd, userdel, usermod, groupadd, groupmod, groupdel, passwd. Comandos de manipulación de archivos: head, tail, less, more, grep. Vínculos simbólicos. Introducción al scripting.

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

94


Universidad Nacional de Ingeniería –Facultad de Ingeniería Mecánica Centro de Cómputo INFOUNI

Sesión 6: Servicios Básicos de Conectividad Segunda práctica calificada. Puntos de montaje. Permisos en archivos y carpetas. Servicios de conexión remota: SSH. Compartiendo ficheros con clientes Microsoft Windows: SAMBA.

Sesión 7: Examen final.

V. Metodología: Se basa en la realización de tareas por parte del alumno. Los conceptos y contenidos teóricos necesarios serán expuestos usando diapositivas para poder capacitar al participante en forma individual o grupal. Finalmente se resuelven los ejercicios en conjunto.

VI. Recursos de Enseñanza: Medios: clases teórico – prácticas con ayudas audiovisuales, CD interactivo referente al tema, envío de material adicional al correo electrónico del alumno. Materiales: separata y/o practicas del módulo a desarrollar, pizarra acrílica, plumones, proyector multimedia.

VII. Evaluación: Los elementos de evaluación serán exámenes escritos y prácticos, intervención del alumno y trabajos asignados:

EF: Examen final TP: Promedio de trabajos prácticos PI: Promedio de intervenciones

www.infouni.uni.edu.pe | Teléf. 3813846 / 4811070 - 407

95


Guía Operador Linux