Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIVERSIDAD TENOLÓGICA DE AGUASCALIENTES SISTEMA OPERATIVO LINUX

MANUAL DEL PARTICIPANTE INSTRUCTOR: José Alberto Rodríguez Castañeda [email protected] LUGAR: Aula de Matemáticas Aguascalientes, Ags. Diciembre del 2003.

Grupo de usuarios de Linux Ags. Manual del participante

– 1–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

INDICE DE CONTENIDOS INTRODUCCIÓN._________________________________________________________________ 6 DESCRIPCIÓN DEL CURSO. _______________________________________________________ 7 JUSTIFICACIÓN. _________________________________________________________________ 7 OBJETIVO GENERAL DEL CURSO:_________________________________________________ 8 OBJETIVOS PARTICULARES: _____________________________________________________ 8 UNIDAD 1. FUNDAMENTOS ________________________________________________________________ 8 UNIDAD 2. INSTALACIÓN DE LINUX ________________________________ ________________________ 8 UNIDAD 3. PRIMEROS PASOS CON EL SISTEMA LINUX ________________________________________ 8 UNIDAD 4. ADMINISTRACIÓN DEL SISTEMA _________________________________________________ 8 UNIDAD 5. EDITORES _____________________________________________________________________ 8 UNIDAD 6. INSTALACIÓN DE PROGRAMAS________________________________ ___________________ 8 UNIDAD 7. REDES_________________________________________________________________________ 9

REGLAMENTO DEL LABORATORIO _______________________________________________ 10 Acceso_________________________________________________________________________ 10 Permanencia____________________________________________________________________ 10 Uso de Internet__________________________________________________________________ 10 Casos de sanciones ________________________________ _______________________________ 11

RECOMENDACIÓNES GENERALES _______________________________________________ 11 ACERCA DE LA EVALUACIÓN ____________________________________________________ 11 TEMAS DEL CURSO______________________________________________________________ 12 UNIDAD I. FUNDAMENTOS. ______________________________________________________ 13 OBJETIVO PARTICULAR: ________________________________ _______________________ 13 Introducción. ________________________________ ________________________________ ___ 13 Historia y evolución de GNU/Linux. __________________________________________________ 13 Características de Linux. __________________________________________________________ 15 Lecturas recomendadas: Linux.________________________________ ________________________________ 16

Linux en Internet, la oficina y la red local. _____________________________________________ 18 Lecturas recomendadas: Servicios de la Intranet.___________________________________________________ 20

Distribuciones de Linux.________________________________ ___________________________ 21 Red Hat Linux 9 : ________________________________ ________________________________ _________ Caldera Open Linux 3: _____________________________________________________________________ SuSE Linux 8: ___________________________________________________________________________ Debian 3.1: ________________________________ ________________________________ ______________ Conectiva Linux 3.0 en Español: ____________________________________________________________ Linux Slackware 8.0: ______________________________________________________________________

21 21 22 22 22 23

Conclusión._____________________________________________________________________ 24

UNIDAD 2. INSTALACIÓN DE LINUX ______________________________________________ 25 Introducción. ________________________________ ________________________________ ___ 25

Grupo de usuarios de Linux Ags. Manual del participante

– 2–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Requisitos de Instalación. __________________________________________________________ 25 REQUISITOS DE HARDWARE: _____________________________________________________________ 26 REQUISITOS RECOMENDADOS:____________________________________________________________ 26

Instalación de Fedora Core 1 ________________________________ _______________________ 27 Revisión Knoppix ________________________________________________________________ 27 Procedimiento de instalación en el disco duro de knoppix. ___________________________________________ 28 Ejercicios: Post-instalación___________________________________________________________________ 30

Conclusión._____________________________________________________________________ 30

UNIDAD 3. PRIMEROS PASOS CON EL SISTEMA LINUX _____________________________ 31 Introducción. ________________________________ ________________________________ ___ 31 El sistema de archivos. ____________________________________________________________ 31 El directorio /dev/__________________________________________________________________________ El directorio /etc/ __________________________________________________________________________ El directorio /lib/ __________________________________________________________________________ El directorio /mnt/ ________________________________ ________________________________ _________ El directorio /opt/ __________________________________________________________________________ El directorio /proc/ ________________________________ ________________________________ _________ El directorio /sbin/ ________________________________ ________________________________ _________ El directorio /usr/ __________________________________________________________________________ El directorio /usr/local/ ______________________________________________________________________ El directorio /var/ __________________________________________________________________________ El directorio /usr/local/ ______________________________________________________________________ Ejercicios: Sistema de archivos________________________________ ________________________________

33 33 33 33 33 34 34 35 36 36 37 38

Comandos básicos. ________________________________ _______________________________ 39 Ejercicios: Comandos Básicos ________________________________ ________________________________ Permisos de archivos _______________________________________________________________________ Notación numérica para permisos. _____________________________________________________________ Umask ________________________________ ________________________________ __________________ Comando chmod __________________________________________________________________________ Comando chown___________________________________________________________________________ Significado de los permisos en directorio ________________________________________________________ Setuid y Setgid ____________________________________________________________________________ Ejercicios: Permisos en el sistema de archivos ____________________________________________________

42 43 44 44 45 47 48 51 53

Utilización de secure shell. _________________________________________________________ 54 Ejercicios: Secure Shell _____________________________________________________________________ 60

Conclusión._____________________________________________________________________ 60

UNIDAD 4. ADMINISTRACIÓN DEL SISTEMA ______________________________________ 61 OBJETIVO PARTICULAR: ________________________________ _______________________ 61 Introducción. ________________________________ ________________________________ ___ 61 Administración de usuarios. ________________________________________________________ 61 Usuarios _________________________________________________________________________________ su [usuario] ________________________________ ________________________________ ______________ passwd [usuario]___________________________________________________________________________ chage usuario _____________________________________________________________________________ adduser login _____________________________________________________________________________ chfn [login]_______________________________________________________________________________ chsh [login] ________________________________ ________________________________ ______________ deluser login ________________________________ ________________________________ ______________

Grupo de usuarios de Linux Ags. Manual del participante

– 3–

62 62 62 63 63 63 64 64

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] Grupos ________________________________ ________________________________ __________________ 65 adduser usuario grupo_______________________________________________________________________ 65 groups ________________________________ ________________________________ __________________ 65 newgrp [grupo]____________________________________________________________________________ 66 passwd -g grupo ___________________________________________________________________________ 66 gpasswd grupo ____________________________________________________________________________ 66 addgroup nombre __________________________________________________________________________ 66 groupdel group____________________________________________________________________________ 66 groupmod grupo___________________________________________________________________________ 66 grpck ___________________________________________________________________________________ 67 Ejercicios: Administración de usuarios __________________________________________________________ 68 Secuencia de inicio ________________________________ ________________________________ _________ 69 Niveles de ejecución________________________________________________________________________ 71 Ejercicios: Arranque del sistema _______________________________________________________________ 73

Administración de procesos. _____________________________________________________ 74 Procesos y tareas __________________________________________________________________________ Procesos _________________________________________________________________________________ Señales ________________________________ ________________________________ __________________ Control de tareas___________________________________________________________________________ Tiempo ________________________________ ________________________________ __________________ Ejercicios: Administración de procesos__________________________________________________________

74 74 75 77 78 80

Conclusión._____________________________________________________________________ 80

UNIDAD 5. EDITORES. ___________________________________________________________ 81 OBJETIVO PARTICULAR: ________________________________ _______________________ 81 Introducción. ________________________________ ________________________________ ___ 81 El editor Vi _____________________________________________________________________ 82 Editor pico _____________________________________________________________________ 84 Ejercicios: Editores de texto __________________________________________________________________ 85

Conclusión._____________________________________________________________________ 85

UNIDAD 6. INSTALACION DE PROGRAMAS.________________________________________ 86 OBJETIVO PARTICULAR: ________________________________ _______________________ 86 Introducción. ________________________________ ________________________________ ___ 86 ¿Qué es un RPM? __________________________________________________________________________ Instalando paquetes ________________________________________________________________________ Eliminando paquetes________________________________________________________________________ Actualizando paquetes ______________________________________________________________________ Actualizando a una nueva versión______________________________________________________________ Eliminando archivos de paquete no utilizados: apt-get clean y autoclean. ________________________________ Ejercicios: Administración de paquetes rpm (yum, apt rpm) __________________________________________ Ejercicios: Compilación de programas desde código fuente___________________________________________

86 87 89 91 91 93 95 97

Conclusiones. ________________________________ ________________________________ ___ 97

UNIDAD 7. REDES._______________________________________________________________ 98 Introducción. ________________________________ ________________________________ ___ 98 Configuración de los parámetros de red ________________________________ ___________ 98 Configuración manual ______________________________________________________________________ 99 Ejercicios: Configuración de los parámetros de red ________________________________________________ 100

Grupo de usuarios de Linux Ags. Manual del participante

– 4–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Utilidades de red: netstat, nmap, tcpdump ________________________________________ 101 netstat__________________________________________________________________________________ 101 Nmap __________________________________________________________________________________ 102 Peligros del sniffing _______________________________________________________________________ 103 tcpdump ________________________________________________________________________________ 104 Ejercicios: Utilidades de red _________________________________________________________________ 105

Conclusión.____________________________________________________________________ 105

CONCLUSIONES GENERALES.___________________________________________________ 106 GLOSARIO _____________________________________________________________________ 107 BIBILIOGRÁFIA ________________________________________________________________ 113 REFERENCIAS ELECTRONICAS _________________________________________________ 113 INDICE ALFABETICO___________________________________________________________ 114

Grupo de usuarios de Linux Ags. Manual del participante

– 5–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

INTRODUCCIÓN. El principal objetivo de este documento como parte integral del curso es lograr que el lector adquiera la capacidad de aprender a usar el sistema operativo Linux y las herramientas relacionadas. El documento está organizado así: Las unidades de la uno a la 3 agrupan las guías para presentar Linux a usuarios nuevos. La unidad 4 consta presenta información para usuarios avanzados que quieren aprovechar mejor un sistema Linux. Las unidades 5 y 6 son grupos de guías para los que se inician en la administración de una red. Un sistema operativo es un programa que facilita el empleo del hardware de una computadora, lo facilita presentando abstracciones de cada dispositivo. Por ejemplo al guardar información en un disquete, el Usuario puede pensar en archivos, y el sistema operativo se e ncarga de los detalles de acomodar y Organizar la información en el disquete a nivel físico. Linux es un sistema operativo tipo Unix de libre Redistribución. Unix es el nombre de un sistema operativo concebido en los 70’s junto con el lenguaje de Programación C por Kenneth Thompson, Dennis Ritchie y sus colegas de laboratorios Bell. Otra gran idea que se ha desarrollo junto con Unix ha sido Internet, porque en este sistema se Realizaron las primeras implementaciones de los protocolos de comunicación en los que se basa Internet, y aún hoy son sistemas Unix los que mantienen Internet en funcionamiento Dado que sacar copias de un programa no es costoso ni difícil, y dado el carácter de Unix, desde sus Comienzos este sistema ha promovido la colaboración y muchas personas han entregado al público las Herramientas que han realizado para permitir su libre redistribución. El curso de sistema operativo Linux le dará la oportunidad de probar y evaluar el sistema y ver si cubre sus necesidades. Un buen enfoque podría ser usar Linux como servidor de Internet o simplemente colocarlo en su computadora de escritorio. El obtener un nuevo conocimiento conlleva la puesta de empeño por parte del interesado, el desarrollo y éxito del curso será en gran medida al esfuerzo del participante, a su interés por satisfacer su necesidad de conocimientos.

Grupo de usuarios de Linux Ags. Manual del participante

– 6–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

DESCRIPCIÓN DEL CURSO. Este curso cubre las tareas esenciales y fundamentales para la instalación y administración de un sistema Linux. La información esta diseñada para personas sin experiencia profesional en la administración de sistemas pero con conocimiento de informática básica.

JUSTIFICACIÓN. Linux es un hecho único en la revolución informática; no se trata de un producto comercial respaldado por una gran empresa, sino más bien de un sistema operativo creado por un equipo de entusiastas de la informática de todo el mundo. Linux es en todo momento objeto de actualizaciones y ampliaciones por parte, literalmente, de cientos de personas diseminadas por todo el mundo. Desde sus inicios, Linux ha incorp orado casi toda la biblioteca de utilidades GNU, así como el sistema X Windows GUI. GNU es un proyecto puesto en marcha por un solo hombre con la finalidad de poner software a disposición de todo aquél que desee acceder a él. Por otra parte, Linux es sin duda uno de los sistemas operativos más extendidos entre los programadores profesionales tanto en el sector empresarial, como en el ámbito universitario. El uso del sistema operativo Linux cubre desde aplicaciones de desarrollo en lenguajes C, C++, Java, pasando por el desarrollo de páginas Web en lenguaje HTML, servidores Web, hasta aplicaciones de carácter Ofimático. De hecho, desde hace dos años, Linux es el sistema operativo oficial empleado por la Administración pública en Francia. Durante los últimos cinco años ha incrementado su número de usuarios por encima incluso del popular sistema operativo Windows. Como conclusión, Linux constituye un sistema operativo eficiente, robusto, en constante crecimiento, que cuenta con numerosísimas aplicaciones de todo tipo, y totalmente gratis. Todo ello justifica La enseñanza de dicho sistema operativo para contribuir a su implantación y a su desarrollo entre los profesionales del sector empresarial mexicano.

Grupo de usuarios de Linux Ags. Manual del participante

– 7–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

OBJETIVO GENERAL DEL CURSO: Que los participantes utilicen de a un nivel de usuario intermedio el sistema operativo Linux mediante el desarrollo de las destrezas necesarias para el uso del sistema de forma adecuada. OBJETIVOS PARTICULARES: UNIDAD 1. FUNDAMENTOS Que el participante conozca de forma general los orígenes y ca racterísticas del sistema operativo Linux así como los servicios que este puede ofrecer a la empresa e Internet. UNIDAD 2. INSTALACIÓN DE LINUX Que el participante realice una correcta instalación del sistema operativo Linux para las distribuciones; Fedora Core 1 y Knoppix UNIDAD 3. PRIMEROS PASOS CON EL SISTEMA LINUX Que el participante aplique los conceptos y comandos básicos del sistema operativo Linux en un nivel de usuario principiante con la finalidad de familiarizarse con el ambiente. UNIDAD 4. ADMINISTRACIÓN DEL SISTEMA Que el alumno desarrolle las habilidades relacionadas con la administración básica del sistema operativo referentes a la administración de usuarios, inicio y control de procesos. UNIDAD 5. EDITORES Que el alumno utilice adecuadamente los editores de texto disponibles en la mayor parte de los sistemas Unix como lo son el Editor Vi y pico. UNIDAD 6. INSTALACIÓN DE PROGRAMAS Que el alumno administre adecuadamente los programas y paquetes disponibles en el equipo mediante el uso de herramientas como APT-GET, comando RPM y la compilación desde código fuente.

Grupo de usuarios de Linux Ags. Manual del participante

– 8–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 7. REDES Que el participante se sea capaz de configurar los parámetros de red del sistema operativo correctamente tales como la asignación de direcciones IP, puertas de enlace y servicios de nombres. Que el alumno administre adecuadamente los programas y paquetes disponibles en el equipo mediante el uso de herramientas como APT-GET, comando RPM y la compilación desde código fuente.

Grupo de usuarios de Linux Ags. Manual del participante

– 9–

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

REGLAMENTO DEL LABORATORIO Acceso n El acceso a los laboratorios Será solo en horario establecido. n Deberá entrar solo con documentos de trabajo, el resto de sus cosas deberá dejarlas a la entrada del laboratorio de cómputo en el lugar destinado para ello. n No deberá entrar a las salas de trabajo con a limentos o bebidas, ni fumando. n Queda estrictamente prohibido introducir animales. n Se le negara el acceso a los usuarios que vengan bajo efecto de bebidas emigrantes o estupefacientes.

Permanencia n El usuario debe guardar buen comportamiento y discipli na dentro del laboratorio. n Debe mantener limpia su área de trabajo. n El uso del equipo de cómputo es exclusivamente para fines didácticos y de investigación, por lo que se prohíbe el uso es para juegos, trabajos personales o de terceros con fines de lucro. n Para asesoría o dudas con respecto al uso del equipo, debe dirigírsela respons able en turno dentro del laboratorio o bien dirigirse con el asesor del curso. n No debe desconectar ni destapar los ratones de la computadora, la impresora, o cualquier equipo preferido que se tenga instalado. n Es obligación del usuario el saber operar el equipo de computo y periféricos; debe consultar con el personal del laboratorio o leer los folletos sobre el uso de periféricos distribuidos para tal efecto; ya que el daño por mal uso será responsabilidad del usuario. n Es deber y responsabilidad del alumno el respaldo de su información, ya que el laborato rio no es re sponsable de la perdida de la misma. n Todo alumno tiene la obligación de verificar la integridad de sus disquetes, así como también del equipo a utilizar; en caso de encontrar el equipo infectado de virus, deberá reportarlo de inmediato al enca rgado del laboratorio.

Uso de Internet n Queda estrictamente prohibido utilizar este servicio con fines de lucro. n El servicio de Internet, será solamente utilizado para fines de investigación. n El colocar en pantalla dibujos eróticos o pornográficos, se considera como una falta de respeto a la Institución. n Queda totalmente prohibido el uso de chat o círculos de conversación. n Queda prohibido visitar las paginas eróticas o de XXX n Es altamente penado realizar prácticas de hacker en daño de la Institución o de otros servicios.

Grupo de usuarios de Linux Ags. Manual del participante

– 10 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Casos de sanciones n Aquellos que dañen intencionalmente el equipo o instalaciones del laboratorio de cómputo. n Aquellos que instalen o modifiquen el software incluso protectores de pantalla, colores, de ventana y/o cambien la configuración de los equipos sin autorización. n Cuando realicen actos dentro del laboratorio de computo que denigren la integridad física de un compañero. n Solo se permitirá el trabajo individual por computadora . n Antes de trabajar se debe revisar el equipo de computo donde fue asignado y reportar alguna anomalía al encargado del laboratorio; si posteriormente se detecta alguna falla no reportada, se le responsabilizara sobre esta. n No deberá mover el equipo de cómputo ni mobiliario de su lugar bajo ningún motivo; verifique en su apartado el equipo que va a necesitar para su trabajo. n El usuario que dañe el equipo de cómputo sus instalaciones o cambie la configuración del software quedara responsabilizado de pagar su costo de reparación o de adquisición.

RECOMENDACIÓNES GENERALES n Para un correcto aprovechamiento del curso se recomienda una lectura secuencial de cada uno de los capítulos en orden establecido en el índ ice. n Las convenciones utilizadas en este curso y la metodología de trabajo también se explican de forma progresiva por lo cual saltarse un capítulo puede llevarle a interpretar erróneamente el material del curso. Posiblemente este usted tentado de empezar directame nte por la segunda parte del curso pero de momento no se ha considerado facilitar esta la bor. n La mejora de los contenidos del curso, así como del material serán posibles gracias a las aportaciones y retroalimentaciones del grupo, por lo que se agradecerá cualquier aportación sobre el mismo.

ACERCA DE LA EVALUACIÓN Para aprobar este curso el participante deberá acreditar las evaluaciones teórico/practicas realizadas al finalizar del plan de capacitación las cuales son valoradas y revisadas por el instructor de acuerdo a los criterios establecidos en el instrumento. EXAMEN PRACTICO 70 %

EXAMEN TEORICO 30 %

TOTAL 100 %

La evaluación del curso se realzará posteriormente a la capacitación, durante la aplicación de 2 exámenes con duración de 2 horas cada uno.

Grupo de usuarios de Linux Ags. Manual del participante

– 11 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

TEMAS DEL CURSO UNIDAD I. FUNDAMENTOS n Introducción al curso n Historia y evolución de GNU/Linux n Características de Linux n Linux en Internet, la oficina y la red local n Distribuciones Linux UNIDAD 2. INSTAL ACIÓN DE LINUX n Requisitos de Instalación n Instalación de Fedora Core 1 n Revisión de KNOPPIX UNIDAD 3. PRIMEROS PASOS CON EL SISTEMA LINUX n Sistema de archivos n Comandos Básicos n Permisos en el sistema de archivos n Utilización de Secure Shell UNIDAD 4. ADMINISTRACIÓN DEL SISTEMA n Administración de usuarios n El arranque del sistema n Niveles de ejecución n Administración de procesos UNIDAD 5. EDITORES n El editor VI n El editor pico UNIDAD 6. INSTALACION DE PROGRAMAS n Administración de paquetes RPM (yum, apt rpm) n Compilación de programas desde código fuente UNIDAD 7. REDES n Configuración de parámetros de red. n Utilidades de red: netstat, nmap, tcpdump n Firewalling con iptables

Grupo de usuarios de Linux Ags. Manual del participante

– 12 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD I. FUNDAMENTOS. OBJETIVO PARTICULAR: Que el participante de conozca de forma general los orígenes y características del sistema operativo Linux así como los servicios que este puede ofrecer a la empresa e Internet. OBJETIVOS ESPECIFICOS: 1. Que el alumno conozca la historia y la filosofía que rodea al sistema operativo Linux. 2. Que el participante verifique las características generales disponibles en el sistema operativo Linux. 3. Que el alumno identifique los servicios que el sistema puede ofrecer hacia una oficina, así como los que pueden ser desarro llados como servidor de red. Introducción. Muchas personas creen que Linux es el primer SO que surge con las características de libre y con los fuentes a disposición, pero esto no es tan así. No podríamos hablar de la historia de Linux sin incluir a GNU ya que el proyecto GNU de la Free Software Foundation fue el comienzo de lo que es Linux hoy en día. Durante el desarrollo de unidad se espera que el participante conozca los datos históricos que dieron origen a un nuevo sistema operativo. Se revisarán los inicios y características del proyecto GNU, las ventajas y prestaciones del sistema que lo han convertido hoy e día en uno de los sistemas más robustos y utilizados. El buen desarrollo y comprensión del tema esta ligado a la lectura del material que se presenta en el manual, así como a la consulta de las lecturas recomendadas al final del capitulo. Historia y evolución de GNU/Linux. La FSF (Free Software Foundation) http://www.fsf.org/, fue creada por el programador Richard Stallman quien una ves que entro en el MIT. en 1971 comenzó a dar muestras de su gran habilidad para la programación, fue la precursora de lo que es el SO Linux de hoy en día. Por el año 1984 comenzaron con el proyecto, dándole el nombre recursivo GNU (http://www.gnu.org/) que significa GNU no es UNIX (GNU not Unix), para crear un sistema operativo compatible con Unix. Este proyecto es el padre de un sin numero de programas que actualmente forman parte de la distribución de Linux y por ello es correcto hablar de GNU/Linux en lugar de Linux a secas. Algunos de los programas que se crearon a partir del proyecto GNU son el gcc un compilador de lenguaje c, el GNU Emacs un procesador de textos, las librerías GNU de lenguaje C y además uno de los proyectos más grandes como lo es el entorno grafico Gnome. La idea era simple, se podía tener todo un SO funcional libre y gratuito. Pero no hay que e ngañarnos con el significado de libertad. La libertad del software se basa en que uno es dueño Grupo de usuarios de Linux Ags. Manual del participante

– 13 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

del programa que compra por ello tiene derecho a obtener sus fuentes y hacer lo que se quiera con ellos, cambiarlos, mejorarlos y hasta venderlo. Linux esta regido por lo que se denomina Licencia Pública General de GNU, o GPL por General Public License. La GPL fue desarrollada por el proyecto GNU y hace una serie de previsiones sobre distribución y modificación del software gratuito. Originalmente Linus Torvalds lanzo Linux con una licencia más restrictiva que la GPL que permitía que fuese distribuido libremente pero prohibía lucrar con él. Sin embargo la GPL autoriza a la gente a vender su software, aunque no permite restringir el derecho que tiene el comprador de copiarlo y venderlo a su vez. Hay que aclarar que "gratis" no significa de dominio público. El software de dominio público pertenece a la humanidad y carece de copyright. El software regido por GPL si tiene cop yright que pertenece al autor y esta protegido por estas leyes internacionales. El software GPL tampoco es shareware. El shareware es propiedad del autor y exige a los usuarios que paguen cierta cantidad de dinero por usarlo. En cambio el software GPL puede ser distribuido y usado sin pagar a nadie. La GPL permite a los usuarios el modificar los programas y redistribuirlos. Sin embargo, cualquier trabajo derivado de un programa bajo licencia GPL también se tendrá que regir por esta licencia. Cuando Linus Torvalds llego, mucho del trabajo ya estaba hecho por el proyecto GNU y el kernel que Linus Torvalds y un ejército de programadores pudo hacer, fue el pegamento que unió todo el sistema que hoy conocemos.

Grupo de usuarios de Linux Ags. Manual del participante

– 14 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Características de Linux. En líneas generales podemos decir que disponemos de varios tipos de sistema de archivos para poder acceder a archivos en otras plataformas. Incluye un entorno gráfico X window, que nada tiene que envidiar a los modernos y caros entornos comerciales. Está orientado al trabajo en red, con todo tipo de facilidades como correo electrónico por ejemplo. Posee cada vez más software de libre distribución, que desarrollan miles de personas a lo largo y ancho del planeta. Linux es ya el sistema operativo preferido por la mayoría de los informáticos. Un ejemplo de la popularidad que ha alcanzado es sistema y la confianza que se puede depositar en él es que incluso la NASA ha encomendado misiones espaciales de control de e xperimentos a la seguridad y la eficacia de Linux. Linux y sus Shells. Cada usuario de un sistema Linux tiene su propia interfaz de usuario o Shell. Los usuarios pueden personalizar sus shells adecuándolos a sus propias necesidades específicas. En este sentido, el Shell de un usuario funciona más como un entorno operativo que el usuario puede controlar. Linux permite la utilización de distintos tipos de shell programable s. Para aquellos que se pregunten qué es un shell es como el command.com de ms-dos, es decir, un intérprete de comandos. Es básicamente la interfaz, el modo de comunicación, entre el usuario y el sistema. Cada shell tiene sus características propias. La principal diferencia que existe entre los distintos tipos de shell radica en la sintaxis de la línea de comandos. No es necesario apre nder a programar con todos los tipos de shell ya que sabiendo uno los conocemos todos, así que es mucho más sencillo de lo que parece. Linux es Multitarea. La multitarea no consiste en hacer que el procesador realice más de un trabajo al mismo tiempo (un solo procesador no tiene esa capacidad), lo único que realiza es presentar las tareas de forma intercalada para que se ejecuten varias simultáneamente. Linux es Multiusuario. Para que pueda desarrollar esta labor (de compartir los recursos de un equipo de cómputo) es necesario un sistema operativo que permita a varios usuarios acceder al mismo tiempo a través de terminales, y que distribuya los recursos disponibles entre todos. Así mismo, el sistema debería proporcionar la posibilidad de que más de un usuario pudiera trabajar con la misma versión de un mismo programa al mismo tiempo, y actualizar inmediatamente cua lquier cambio que se produjese en la base de datos, quedando reflejado para todos. Pues bien, este sistema operativo no lo tenemos que inventar puesto que ya esta inventado. Pero no todo es tan bonito como se pinta ya que el hecho de que se conecten a tu equipo de cómputo más usuarios significa que es más difícil mantener tu seguridad. Otra de las características referentes a este tema es que Linux es multiplataforma. Fue diseñada para plataforma Intel pero ha sido fácilmente exportado a diversos tipos de sistema. Grupo de usuarios de Linux Ags. Manual del participante

– 15 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Linux es Seguro. El concepto de seguridad en redes de computadores es siempre relativo. Un sistema puede ser seguro para un determinado tipo de actividades e inseguro para otras. Por ejemplo, nosotros no guardaríamos secretos de estado en un sistema Linux al que pudiera acceder mucha gente y careciese de un administrador dedicado absolutamente a la tarea, ya que según todos los hackers, no hay sistema cuya seguridad sea perfecta. El sistema de contraseñas que protege el acceso al sistema se basa en el algoritmo DES, el más probado de los algoritmos de seguridad. Pero claro, por muy bueno que sea el algoritmo, si después permitimos a sus usuarios poner como contraseña su nombre de usuario, de nada servirá la contraseña y todos sus esfuerzos. Si se quiere que el sistema sea seguro, se debe administrar de tal forma que se tengan co ntrolados a los usuarios en todo momento, para poder aconsejarles e incluso regañarles, en caso de que cometan alguna imprudencia, todo ello con el fin de mantener la propia seguridad de sus datos y de los nuestros. Para ayudarse a mantener la seguridad surgen nuevas herramientas constantemente, tanto para detectar intrusos como para encontrar fallos en el sistema y evitar así ataques desde el exterior. Linux y las Redes de Computadoras. Cuando se trabaja con Linux se está ante un sistema operativo orientado al trabajo de redes de computadoras. Se dice esto porque cuando se trabaja con un sistema como Ms-Dos se sabe que todas las operaciones que conllevan las órdenes ejecutadas se llevan a cabo dentro de la computadora mientras que en Linux no se puede garantizar esta afirmación. Linux dispone de varios protocolos como PPP, SLIP, TCP/IP, PLIP, etc.., para la transfere ncia de archivos entre plataforma. Tiene a su disposición multitud de aplicaciones de libre distribución que permiten navegar a través de Internet y enviar y recibir correo electrónico. Posee gran variedad de comandos para comunicación interna entre usuarios que se encuentren ubicados en plataformas distintas (gracias a utilidades como telnet). En fin, un universo de posibilidades de comunicación a recopilar las distintas aplicaciones escritas para Linux y ponerlas en uno u otro formato, con diferentes facilidades de instalación, mantenimiento y co nfiguración. La licencia garantiza la libre distribución de las aplicaciones, pero las empresas pueden cobrar por el trabajo de agrupar un determinado conjunto de esas aplicaciones y hacer más sencilla su instalación. Lo único que no varía para nadie es el núcleo del sistema, que se desarrolla de forma coordinada y con actualizaciones sistemáticas. Es por ello que antes de instalar Linux hemos de elegir qué distribución nos interesa más. Lecturas recomendadas: Linux. Dennis Ritchie ha escrito una corta autobiografía, que está disponible en: http://cm.belllabs.com/cm/cs/who/dmr/bigbio1st.html.

Grupo de usuarios de Linux Ags. Manual del participante

– 16 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

La evolución del sistema Unix, como diagrama puede consultarse en http://perso.wanadoo.fr/levenez/unix/, allí mismo se encuentra una buena recopilación de e nlaces a diversas versiones de la historia de Unix. Un muy buen libro en el cual se habla de la historia de Unix es A Quarter Century of UNIX de Peter H. Salus.

Grupo de usuarios de Linux Ags. Manual del participante

– 17 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Linux en Internet, la oficina y la red local. Linux en Internet y la red local. Sin duda alguna, Linux se ha establecido como líder en la implementación de servicios de Internet, mediante este sistema operativo es posible instalar una gran variedad de servicios disponibles para la red local e Internet. Servidor de Archivos e Impresoras El LPD y LPRng son programas de administración de impresoras utilizados para redes. Cualquier cliente Linux puede enviar a imprimir un archivo al servidor de Impresoras.. Para Clientes Win95/98/NT, el servidor utiliza un programa denominado Samba. El Samba esta basado en el protocolo SMB (Server Message Block) y permite la integración del Linux con Windows. Samba ofrece la total funcionalidad de un servidor de impresoras (LPD o LPRng), es decir que sirve como servidor de archivos e impresoras siendo el samba un programa mucho más complejo y rico en facilidades. Para los clientes Windows, el Samba aparece como un servidor NT, donde se administran las políticas, grupos de trabajo y autentificación de los clientes de la red Windows. Servidor de Correos El Linux utiliza los programas SendMail y QMail como servidor de correo. Estos programas son utilizados por muchos proveedores de servicio. Entre otros, utiliza los protocolos SMTP, POP3 e IMAP. Esto quiere decir que como clientes acepta programas de correos como el Exchange Netscape Communicator, Outlook, Eudora, Pegassus mail, etc. El SendMail es el servidor de correos mas usado a nivel mundial, pero no recome ndado para un servidor con más de 500 cuentas.. El Qmail es un servidor de correos mucho más estable seguro y de capacidad ilimitada de cuentas de correo, utilizado en las principales compañías proveedoras de servicios de Internet en el mundo.. Para ambos servidores existen módulos adicionales para soporte de Listas de Correo, Scan Antivirus Anti Spam, Interface Webmail y Otros. Servidor Web Apache, el servidor Web mas utilizado en el mundo permite compartir información sobre su compañía , productos y servicios al mundo (Internet) si Ud. Tiene una conexión dedicada a su proveedor de servicios Internet, o internamente (Intranet) dentro de su propia red. Este servidor se le instala módulos adicionales para soportar lenguajes como PHP, ASP, JSP, CGI y otros. Servidor de FAX Instalamos el programa Hylafax, robusto servidor corporativo que permite que cualquier cliente envié o reciba faxes. Permite la utilización del protocolo Class 2.0 para fax.

Grupo de usuarios de Linux Ags. Manual del participante

– 18 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Servidor de Base de Datos SQL Diferentes servidores de base datos SQL pueden ser instalados. El servidor POSTGRESQL programa libre con licencia GNU, satisface la mayoría de aplicaciones comerciales de la pequeña y mediana empresa. El servidor MySQL, programa muy veloz utilizado principalmente en el Internet e Intranet. Necesita licencia, la cual es muy econó mica y no limita el número de usuarios. También existen en el mercado servidores de base de datos comerciales para Linux como el Oracle DB2, Informix y Sybase. Servidor DNS,DHCP y WINS Son los Servidores encargados de la Resolución de Nombres o conversación de las direcciones de Internet (IP) a nombres (maquina.miempresa.com). Firewalls y Servidores Proxy Cuando de seguridad se trata, estos sistemas son obligatorios y Linux contiene una gran variedad de programas que permiten realizar esta tarea. Linux en la oficina. Linux Open Source implementa todos los servicios requeridos para que la oficina mantenga el flujo ininterrumpido de información en los servidores y en las estaciones de trabajo con importantes ahorros en licenciamiento de software así como en la estabilidad, control y seg uridad de su información. Fortalecer la oficina con Linux OpenSource es posible debido a que cuenta con las siguientes herramientas: • • • • • • • • • • •

Procesadores de palabras, hojas de calculo y software de diseño Servidores de impresión y de control de correo electrónico Servidores de archivos para todas las plataformas de la oficina de redes basadas en Windows, redes Macintosh y redes Novell. Gestores de fax y de correo de voz Sistemas de respaldo de información automatizado Estaciones de trabajo seguras ante incendios y robos Bases de datos de fácil desarrollo para que publique la información para sus clientes directamente en la Web Sistemas para controlar el acceso al Internet de sus trabajadores restringiendo la navegación a paginas no deseadas y al uso de de programas para descarga de archivos. Control temporizado de las labores de servicio de sus computadoras para que restri njan o habiliten cualquier servicio de red dentro de su oficina. Sistemas con compatibilidad en archivos y comunicaciones con la mayoría de as aplicaciones de oficina que usted ya conoce como MS Office Sistemas para obtener reportes del uso y frecuencia de empleo de los recursos de la red.

Grupo de usuarios de Linux Ags. Manual del participante

– 19 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

• • •

Acceso remoto vía telefónica a redes y sucursales de la empresa Herramientas de monitoreo para control de sus datos vía remota. Automatización directa para la generación de documentos de alta calidad

Lecturas recomendadas: Servicios de la Intranet. Las páginas del manual de telnet y ftp. Alternativamente a telnet podría usar rsh. Si tiene acceso a Internet puede aprender sobre HTML en http://www.w3.org/MarkUp/Guide/.

Grupo de usuarios de Linux Ags. Manual del participante

– 20 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Distribuciones de Linux. La apertura del código fuente del sistema ha permitido que se generen movimientos para proveer conjuntos de sistemas que incluyen software de diferentes categorías. Decidir cual es mejor es cuestión del quien proporciones mejores soluciones, soporte y documentación del sistema. En cada país has surgido empresas comerciales y sin fines de lucro con la finalidad de desarrollar soluciones de software para satisfacer necesidades de áreas específicas del entorno. A continuación se presentan algunas de las distribuciones mas conocidas, la mayoría de ellas proporcionan la facilidad de ser descargadas y usadas por cualquier persona. Red Hat Linux 9 : Esta distribución es ideal para aquellos que vienen del mundo Windows 95/98 ya que desde su instalación, en solo 20 minutos se estará ejecutando hasta su entorno grafico incluido "Gnome", o KDE. Ideal para el hogar incluyendo una suite de aplicaciones útiles para llevar a cabo cualquier tarea que podría necesitarse. Procesador de textos, utilidades para gráficos, The Gimp, agenda y muchas otras que vienen incluidas en los cd's, sus características son: · Kernel 2.4 · Administrador de ventanas Gnome incluido. · 3 CD de instalación Caldera Open Linux 3: Una de las mejores distribuciones para las oficinas, brinda todas las Características necesarias y fue pensada desde sus comienzos para este tipo de ambientes. De fácil configuración, al igual que Red Hat Linux brinda a las personas que vienen del mundo Windows, un entorno configurable y amigable al incorporar el administrador de ventanas KDE, incluye: · (Kool Desktop Environment): · Kernel 2.2.10 · Applixware 4.4.2 aplicación ofimática · Netscape Communicator 4.61 · StarOffice 5.1 (clon de Microsoft Office) (Personal edition) · KDE 1.1.1 Themes Manager con 80 themes · Corel WordPerfect 8.0 (Personal edition) · 4FRONT Open Sound Systems (Soporte para sonido en Linux sound support) · Samba - Servidor de archivos e impresoras para Windows · Apache, Sendmail, Java. Sitio de Caldera Systems WWW.Calderasystems.com

Grupo de usuarios de Linux Ags. Manual del participante

– 21 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

SuSE Linux 8: Una de las distribuciones más conocidas en Europa y con grandes adeptos entre los e xpertos en Linux. Representa una suite poderosa de aplicaciones y aunque brinda las facilidades del entorno KDE también cuenta con otros administradores como el Windows Maker. Cuenta además con una extensa cantidad de aplicaciones y recursos para los programadores. · Nueva distribución de esta empresa Alemana · Kernel 2.3 .10 · Mas de 1300 aplicaciones en 6 CD · Incluye Nestcape 5 .61, Real Player 5.0. · Star Office 6 (Personal Edition) · Word Perfect 8.0 Download Edition · KDE 1.1.1 · Vmware (Emulador de aplicaciones DOS, Windows 3.x, 95,98 y NT · Manual de referencia e instalación con más de 500 paginas. Debian 3.1: Distribución no apta para personas del mundo Windows ya que es una de las menos amigables con el usuario; pero para aquellos que les gustan los retos y están cómodos en el ambiente Linux les parecerá como un sueño hecho realidad dado que es una de las más configurables y seguras en el mercado; no por nada es la preferida de programadores y Hackers, en el buen sentido, que son capaces de explotar todas sus capacidades ya que como la distribución SuSE, esta plagada de entornos de programación tanto para el mismo Linux como para el trabajo en Internet. · Kernel 2.4 · Herramientas de desarrollo: g++ 2.91 60-5, Pitón, Perl y demás · Nestcape Navigator 4.61 · Administrador Windows Maker, fvwm95, Olwm. · Servidor apache · Y mas de 2300 paquetes para instalar. Conectiva Linux 3.0 en Español: De fácil instalación y configuración, esta distribución casi totalmente en español, fue pe nsada para el usuario hogareño que quiere resultados rápidos. Una gran cantidad de aplicaciones y juegos hacen que esta distribución basada en Red Hat Linux, sea ideal para tener Linux en casa. También se cuenta con una versión en Portugués. · Kernel 2.0.36 actualizable a 2.2.0 · Manual con 600 paginas y soporte técnico gratuito por 60 días. · KDE 1.1.1 · Servidor Apache · Versión Español (salvo manuales que se acceden con el comando MAN pero se obtener la actualización en español en el sitio Web) · The Gimp (aplicación para gráficos) · 2 CD de instalación y disco de arranque. Grupo de usuarios de Linux Ags. Manual del participante

– 22 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Linux Slackware 8.0: No podríamos hablar de distribuciones de GNU/Linux sin hablar de Slackware. Esta distribución mantenida por Patrick Volkerding es una de las primeras que se han la nzado siendo en principio distribuida a través de diskette. A perdido algo de terreno por parte de Red Hat y su grado de dificultad, pero últimamente las distribuciones de Slackware mejoraron mucho en su instalación y puesta en marcha. Hasta ofrece un sistema con X Windows en el CD lo que permite probar la distribución a ntes de instalar nada en el disco rígido. Una de las mejores características que posee es el conjunto de guiones con que cue ntan cubriendo todas las partes del sistema, tanto en la instalación como en el mantenimiento. Más información. www.slackware.com

Grupo de usuarios de Linux Ags. Manual del participante

– 23 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Conclusión. El surgimiento de Linux ha sido un fenómeno muy beneficioso no solo para el área informática la que de forma directa disfruta de esta nueva herramienta. Linux es ahora uno de los pilares y gran promotor de la cooperación, el apoyo entre las personas, sin importar la raza o estatus socio económico. También abre un nuevo nicho para lo negocios en materia de comercialización de software e información que puede ser convertida en digital, contraviniendo a los modelos de negocios arcaicos y renuentes a modernizarse. Cada una de las características revisadas ha permitido que el sistema tenga año con año un crecimiento exponencial, cada día mas usuarios están interesados en probar el sistema operativo del pingüino que ahora podría verse como un sistema operativo realmente de la gente. Los conocimientos desarrollados en esta unidad están encaminados a la comprensión de la filosofía del Open Source así como al análisis general de las aplicaciones que el usuario podía dar al sistema

Grupo de usuarios de Linux Ags. Manual del participante

– 24 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 2. INSTALACIÓN DE LINUX OBJETIVO PARTICULAR: Que el participante realice una correcta instalación del sistema operativo Linux para las distribuciones; Fedora Core 1 y Knoppix OBJETIVOS ESPECIFICOS: 1. Que el alumno realice adecuadamente la instalación del sistema operativo Fedora Core 1 realizando diferentes tipos de configuraciones. 2. Que el participante utilice el sistema operativo Knoppix como un sistema operativo que no requiere si instalación en el equipo de cómputo. 3. Que el participante instale en disco duro la distribución knoppix el que será almacenado de forma permanente en el disco duro. Introducción. Hace algunos años la instalación de un sistema Linux era una tarea reservada para gurus de la informática y usuarios avanza dos. El constante avance del sistema operativo ha permitido mejorar los sistemas de instalación permitiendo a usuarios nuevos realizar un sistema completo en unos pocos minutos. Durante el desarrollo de esta unidad usted realizará la instalación de dos de las distribuciones mas amigables que existen. Por un lado Fedora Core 1, surgido de la empresa Red Hat y por otro lado el innovador Knoppix. Se realizará primeramente el análisis de requerimientos del sistema, hasta concluir con la instalación y su revisión practica. Aunque gran parte del tiempo dedicado a esta unidad esta relacionado con aspectos prácticos, es muy importante que tome notas de los aspectos teóricos revisados y plantee todas sus dudas, ya que esto le permitirá realizar posibles instalaciones futuras del sistema. Requisitos de Instalación. Para la instalación de Linux es necesarios disponer del espacio en disco duro necesario para la instalación. Si tenemos un sistema ya instalado, podremos obtener utilizando herramientas como el Partition Magic o el FIPS. Es muy recomendable realizar una copia de seguridad de nuestros datos antes de realizar esta operación Una vez nos hemos asegurado de tener espacio libre y hacer una copia de seguridad, deberemos cambiar la secuencia de arranque de nuestra BIOS para que arranque en desde CDROM. La compatibilidad del hardware es particularmente importa nte para aquellos usuarios que tienen sistemas antiguos o sistemas que han construido ellos mismos. Red Hat Linux 9 debería ser compatible con la mayoría del hardware de los sistemas que han sido fabricados en

Grupo de usuarios de Linux Ags. Manual del participante

– 25 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

los últimos dos años. De cualquier modo, como las características del hardware cambian y mejoran diariamente, es difícil garantizar que el hardware sea compatible al 100%. REQUISITOS DE HARDWARE: n Disquetera de 1.44 Mb o de 1.2 Mb y cualquier tarjeta grafica soportada (mas teclado, monitor y demás, por supuesto). n 386SX/16, 2 MB RAM, n Esto debería permitirte arrancar y comprobar si trabaja en el equipo de cómputo, pero no serías capaz de hacer nada útil. REQUISITOS RECOMENDADOS: n n n n

Pentium o equivalente Recomendado para modo texto: 200 MHz clase Pentium o superior Recomendado para gráficos: Pentium II 400 MHz o superior Espacio en disco duro (Nota: se requiere espacio adicional para los datos del usuario): n Instalación personalizada (mínima): 475MB n Servidor ( mínimo): 850MB n Escritorio personal: 1.7GB n Estación de trabajo: 2.1GB n Instalación personalizada (todo): 5.0GB n Memoria: n Mínimo para modo texto: 64MB n Mínimo para modo grafico: 128MB n Recomendado para modo grafico: 192MB

Grupo de usuarios de Linux Ags. Manual del participante

– 26 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Instalación de Fedora Core 1 Al arrancar la computadora con el primer CD se presenta una pantalla que nos pregunta si queremos verificar los CDs de instalación. Una vez hecha la verificación se inicia la insta lación en modo gráfico. La instalación de Fedora es idéntica a la que viene usando RedHat en sus últimas versiones. Los pasos seguidos para la instalación son: 1. Elegir idioma 2. Elegir teclado 3. Elegimos el tipo de ratón 4- Elegimos el tipo de monitor 5. Elegimos el tipo de instalación: 1. Escritorio personal - 2. Estación de Trabajo - 3. Servidor - 4. Personalizada - 6. Particionamiento de disco: Existe la disponibilidad de usar DiskDruid o el particionamie nto a utomático. - 7. Gestor de arranque: Se pude seleccionar GRUB O LILO. - 8. Configuración de red: Elegimos IP, máscara, puerta de enlace y DNS - 9. Configuración de Firewall: Podemos elegir usarlo o no. En el caso de usarlo podemos decidir a qué servicios damos permiso de acceso y sobre qué dispositivo de red. - 10. Elegimos el idioma por defecto del sistema - 11. Elegimos la Zona Horaria - 12. Introducimos la contraseña para el usuario root. - 13. Podemos elegir los paquetes por defecto de la opción elegida o lo personalizamos: GNOME, OpenOffice, Mozilla, Evolution, Gaim, Aplicaciones de sonido y video y juegos (1600 MB) A partir de aquí empieza el proceso de formateo de particiones y copia de archivo que dura alrededor de 25 minutos. Una vez finalizado el sistema se reinicia y aparece e l arranque que en esta versión es en modo gráfico. Configuramos Fecha/Hora, creamos un usuario y proce demos a entrar en el sistema. Revisión Knoppix KNOPPIX es una distribución demo de un sistema GNU/Linux bastante interesante basado en DEBIAN 3.0 cuya característica principal es que se puede correr totalmente desde CD, sin tocar nada del software instalado en el sistema en el que esta corriendo. De esta manera se acaba con la "dificultosa" (para algunos) operación de instalación de Linux. Ademas esto s upone una gran portabilidad, ya que metiendo el CD en la mochila puedes llevarte tu sistema Linux personalizado donde quieras. Otra de las características remarcables de Knoppix es que autodetecta gran parte del Hardware cuando se ini cia, con lo que se ahorra bastante trabajo (y tiempo). Grupo de usuarios de Linux Ags. Manual del participante

– 27 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

También cabe destacar el paquete de aplicaciones que se incluye en Knoppix. Es franc amente completo y variado. Podemos encontrar desde soluciones ofimáticas completas, a herramientas de programación y desarrollo, juegos, multimedia... Además cabe destacar la posibilidad de crear un Knoppix personalizado. Algunos usuarios, tras probar Knoppix, deciden instalarlo permanentemente en el su sistema Para instalar y ejecutar Knoppix son necesarios los siguientes requerimientos de hardware: • • • •

Un procesador de la clase Pentium, preferiblemente a 300MHz+ 64MB RAM Una partición vacía en tu disco duro, aproximadamente de 3GB Un CD con Knoppix

Procedimiento de instalación en el disco duro de knoppix. 1. Carga el CD de Knoppix. 2. Cuando aparezca el prompt de carga, seleccionar En nuestro caso seria español, por lo tanto escribiremos:

el

idioma.

boot: knoppix lang=es pulsar ENTER Espera hasta que el sistema haya sido cargado totalmente, incluido el escritorio KDE. 3. Teclea CTRL-ALT-F1, para obtener una consola de root (en Knoppix no hay contraseñas). deberías tener ver en pantalla una shell. 4. Escribe: knx-hdinstall 5. Ahora no hay más que seguir la instalación guiada en un menú. Esto incluye: Crear una partición de Linux (al menos 2.5 GB) Crear una partición swap (al menos 256 MB) Montar la partición de Linux como root. Inicializar la partición swap. Copiar todos los archivos requeridos (se hace automáticamente) o Confgurar los parámetros de red o Fijar los passwords o Configurar el bootloader(LILO o Grub) (Aviso: ten cuidado con esto. tu sistema será incapaz de cargar Linux si no lo configuras adecuadamente. Puedes usar LILO (L Inux LOader) o GRUB Bootloader). o Reinicia sin el CD. 6. Cuando haya reiniciado Knoppix desde el disco duro, hacer clic en el icono KDE Control Center en la barra de tareas en la parte inferior de la pantalla (un icono de un monitor en color con una tarjeta encima) 7. Una vez en el Centro de Control, haga clic en Personliche Einstellungen(algo asi como personali zar distribución) o o o o o

Grupo de usuarios de Linux Ags. Manual del participante

– 28 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

8. Haz click en Land (país) und Sprache (idioma) 9. Elija el idioma deseado 10. Andwenden en la parte inferior de la ventana 11. Cierra y reinicia el Control Center 12. Haz click en Peripherals (periféricos), después Keyboard (teclado), elige tu tipo de teclado. Click OK y cierra la ventana. 13. Presiona CTRL-ALT-F2 para tener otra consola de root 14. (De forma opcional) ==> escribe apt-get update (y presiona ENTER). Esto actuali zará la lista de paquetes que tengas, llevará en torno a 5- 10 minutos (deberá tener conexión a inte rnet). 15. Fin del proceso Knoppix esta basado en Debian, que probablemente es la infraestructura GNU/Linux mas "fina" disponible. Para aprender más sobre su sistema y cómo poder modificar/borrar/agregar software, puedes revisar la página de Debian y leer la documentación disponible.

Grupo de usuarios de Linux Ags. Manual del participante

– 29 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Post-instalación n Verifique que puede teclear y ver los caracteres de español en las consolas virtuales y en X-Window, verifique que los mensajes se presenten en español. n Compruebe que todos los dispositivos de su computadora funcionan. n Examine la memoria de su computadora (comando free), verifique que el espacio swap esté siendo usado. n Revise los programas que están corriendo en su máquina. n Revise la secuencia de inicialización. n Verifique que esté instalada la documentación y todos los programas recomend ados en la plataforma de referencia. Conclusión. Para este momento usted ya debe ser capaz de realizar una instalación de sistema operativo Linux tras haber revisado los conceptos relacionados y la ejecución los ejércitos planteados sus conocimientos sobre este proceso se deben de haber incrementado. Como pudo darse cuenta, no es tan difícil instalar un nuevo equipo, el proceso de instalación se ha mejorado en gran medida, permitiéndole prácticamente a cualquier individuo realizar una instalación desde cero,

Grupo de usuarios de Linux Ags. Manual del participante

– 30 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 3. PRIMEROS PASOS CON EL SISTEMA LINUX OBJETIVO PARTICULAR: Que el participante aplique los conceptos y comandos básicos del sistema operativo Linux en un nivel de usuario principiante con la finalidad de familiarizarse con el ambiente. OBJETIVOS ESPECIFICOS: 1. Que el participante se familiarice con la estructura del sistema, comprendiendo el porque de al organización jerárquica del sistema de archivos. 2. Que el participante aplique los comandos básicos del sistema operativo para desarro llar tareas simples sobre el sistema. 3. Que el alumno administre correctamente los permisos sobre archivos y directorios del sistema operativo mediante las instrucción chmod. 4. Que el alumno establezca los conceptos referentes a los diferentes métodos de asignación de permisos. 5. Que el participante utilice herramientas de conexión segura para acceder y realizar tareas sobre sistemas remotos. Introducción. Tal vez una de las preguntas que surgen tras haber realizado la instalación exitosa de un sistema es el preguntarse ¿y ahora como lo uso?. Es una pregunta para la cual contará con la respuesta una vez finalizado este capitulo, en donde se presentan primeramente las cara cterísticas y estructuras de un sistema de archivos Linux, los comandos básico para la utilización del sistema, así como lo referente a la asignación de permisos sobre directorios y archivos. Es recomendable que el participante realice con cuidado las instrucciones planteadas por el instructor, y lo las importante tenga la curiosidad para que una vez estando trabajando el sistema realice investigaciones de forma personal que contribuyan con el aprendizaje deseado. El sistema de archivos. Una estructura de sistema de archivos de un sistema operativo es el nivel más básico de organización. Casi siempre un sistema operativo interactúa con sus usuarios, aplicaciones y modelos de seguridad que dependen de la manera en que almacena los archivos en un dispositivo de almacenamiento primario (normalmente una unidad de disco duro). Por varios motivos, es muy importante que los usuarios, así como los programas para la instalación y demás, sean capaces de referirse a unas pautas comunes para saber donde escribir y leer los archivos binarios, la configuración, registro y otros archivos.

Grupo de usuarios de Linux Ags. Manual del participante

– 31 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Un sistema de archivos se podría resumir en términos de dos categorías diferentes de archivos: 1. 2.

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

Los archivos compartibles son aquéllos a los que se puede acceder desde varios hosts; mientras que los archivos no compartibles no están disponibles a todos los hosts. Los archivos Variables pueden cambiar en cualquier momento sin una intervención del gestor de sistemas; los archivos estáticos, tales como documentación de sólo lectura y binarios, no cambian sin una actuación por parte del administrador de sistemas o de una agente que el administrador de sistemas haya escogido para realizar esta tarea. El hecho de que estos archivos sean vistos de esta manera es para ayudar a correlacionar la función del archivo con los permisos otorgados a los directorios que los sostienen. El modo en que el sistema operativo y sus usuarios interactúan con un archivo dado determina el directorio en el cual estos archivos están ubicados, si ese directorio está montado como de sólo lectura o sólo escritura y el nivel de acceso que cada usuario tiene a ese archivo. El nivel superior de esta organización es crucial, como el acceso a los directorios inferiores pueden estar restringidos o se pueden manifestar problemas de seguridad si el nivel superior es dejado sin organizar o sin una estructura ampliamente usada. No obstante, el hec ho de tener simplemente una estructura no significa mucho a menos que ésta sea estándar. Las estructuras competitivas pueden causar más problemas de los que solucionan. El Estándar de Jerarquía del Sistema archivos (FHS del inglés Filesystem Hierarchy Sta ndard), un documento de consenso que define los nombres y la ubicación de muchos archivos y directorios. El documento que define el FHS es la referencia autorizada para cualquier sistema compatible FHS, sin embargo el estándar da pie a la extensibilidad de unas áreas o no define otras. En esta sección se proporciona un resumen del estándar y una descripción de aquellas partes del sistema de archivos que no cubre el estándar. El estándar completo está disponible en: http://www.pathname.com/fhs El cumplimiento del estándar significa varias cosas, los dos aspectos más importantes son la compatibilidad con otros sistemas que siguen el estándar y la capacidad de poder mo ntar la partición /usr en modo sólo lectura pues contiene ejecutables comunes y no está pensado para ser alterada por los usuarios. Por este motivo, /usr puede ser montado directamente desde el CD-ROM o desde otra vía computadora mediante NFS en modo sólo lectura.

Grupo de usuarios de Linux Ags. Manual del participante

– 32 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Los directorios y archivos aquí anotados, son sólo un subconjunto de los especificados por el FHS. Véase la última versión del FHS para una descripción detallada. El directorio /dev/ El directorio /dev/ contiene entradas del sistema de archivos que representan dispositivos del sistema. Estos archivos son esenciales para el correcto funcionamiento del sistema. El directorio /etc/ El directorio /etc/ está reservado para archivos de configuración que son locales a su comp utadora. No deben colocarse binarios en /etc. Los binarios que antiguamente se colocaban en /etc deberían estar en /sbin o posiblemente en /bin. Los directorios X11/ y skel/ son subdirectorios del directorio /etc/: /etc |- X11/ |- skel/ El directorio /etc/X11/ es para archivos de configuración de X11 como XF86Config. El directorio /etc/skel es para archivos "esqueleto" (del inglés "skeleton") de usuarios, archivos que se utilizan para rellenar el directorio principal de un usuario cuando éste es creado. El directorio /lib/ El directorio /lib/ debería contener sólo las librerías necesarias para ejecutar los binarios en /bin y /sbin. Estas imágenes de librerías compartidas son particularmente importantes para arrancar el sistema y ejecutar comandos en el sistema de archivos de root. El directorio /mnt/ El directorio /mnt/ se refiere a sistemas de archivos montados temporalmente, tales como CD-ROMs y disquetes. El directorio /opt/ El directorio /opt/ proporciona un área para almacenar habitualmente paquetes de software de una aplicación estática y amplia. Un paquete colocando archivos en el directorio /opt/ crea un directorio con el mismo nombre del paquete. Este directorio en su lugar guarda archivos que de otra forma estarías esparcidos por el sistema de archivos, dándole así al administrador del sistema una forma fácil de determinar el papel de cada archivo dentro de un paquete particular.

Grupo de usuarios de Linux Ags. Manual del participante

– 33 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Por ejemplo, si sample fuese el nombre de un paquete de software particular localizado en el directorio /opt/, todos sus archivos podrían ser emplazados en directorios dentro de /opt/sample/, tales como /opt/sample/bin/ para binarios y /opt/sample/man/ para páginas de manual. Los paquetes grandes que abarcan diferentes subpaquetes, cada uno de los cuales desempeñan una tarea específica, también se ubican dentro de /opt/, aportando a este gran paquete un modo estándar de organizarse. De este modo, el paquete sample puede tener difere ntes herramientas que cada una irá en sus propios subdirectorios, tales como /opt/sample/tool1/ y /opt/sample/tool2/, cada uno de los cuales puede tener su propio bin/, man/ y otros directorios similares. El directorio /proc/ El directorio /proc/ contiene "archivos" especiales que o bien extraen información del kernel o bien la envían a éste. Debido a la gran variedad de datos que contiene el directorio /proc/ y a la gran cantidad de maneras utilizadas para comunicar con el kernel. El directorio /sbin/ El directorio /sbin/ es para ejecutables usados sólo por el usuario root. Los ejecutables en /sbin sólo se usan para arrancar y montar /usr y ejecutar operaciones de recuperación del sistema. El FHS dice: "/sbin contiene típicamente archivos esenciales para arrancar el sistema además de los binarios en /bin. Cualquier archivo ejecutado tras /usr, será montado (si no surge ningún problema) y ubicado en /usr/sbin. Los binarios de administración de sistema local solamente, deberían ser ubicados en /usr/local/sbin." Los siguientes programas deberían encontrarse, al menos, en /sbin/ : arp, clock, getty, halt, init, fdisk, fsck.*, grub, ifconfig, lilo, mkfs.*, mkswap, reboot, route, shutdown, swapoff, swapon, update

Grupo de usuarios de Linux Ags. Manual del participante

– 34 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

El directorio /usr/ El directorio /usr es para archivos que puedan ser compartidos a través de todo el sitio. El directorio /usr habitualmente tiene su propia partición y debería ser montable en sólo lectura. Como mínimo, los siguientes directorios deberían ser subdirectorios de /usr: /usr |- bin/ |- dict/ |- doc/ |- etc/ |- games/ |- include/ |- kerberos/ |- lib/ |- libexec/ |- local/ |- sbin/ |- share/ |- src/ |- tmp -> ../var/tmp/ |- X11R6/ El directorio bin/ contiene ejecutables, dict/ contiene páginas de documentación incompatibles con FHS, etc/ contiene archivos de configuración de sistema, games es para juegos, include/ contiene los archivos de cabecera C, kerberos/ contiene binarios y muchos más archivos de Kerberos y lib/ contiene archivos objeto y librerías que no están diseñadas para ser directamente utilizadas por usuarios o scripts de shell. El directorio libexec/ contiene pequeños programas de ayuda llamados por otros programas, sbin/ es para los binarios de administración del sistema (aquéllos que no pertenecen a /sbin/ share/ contiene archivos que no son de una arquitectura específica, src/ es para código fuente y X11R6/ es para el sistema X Window (XFree86 de Red Hat Linux).

Grupo de usuarios de Linux Ags. Manual del participante

– 35 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

El directorio /usr/local/ El FHS dice: "La jerarquía /usr/local es para uso del administrador del sistema al instalar localmente el software. Necesita ser seguro para ser sobreescrito cuando el software del sistema es compartible entre un grupo de hosts, pero no se encuentra en /usr." El directorio /usr/local/ es similar en estructura al directorio /usr/. Tiene los siguientes subdirectorios, que son similares en propósito a los del directorio /usr/: /usr/local |- bin/ |- doc/ |- etc/ |- games/ |- include/ |- lib/ |- libexec/ |- sbin/ |- share/ |- src/ El directorio /var/ Ya que el FHS requiere que Linux sea capaz de montar /usr/ en sólo lectura, cualquier programa que escriba archivos log o que necesite los directorios spool/ o lock/ debería escribirlos en el d irectorio /var/ . El FHS especifica que /var/ es para: "…archivos de datos variables. Esto incluye archivos y directorios spool, datos de administración, de registro y archivos temporales." Los siguientes directorios deberían ser subdirectorios de /var/: /var |- account/ |- arpwatch/ |- cache/ |- crash/ |- db/ |- empty/ |- ftp/ |- gdm/ |- kerberos/ |- lib/ Grupo de usuarios de Linux Ags. Manual del participante

– 36 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

|- local/ |- lock/ |- log/ |- mail -> spool/mail/ |- mailman/ |- named/ |- nis/ |- opt/ |- preserve/ |- run/ +- spool/ |- anacron/ |- at/ |- cron/ |- fax/ |- lpd/ |- mail/ |- mqueue/ |- news/ |- rwho/ |- samba/ |- slrnpull/ |- squid/ |- up2date/ |- uucp/ |- uucppublic/ |- vbox/ |- voice/ |- tmp/ |- tux/ |- www/ |- yp/ Los archivos log de sistema tales como messages/ y lastlog/ están en el directorio /var/log/. El directorio /var/lib/rpm/ también contiene el las bases de datos RPM. Los archivos lock van en /var/lock/, habitualmente en directorios particulares para el programa en el uso del archivo. El directorio /var/spool/ tiene subdirectorios para varios sistemas que necesitan almacenar los a rchivos de datos. El directorio /usr/local/ En Red Hat Linux, el propósito del uso del directorio /usr/local/ ligeramente diferente de lo especificado por FHS. El FHS establece que en /usr/local/ debería memorizarse el software que permanece seguro en las actualizaciones de software de sistemas.

Grupo de usuarios de Linux Ags. Manual del participante

– 37 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Sistema de archivos n Averigüe su login y su clave con el administrador del sistema, uselos para entrar a una sesión gráfica con el escritorio GNOME y después salga. n No olvide salir de su sesión cada vez que deje de usarla. Si la deja abierta alguien podría actuar a no mbre suyo. n Pase a consolas virtuales y regrese a modo gráfico. Practique el uso de la secuencia de teclas Ctrl-Alt-Backspace. n Le recordamos no apagar el equipo con el interruptor o con el botón reset sin antes haber salido de Linux. n Empleando una consola virtual abra una sesión con su login, cambie su clave (con el comando passwd), salga de la cuenta y regrese a su escritorio GNOME. n Después de abrir una consola virtual o de entrar a una sesión del intérprete de comandos con su login, al terminar no olvide salir de la sesión con el comando exit. Para evitar problemas de seguridad es recomendable que su clave tenga más de 6 c aracteres (algunos sistemas sólo permiten hasta 8), que no sea una palabra que aparezca en diccionario alguno (de ningún idioma), tampoco debe ser su nombre, ni el nombre de su mascota, ni de un ser querido, ni su dirección, ni el nombre de bandas de rock (trate de imaginar que clave usaria otra persona y NO use esa). Idee una palabra fácil de recordar sólo para usted, no la anote en un papel y emplee preferiblemente signos de puntuación y números (pero no Backspace), aún mejor si idea un esquema que le permita cambiarla con frecuencia. Otra importante recomendación con respecto a la clave: no la olvide! n Revise la estructura del sistema de archivos, verificando el contenido de cada uno de los directorios revisados durante la sesión teórica.

Grupo de usuarios de Linux Ags. Manual del participante

– 38 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Comandos básicos. Un intérprete de comandos es simplemente un programa que lee las entradas del usuario (por ejemplo las órdenes que teclea) y las traduce a instrucciones que el sistema es capaz de entender y utilizar. El intérprete de comandos es sólo una de las interfaces con Linux. Hay muchas interfaces posibles, como el sistema X Windows, el cual le permite ejecutar comandos usando el ratón y el teclado. Sintaxis de una Orden.orden -opciones argumentos La orden va en minúsculas, las opciones suelen ir precedidas por un guión (-) y pueden ser más de una; los argumentos pueden ser varios separados por espacios. Algunas órdenes no admiten opciones, otras precisan dos tipos de argumentos (origen y destino), otras no admiten ni opciones ni argumentos. Los comandos básicos que maneja Linux son los mismos que maneja UNIX, es por eso que el e ntorno de trabajo en linux le puede ser familiar si alguna vez ha manejado Unix.

Comandos Descripción Ls Lista los archivo de un directorio concreto Ls -l Lista también las propiedades y atributos Ls -la Lista archivo incluidos los ocultos de sistema cd nom_directorio Cambia de directorio more nom_archivo Muestra el contenido de un archivo de forma paginada ls -la | more Lista las archivo de forma paginada mv [ruta1]archivo1 [ruta2] archi- Mueve y/o renombra un archivo. vo2 rm archivo o directorio Elimina archivos o directorios rm -R directorio Borra un directorio recursivamente cp archivo1 archivo2 Realiza una copia de un archivo tail nom_archivo Muestra las últimas líneas de un archivo de forma estática tail -f nom_archivo Muestra las últimas líneas del archivo de manera dinámica head -numero nom_archivo Muestra las primeras (número) líneas de un archivo mkdir nom_directorio Crea un directorio rmdir nom_directorio Elimina un directorio chmod xxx nom_archivo Cambia los permisos de acceso de un archivo Grupo de usuarios de Linux Ags. Manual del participante

– 39 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

chown usuario archi vo/directorio chgrp grupo archivo/directorio ps aux kill -x(de 0 a 9) PID mount mount /dev/fd0 /mnt/floppy mount /mnt/cdrom Umount hostname fsck init 0 init 6 compress/uncompress gunzip nom_archivo.gz tar xvf archivo.tar top find / -name nom -print pwd grep 'cadena' archivo date cal clear who Whoami finger su su nom_usuari fdisk setup rpm -i nombre_paquete startx Ctrl+Alt+F2 Alt+F'x' make config make xconfig Ifconfig -a dump/restore ./comando

Grupo de usuarios de Linux Ags. Manual del participante

Cambia el propietario de un archivo o directorio Cambia el grupo (-R para realizar el cambio recursi vo) Muestra una lista de los procesos activos Elimina un proceso via nº PID que le identifica Vemos el listado de dispositivos montados Montaje de la disquetera Punto de montaje del CD-ROM Desmonta los puntos de montaje a nteriores Visualiza el nombre de la máquina Escanea el disco Apaga la máquina de manera correcta Reinicia la máquina Comandos de compresión de archivos " .Z" Descompresión de archivos " .gz" Descomprime archivos " .tar" Lista procesos de CPU Encuentra archivo según patrón Visualiza el directorio actual Muestra las líneas del archivo que contienen la cadena Da la hora y la fecha del sistema Muestra el calendario del mes actual Borra la pantalla Informa de los usuarios conectados Más información sobre nuestra máquina Información más completa que who Entrar a la sesión como root (necesario passwd) Estando como root entramos como otro usuario Gestión de particiones ('m' = menú de comandos) Configuración gráfica de dispositivos Instalación de paquetes RedHat Arranca el entorno gráfico Salir del entorno gráfico a un terminal Conmutar entre terminales Configuración del Kernel Entorno gráfico de configuración del Kernel Información de las propiedades de red, equivale a ifconfig /all en Windows Copias de seguridad y restauración Ejecuta un comando si no tenemos el path del directorio – 40 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Cuando teclea una orden, el intérprete de comandos hace varias cosas. Primero de todo, busca el nombre de la orden y comprueba si es una orden interna. (Es decir, una órden que el propio intérprete de comandos sabe ejecutar por sí mismo.) El intérprete de comandos también comprueba si la orden es un «alias» o nombre sustituto de otra orden. Si no se cumple ninguno de estos casos, el intérprete de comandos busca el programa en el PATH y lo ejecuta pasándole los argumentos especificados en la línea de comandos. Si tecleamos una orden y el intérprete de comandos no puede encontrar el programa de ese nombre dado en la orden, se muestra un mensaje de error que debería de ser auto explicativo. El intérprete de comandos no es solo un intérprete interactivo de los comandos que tecle amos, es también un potente lenguaje de programación, el cual permite escribir guiones, que permiten juntar varias órdenes en un archivo. El uso de los guiones del intérprete de coma ndos es una herramienta muy potente que le permitirá automatizar e incrementar el uso de Linux. Bajo Linux hay algunas diferencias en los interpretes de comandos disponibles. Dos de los más usados son el «Bourne Again Shell» o Bash (/bin/bash) y Tcsh (/bin/tcsh). Bash es un equivalente al Bourne con muchas características avanzadas de la C shell. Como Bash es un super-conjunto de la sintaxis del Bourne, cualquier guión escrito para el interprete de coma ndos Bourne estandard funcionara en Bash. Para los que prefieren el uso del interprete de comandos C, Linux tiene el Tcsh, que es una versión extendida del C original. El tipo de interprete de comandos que decida usar es puramente una cuestión de gustos. Algunas personas prefieren la sintaxis del Bourne con las características avanzadas que proporciona Bash, y otros prefieren el más estructurado interprete de comandos C. Para cada usuario se inicia una copia del shell en cada sesión. Dos consolas virtuales significan dos copias del shell independientes entre sí, aunque sean del mismo usuario. Además para cada orden que se ejecute el shell genera un sub -shell que «muere» al finalizar la ejecución de la orden. También se pueden lanzar nuevos shells (o subshells) dentro de una shell con la orden sh (o con el nombre de la shell en cuestión que queramos lanzar).

Grupo de usuarios de Linux Ags. Manual del participante

– 41 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Comandos Básicos n Dar una breve descripción de cada uno de los siguientes comandos: man, ls, mv, cp, rm, mkdir, rmdir, cd y mail. n Cree un subdirectorio que se llame public_html

Grupo de usuarios de Linux Ags. Manual del participante

– 42 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Permisos en el sistema de archivos.

Permisos de archivos Usaremos el término archivo en su sentido más amplio. Es decir que el tema de permisos es aplicable a distintos tipos de archivos con algunas matizaciones que explicaremos más adelante. Los archivos tienen muchos atributos además de su nombre. Para ver los más significativos haremos: $ ls -l / Supongamos que tenemos el siguiente archivo llamado 'kkkkk' -rwxrwxrwx 1 root root 14740 abr 15 12:05 kkkkk ^^^^^^^^^^ ^ ^ ^ ^ ^ ^ ^ ^ ^ |||||||||| | | | | | | | | |__nombre del fich. |||||||||| | | | | | | | | |||||||||| | | | | | | | |__minutos : Fecha y |||||||||| | | | | | | |_____hora : hora de la |||||||||| | | | | | |____día del més : última |||||||||| | | | | |________més : modificación |||||||||| | | | | |||||||||| | | | |___________ Tamaño en bytes |||||||||| | | | |||||||||| | | |_______nombre del grupo |||||||||| | |____________nombre del propietario del archivo |||||||||| | |||||||||| |_______________número de enlaces rígidos (hard links) |||||||||| ||||||||||___001____________ permiso de ejecución para: Un usuario |||||||||____002____________ permiso de escritura para: cualquiera ||||||||_____004____________ permiso de lectura para : ||||||| |||||||______010____________ permiso de ejecución para: Un usuario ||||||_______020____________ permiso de escritura para: pertene|||||________040____________ permiso de lectura para : ciente al |||| : grupo |||| ||||_________100____________ permiso de ejecución para: El usuario |||__________200____________ permiso de escritura para: propieta ||___________400____________ permiso de lectura para : rio | |____________________________tipo de archivo - Archivo regular (archivo normal) d Directorio Grupo de usuarios de Linux Ags. Manual del participante

– 43 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

l Enlace simbólico p Fifo con nombre b Dispositivo de bloques c Dispositivo de caracteres En inglés se us an los términos owner , group, y others para designar respectivamente al propietario, al grupo y a cualquier usuario.

Notación numérica para permisos. Recuerde que también tenemos que pensar en la posibilidad de que mi amigo David acostumbrado al uso del azadón decida hacer este curso y teníamos un compromiso de explicar las cosas partiendo de cero. Los permisos de los archivos son almacenados en formato binario y se puede referenciar numéricamente. Vimos que a cada permiso individual le asociábamos un número de tres dígitos formado por dos ceros y un tercer número que podía ser únicamente 1, 2, o 4. Por ejemplo el permiso de escritura para un usuario cualquiera era 002. Con estos números se puede codificar los permisos de la forma que indicamos en el sigui ente ejemplo: r w x - - w x - r - x Esto equivaldría a un permiso 735 4 2 1 - 0 2 1 - 4 0 1 ( 4+2+1 , 0+2+1 , 4+0+1 = 7,3,5 ) Los permisos también pueden representarse como una secuencia de bits. Un bit es un valor que solo puede valer 0 o 1. En el caso anterior podríamos representarlo de la forma 111 010 101 donde 1 indica que si hay permiso 0 que no lo hay y la posición de cada 0 y cada 1 representa a cada uno de los permisos.

Umask Es un comando interno del bash. Se utiliza cuando se c rean archivos. No podemos profundizar mucho en temas de matemática binaria porque nos saldríamos del tema pero la umask se aplica mediante una operación llamada AND NOT. Consiste en tomar a umask como una máscara donde los bits a 1 especifican los bits de permisos que se pondrán a cero. Por ejemplo si queremos abrir un archivo con permisos 664 y tenemos una umask de 022 obtendremos un archivo 644. 664 110 110 100 022 000 010 010 ----------------644 110 100 100

Grupo de usuarios de Linux Ags. Manual del participante

– 44 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Esto tiene la utilidad de proteger el sistema frente a cierto tipo de descuidos durante la cre acion de archivos. Por ejemplo supongamos que un administrador de un sistema considera que por defecto todos los archivos que el crea deberían carecer de permisos de ejecucion y de escritura para todo el mundo y que para los usuarios de su mismo grupo de berían de carecer de permiso de ejecución. Para ello establecerá una 'umask = 023'. Es decir una umask que elimina los permisos - - - . - w - . - w x Para un script que genere archivos que solo deban ser accesibles para el usuario que los ha generado usaríamos. 'umask = 077' Comando chmod Este comando sirve para alterar una serie de atributos del archivo Existe dos formas de usarlo. Una indicando el tipo de acceso y a quien lo queremos conceder o eliminar. Existen una serie de atributos que se pueden modificar usando este comando. 04000 Set uid on execute. 02000 Set gid on execute. 01000 Save text on image after execution. 00400 r Permiso de lectura para el propietario (owner) 00200 w Permiso de escritura para el propietario 00100 x Permiso de ejecución para el propietario 00040 r Permiso de lectura para el grupo (group) 00020 w Permiso de escritura para el grupo 00010 x Permiso de ejecucion para el grupo 00004 r Permiso de lectura para cualquiera (others) 00002 w Permiso de escritura para cualquiera 00001 x Permiso de ejecucion para cualquiera Los atributos Set uid, Set gid, y Save text no los explicaremos de momento. Consulte las páginas del manual relativas a este comando. Como de costumbre el manual resulta imprescindible a la hora de recordar la utilización de un comando pero no a la hora de comprender conceptos nuevos. No se preocupe con los ejercicios que le proponemos a co ntinuación comprend erá perfectamente: $ cd /tmp $ echo > kk $ ################################## $ chmod 777 kk $ ls -l kk -rwxrwxrwx .... .... ...... Grupo de usuarios de Linux Ags. Manual del participante

– 45 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

$ ################################## $ chmod 707 kk $ ls -l kk -rwx---rwx .... .... ...... $ ################################## $ chmod 421 kk $ ls -l kk -r---w---x .... .... ...... $ ################################## $ chmod 124 kk $ ls -l kk ---x-w-r-- .... .... ...... $ ################################## $ # 'chmod 0 kk' equivale a 'chmod 000 kk' $ chmod 0 kk $ ls -l kk ---------- .... .... ...... $ ################################## $ chmod +r kk $ ls -l kk -r--r--r-- .... .... ...... $ ################################## $ chmod +x kk $ ls -l kk -r-xr-xr-x .... .... ...... $ ################################## $ chmod -r kk $ ls -l kk ---x--x--x .... .... ...... $ ##################################

Grupo de usuarios de Linux Ags. Manual del participante

– 46 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

$ chmod u+r kk $ ls -l kk -r-x--x--x .... .... ...... $ ################################## $ chmod a-x kk $ ls -l kk -r-------- .... .... ...... $ ################################## $ chmod g+x kk $ ls -l kk -r----x--- .... .... ...... $ ################################## $ chmod o+x kk $ ls -l kk -r----x--x .... .... ...... $ ################################## $ chmod a+rwx kk $ ls -l kk -rwxrwxrwx .... .... ...... rm kk Comando chown El comando 'chown' sirve para cambiar el UID y el GID de un archivo. Esto solo se puede hacer si tenemos los permisos para ello. Normalmente su uso está reservado a 'root' y por ello no diremos nada más. Es muy posible que si usted usa Linux en un equipo de cómputo personal necesite algunos de estos conocimientos pero se sale de los propósitos de este curso. Le basta con saber que existe y para que sirve. Concesión de acceso por parte del kernel Explicaremos el funcionamiento de los permisos de la forma más precisa que nos sea posible. Para ello usaremos unas abreviaturas que ya conocemos. Grupo de usuarios de Linux Ags. Manual del participante

– 47 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] • • • •

EUID es el identificador de usuario efectivo de un proceso EGID es el identificador de grupo efectivo de un proceso UID en un archivo es un atributo que identifica al propietario. GID en un archivo es un atributo que identifica al grupo del propietario.

En realidad hablamos de propietario como el usuario que creo el archivo. El Kernel reali zará el siguiente test para conceder a un proceso el acceso de cierto tipo a un archivo. 1. Si el EUID del proceso es 0 se da acceso. (root puede hacer lo que sea) 2. Si el EUID del proceso es igual al UID del owner (propietario del archivo) se concede el acceso si los permisos de usuario rwx son los adecuados. 3. Si el EUID del proceso es distinto al UID del owner, y si el EGID del proceso es igual al GID del owner, se concede el acceso si los permisos de grupo rwx son los adecuados. 4. Si el EUID del proceso es distinto al UID del owner, y si el EGID del proceso es distinto al GID del owner, se concede el acceso si los permisos de others rwx son los adecuados. NOTA el comando rm permite borrar cualquier archivo sea cual sean los permisos cuando el proceso tiene un EUID coincidente con el propietario del archivo. Únicamente ocurre que si el archivo esta protegido contra escritura suele pedir (dependiendo de la configuración) confirmación antes de borrarlo. El permiso para borrar un archivo no se guarda como atributo del archivo. Esto s e hace a nivel de directorio y pasamos a explicarlo inmediatamente. Significado de los permisos en directorio Para entender como funcionan los permisos aplicados a un directorio hay que imaginar que un directorio es un archivo normal que solo contiene una tabla en la que se relacionan los archivos presentes en ese directorio. En todos los directorios existen siempre un par de entradas obligadas que son '.' y '..' para el directorio actual y para el directorio padre respectivamente. Vamos a explicarlo sobre la marcha a la vez que hacemos el ejercicio. Recuerde usar un usuario normal (distinto de root) para realizar los ejercicios. $ cd /tmp $ mkdir kk $ cd kk $ echo > k1 $ echo > k2 $ cd /tmp $ chmod 777 kk $ ## Para ver como ha quedado los permisos hacemos ... $ ls -ld kk drwxrwxrwx 2 ..... ...... kk

Grupo de usuarios de Linux Ags. Manual del participante

– 48 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

$ ## Para ver que archivos contiene el directorio kk hacemos ... $ ls kk k1 k2

Si un directorio no tiene permiso de lectura, resultara imposible para cualquier comando incluido ls averiguar cual es su contenido. Sin abandonar la sesión anterior continuamos el ejercicio $ ###(1)### $ ## Eliminamos los premisos de lectura del directorio kk $ chmod -r kk $ ls -ld kk d-wx-wx-wx 2 ..... ...... kk $ ls -l kk ls: kk: Permiso denegado $ ## En este intante podemos entrar dentro del directorio $ ## Incluso podemos crear un nuevo archivo pero ya no podemos $ ## Saber cual es el contenido del directorio. $ cd kk $ pwd /tmp/kk $ echo > k3 $ ls -l ls: .: Permiso denegado $ ## Hemos podido meternos dentro del directorio kk porque aun $ ## Tenemos permiso para ello pero seguimos sin poder saber $ ## cual es su contenido. $ cd /tmp Si no se tiene permiso de ejecucion en un directorio no se podra hacer cd a ese directorio, ni a ninguno de los directorios que cuelgan de el. Esto imposibilita todas las operaciones que utilicen ese directorio como parte del camino Sin abandonar la sesión anterior continuamos el ejercicio Grupo de usuarios de Linux Ags. Manual del participante

– 49 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

$ ###(2)### $ ## Ahora eliminamos permiso de ejecución $ chmod -x kk $ ls -ld kk d-w--w--w- 2 ..... ...... kk $ ## Intentamos entrar $ cd kk bash: cd: kk: Permiso denegado $ ## No hemos podido entrar $ rm kk/k2 bash: cd: kk: Permiso denegado $ ## Tampoco nos deja borrar el archivo desde fuera $# $ ## Recuperamos permiso de ejecución $ chmod +x kk $ ls -ld kk d-wx-wx-wx 2 ..... ...... kk $ rm kk/k2 $ ls kk k1

Si no tiene permiso de escritura no se podrá dar altas, baja o modificaciones en la tabla lo que se traduce en que no se pueden borrar sus archivos ni crear otros nuevos, ni renombrar archivos. Sin abandonar la sesión anterior continuamos el ejercicio

Grupo de usuarios de Linux Ags. Manual del participante

– 50 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

$ ###(3)### $ ## Ahora eliminaremos permisos de escritura $ chmod 666 kk $ ls -ld kk dr-xr-xr-x 2 ..... ...... kk $ ## Ahora no tenemos permiso de escritura $ cd kk $ ls rm: ¿borrar `k1'? (s/n) s rm: k1: Permiso denegado $ echo > k3 bash: k3: Permiso denegado $ touch k3 touch: k3: Permiso denegado $ ## Sin permiso de escritura en el directorio no se pueden $ ## Crear archivos nuevos dentro de el ni borrar archivos $ ## Pero los archivos son perfectamente accesibles $ echo "Mensaje de prueba" > k1 $ cat k1 Mensaje de prueba $ ## Vamos a limpiar $ chmod 777 /tmp/kk $ rm /tmp/kk/* $ rmdir /tmp/kk Setuid y Setgid Cada proceso tiene un (R)UID, (R)GID, EUID, y EGUID. Cada archivo tiene un UID y un GID owner. El comando 'chmod 4000' pone el bit setuid . Esto hace que el proceso que ejecuta este comando temporalmente cambie su EUID tomando el valor UID del archivo. Es decir el proceso sufre un cambio de personalidad y se convierte en la persona que figura como propietaria de ese archivo. Para ello lógicamente ese archivo deberá ser un ejecutable. El comando passwd Grupo de usuarios de Linux Ags. Manual del participante

– 51 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

sirve para cambiar la clave. Se trata de un comando propiedad de root con setuid. Por lo ta nto mientras estamos ejecutando este comando adoptamos la personalidad de 'root'. Gracias a ello se nos permite acceder a la clave para modificarla y gracias a que ese comando no permite hacer nada más que eso se evita que este proceso con personalidad de 'root' pueda hacer o tras cosas. Busque el comando 'passwd' en su sistema. Podría estar en '/usr/bin/passwd' pero si no se encuentra en ese sitio puede localizarlo con 'which passwd' Haga un ll para comprobar sus permisos y verá que es propiedad de 'root' y que tiene una 's' en lugar de una 'x' en la parte de los permisos para el propietario. -rwsr-xr-x 1 root

root

28896 jul 17 1998 /usr/bin/passwd

El comando 'chmod 2000' pone el bit setgid on execute. Hace algo parecido al anterior pero a nivel de grupo. Es decir el proceso que ejecuta este comando temporalmente cambie su EGID tomando el valor GID del archivo. Por ejemplo el comado lpr no solo nos convierte en 'root' cuando lo ejecutamos sino que nos cambia el grupo por el grupo de impresión. -rwsr-sr-x 1 root

lp

14844 feb 7 1999 /usr/bin/lpr

El comando 'chmod 1000' pone el bit sticky. Se usa poco y tenía más utilidad en sistemas Unix más antiguos. Sirve para que el proceso permanezca en memoria RAM todo el rato mientras se esté ejecutando. No rmalmente cuando muchos procesos usan la memoria RAM se van turnando en su uso y se descargan a disco para ceder su espacio en memoria RAM a otros procesos. Con el uso de este bit se evita la descarga a disco. Es una forma de aume ntar la velocidad de ese proceso.

Grupo de usuarios de Linux Ags. Manual del participante

– 52 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Permisos en el sistema de archivos n ¿En su directorio personal hay archivos de configuración? En caso afirmativo cite alg unos. n Estando en un intérprete de comandos vaya al directorio /usr/share/pixmaps y liste con ls y caracteres comodín todos los archivos con extensión .xpm. Desde bash, copie uno de esos archivos a su directorio con el comando cp. (Ayuda: busque ayuda sobre el comando cp y emplee ~ para referirse a su directorio). n Para mejorar la seguridad de sus archivos y evitar que otras personas puedan consultarlos, quite a su directorio el permiso de ejecución para el grupo y para otros usuarios. n Revise los directorios de los usuarios del sistema en /home. Identifique y liste directorios con permisos de seguridad deficientes. Inte nte cambiar los permisos de archivos o directorios de otro usuario.

Grupo de usuarios de Linux Ags. Manual del participante

– 53 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Utilización de secure shell. Actualmente las Redes de Computadoras son los medios digitales más usados en todos los ámbitos de la sociedad para la transferencia de información. Normalmente estos medios se encuentran en redes públicas, por lo cual están expuestas a intervenciones de una u otra forma.

Cuando se realiza una conexión a un servidor remoto usando por ejemplo el comando telnet o ftp, el login(usuario) y password(contraseña) son transmitidos en la red de forma clara, lo cual representa un gran riesgo si llega a existir sobre la red un programa que capture la información, basándose en el modo promiscuo de las redes ethernet (comúnmente llamado sniffer), ocasionado obtener tanto el login como el password y pudiendo posteriormente irrumpir en el servidor con esta información. Este tipo de comunicación en claro se muestra en la siguiente ilustración:

Este tipo de problemáticas ha llevado al diseño de herramientas que permitan evitar estas situaciones siendo el caso de Secure Shell (ssh), desarrollado por Tatu Ylonen en la Universidad Tecnológica de Helsinki en Finlandia y OpenSSH, que nace del proyecto de un sistema operativo orientado con la filosofía de la seguridad en mente como lo es OpenBSD. Secure Shell y OpenSSH permiten realizar la comunicación y transferencia de información de forma cifrada proporcionando fuerte autenticación sobre el medio inseguro. Este tipo de conexión se muestra en la ilustración siguiente:

Secure Shell (ssh) es un programa que permite realizar conexiones entre máquinas a través de una red abierta de forma segura, así como ejecutar programas en una máquina remota y copiar archivos de una máquina a otra. Tal y como se explica en el RFC de Secure Shell:

Grupo de usuarios de Linux Ags. Manual del participante

– 54 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

"SSH(Secure Shell) es un programa para conectarse a otros equipos a través de una red, para ejecutar comandos en una máquina remota y para mover archivos de una máquina a otra. Proporciona una exhaustiva autenticación y comunicaciones seguras en redes no seg uras" Ssh provee fuerte autenticación y comunicación segura sobre un canal inseguro y nace como un reemplazo a los comandos telnet, ftp, rlogin, rsh, y rcp, los cuales proporcionan gran flexibilidad en la administración de una red, pero sin embargo, presenta grandes riesgos en la seguridad de un sistema. Adicionalmente, ssh provee seguridad para conexiones de servicios X Windows y envío seguro de conexiones arbitrarias TCP. Secure Shell admite varios algoritmos de cifrado entre los cuales se incluyen: Blowfish 3DES IDEA RSA La ventaja más significativa de ssh es que no modifica mucho las rutinas. En todos los aspectos, iniciar una sesión de ssh es tan sencillo como (y similar a) iniciar una sesión de telnet. Tanto el intercambio de llaves, la autenticación, así como el posterior cifrado de sesiones son transparentes para los usuarios. Debido a la promiscuidad de la interfaz ethernet, se genera una problemática sobre los siguientes servicios de red usados en la actualidad, tales como: 1. 2. 3. 4. 5. 6.

telnet ftp http rsh rlogin rexec

Ello nos representa un problema importante, ya que, incluso en un entorno de red cerrado, debe existir como mínimo un medio seguro para poder desplazar archivos, hacer copia de archivos, establecer permisos, ejecutar archivos, scrips, etc, a través de medios seguros. Por ello para evitar que determinadas personas capturen el tráfico diario de la red, es conveniente instalar el Secure Shell(SSH). Entre los ataques más comunes que nos previenen Secure Shell están: 1. 2. 3. 4. 5. 6.

Sniffering(Captura de trafico) IP Spoofing MACpoofing DNS Spoofing Telnet Hickjacking ARP Spoofing

Grupo de usuarios de Linux Ags. Manual del participante

– 55 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

7. ARP Spoofing 8. IP Routing Spoofing 9. ICMP Spoofing Existen actualmente dos protocolos desarrollados sobre ssh: SSH1: La ultima versión de ssh cliente/servidor para Unix que soporta este protocolo es la 1.2.31, esta puede ser utilizada libremente para propósitos no comerciales y es ampli amente usada en ambientes académicos. SSH2: Provee licencias más estrictas que SSH1 ya que es de carácter comercial. La ultima versión de ssh cliente/servidor para Unix con este protocolo es la 2.4.0 y puede ser utilizada libremente respetando la licencia expresa. Actualmente existe un proyecto llamado OpenSSH, el cual fue desarrollado inicialmente dentro d el proyecto OpenBSD. OpenSSH es una versión libre de los protocolos SSH/SecSH bajo licencia BSD y es totalmente compatible con los protocolos SSH1 y SSH2. La ultima versión de OpenSSH cliente/servidor para Unix es la 2.3.0P1 (Liberada el 6 de Noviembre del 2000). Debido a que OpenSSH rompe la barrera de los protocolos que ha causado confusión entre diversos sectores, esta herramienta esta siendo muy usada en la comunidad, tal es el caso de distribuciones como Linux RedHat 7.0 que ya la incluyen dentro d e su sistema operativo. Sin embargo OpenSSH ha demostrado en los últimos meses cierta inestabilidad, por lo que sí se instala dicha versión es altamente recomendable estar actualizando periódicamente el OpenSSH y estar al pendiente de vulnerabilidades presentadas. Usando SSH Ssh permite mantener sesiones interactivas con una máquina remota de la forma como lo hace el comando telnet. ssh [-a] [-c idea|blowfish|des|3des|arcfour|none] [-e esc] [-i identity_file] [-l login_name] [-n] [-k] [-V] [-o] [-p port] [-q] [-P] [-t] [-v] [-x] [-X] [-C] [-g] [-L port:host:hostport] [-R port:host:hostport] hostname [command] A continuación se describen brevemente las principales opciones del comando ssh. -a Deshabilita el agente de autenticación -c Selecciona el algoritmo de cifrado utilizado para cifrar la sesión. idea|des|3des|... -e Habilita el carácter de escape para una determinada sesión (default:~). -i identity-file Selecciona el archivo donde leerán la llave de autenticación. Por deGrupo de usuarios de Linux Ags. Manual del participante

– 56 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

-l login-name -p port -q -v -x -C

fault utiliza .ssh/identity dentro del home del usuario. Especifica la cuenta remota por medio de la cual se desea tener acceso. Puerto remoto de conexión. Causa que todas las advertencias y mensajes de diagnostico sean suprimidos, solo los mensajes de errores fatales son desplegados. Causa que ssh despliegue mensajes de depuración acerca del proceso de conexión. Deshabilita el reenvio (forwarding) de X11. Compresión de todos los datos transmitidos durante la conexión

Ejemplos: $ ssh -l micuenta maquina.remota En este ejemplo utilizamos la opción -l para proporcionar el login con el que tendremos acceso a la máquina remota. En este caso la cuenta es micuenta y la máquina es maquina.remota. $ ssh [email protected] También podemos hacer uso del formato descrito arriba para entrar a una cuenta dentro de una máquina remota. $ ssh maquina.remota En caso de poseer el mismo nombre de cuenta en ambas máquinas (local y remota) es posible tener acceso a la máquina remota proporcionando solamente el nombre de la máquina. Transferencia de archivos Secure Shell proporciona una herramienta que permite realizar transferencia de archivos entre distintos hosts, haciendo uso de las características de ssh, este comando es scp, el cual cuenta con las siguientes opciones: scp [-aAqrvBCL1] [-S path-to-ssh] [-o ssh-options] [-P port] [-c cipher] [-i identity] [[user@]host1:]filename1,... [[user@]host2:]filename2 -a -A

Habilita la estadística de transferencia de cada archivo que se transfiere. Deshabilita el mensaje de estadística de transferencia

Grupo de usuarios de Linux Ags. Manual del participante

– 57 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

-c cipher

Selecciona el algoritmo de cifrado a utilizar en la transferencia de datos.

-i identity

Selecciona el archivo donde se tendrá acceso a la llave RSA.

-L

Uso de puerto no privilegiado. Esta opción posee algunas restricciones como son la imposibilidad de usar rhosts o autenticación rsarhosts

-1

Forzar a scp a usar el comando scp1 por parte de host remoto, Esto puede ser necesario en el caso que el host remoto utilice scp2.

-o ssh-options Opciones que se pasarán al ssh. -p -q -r -v

Preserva las distintas fechas y horas de acceso, modificación y atributos del archivo original Deshabilita el despliegue de estadísticas de transferencia Copia recursiva de directorios completos Causa que scp y ssh desplieguen mensajes de estado relacionados con el proceso de conexión, etc. Adecuado para depurar errores exi stentes en las conexiones realizadas.

Ejemplos: $ scp micuenta@máquina.remota:/tmpu/archivo /copias En este caso se copiará /tmpu/archivo localizado en la máquina remota maquina.remota al directorio /copias en la máquina local. Se utilizó la cuenta micuenta para acceder al servidor. $ scp /copias/archivo micuenta@máquina.remota:~/bck En este caso se realizará la copia del archivo /copias/archivo localizado en la máquina local a la máquina remota máquina.remota colocando el archivo en el directorio bck del home de micuenta. Uso de .shosts en Secure Shell 1 Los archivos .shosts al igual que los archivos .rhosts permite realizar conexiones entre hosts sobre mecanismo de confianza, en el caso de .shosts este mecanismo de confianza se habilita sobre las características que proporciona Secure Shell, por esto, en aquellas máquinas en las cuales el uso de .rhosts es indispensable sugerimos la sustitución de todos los .rhosts por .shosts. Para esto se requiere de realizar la siguiente serie de pasos: 1.- En la máquina cliente realizar una conexión hacia la máquina servidor que se va a hacer uso de .shosts. $ ssh -l cuenta maquina.cliente.de.shosts Grupo de usuarios de Linux Ags. Manual del participante

– 58 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Esto es para que la máquina a la que se entrará utilizando mecanismo .shosts obtenga la llave pública de la máquina cliente. 2.- En la máquina servidor debemos de crear sobre el home del usuario el archivo .shosts conteniendo el nombre de la máquina o la IP cliente. $ more .shots maquina.cliente.de.shosts 3.- Desde la máquina cliente realizamos el enlace. $ ssh -l cuenta maquina.con.shosts NOTA: Este tipo de conexión no solicitará el password.

Grupo de usuarios de Linux Ags. Manual del participante

– 59 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Secure Shell n Conéctese a su propia cuenta en otra computadora del laboratorio empleando ta nto telnet como n Analice con el instructor y sus compañeros las ventajas del uso de SSH. n Revise algunas otras aplicaciones para el sistema operativo. n Realice transferencias de archivos de un equipo remoto a su equipo local. En instructor guiará algunos ejemplos.

Conclusión. La organización es un aspecto importante en cualquier actividad que se realice, en este caso el sistema operativo proporciona un árbol de directorios para organizar el contenido de la información del disco duro. Una de las principales características que han hecho que Linux sea uno de los sistemas preferidos para la instalación de servicios críticos por lo que es de gran importancia conocer las formas de establecer permisos en archivos y directorios del sistema ya que esta es la base de cualquier mecanismo de seguridad implementada en un equipo de cómputo. La seguridad en la inseguridad en conexión hacia equipos remotos ha sido superada con el surgimiento de protocolos de encriptación aplicados a las comunicaciones como es el caso del protocolo SSH que le permitirá acceder a su equipo de forma remota tal como si estuviera sentado frente a su teclado y sin tener la inquietud de que alguien este espiando la comunicación.

Grupo de usuarios de Linux Ags. Manual del participante

– 60 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 4. ADMINISTRACIÓN DEL SISTEMA OBJETIVO PARTICULAR: Que el alumno desarrolle las habilidades relacionadas con la administración básica del sistema operativo referentes a la administración de usuarios, inicio y control de procesos. OBJETIVOS ESPECIFICOS: 1. Que el participante administre las cuentas de usuario disponibles en el sistema, mediante el uso de los comandos chmod, useradd userdel y otras herramientas disponibles, 2. El participante será capaz de modificar el proceso de arranque del sistema operativo mediante la personalización de los scripts de inicialización. 3. Que el participante administre los procesos y tareas que son ejecutados en el equipo. 4. Que el participante programe trabajos automatizados en el sistema para la realización de tareas específicas en el equipo. Introducción. Los usuarios de un sistema operativo no son están obligatoriamente relacionados con una persona, muchos de ellos se relacionan con el funcionamiento de algún servicio o conjunto de servicios. Otro aspecto medular de la seguridad en el sistema operativo reside en la correcta configuración y mantenimiento a las cuentas de usuarios. Durante este capitulo usted revisara las aspectos relacionados a la alta, baja y modificación de usuarios del sistema. Es importante mantener el nivel de atención en los temas tratados ya que como ya se ha hecho referencia anteriormente, no es posible tener un sistema seguro si el factor humano no esta preparado para hacer uso de esa seguridad. El proceso de arranque de un sistema tal vez sea un proceso que hasta ahora ha pasado desapercibido para usted, en este modulo podrá verificar la secuencia de inicio del sistema, conocerá a los demonios que hacen posible que el sistema se comporte como servidor para otros equipos. Cada una de las tareas ejecutadas en el sistema tendrán reflejo en el rendimiento del sistema, depuse de completar esta unidad el participante podrá administrar las tareas y procesos que se ejecuten un su equipo. Lo que le permitirá controlar el rendimiento de su sistema. Las configuraciones realizadas en esta unidad requieren la constante atención por parte del participante quien podrá en caso de dudas consultar a su instructor y/o verificar la completa ayudad que el propio Linux proporciona. Administración de usuarios. El objetivo de los usuarios, grupos y permisos en Linux es brindar privacidad y organización permitiendo también compartir información cuando así se desea. Grupo de usuarios de Linux Ags. Manual del participante

– 61 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Con respecto a usuarios el administrador puede crear, eliminar o modificar información de cuentas y grupos. También puede configurar detalles de los programas que permiten iniciar sesiones y prevenir fallas de seguridad. Si aún no lo ha hecho, antes de consultar esta sección recomendamos estudiar la visión que un usuario tiene del sistema de usuarios y grupos.. Usuarios Los siguientes programas permiten realizar operaciones relacionadas con usuarios: su [usuario] Permite entrar a una sesión como un usuario diferente, si no se especifica un usuario como primer parametro, su cambia al usuario root. Desde una cuenta de usuario pedirá la clave del nuevo usuario, e iniciará el intérprete de comandos que el usuario haya configurado. Si se emplea la opción -c comando el comando se ejecutará. Por defecto el ambiente y el directorio de trabajo serán heredados de la sesión inicial, pero si se desea iniciar con un ambiente y directorio como el que tendría el usuario después de hacer login (pero sin ejecutar archivos de inicialización del interprete de comandos), emplee la opción. Si desea ejecutar un intérprete de comandos diferente al configurado por el usuario emplee la opción -s intérprete, donde intérprete debe ser la ruta completa del intérprete de comandos que además debe estar listada en el archivo /etc/shells . En Debian 2.2 su al igual que login emplea los servicios de la librería PAM (Pluggable authentication modules), así que puede configurar varios detalles relacionados con seguridad de su en el archivo /etc/pam.d/su ---por ejemplo para restringir el uso de este comando.

passwd [usuario ] Permite cambiar la clave del usuario especificado (sólo root puede especificar un usuario). Si no se especifia un usuario permite cambiar la clave de la cuenta desde la cual se ejecuta. Por defecto un usuario podrá cambiar su clave cuando él/ella lo desee, aunque puede implementarse una política de expiración de claves. La política de un usuario puede examina rse con la opción -S que presenta: estado de la cuenta (L bloqueada, NP sin clave, P con clave utilizable), fecha del último cambio de clave, tiempos mínimo y máximo para cambiar clave, tiempo de avisos y tiempo para desactivación. Puede fijarse la política con las siguientes opciones: -x días para especificar el máximo de días antes de que un usuario deba cambiar su clave; -w días para indicar con cuantos días de anterioridad a la expiración de la clave el sistema debe empezar a enviar correos recordando el cambio; -i días índica el mínimo número de días que el usuario debe esperar para cambiar nuevamente su clave; -i días para deshabilitar una cuenta cuya clave no haya sido cambiado en los días especificados. Una cue nta puede bloquearse para impedir que pueda usarse con el programa login. Pueden bloquear y desbloquear cuentas con las opciones -u (de unlock) y -l respectivamente.

Grupo de usuarios de Linux Ags. Manual del participante

– 62 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

chage usuario Cambia la información sobre el envejecimiento de la clave de un usuario, cuando se están usando claves shadow. Para cambiar el mínimo de días entre cambios se usa la opción -m días (0 índica que puede cambiarse siempre), -M días para indicar máximo de días antes de la expiración de la clave, -d días para establecer fecha del último cambio de clave (contada en días a partir de 1/Ene/1975), -E fecha fecha en la cual la cuenta expirar (puede especificarse como una fecha mm/dd/aaaa o contada en días a partir de 1/Ene/1975), -I días establece cantidad de días de inactividad antes de bloquear una cuenta después de la expiración de la clave, -W días cantidad de días de preaviso antes de la expiración de la clave.

adduser login Permite agregar un usuario con el login dado, opcionalmente indicando el directorio de trabajo (opción --home) que de no existir será creado, un número que identificará al usuario de forma única (opción uid), el grupo principal al que pertenecerá (opción -ingroup grupo), el intérprete de comandos por defecto (opción --shell nombre) y otros datos del usuario con la opción --gecos "datos" (los datos se separan con comas y por defecto son: nombre, número de cuarto, teléfono del trabajo y teléfono de la casa). A menos que se especifique --disabled-login o --disabled-password pedirá clave inmediatamente después de crear la cuenta (--disabled-login bloquea la cuenta hasta que se asigne una clave, --disabled-password no bloquea la cuenta pero asigna una clave no válida, el usuario podría entrar por ejemplo con RSA ssh). Las operaciones que adduser realiza se configuran en el archivo /etc/adduser.conf. Por defecto creará cuentas de usuarios en el directorio /home y copiará en los nuevos directorios los archivos del directorio /etc/skel (e.g .bash_profile), pondrá como intérprete de comandos por defecto /usr/bin/bash y asignará un número de usuario de acuerdo a la política de Debian y asignará un grupo nuevo a cada usuario. Norma lmente después para agregar un usuario debe especificar la clave que tendrá, si prefiere crear una cuenta inicialmente sin clave emplee la opción --disabled-password (a ntes de poder emplear la cuenta debe establecer la clave con passwd).

chfn [login ] Para cambiar la información GECOS de un usuario (si no se especifica un login se cambiará la información del usuario que emplee el programa). Como opciones recibe f nombre, -r cuarto , -w teléfono_trabajo, -h teléfono casa y -o otros_datos. Nuestra s ugerencia es emplear en lugar de cuarto el grado y en lugar del teléfono del trabajo la dirección de la casa. Estos datos no deben contener los caracteres ',' ';' ni '='. Los datos que no se especifiquen en la línea de comandos serán solicitados interactivame nte. chfn también será llamado por passwd si se emplea la opción -f.

Grupo de usuarios de Linux Ags. Manual del participante

– 63 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

chsh [login ] Para cambiar el intérprete de comandos de un usuario (si no se especifica un login se cambiará el intérprete del usuario que emplee el programa). Como opción recibe el nombre del intérprete, el cual debe estar listado en el archivo /etc/shells. Un usuario que emplee un intérprete de comandos restringido (/bin/rsh) no puede cambiar su shell. chsh también s erá llamado por passwd si se emplea la opción -s.

deluser login Para eliminar una cuenta Por defecto no elimina el directorio personal ni la cola de correos, puede indicarse que se borren estos directorios con la opción --remove-home y puede indicarse que se busquen y eliminen todos los archivos del usuario (en los demás directorios) con la opción --remove -all-files. Con la opción --backup creará un archivo comprimido con los datos del usuario en el directorio de trabajo con nombre lo gin.tar.gz. El comportamiento por defecto de este comando puede configurarse en el archivo /etc/deluser.conf. La información sobre usuarios se mantiene en el archivo que todos los usuarios pueden leer: /etc/passwd. Cada línea de este archivo tiene información de un usuario separada con el carácter ':'. De cada usuario mantiene: login •

Clave o un carácter de control. En sistemas Unix las claves antes de ser almacenadas en este archivo (para su posterior comparación) son convertidas a una secuencia de letras y números con un algoritmo (bien DES o bien MD5 [68] ), cada vez que un usuario desea ingresar al sistema la clave que teclea se transforma con ese algoritmo y se compara con la almacenada para dar acceso sólo si son iguales. Por las características de DES y MD5 es muy difícil recuperar la clave original partiendo de la información almacenada en /etc/passwd así que una persona con acceso a este archivo no podrá conocer fácilmente las claves de los usuarios. Sin embargo es mejor emplear el sistema de claves shadow, que mantiene las claves en un archivo aparte que sólo pueda ser leído por el administrador: /etc/shadow, las cuentas que empleen este mecanismo tendrán un carácter 'x' en lugar de clave. Tanto en /etc/passwd como en /etc/shadow en lugar de clave transformada puede aparecer el carácter '*' para indicar que la cuenta tiene clave deshabilitada (opción --disabled-password de adduser), el usuario podría ingresar con RSA ssh. En lugar de la clave también puede aparecer el carácter '!' para indicar que la cuenta está bloqueada (opción --disabled-login de adduser), en este caso el usuario no podrá entrar con login ni con gdm ni con RSA ssh, pero si con su y se ejecutarán procesos del usuarios iniciados por cron o at. está bloqueada (el usuario no podrá entrar con login o gdm pero si con rlogin o su y se ejecutarán procesos del usuarios iniciados por cron o at).

Grupo de usuarios de Linux Ags. Manual del participante

– 64 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] • • • •

GID, es decir número que identifica al grupo principal del usuario. información GECOS los datos se separan entre si con comas. directorio personal intérprete de comandos

En el archivo /etc/shadow hay una línea por cada usuario con los siguientes datos separados por ':': Login • • • • • • • •

Clave transformada Fecha del último cambio de la clave (contada en días a partir del Ene ro 1 de 1975). Días por esperar antes de que la clave pueda ser cambiada. Máximo de días antes de exigir un cambio de clave. Cantidad de días de preaviso antes de expiración de clave. Cantidad de días entre expiración de clave y bloqueo de cuenta. Fecha desde la cual la cuenta está deshabilitada (contada en días desde Enero 1 de 1975). Campo reservado.

Aunque puede editar manualmente /etc/passwd y /etc/shadow es recomendable que emplee los programas presentados en esta sección. Los GID y UID reservados en un sistema Debian están en los archivos /usr/share/base-passwd/group.master y /usr/share/basepasswd/passwd.master, si algún programa o administrador erradamente asigna alguno de estos números puede emplear update-passwd para reasignar los originales. Grupos El objetivo de los grupos es dar o restringir permisos sobre algunos archivos a ciertos usuarios (ver Archivos y permisos). Por ejemplo un archivo reporte.txt que pertenezca al grupo profesores, que tenga permiso de lectura para el grupo y no para otros usuarios (si por ejemplo se estableció con chmod ug=rw reporte.txt), podrá ser leído únicamente por el dueño y por usuarios que pertene zcan al grupo profesores. Cada usuario tiene un grupo principal (puede especificarse durante la creación con la opción --gid GID o --ingroup grupo de adduser), puede pertenecer a diversos grupos y si conoce la clave de algún grupo con clave puede volverse miembro durante una sesión. Los programas relacionados con grupos son: adduser usuario grupo Para agregar un usuario a un grupo. groups Un usuario puede ver los grupos a los que pertenece con este programa. Grupo de usuarios de Linux Ags. Manual del participante

– 65 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

newgrp [grupo] Para cambiarse a un grupo con clave. Si no se específica grupo alguno se cambiará al grupo principal del usuario. Con la opción - el ambiente será reinicializado como al inicio de la sesión. passwd -g grupo Para cambiar la clave de un grupo. Para quitar la clave de un grupo se emplea passwd -g -r grupo ---los programas newgrp y sg no permiten cambiarse a un grupo sin clave. gpasswd grupo Para administrar grupos con clave, puede ser usado por el administrador del sistema y por el administrador de un grupo con clave. Con la opción -A login el administrador del sistema puede agregar un administrador de grupo a un grupo, con la opción -M login puede retirarse la administración de un grupo a un usuario, con la opción -r puede quitarse la clave a un grupo con clave y con la opción -R puede inhibir el acceso con newgrp a un grupo con clave. Un administrador de grupo puede agregar y eliminar usuarios del grupo con las opciones -a login y -d login respectivamente. addgroup nombre Permite agregar un grupo con el nombre dado. Con la opción --gid ID puede especificarse el número que identificará al grupo, número acorde con el archivo /etc/adduser.conf y a las convenciones de Debian: 0-100 estáticos reservados para Debian, 100-999 localizados dinámicamente para grupos del sistema, 1000-29999 para grupos normales (ver descripción del comando adduser en la sección anterior). groupdel group Permite eliminar un grupo. Sólo pueden eliminarse grupos que no sean el grupo pri ncipal de algún usuario. groupmod grupo Permite modificar información de un grupo. Las opciones posible son: -g GID para cambiar el número que identifica al grupo (ver convenciones en descripción de addgroup) y -n nombre para cambiar el nombre del grupo. El número que identifica al grupo debe ser único, excepto si se emplea la opción -o (para crear grupos alias, aunque el sistema de archivos no necesariamente presentará el alias como grupo dueño ).

Grupo de usuarios de Linux Ags. Manual del participante

– 66 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

grpck Para verificar la información de grupos en /etc/group y /etc/gshadow. Con la opción -r abre estos archivos en modo de sólo lectura. La información de grupos se consigna en /etc/groups, cada línea tiene los siguientes datos de un grupo separados uno de otro con el carácter ':' • •

• •

Nombre del grupo Clave del grupo transformada con DES o MD5. Si el grupo tiene clave shadow en este archivo aparecerá el carácter 'x' y la clave transformada estará en otro archivo (por defecto /etc/gshadow. GID Lista de usuarios del grupo separados con comas.

No es recomendable editar directamente estos archivos, sino más bien emplear los programas presentados en esta sección.

Grupo de usuarios de Linux Ags. Manual del participante

– 67 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Administración de usuarios n Los números UID y GID del usuario root son fijos, investigue en su sistema cuales son. n En el directorio tarea1 se quiere que todos los miembros del grupo estudiantes puedan escribir, pero que un miembro de ese grupo no pueda borrar o renombrar archivos de otros, ¿cómo puede lograrse?

Grupo de usuarios de Linux Ags. Manual del participante

– 68 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

El arranque del sistema Un aspecto que un administrador de un sistema Linux debe considerar en ocasiones, es la secuencia de inicialización del sistema. Esto puede servir para iniciar junto con el sistema servicios importantes (especialmente si el equipo se emplea como servidor), para eliminar servicios que no se usen y así aprovechar mejor los recursos o para afinar alg unos detalles que afectarán a todos los usuarios del sistema. Por otra parte algunas fallas que pueden ocurrir en un sistema Linux pueden deberse a una secuencia de inicialización errada y para solucionarlas puede ser necesario seguirla de cerca.

Secuencia de inicio Al iniciar un equipo con Linux ocurren gran cantidad de procesos, deben ocurrir en un orden preciso porque unos dependen de otros (e.g. el cargador de arranque requiere la BIOS, el kernel requiere la inicialización que hace el cargador de arranque, los módulos requieren el kernel opera ndo, las librerías y programas requieren el kernel y los módulos para interactuar con el usuario). A grandes rasgos la secuencia de inicialización es: 1. Un programa mantenido de forma permanente en memoria del equipo (BIOS ) inicializa varios aspectos del hardware, después de acuerdo a su configuración carga el primer sector de un disquete o de un disco duro o de un CD-ROM y ejecuta el programa que allí se encue ntra. Si el disquete/ disco/CD-ROM permite arrancar un sistema operativo tal programa se llama un cargador de arranque. Algunos aspectos configurables de la BIOS se mantienen en un tipo de memoria especial (e.g. EPROM que, usando una pila, puede mantener datos cuando el equipo está desconectado), pueden configurarse empleando un programa. 2. Algunos cargadores de arranque (como LILO o GRUB) pueden permitir al usuario escoger el sistema operativo al cual desea entrar (cuando en el mismo equipo haya varios), y carga el kernel del sistema escogido, eventualmente pasando parámetros dados por el usuario. Para sistemas Linux hay varios cargadores de arranque, los más conocidos son LILO y GRUB. También es posible arrancar un sistema Linux desde DOS con el cargador loadlin. 3. Si el sistema escogido es Linux, el cargador de arranque, carga el kernel de este sistema. El kernel detecta algunos detalles del hardware (como el procesador, ca ntidad de memoria y algunos dispositivos), procesa parámetros recibidos del cargador de arranque, inicializa algunos aspectos del hardware, prepara áreas de memoria, prepara el sistema de archivos virtual, prepara el sistema de módulos y lanza como primer proceso /sbin/init (a menos que se haya especificado otro programa como parámetro. Varios de los mensajes que el kernel produce durante esta etapa pueden ser revisados en el archivo /var/log/dmesg y con el programa dmesg.

Grupo de usuarios de Linux Ags. Manual del participante

– 69 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Como los dispositivos de cada equipo son diferentes, el kernel cuenta con controladores para muchos tipos de hardware difere nte (tanto para hardware muy antiguo, como para hardware muy nuevo) y para no ocupar tanto espacio en memoria el kernel emplea un sistema de módulos. Si todos los controladores para todos los tipos de hardware que el kernel soporta, se incluyeran directamente en el kernel (i.e estáticamente) desde el arranque, el kernel requeriría bastante memoria RAM (un kernel 2.2.18 con módulos requiere más de 13MB) y la gran mayoría de ese espacio no sería usado, sólo serían usadas las partes que controlan los dispositivos particulares de su equipo. Un módulo es una parte del kernel que puede cargarse, usarse o quitarse después de que el kernel está funcionando. Algunos módulos ofrecen servicios (e.g soporte para cierto sistemas de archivos) y otros son controladores para hardware específico (por ejemplo hay módulos para tarjetas de sonido, para tarjetas de red, etc.). Durante el proceso de inicialización del sistema, algunos dispositivos son detectados y los mód ulos apropiados son cargados, sin embargo como se explica en este capítulo algunos dispositivos no pueden ser detectados o configurados automáticamente e incluso algunos no son soportados. 4. El programa /sbin/init, que normalmente es el primer proceso ejecutado por el kernel completa la secuencia de inicialización ejecutando los procesos de un nivel de ejecución. El nivel de ejecución se asocia con un número entre 0 y 6, o bien con 'S' de forma que el administrador puede configurar cada nivel de ejecución para que inicie procesos diferentes. Durante un arranque normal init ejecutará primero los procesos del nivel S (scripts del directorio /etc/rcS.d en orden). Estos scripts emplean algunas variables definidas en /etc/default/rcS para inicializar dispositivos y programas. A continuación presentamos la secuencia configurada en un sistema Debian recién instalado, posiblemente no entenderá todos los términos que serán introd ucidos en este y el próximo capítulo: instala el mapa de teclado (por defecto /etc/consoletools/default.kmap.gz que usted puede modificar de ser necesario), activa swap, revisa y de ser necesario monta la partición raíz y monta el directorio vi rtual /proc, configura dispositivos ISA Plug and Play de acuerdo a al archivo /etc/isapnp.conf, calcula dependencias entre módulos y carga los módulos y argume ntos especificados en /etc/modules, chequea los demás sistemas de archivos que tengan inconsistencias o que hayan alcanzado la cuenta de montajes antes del chequeo, configura va riables del kernel especificadas en /etc/sysctl.conf, configura puertos seriales con la última configuración usada, prepara dispositivos dinámicos /dev/pts , monta particiones locales y prepara zonas de intercambio, en sistemas que usan PPP limpiar cache de DNS, establece el nombre de la máquina tomand olo de /etc/hostname, activa interfaces de red empleando la configuración de /etc/network/interfaces y /etc/network/options , inicia interfaces que requieran BOOTP o DHCP, activa portmap, monta directorios remotos (con nfs, smb, o ncp), configura fuentes por usar en consolas virtuales, ajusta la hora del sistema y realiza otras labores de limpieza y mantenimiento rutinarias. 5. Después de ejecutar scripts del nivel S, init ejecuta los del nivel de ejecución configurado (el nivel se configura en el archivo /etc/inittab en una línea que dice initdefault). Por defecto es el nivel 2 cuyos scripts están en el directorio /etc/init.d/rc2.d. 6. A menos que se haya cambiado la configuración de /sbin/init, a continuación se ejecutan los scripts del nivel configurado, se inician terminales tty en diversas co nsolas Grupo de usuarios de Linux Ags. Manual del participante

– 70 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

virtuales (por defecto en Debian de la 1 a la 6) que permiten a los usuarios iniciar sesiones tipo texto con el intérprete de comandos. Para iniciar esas terminales usa el programa getty 7. Si X-Window está configurado y si hay instalado un administrador de vistas ---como xdm, kdm o gdm--- el último script del nivel 2 iniciará X-Window en la consola virtual 7 y permitirá a los usuarios iniciar sesiones gráficas con su login y clave.

Niveles de ejecución A menos que se especifique un proceso inicial diferente desde el cargador de arranque (con el parámetro init por defecto el primer proceso es /sbin/init. Este programa lee el archivo de configuración /etc/inittab para iniciar otros procesos organizados en niveles de ejecución y con ellos el resto del sistema operativo. Cada línea del archivo /etc/inittab puede ser un comentario (si comienza con el caracter '#') o de la forma: id:niveles:método:comando Donde id es una identificación arbitraria de hasta de 4 letras, niveles indica el nivel o los niveles en los cuales se aplica, comando es el comando por ejecutar y método permite especificar la forma de iniciarlo o circunstancias bajo las cuales iniciarlo. En un sistema que ya esta inicializado se puede emplear el programa /sbin/init (o /sbin/telinit) para cambiar el nivel de ejecución, especificando el nuevo nível como parámetro. En Debian un nivel de ejecución es una configuración del sistema en la que sólo están presentes ciertos procesos, tales procesos son iniciados por scripts en un directorio particular (e.g /etc/rc2.d para el nivel 2). Los nombres de algunos de esos scripts comienzan con la le tra 'S', esos son ejecutados cuando el sistema entra al nivel, los que comienzan con la letra 'K' son ejecutados cuando se sale del nivel (después de la letra 'S' o 'K' sigue un número de dos digitos que especifica el orden en el cual se ejecutan ---primero los de menor número---). Al entrar a un nivel los scripts 'S' son ejecutados con el parámetro "start", mientras que al salir los scripts 'K' se ejecutan con el parámetro "stop". Los niveles normales son: 0: Nivel para detener el sistema, es el nivel al que entra con los comandos halt o shutdown r. Sus scripts están en el directorio: /etc/rc0.d. 1:Modo mono usuario, apropiado para ciertas tareas administrativas. Entrará a este nivel con el comando shutdown). Sus scripts están en /etc/rc1.d. 2-5 :Operación normal multi usuario. Scripts en /etc/rcx.d (con un digito de 2 a 5 en lugar de x).

Grupo de usuarios de Linux Ags. Manual del participante

– 71 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

6: Reinicio. Entrará a este nivel con los comandos reboot o shutdown -r. Scripts en /etc/rc6.d. Los archivos de los directorios /etc/rcx.d son enlaces a scripts del directorio /etc/init.d , esos scripts tiene el nombre del paquete al que pertenecen y pueden recibir como parámetro: start, stop, restart (detener y reiniciar), force-reload (volver a leer archivos de configuración sin detener o de no ser posible detener y reiniciar). Pueden crearse directame nte con ln o en Debian con el programa update-rc.d, por ejemplo: update-rc.d xdm start 99 2 3 4 5 . stop 20 0 1 6 que indica que el script xdm (el cual debe estar en /etc/init.d) debe ser ejecutado al entrar a los niveles 2, 3, 4 y 5 con prioridad 99 ( última). Así como cuando el sistema termina norma lmente (con halt o reboot) o cuando sale de modo monousuario.

Grupo de usuarios de Linux Ags. Manual del participante

– 72 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Arranque del sistema n ¿Qué proceso tiene el identificador 1 en un arranque normal? (puede usar ps ax si requi ere ayuda). n Cambie al nivel de ejecución 3 y compruebe que el script que creo en el punto anterior funciona.

Grupo de usuarios de Linux Ags. Manual del participante

– 73 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Administración de procesos. Procesos y tareas Un sistema Linux típico puede prestar muchos servicios simultáneamente, puede ser servidor de web, al tiempo que es servidor de correo electrónico, puede atender varios usuarios y cada usuario puede estar realizando simultáneamente diversas acciones. Por esto Linux es llamado un sistema multitarea. A cada acción en un sistema Linux se le llama proceso. Un proceso abstrae una acción que el sistema debe realizar, independiente del momento en que debe ejecutarse. En esta sección se explica como puede controlar procesos y como puede aprovechar al máximo las capacidades multitarea de Linux, por ejemplo realizando diversas labores simultáneamente, o haciendo que la ejecución de un programa continúe después de que usted cierra su sesión (por ejemplo si se trata de un programa que debe correr durante varias horas o días), o incluso programando el inicio de procesos en momentos en los que usted no tiene una sesión abierta (por ejemplo durante la noche --claro está mientras el equipo de cómputo esté encendido a la hora que programe la tarea). Procesos Cada proceso tiene asociado un número que lo identifica, un estado que indica como está operando, un grupo que lo asocia con otros procesos, una prioridad que determina su "importancia" con respecto a otros procesos y un dueño que puede controlarlo (normalmente el dueño es el usuario que inicia el proceso). Todos los procesos comparten el procesador ---su equipo de cómputo normalmente tendrá un solo procesador---, para lograrlo, cada proceso emplea el procesador durante un intervalo corto de tiempo y después duerme o se bloquea para dar posibilidad a otro proceso de emplearlo (el orden en el que se ejecutan depende de la prioridad de cada proceso). Normalmente junto con cada programa iniciado por el usuario se inicia un proceso, que a su vez puede iniciar otros procesos formando así un árbol; puede examinar tal árbol con el programa pstree. Existen también procesos que no son iniciados explícitamente por un usuario, por ejemplo procesos iniciados durante el arranque del sistema o por X-Window, tales procesos generalmente pueden ser controlados sólo por el administrador del sistema ---quien también podría controlar los procesos de los usuarios. Cada programa o tubería que inicie desde el intérprete de comando se ejecutará en un nuevo proceso que por defecto estará en primer plano, es decir que bash suspenderá su ejecución y la reanudará cuando el programa que inició termine. Si desea iniciar un programa (o una secuencia de programas unidos por tuberías) en segundo plano, agregué al final del coma ndo un espacio y el carácter '&'. Esto es útil cuando debe ejecutar un programa no interactivo que toma bastante tiempo en completarse, porque mientras la ejecución del programa se completa puede continuar trabajando en el intérprete de comandos ---el programa que inicie se ejecutará en segundo plano mientras bash continua ejecutá ndose en primer plano. Por ejemplo la conversión de DVI a PostScript de un documento grande puede tomar bastante tiempo, para realizar la labor en el fondo puede emplear: Grupo de usuarios de Linux Ags. Manual del participante

– 74 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

dvi2ps -o salida.ps entrada.dvi & o aún mejor redireccionando salida estándar a archivos para que no se mezclen con su sesión con bash (error estándar sigue redireccionado a consola así que verá en su sesión con bash los errores que puedan producirse): dvi2ps -o salida.ps entrada.dvi >log & Cuando inicia un programa (o una tubería) en segundo plano, bash reanuda su ejecución inmediatamente, presenta el número de tarea que asignó al comando y a continuación el número del proceso. Además de pstree, un usuario puede ver sus procesos con el programa ps (con la opción -e, ps muestra todos los procesos del sistema). Junto con cada proceso ps presenta: identificación del proceso; la terminal en la que presenta información, en caso de que funcione de forma interactiva (por ejemplo una consola virtual como tty1 o una terminal de X-Window como pts/0); el estado del proceso y el tiempo que ha usado el procesador ---el resto del tiempo que el proceso haya existido ha estado durmiendo o esperando algún evento o recurso. Para examinar interactivamente los procesos de un sistema pueden emplearse los programas top o gtop, los cuales además de presentar los procesos y refrescar continuamente sus estadísticas, permiten enviar señales a cada proceso (entre otras diferencias top funciona en modo texto mientras que gtop es una aplicación Gnome).

Señales En ocasiones usted deseará terminar algún proceso, por ejemplo porque deja de responder o tarda demasiado en completarse; para hacerlo puede emplear el programa kill para enviarle una señal de terminación. Una señal es como un "llamado de atención" que se hace a un proceso en situaciones excepcionales (por ejemplo errores), pueden ser producidas por otros procesos, por el usuario o por el sistema operativo y en la mayoría de los casos conducen a la terminación del proceso que recibe la señal. Hay diversos tipos de señales, cada una tiene un número, un nombre que la identifica y una acción predefinida (que generalmente puede ser cambiada por el proceso). Un usuario puede enviar una señal a un proceso con el programa kill seguido de la señal que enviará y del proceso que la recibirá: kill -SIGTERM 945 Este ejemplo envía la señal SIGTERM al proceso con identificación 945 (en vez de SIGTERM pudo haberse usado 15 que es el número que corresponde a esa señal). Puede co nsultar un listado de todas las señales y sus números con kill -l. A continuación se presenta una breve descripción de algunas señales comúnmente empleadas por usuarios:

Grupo de usuarios de Linux Ags. Manual del participante

– 75 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

15 SIGTERM Esta señal solicita la terminación del proceso que la recibe. 9 SIGKILL Esta señal termina el proceso que la recibe de forma inmediata. Empleela sólo para detener procesos que no terminan con la señal SIGTERM. 2 SIGINT Es la misma señal que se produce cuando un usuario en un programa interactivo presiona, Control-C para solicitar su terminación. 3 SIGQUIT La misma señal producida por Control-\, su efecto es análogo al de SIGINT pero además actúa como si el programa hubiera provocado algún error interno (volca ndo el contenido de memoria a un archivo core). 20 SIGTSTP La misma señal producida por Control-z, su efecto es suspender la ejecución de un proceso ---para reanudarla después. 18 SIGCONT Reanuda un proceso suspendido previamente por la señal SIGTSTP. 1 SIGHUP Esta señal es enviada por bash a todas las tareas que se ejecutan en segundo plano, cuando el usuario cierra la sesión (por ejemplo al cerrar una terminal en X-Window o cuando sale de su sesión desde una consola virtual). Normalmente un proceso terminará cuando reciba esta señal, pero puede lograrse que el proceso continué (es decir que ignore la señal SIGHUP) si el comando se inició con nohup ---que evita que el programa reciba la señal SIGHUP) o si durante su ejecución se indicó a bash no enviarle esta señal cuando se cierre la sesión, empleando el comando disown. Esto es muy útil cuando debe dejar corriendo un proceso muy demorado (horas o días) mientras usted no tiene una sesión abierta, por ejemplo para ejecutar el programa make en segundo plano, redireccionado salida estándar al archivo sm, error estándar a esm y lograr que continue después de que se cierre la sesión: nohup make > sm 2> esm &

Grupo de usuarios de Linux Ags. Manual del participante

– 76 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Control de tareas Además de las facilidades para controlar procesos que se han presentado en esta sección, bash ofrece "control de tareas". Una tubería o un programa que se ejecute desde bash tiene asociado un número de tarea, diferente al número del proceso. El número de la tarea aparece entre paréntesis cuadrados después de ejecutar un programa en segundo plano. La lista de las tareas de una sesión de bash, puede verse con el comando jobs, por ejemplo allí vera los programas que inició en segundo plano o que haya suspendido con la tecla Control-z. Con el comando fg puede poner en primer plano una tarea que esté en segundo plano, es decir reanudar la aplicación permitiendo que controle la consola mientras que bash se suspende. Por ejemplo si está editando un correo electrónico con mail, suspende la edición con Control-z y después desde bash emplea jobs verá algo como: [1]+ Stopped

mail [email protected]

que indica que el programa mail esta suspendido y su número de tarea es 1. Para bash los números precedidos del caracter '%' indican tareas, así que para reanudar su ejecución en primer plano puede usar: fg %1 claro que fg le permite emplear el nombre del programa o sus primeras letras en lugar de %1, omiti r el símbolo %, o incluso si emplea el símbolo % puede omitir fg. Así que los siguientes comandos son equivalentes al ejemplo anterior: fg ma fg 1 %1 Otro comando que le permite controlar tareas desde bash es bg el cual le permite ejecutar en segundo plano un programa que está suspendido. Por ejemplo si inicia una impresión de un documento postscript que imprime 2 páginas del original en una con: a2ps --columns=2 documento.ps puede suspenderla con Control-z, y continuarla en segundo plano con bg - (- es una convención que indica la tarea más reciente) o suponiendo que el número de tarea es 1, con bg % 1 o con %1 &. Note que cuando suspende un programa con Control-z, la ejecución se suspende, si desea continuarla en segundo plano debe reanudarla en segundo plano con bg.

Grupo de usuarios de Linux Ags. Manual del participante

– 77 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Tiempo Usted también puede programar cuando ejecutar un proceso con el programa at o eventua lmente puede programar eventos periódicos con cron. Antes de introducirlos, describimos algunos programas relacionados con tiempo: date Programa para ver o poner la fecha y hora del sistema (aunque sólo puede ser cambiada por el administrador). Por defecto presenta la hora local de acuerdo a la zona geográfica donde esté el equipo de cómputo que está usando, con la opción -u presenta la hora en el meri diano 0 (i.e tiempo universal coordinado). El admini strador puede establecer la fecha y la hora con la opción -s seguida de la fecha y/o hora entre comillas. La información que el comando date presenta puede ser desplegada con un formato diferente con las opciones -I y -R. time Es un comando interno de bash, que permite medir el tiempo que emplea la ejecución de un programa. Por ejemplo: time cat /etc/hosts ejecuta el programa cat con argumento /etc/hosts y después presenta el tiempo real, de usuario y del sistema que requirió la operación. La diferencia en estos tiempos se debe a las diversas tareas que Linux realiza. Tiempo real se refiere a el tiempo que transcurre desde que se inicia el programa hasta que este termina (sumando tiempos de otros procesos), el tiempo que emplea sólo el proceso es la suma del tiempo de usuario y tiempo del sistema (el primero indica tiempo realizando operaciones fuera del kernel y el segundo tiempo dentro del kernel). sleep Este programa duerme el proceso en el que se ejecuta durante un tiempo, por defecto especificado en segundos. Pueden emplearse los posfijos s, m, h y d para indicar segundos, minutos, horas o días. Por ejemplo para dormir un proceso durante 10 segundos sleep 10. bash puede ejecutar diversos programas y comandos uno después de otro cuando se separan con punto y coma ";", puede aprovechar esto y el programa sleep, para ejecutar tareas después de cierto intervalo de tiempo. Por ejemplo para iniciar la conversión de un docume nto de PostScript a PDF 30 minutos después de dar el comando: sleep 30m ; pdf2ps carta.pdf carta.ps

Grupo de usuarios de Linux Ags. Manual del participante

– 78 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Sin embargo una mejor forma de iniciar tareas en el futuro es con el comando at. Este comando recibe la hora a la que debe ejecutarse el o los programas que se le den por entrada estándar (puede especificar un archivo con comandos con la opción -f). Por eje mplo: at 8:40PM today log 2>err & n Inicie un proceso que no termine en el fondo (por ejemplo cat < /dev/zero > /dev/null o yes), revise su estado empleando ps, después suspenda el proceso enviando la señal apropiada con kill, revise nuevamente el estado y compruebe que es T; reanude la ejec ución enviando la señal SIGCONT; compruebe que el estado sea nuevamente en ejec ución y finalmente termine el proceso enviando la señal SIGTERM. n Inicie un programa interactivo (que requiera interacción con el usuario, por ejemplo vi), desde bash y después de iniciado suspéndalo. Revise entonces la lista de procesos y compruebe que el nuevo proceso esté y que su estado sea suspendido. Después reinícielo y finalmente elimínelo. n Mida el tiempo que el siguiente programa tarda en ejecutarse: ls -R /usr/doc Conclusión. Todo recurso debe de ser administrado y esta no es la excepción en los sistemas de cómputo, la memoria y el procesador de una computadora son los recursos mas valiosos de un sistema. Es importante que el usuario desarrolle las habilidades para administrar correctamente todas las tareas y los recursos que son consumidos como consecuencia. Durante esta unidad usted desarrollo las habilidades para registrar y eliminar usuarios. Programar tareas y eliminar aquellas que no son de utilidad para el sistema.

Grupo de usuarios de Linux Ags. Manual del participante

– 80 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 5. EDITORES. OBJETIVO PARTICULAR: Que el alumno utilice adecuadamente los editores de texto disponibles en la mayor parte de los sistemas Unix como lo son el Editor Vi y pico. OBJETIVOS ESPECIFICOS: 1. Que el participante utilice adecuadamente el editor de texto VI (Visual editor) para al creación y modificación de archivos de configuración del sistema. 2. Que el participante utilice adecuadamente el editor de pico para al creación y modificación de archivos de configuración del sistema. 3. Que el alumno verifique la diferencia entre diferentes editores de texto disponibles en el sistema y que le permitan seleccionar el más adecuado a sus necesidades. Introducción. Los sistema Unix se han caracterizado por el estrecho acercamiento que tienen para con los archivos de texto. Linux al igual que estos sistemas esta íntimamente ligado con los archivos de texto, ya que en esto reside la configuración del sistema. Durante esta unidad se revisaran principalmente 2 editores de textos disponibles para sistemas Linux. El primero de ellos un editor tradicional y destacado por sus características es el editor VI el que se ha mantenido como estándar a través del tiempo. El segundo editor, mas orientado para usuarios nuevos es el editor pico, desarrollado por la universidad de Washington permite que los nuevos usuarios puedan manipular archivos de una forma sencillas. La importancia de esta unidad reside principalmente el conocimiento de las prestaciones del editor VI, para lo cual se requerirá la memorización de algunos de los comandos más importantes del programa. Editores en Linux. Aunque hay varios editores gráficos para X-Window y Gnome, dos de más populares son vi y emacs, ambos funcionan en modo texto y ambos fueron diseñados para lograr eficiencia en la edición de textos. Cada uno de estos editores tiene ventajas y desventajas frente al otro. vi requiere muy poca memoria, es veloz y busca minimizar el desplazamiento de los dedos, por su parte emacs ofrece gran diversidad de servicios adicionales a la edición de texto (calendario, correo electrónico, calculadora, comparador de archivos, juegos y muchas otras). En esta sección se presenta una introducción extra breve a cada uno de estos editores y a algunas herramientas como correctores ortográficos y diccionarios. Los dos editores tienen muchísima más funcionalidad que la presentada aquí y para disfruta más la edición con estos editores es necesario consultar la documentación completa (se presentan referencias en las lecturas de profundización). Grupo de usuarios de Linux Ags. Manual del participante

– 81 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

El editor V i Para editar un texto (digamos ma.txt) con el editor vi, teclee desde un intérprete de comandos: vi ma.txt vi es un editor con dos modos: edición y comandos. En el modo de edición el texto que ingrese será agregado al texto, en modo de comandos las teclas que oprima pueden represe ntar algún comando de vi. Cuando comience a editar un texto estará en modo para dar comandos el comando para salir es : seguido de q y ENTER --con ese comando saldrá si no ha hecho cambios al archivo o los cambios ya están salvados, para salir ignorando cambios :q! seguido de ENTER. Puede insertar texto (pasar a modo edición) con varias teclas: i: Inserta texto antes del carácter sobre el que está el cursor. a: Inserta texto después del carácter sobre el que está el cursor. I: Inserta texto al comienzo de la línea en la que está el cursor. A: Inserta texto al final de la línea en la que está el cursor. o: Abre espacio para una nueva línea después de la línea en la que está el cursor y permite insertar texto en la nueva línea. O: Análogo al anterior, pero abre espacio en la línea anterior. Para pasar de modo edición a modo de comandos se emplea la tecla ESC, para desplazarse sobre el archivo puede emplear las flechas, PgUp, PgDn. Para ir a una línea específica puede emplear : seguido del número de línea y ENTER, para ir al final de la línea en la que está el cursor $,para ir al comienzo 0. Para buscar un texto / seguido del texto que desea buscar y ENTER. Después de hacer cambios puede salvarlos con :w o para salvar y salir puede emplear ZZ. Para ejecutar un comando del interprete de comandos puede emplear : ! seguido del comando y ENTER (e.g :!ls). En su sistema puede haber diversas versiones de vi, recomendamos vim que ofrece e xtensa ayuda y cuenta con varias extensiones, por ejemplo: Digrafos Útil para producir caracteres del español, si el teclado o la configuración del mismo no lo permiten. Presione Control-K y después una secuencia de dos teclas de acuerdo al carácter, e.g 'a produce á, n? produce ñ, u: produce ü, !I produce ¡, ?I produce ¿. Pueden verse otros caracteres con el comando :digraphs . Resaltado de sintaxis

Grupo de usuarios de Linux Ags. Manual del participante

– 82 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Permite ver con colores que resaltan la sintaxis de algunos tipos de archivos (por ejemplo fuentes de DocBook, C, LaTeX). Se activa con :syntax enable Indentación automática Permite indentar automáticamente diversos tipos de archivos por como XML, C, LaTeX, XSLT. Se activa con :filetype indent on y :filetype indent on. Archivo de configuración Cada usuario puede tener sus propias configuraciones en el archivo ~/.vimrc, que consta de líneas con comandos o comentarios. Los comandos no deben iniciar con ':' y los comentarios se colocan en líneas completas o al final de una línea iniciando con comillas. Por ejemplo: " Este es un ejemplo de archivo de configuración para vim syntax enable filetype on filetype plugin on filetype indent on

Grupo de usuarios de Linux Ags. Manual del participante

– 83 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Editor pico El editor pico es un editor simple pero poderoso. Sintaxis: pico [opciones] [archivo] Algunas opciones: -w : deshabilita el picado automático de las líneas. -m : habilita la funcionalidad del mouse en entornos gráficos, para posicionarse en el texto. + : se establece el comienzo de la edición en la línea n-ésima. Algunas opciones durante la edición: Ctrl k : borra y copia la línea actual en el clipboard. Ctrl u : inserta el contenido del clipboard en el texto. Ctrl o : salva el texto. Ctrl x : sale del editor. Pregunta si se desea salvar primero en caso de haberse modificado el texto.

Grupo de usuarios de Linux Ags. Manual del participante

– 84 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Editores de texto n Copie a su directorio el tutorial para principiantes de vi, localizado en /usr/doc/nvi/vi.beginner.gz, descomprímalo y estúdielo desde vi. n Entre a emacs y estudie el tutorial. n Emplee ispell para corregir ortografía desde la línea de comandos, desde emacs y desde vim. Conclusión. Un editor de texto es una herramienta que no debe de faltar en un sistema operativo uno de los mas destacados a través del tiempo ha sido el editor VI. La revisión de este editor le permitirá modificar archivos de configuración y posteriormente cuando sus conocimientos de Linux sean mayores, crear scripts de shell de una forma mas fácil, debido a las prestaciones que para estas actividades están presentes en VI.

Grupo de usuarios de Linux Ags. Manual del participante

– 85 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 6. INSTALACION DE PROGRAMAS. OBJETIVO PARTICULAR: Que el alumno administre adecuadamente los programas y paquetes disponibles en el equipo mediante el uso de herramientas como APT-GET, comando RPM y la compilación desde código fuente. OBJETIVOS ESPECIFICOS: 1. El participante administrará los programas y paquetes disponibles en el equipo lo que le permitirá optimizar el software disponible. 2. El alumno administrará los paquetes disponibles mediante el uso del sistema APTGET. 3. El participante agregará nuevos programas al sistema a partir del código fuente, mediante el proceso de compilación. 4. El participante actualizará los programas disponibles en una distribución a la versión mas reciente con la finalidad de estar al día en materia de actualizaciones. Otra labor del administrador es buscar, instalar, actualizar y configurar los programas que requiera algún grupo de usuarios (es decir los programas disponibles normalmente en /usr/bin /usr/local/bin y /opt). Introducción. Las posibles aplicaciones de un sistema de cómputo están relacionadas con el software con que se cuenta. Aunque en un principio era necesaria la compilación de las aplicaciones a usar en el sistema con le paso del tiempo surgieron los sistemas de paquetes con la finalidad disminuir la complejidad de esta tarea. El formato RPM permitió de una manera “simple” instalar y actualizar los sistemas. Pero no cubrió el aspecto relacionado con las dependencias de los programas a instalar, por lo que surgieron complementos y mejoras para los sistemas de este tipo. Durante esta unidad, se revisarán los métodos mas comunes para la administración de paquetes de un sistema Linux, pero, -¿cual es la importancia de este tema?. Principalmente debido a que un sistema sin actualizaciones es vulnerable a ataque de diferentes tipos. Administración de paquetes rpm (yum, apt rpm) ¿Qué es un RPM? Un RPM (o un .rpm) es un "paquete" o archivo que contiene (comprimido) un programa ejecutable, sus archivos de ayuda, los programas que necesita pre-instalados para poder funcionar (las famosas dependencias) sus archivos de configuración, y una serie de scripts (o guiones) para automatizar su instalación y desinstalación. Como podrá notarse, la idea del "paquete" es muy buena. Los ".deb" (o DEB) también son paquetes. Los RPM y los DEB se diferencian en la cantidad de información que contienen acerca de las dependencias y los scripts de instalación / desinstalación. Grupo de usuarios de Linux Ags. Manual del participante

– 86 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

apt-get se aprovecha de la información de los DEB para instalar los otros paquetes DEB necesarios para que el programa a instalar funcione. Por ejemplo, para instalar un DEB de un visualizador de imágenes, apt-get leerá el DEB para saber que librerías necesita, la librería jpeg, la gif la png y la TIFF. apt-get se encargará de localizar los DEB que contienen esas librerías, automáticamente. Con apt-get pueden tener muchas herramientas para actualizar y mantener en buen estado una distribución de Linux como Red Hat (9, 8, 7,.x, etc.) Con comandos como "apt-get install xmms" pueden instalar completamente el conocido reproductor de audio, "apt-get update" actualiza la información disponible el los servidores de rpms llamados repositorios, mientras que con "apt-get upgrade" actualizan mediante RPMS el software de su computadora. De la misma forma, comandos como "apt-cache search game" busca todos los paquetes que en su nombre o descripción contengan la palabra game, cool no? Para aquellos familiarizados con Debian esta herramienta no es algo nuevo. Mientras que para los usuarios de RedHat o SuSe probablemente implique revisar las páginas de ayuda. El sistema de paquetes utiliza una base de datos para llevar un mo nitoreo de los paquetes instalados, los no instalados y cuales están disponibles para su futura instalación. El programa apt-get utiliza esta base de datos para averiguar como instalar los paquetes que son requeridos por el usuario y para indagar sobre que paquetes adicionales serán requeridos para que el paquete seleccionado funcione correctamente. Para actualizar la lista, se utiliza el comando apt-get update . Este comando busca el paquete en los archivos listados en /etc/apt/sources.list; para más información acerca de este archi vo, revise El archivo /etc/apt/sources.list. Es una buena costumbre ejecutar este archivo regularmente para mantenerse informado acerca de las posibilidades de actualización para el sistema, particularmente las actualizaciones de seguridad. Instalando paquetes Finalmente, ¡el proceso que estaba esperando!. Con su archivo sources.list listo y su lista de paquetes disponibles al día, todo lo que necesita es ejecutar apt-get para tener el paquete que quiera instalado. Por ejemplo, puede ejecutar: # apt-get install xchat APT buscará en su base de datos para encontrar la versión más reciente del paquete y lo descargará del servidor correspondiente especificado en sources.list. Si este paquete necesitara otro para funcionar -- como en este caso -- APT resolverá las dependencias e instalará los paquetes necesarios. Observe esté ejemplo:

Grupo de usuarios de Linux Ags. Manual del participante

– 87 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

# apt-get install nautilus Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded. Need to get 8329kB of archi ves. After unpacking 17.2MB will be used. Do you want to continue? [Y/n] El paquete nautilus necesita las librerías compartidas mencionadas, así pues APT las descargará del servidor. Si se especifican antes los nombres de esas librerías con el comando apt-get APT no pregunta, si desea continuar o no; supone automáticamente que se desean instalar esos paquetes. Esto significa que APT sólo pregunta por confirmación cuando se van a instalar paquetes que no fueron especificados en la línea de comando. Las siguientes opciones de apt-get podrían ser útiles -h This help text. -d Download only - do NOT install or unpack archives -f Attempt to continue if the integrity check fails -s No-act. Perform ordering simulation -y Assume Yes to all queries and do not prompt -u Show a list of upgraded packages as well Pueden seleccionarse varios paquetes para instalar en una sola línea. Los archivos descargados son almacenados en el directorio /var/cache/apt/archives para su instalación posterior. Puede especificar también que paquetes serán eliminados en la misma línea. Sólo agregue un "-" i nmediatamente después del nombre del paquete que quiere eliminar, por ejemplo: # apt-get install nautilus gnome-panelReading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n] Grupo de usuarios de Linux Ags. Manual del participante

– 88 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Si de alguna forma daña un paquete instalado, o simplemente desea reinstalar la versión más nueva disponible del paquete, puede utilizar la opción --reinstall como se muestra: # apt-get --reinstall install gdm Reading Package Lists... Done Building Dependency Tree... Done 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded. Need to get 0B/182kB of archives. After unpacking 0B will be used. Do you want to continue? [Y/n] La versión de APT al crear este documento es la 0.5.3, la cual forma parte de la versión ine stable de Debian (sid) al momento de escribir. Si tiene esta versión instalada, tiene algunas opciones más a su alcance: Puede utilizar un comando como apt-get install paquete/distribución para instalar paquetes de una distribución en específico, o apt-get install package=versión. por ejemplo: # apt-get install nautilus/unstable Esta instrucción instalará nautilus de la distribución inestable aun si está utilizando la estable. Los valores aceptados para distribución son stable , testing y unstable. Podría preferir utilizar el modificador -t para especificar una distribución destino, dejando a apt-get la oportunidad de resolver a favor de esa distribución las dependencias. IMPORTANTE: La versión "unstable" de Debian es la versión a la cual se le agregan las nuevas versiones de los paquetes de Debian. Esta distribución tiene todos los cambios por los cuales atraviesan muchos de los paquetes, ya sean cambios pequeños o grandes que afecten a unos paquetes o a todo el sistema. Por esta razón, esta versión de la distribución no deberá ser usada por usuarios novatos o por aquellos que necesitan de estabilidad. La distribución "testing" (de prueba) es un poco mejor que la inestable, con algo de estabilidad, pero para sistemas en producción la que se debe usar es la estable. Eliminando paquetes Si ya no necesita utilizar cierto paquete, puede eliminarlo de su sistema utilizando APT. Para realizar esta tarea sólo escriba: apt-get remove paquete. por ejemplo: # apt-get remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded. Need to get 0B of archives. After unpacking 14.6MB will be freed. Grupo de usuarios de Linux Ags. Manual del participante

– 89 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Do you want to continue? [Y/n] Como se puede apreciar en el ejemplo anterior, APT se hace cargo de eliminar los paquetes dependientes del paquete eliminado. No hay manera de eliminar un paquete utili zando APT sin eliminar los paquetes que éste necesitaba. Ejecutando apt-get como en el ejemplo causará que los paquetes sean eliminados, pero sus archi vos de configuración, si existían, permanecerán intactos en el sistema. Para una eliminación completa del paquete, ejecute: # apt-get --purge remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The followi ng packages will be REMOVED: gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded. Need to get 0B of archives. After unpacking 14.6MB will be freed. Do you want to continue? [Y/n] Observe el "*" después de los nombres. Esto indica que los archivos de configuración de cada paquete serán eliminados también. Al igual que en el caso de la instalación, puede utilizar un símbolo con la opción de "remove" para invertir el significado de un paquete en especial. En el caso de la eliminación, si agrega un "+" después del nombre del paquete, el paquete será instalado en vez de eliminarlo. # apt-get --purge remove gnome-panel nautilus+ Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 nautilus The following packages will be REMOVED: gnome-applets* gnome-panel* gnome-panel-data* gnome-session* The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n] Observe que apt-get enlista los paquetes que serán instalados aparte de los seleccionados (esto es, aquellos que su instalación es necesaria para el funcionamiento de aquellos que son seleccionados), aquellos que serán eliminados, y aquellos que serán instalados (incluyendo los paquetes adicionales otra vez).

Grupo de usuarios de Linux Ags. Manual del participante

– 90 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Actualizando paquetes Las actualizaciones de los paquetes son un gran éxito de APT. Pueden realizarse con tan sólo un comando: apt-get upgrade. Puede utilizar esa opción para actualizar los paquetes de la distribución actual, o bien para actualizar a una nueva distribución, aunque el comando apt-get dist-upgrade es una mejor opción. Es muy útil utilizar este comando con la opción -u. Esta opción muestra la lista completa de paquetes que APT actualizará. Sin ella, se estaría actualizando a ciegas. APT descargará las versiones más recientes de cada paquete y las instalará de la manera más apropiada. Es muy importante ejecutar siempre apt-get update antes de probar esto. Observe esté ejemplo: # apt-get -u upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages have been kept back cpp gcc lilo The following packages will be upgraded adduser ae apt autoconf debhelper dpkg-dev esound esound -common ftp i ndent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g -dev modconf orbit procps psmisc 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded. Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used. Do you want to continue? [Y/n] El proceso es muy fácil. Note que en las primeras líneas apt-get menciona que algunos paquetes fueron conservados. Esto significa que hay versiones nuevas de estos paquetes mas no fueron actualizados por alguna razón. Algunas razones pueden ser dependencias fallidas (el paquete del cual depende no tiene una versión nueva para actualizar) o nuevas depe ndencias (el paquete ahora depende de nuevos paquetes que la versión anterior). No hay una solución clara para el primer caso. Para el segundo, es suficiente con ejecutar apt-get ins tall para el paquete en cuestión, ya que con esto se descargarán las nuevas dependencias. Una solución aún mejor es utilizar dist-upgrade. Actualizando a una nueva versión Esta opción de APT permite actualizar un sistema debian en un solo paso, ya sea desde Internet o por CDs (comprado o descargado como una imagen ISO). También es utilizado cuando son realizados cambios entre las relaciones de los paquetes instalados. Con apt-get upgrade, estos paquetes permanecerían sin modificación (conservados).

Grupo de usuarios de Linux Ags. Manual del participante

– 91 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Por ejemplo, supongamos que está utilizando la revisión 0 de la versión estable de Debian, y compra el CD con la revisión 3. Puede utilizar APT para actualizar el sistema al de el CD. Para lograr esto, utilice apt-cdrom para agregar el CD al archivo /etc/apt/sources.list y ejecute apt-get dist-upgrade Es muy importante mencionar que APT siempre busca la versión más reciente de los paquetes. Así pues, si en su archivo /etc/apt/sources.list se encontrara alguna otra fuente que tuviera una versión más reciente que la del CD, APT descargaría esta versión. En el ejemplo mostrado en la sección, observamos que algunos paquetes eran conservados. Solucionaremos este problema ahora con el programa dist-upgrade: # apt-get -u dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following NEW packages will be installed: cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1 libpcre2 logrotate mailx The following packages have been kept back lilo The following packages will be upgraded adduser ae apt autoconf cpp debhelper dpkg-dev esound esound -common ftp gcc indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded. Need to get 0B/7098kB of archives. After unpacking 3118kB will be used. Do you want to continue? [Y/n] Observe que los paquetes ahora serán actualizados, y que nuevos paquetes serán instalados (las nuevas dependencias de los paquetes). Observe también que lilo sigue siendo conservado. Probablemente tiene un problema aún más serio que una dependencia. Esto lo podemos saber si ejec utamos: # apt-get -u install lilo Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2 logrotate mailx The following packages will be REMOVED: debconf-tiny The following NEW packages will be installed: cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2 logrotate mailx Grupo de usuarios de Linux Ags. Manual del participante

– 92 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

The following packages will be upgraded lilo 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded. Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used. Do you want to continue? [Y/n] Como se observa arriba, lilo tiene un nuevo conflicto con el paquete debconf -tiny, lo cual significa que no podrá ser instalado (o actualizado) sin antes eliminar debconf-tiny Para saber que guarda o elimina un paquete puede utilizar: # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Starting Starting 2 Investigating python1.5 Package python1.5 has broken dep on python1.5-base Considering python1.5-base 0 as a solution to python1.5 0 Holding Back python1.5 rather than change python1.5-base Investigating python1.5-dev Package python1.5-dev has broken dep on python1.5 Considering python1.5 0 as a solution to python1.5 -dev 0 Holding Back python1.5 -dev rather than change python1.5 Try to Re-Instate python1.5-dev Done Done The following packages have been kept back gs python1.5-dev 0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded. De este modo, es fácil notar que el paquete python1.5 -dev no puede ser instalado debido a una dependencia: python1.5. Eliminando archivos de paquete no utilizados: apt-get clean y autoclean. Cuando APT instala un paquete, descarga los archivos necesarios de los servidores enlistados en /etc/apt/sources, estos a su vez son guardados en un depósito local (/var/cache/apt/archives/), y de ahí se procede con la instalación. Con el tiempo el depósito puede crecer y ocupar mucho espacio en disco. Afortunadamente, APT provee de herramientas para manejar su depósito local: apt-get, clean y autoclean. apt-get clean elimina todo excepto los archivos "lock" de /var/cache/apt/archives/ y /var/cache/apt/archives/partial/. Así, si necesita reinstalar un paquete APT, lo descargará de nueva cuenta. Grupo de usuarios de Linux Ags. Manual del participante

– 93 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

apt-get autoclean elimina sólo los archivos que no pueden ser descargados de nuevo. EL siguiente ejemplo muestra como funciona la autolimpieza de apt-get: # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm* logrotate_3.5.9-7_i386.deb logrotate_3.5.9-8_i386.deb gpm_1.19.6 -11_i386.deb En /var/cache/apt/archives hay dos archivos para el paquete logrotate y uno para gpm. # apt-show-versions -p logrotate logrotate/stable uptodate 3.5.9-8 # apt-show-versions -p gpm gpm/stable upgradeable from 1.19.6-11 to 1.19.6 -12 apt-show-versions muestra que logrotate_3.5.9-8_i386.deb provee la versión actualizada de of logrotate, así pues logrotate_3.5.9-7_i386.deb es innecesario. También gpm_1.19.611_i386.deb no es necesario debido a que una versión mas reciente puede ser descargada. # apt-get autoclean Reading Package Lists... Done Building Dependency Tree... Done Del gpm 1.19.6-11 [145kB] Del logrotate 3.5.9-7 [26.5kB] Finalmente, apt-get autoclean elimina los archivos viejos.

Grupo de usuarios de Linux Ags. Manual del participante

– 94 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Administración de paquetes rpm (yum, apt rpm) n Ins tale el programa apt-get, el instructor le indicará el lugar de donde podrá realizar la descarga. n Instale el programa opera web browser. n Elimine el programa sendmail, del sistema.

Grupo de usuarios de Linux Ags. Manual del participante

– 95 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Compilación de programas desde código fuente. Aunque en los repositorios oficiales algunos programas de libre redistribución son liberados al público junto con el código fuente escrito en algún lenguaje de programación (tipicamente C o C++). Antes de usarlos debe compilarlos e instalarlos siguiendo las instrucciones que acompañan el código fuente; y claro antes debe descomprimirlo y/o desempaquetarlo. El código fuente podría estar comprimido con diversos programas, dos muy comunes son: gzip - extensión .gz, bzip2 - extensión .bz2. Ambos permiten descomprimir con la opción -d seguida del nombre del archivos comprimido. Además de comprimidas, las fuentes podrían estar archivadas con el programa tar (extensión .tar), para desarchivar archivos creados por este programa se emplea tar xvf archivo. Aunque en general debe consultar las instrucciones para lograr la instalación y configuración, varios programas requieren la siguiente secuencia de comandos para compilar (secuencia establecida por a utoconf): ./configure make make install Esta secuencia instalará por defecto en el directorio /usr/local, si desea instalar en otra vía puede cambiar el primer comando por configure --prefix=nueva_via con el directorio destino en lugar de nueva_via. Si las fuentes incluyen mensajes en diversos idiomas (locales) se instalarán los especificados en la variable LINGUAS o todos si tal variable no está definida. La variable LINGUAS debe tener códigos ISO 639 (2 letras como LC_MESSAGE) de los idiomas que se desean, unos separados de otro por espacios. Cuando busque software, tenga en cuenta que funcione en el equipo de cómputo en el que operará (consulte los requerimientos de hardware y software), y revise la licencia del programa para asegurarse de la posibilidad de usarlo y redistribuirlo sin restricciones si no lee con detalle la licencia, podría infringir la ley. Una vez consiga software que solucione una necesidad de su institución, debe instalarlo y configurarlo. Es posible que encuentre las fuentes comprimidas o de un archivo precompilado deb o rpm. Por ejemplo para la distribución Debian y Red Hat, hay un inmenso repositorio de archivos precompilados.

Grupo de usuarios de Linux Ags. Manual del participante

– 96 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Compilación de programas desde código fuente n Consiga un programa pequeño (que quepa en un disquete) en formato .gz, instálelo, úselo y desinstálelo. n Cree un archivo .tar.gz de un directorio pequeño (por ejemplo cree uno de prueba con al menos dos archivos). Conclusiones. El mantenimiento de los programas instalados en una computadora no es una tarea exclusiva de un administrador de sistemas, las actividades que realiza el usuario son muy importa ntes para el buen funcionamiento del equipo. Durante la revisión de este capitulo 6 se ha completado la revisión de los mas comunes métodos para la actualización de programas y hasta distribuciones completas. Resta ahora al participante aplicar estos conocimientos en sus computadoras personales y equipos de trabajo.

Grupo de usuarios de Linux Ags. Manual del participante

– 97 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

UNIDAD 7. REDES. OBJETIVO PARTICULAR: Que el participante se sea capaz de configurar los parámetros de red del sistema operativo correctamente como la asignación de direcciones IP, puertas de enlace y servicios de nombres. OBJETIVOS ESPECIFICOS: 1. Que el alumno desarrolle configuraciones de parámetros de red de forma manual, pa ra integrar al equipo a la red local. 2. Que el alumno desactive servicios innecesarios del sistema para su mejor rendimiento 3. Que el alumno diagnostique problemas con el servicio de red mediante el uso de utilidades disponibles en el sistema. Introducción. Si bien hace años lo habitual era que nuestro equipo de cómputo trabajara solo en nuestro despacho o casa, la enorme evolución de las comunicaciones ha hecho que en estos días cualquier oficina tenga sus equipos en red. La posibilidad de compartir archivos, impresoras o acceder a redes exteriores (Internet, Infovía...) junto a muchas otras opciones más avanzadas, hacen de las redes un elemento fundamental. Por ello, será necesario que configuremos nuestro equipo Linux de forma que podamos trabajar en concordancia con estas máximas. Durante este capitulo se realizarán actividades encaminadas a la configuración de los parámetros de red, el monitoreo y el diagnostico de posibles problemas referentes a la red, para lograr los objetivos planteados y mejorar la asimilación de los temas es importante que los participantes comenten sus experiencias y necesidades respecto a los servicios de red que mas conozcan. Linux y las redes Linux, desde sus orígenes, ha sido un sistema que ha poseído posibilidades de trabajo en red, dado su propio carácter de sistema operativo desarrollado a través de Intenet. Por ello, las posibilidades de trabajo en red existen, son fáciles de configurar y permiten obtener un rendimiento superior a otros sistemas operativos. El protocolo más habitual en equipos Unix es el TCP/IP. Este protocolo permitirá configurar una intranet y del mismo modo conectar nuestro equipo a Internet. Por otra parte, también podremos compartir archivos e impresoras con equipos Windows mediante el protocolo SMB, usando el software Samba. En este apartado, veremos cómo configurar nuestro hardware de red así como una red basada en los protocolos TCP/IP. Configuración de los parámetros de red Grupo de usuarios de Linux Ags. Manual del participante

– 98 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Las tarjetas ethernet constituyen el dispositivo necesario para que nuestro equipo de cómputo pueda intercambiar información con otros equipos mediante una red. En general, cualquier tarjeta compatible con NE2000 u otros modelos tradicionales funcionarán sin problemas en nuestro sistema Linux. Tendremos que mirar la documentación de nuestra tarjeta para comprobarlo. El conexionado físico de nuestra red será algo que obviaremos. Dejaremos al lector que investigue en los mundos de las redes de área local para poder montar una. De todas formas, diremos que este conexionado no es complicado y podríamos hacerlo simplemente uniendo mediante un cable coaxial dos o más ordenadores. Pero insistimos en que esto se sale de los objetivos de este curso. Para que nuestro sistema pueda utilizar la(s) tarjeta(s) de red que tengamos instalada(s) será necesario darle soporte en el kernel, lo que significa que tendremos que recompilar el kernel incluyendo el soporte para nuestra tarjeta en cuestión. Esto sólo será necesario si en nuestro núcleo no tenemos activado el soporte para red (lo que suele ser algo raro en el kernel que incluyen las distribuciones hoy en día) o, aunque lo tengamos activado, no tengamos soporte para nuestra tarjeta. Existen muchos métodos para la configuración de este protocolo. Por ejemplo, tenemos el paquete netconfig, que viene incluido en la mayoría de las distribuciones. Otra opción es la modificación manual de los archivos necesarios. Configuración manual Así pues, veremos en este apartado de una forma somera, cómo podemos configurar manualmente la red. Ifconfig Este comando permite configurar el dispositivo de red. Su formato es el siguiente: ifconfig [dispositivo] [dirección-IP] [máscara -de-red] [dirección-de-broadcast] Route Sirve para configurar la tabla de rutas, utilizada por el demonio routed. Su formato es: route [add] [\net dirección-subred] /etc/hosts Este fichero contiene una tabla de correspondencias entre nombres de ordenadores y direcciones IP (realiza básicamente el mismo trabajo que un servidor de DNS).

Grupo de usuarios de Linux Ags. Manual del participante

– 99 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

/etc/networks Contiene una tabla de equivalencias entre nombres de redes y direcciones de red. /etc/resolv.conf Contiene la dirección IP del servidor de DNS que vamos a usar en una conexión a Internet.

Ejercicios: Configuración de los parámetros de red n Configure una nueva dirección IP a su equipo, esta será la siguiente: 192.168.0.X, donde X representa el número de su equipo. n Agrega como nuevo gateway para su equipo la siguiente dirección: 192.168.0.254 n Verifique mediante el comando ifconfig la configuración de la tarjeta de red n Desactive la interfaz eth0 de su equipo. n Verifique nuevamente la configuración

Grupo de usuarios de Linux Ags. Manual del participante

– 100 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Utilidades de red: netstat, nmap, tcpdump Linux incluye una gran variedad de programas y utilidades que le permiten al usuario y al administrador realizar tareas relacionadas con la seguridad en las conexiones hacia la red. A continuación se presentan algunas de ellas. netstat Netstat es una utilidad que esta presente en bastantes unix, por tanto una utilidad más general que iptraf aunque algo más austera. La importancia de esta utilidad es la mencionada, de estar portada a prácticamente todos los unix del mercado. Comentamos algunas opciones interesantes de la utilidad netstat Con la ejecución del comando Netstat conseguimos que en pantalla aparezcan tanto las conexione s de red existentes en el sistema en ese momento, como los sockets abiertos en ese momento por el operativo o por sus aplicaciones. Con la ejecución de netstat -i nos presentará las estadísticas de los interfaces de red que existen activos en el equipo en el momento. Con la ejecución de netstat -l nos muestra todas las aplicaciones que esta "escuchando" en el sistema en este momento, tanto de red como del propio sistema. Es importante comentar llegados a este momento, que podemos limitar las salidas al tipo de protocolo de los sockets con parámetros como -t, -u etc. por ejemplo: netstat -l -t . Netstat es un comando bastante versátil que permitirá ver desde estadísticas de red avanzadas a tablas de rutas. En de hacer notar también que estas líneas de ejecución son para sistemas operativos Linux y que en otros unix pueden cambiar los parámetros.

Grupo de usuarios de Linux Ags. Manual del participante

– 101 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Escáner de puertos El escaneo de puertos es una técnica usada para auditar maquinas en las que necesitamos saber que servicios se están sirviendo y de que modo. Con algunas de las herramientas que presentamos como nmap, conseguiremos no solo saber que servicios están disponibles en las maquinas de nuestra red si no también orientación sobre su el sistema operativo que corre en ellas. Nmap Nmap es una herramienta para el escaneo de puertos probablemente de las mejores que existen siendo software libre. su autor, Fyodor, ha utilizado varias técnicas para realizar el escaneo de estos puertos ( que son posibles canales de comunicación en potencia ) tanto para TCP como para UDP. Algunas de estas técnicas: •

TCP connect() : Usa la llamada al sistema connect para intentar una conexion a un puerto, si no es posible, ese puerto no esta abierto. Ej: nmap -sT localhost



TCP SYN : Manda un paquete SYN y espera la contestación, nunca abre una conexión TCP del todo, en funcion de la respuesta ( un ACK o un RST ). Ej: nmap -sS localhost ( como root por usar socket raw )



TCP FIN : Se usa para evitar que los paquetes SYN sean cortados por el firewall, se usa FIN y se espera el RST de resultado. Ej: nmap -sF localhost ( unicamente funciona con sistemas UNIX )



UDP scan : Escanea los servicios que permiten tráfico UDP. Ej:

Grupo de usuarios de Linux Ags. Manual del participante

– 102 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

nmap -sU localhost ( como root por usar socket raw ) Para realizar estos escaneos, nmap comprueba todos los puertos de una maquina con estas técnicas. Esto puede llevar un tiempo considerable, de modo que nmap contempla la posibilidad de escanear únicamente puertos determinados y para eso da la oportunidad de escanear los puertos en el fichero: /etc/services Un ejemplo de esta opción sería : nmap -F localhost que realiza un "Fast Scan". También permite definir un rango de puertos a escanear, del siguiente modo: nmap -p 20-30, 1000-1024 Por defecto toma los puertos 1-1024, los denominados "puertos privilegiados". Otra opcion interesante de cara a guardar los resultados es la que nos permite guardar los resultados de cara a su examinación posterior, por ejemplo: nmap -F localhost -o localhost.dat Dejando en el fichero localhost.dat , el resultado del escaneo a la máquina localhost. Para finalizar con nmap, comentar la posibilidad del escaneo de grupos de máquinas de cara a auditar una red completa, por ejemplo del modo siguiente: nmap -F 192.168.1.* Con esta orden escanearemos una clase C completa. Peligros del sniffing El peligro de la intercepción de comunicaciones en una red es notoria. Se habló en la conferencia "Seguridad Básica en un sistema Linux" de los problemas que podían surgir en cuanto a interfaces de red en modo "promíscuo" y aunque una solución valida es la detección por una serie de métodos y heurísticas, una buena solución es realizar nuestras comunicaciones encriptadas, para ello podemos realizar el experimento de lanzar un sniffer en una maquina y ver los resultados de las comunicaciones sin encriptar y encriptadas ( por ejemplo con ssh y scp, en lugar de telnet y ftp ). Grupo de usuarios de Linux Ags. Manual del participante

– 103 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

tcpdump La utilidad tcpdump es una de las utilidades que más detalles nos va a aportar de cara a saber que paquetes circulan por nuestra red, permitiéndonos llegar a ver las cabeceras de los propios paquetes de red que circulan por ellas. Es por tanto una de las más complicadas que comentaremos en este taller.

Grupo de usuarios de Linux Ags. Manual del participante

– 104 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

Ejercicios: Utilidades de red n Verifique los puertos abiertos de algún otro equipo del laboratorio mediante el programa nmap. n Verifique el tipo de información enviada por el por la red. n Indique el nombre de los servicios que actualmente se ejecutan en el sistema. n Desactive los servicios innecesarios del equipo. n Comente con sus compañeros las ventajas del las herramientas revisadas en este capitulo. Conclusión. Las redes son el pilar de la comunicación hoy en día, la eficiencia y rapidez en las comunicaciones se ha generado gracias al avance de estas. En el transcurso de esta unidad ha revisado y se ha familiarizado al grado de que debe ser capaz de configurar, desactivar y activar interfaces de red, así como diagnosticar problemas relacionados.

Grupo de usuarios de Linux Ags. Manual del participante

– 105 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

CONCLUSIONES GENERALES. Linux es un fenómeno nuevo. Pocos hubiesen creído posible que en un par de años Linux se transformara de oscuro hobby de estudiantes de computación en una de las principales plataformas de servicios de red, tanto al interior de las empresas como en Internet como un todo. Los resultados palpables de su nada convencional esquema de desarrollo han cambiado para siempre grandes áreas de la industria de software. Bastantes proyectos han emulado con éxito el estilo de desarrollo abierto que introdujo Linus Torvalds. La penetración actual de Linux es comprensiblemente alta en instituciones educacionales. Muchos sitios han evaluado el sistema y han quedado impresionados por su flexibilidad y estabilidad. Algunos sitios han confiado aplicaciones críticas a esta plataforma, y se están desarrollando aplicaciones comerciales sobre este sistema. Un dato curioso es que la actual campaña en contra de la piratería de software ha dado el empujón final en algunos casos hacia abandonar plataformas propietarias, dado que ``regularizar'' las licencias de muchos de los productos en uso hubiese significado un altísimo costo. El futuro de Linux es realmente prometedor, la implantación del operativo ha crecido de manera espectacular en el ultimo año, empresas como Intel, IBM, Corel, Inprise, Sun y un largo etcétera han prestado su apoyo al proyecto Linux guiadas en mayor o menor medida por el desarrollo de fuente libre. Por otro lado, Linux se está convirtiendo en una de las herramientas más valiosas para el aprendizaje y formación de futuros profesionales por la experime ntación que permite a un bajo coste. Linux ha supuesto una autentica revolución por su filosofía , por su buen funcionamiento, y por su continuo crecimiento y renovación. Esto lo ha llevado a ser potenciado por importantes empresas llegando a hacer frente a sistemas operativos comerciales aun habiendo sido desarrollado en Internet por muchos programadores sin ánimo de lucro. Probablemente estemos ante una de las mas importantes revoluciones en cuanto a sistemas operativos de los últimos años. Este curso le ha permitido a los participantes desarrollar sus conocimientos es esta nueva tecnología, introduciéndolo a un nivel de usuario intermedio del sistema. La revisión de los temas que partieron de lo mas básico cuando se reviso la instalación, pasando por el conocimiento de los comandos mas utilizados del sistema, hasta llegar a la configuración de parámetros de red y conceptos necesarios para la a monitorización y administración del sistema. El cumplimiento de los objetivos de este curso ha sido acorde a las participación y empeño de cada uno de los participantes de los cuales se espera aprovechen el conocimiento generado en algo productivo y transmitan el conocimientos a otros interesados.

Grupo de usuarios de Linux Ags. Manual del participante

– 106 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] GLOSARIO administración: Proceso por el cual se mantiene un sistema a punto y operativo. Es una tarea de la que se encarga el administrador o root y sus posibles colaboradores. Abarca acciones tales como: configurar nuevos dispositivos, administrar cuentas, seguridad del sistema... Alias: Orden interna de bash. Permite sustituir una cad ena por una sola palabra. Esto nos permite poner el nombre que queramos a un comando junto con sus parámetros. Ahorra tiempo en el trabajo diario, por lo que su uso es altamente recomendado. Puede ser algo tan sencillo como: alias rm='rm -i'. Por lo que cada vez que teclearemos rm el shell lo sustituiría por rm -i. Apache: Servidor de páginas web. Hoy por hoy líder del mercado de servidores, por delante de soluciones propietarias AT&T: Compañia Estadounidense de telecomunicaciones. Una división de esta compañía, la Bells Lab, creó el primer Unix. awk: Lenguaje interpretado de programación orientado al procesamiento de cadenas alfanuméricas. background: Segundo plano. Se habla de proceso en segundo plano cuando se ejecuta sin nuestra interactividad o lo pasamos a modo suspendido. Es útil si por ejemplo, estamos compilando un programa grande que nos deja inutilizada la consola mientras dura el pr oceso de compilación. Pasándolo a segundo plano, el proc eso se completaría, pero nosotros podríamos seguir trabajando. bash: (Bourne Again Shell) Interprete de commandos. Es el shell por defecto en la mayoría de las distribuci ones de GNU/Linux de hoy en día. Se encarga de interpretar las ordenes que le demos para su pr oceso por el kernel. bind: Berkeley Internet Name Domain. Servidor de nombres de dominio. boot: Proceso de arranque en un sistema informático.

Grupo de usuarios de Linux Ags. Manual del participante

– 107 –

BSD: Berkeley Software Distribution. Adaptacion del UNIX original de AT&T por la universidad de Berk eley. case sensitivity: GNU/Linux distingue entre minúsculas y mayúsculas, por lo que deberemos tener cuidado a la hora de teclear ordenes o nombres de ficheros. COMO: Del ingles HOWTO. Texto explicativo de COMO hacer algo en particular. Se ocupan de un tema en concreto, por lo que suelen hacer referencia a otros textos. Los podrás encontrar en tu distribución bajo /usr/doc. compilar: Proceso por el cual se "traduce" un programa escrito en un lenguaje de programación a lo que realmente entiende el ordenador. Consola: Una consola la forman el teclado y el monitor del equipo donde tenemos instalado GNU/Linux. No confundir con terminal. cron: demonio que usa el administrador para delegar ciertas tareas que pueden ser ejecut adas sin su participación. Este demonio puede ser programado para ejecutar las tareas a intervalos variables, anualmente, semanalmente, diariamente etc. Sus tareas típicas suelen ser el borrado de ficheros temporales, conexiones con otros equipos, backups, etc. cuenta: Una cuenta en un sistema Unix/Linux puede ser algo asi como la llave de un taller comunitario. Es decir, tenemos una llave personal que nos permite acceder a ese taller y utilizar algunas de las herramientas del mismo. Donde además tenemos que atenernos a las normas que rijan en ese taller. cuota: Es un sistema del que se vale el administrador, para regular el espacio que los diferentes usuarios de un sistema ocupan con sus ficheros en disco. demonio: Aparte del significado que todos conocemos, en Unix/Linux se conoce como un programa que permanece en segundo plano ejecutándose continu amente para dar algún tipo de servicio. Ejemplos de

demonio, son los servidores de correo, impresora, sistemas de conexión con redes etc. display: Variable de entorno, cuyo valor apunta al servidor Xwindow del usuario que lo esta ejecutando. dns: Domain Name Server. Servidor de nombres de dominio. Servicio de red que nos facilita la busqu eda de ordenadores por su nombre de dominio. dosemu: Emulador del sistema operativo DOS de Microsoft. Ejecuta gran parte de programas para este sistema operativo, incluidos juegos. dvi: Formato de fichero de los formateadotes de texto TeX y LaTeX. Emacs: Editor de texto. Aunque es su principal función, Emacs es hoy en dia un programa muy extenso y con muchas utilidades, gracias a su soporte de plug-ins en lenguaje LISP. Desde Emacs podrás contestar el correo, leer las noticias de USENET, compilar programas, jugar al tetris... Requiere un periodo de aprendizaje largo. enlaces: Los enlaces o links permiten tener "copias" de un mismo archivo, ocupando solo el espacio del archivo real. Es decir, el enlace no es mas que otro archivo que apunta a el original. enlightenment: Gestor de ventanas. Muy espectacular, a la vez que algo inestable y consumidor de recursos nato. entrada/salida estándar: Por defecto la entrada de datos estándar se establece en el teclado y la salida de datos estándar en la pant alla del monitor, esto lo podemos variar a través de tuberías o redirecciones. Por ejemplo, podemos hacer que la entrada sea el ratón y la salida la impresora. ethernet: Son redes que permiten distribuir datos a través de un solo cable por lo que necesitan de un protocolo especial que evite la colisión de los paquetes de datos, ya que solo se permite el envió de un solo paquete al mismo tiempo, encargándose el protoc olo de su reenvió en caso de la colisión de ambos.

Grupo de usuarios de Linux Ags. Manual del participante

– 108 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] expresiones regulares: Las expresiones regulares o "regexp" permiten definir el patrón de análisis en una cadena de texto. De forma que a la hora de modificarlas, borrarlas, o lo que queramos hacer con ellas, sea de acuerdo a unas reglas que definimos. ext2fs: Sistema de ficheros utilizado en GNU/Linux . Permite el uso de permisos para los ficheros y directorios, y tiende a fragmentarse mucho menos que los de otros sistemas operat ivos. filtro: Un filtro es un programa o conjunto de estos, que procesan una serie de datos gen erando una salida modificada conforme a lo que nosotros le especifiquemos. finger: Muestra información del usuario que le especificamos. Puede ser de nuestra misma maquina o de otra cualquiera. La información que aparece puede ser todo lo completa que haya querido el usuario que consultemos, ya que aunque el sistema nos muestra una información por defecto, el usuario puede completarla por medio de los ficheros .plan y .project. fips: Programa para msdos, que nos permite recortar la particion de msdos o windows sin perder datos a fin de ubicar otro sistema operativo o una partición nueva. foreground: Es el termino contrario a background, es decir el programa que se ejecuta en primer plano o que esta efectuando su salida a traves de la pantalla. FSF: Free Software Foundation. Fundación que pretende el desarrollo de un sistema operativo libre tipo UNIX. Fundada por Richard Stallman, empezó creando las herramientas necesarias para su propósito, de modo que no tuviera que depender de ninguna compañía comercial. Después vino la creación del núcleo, que todavía se encuentra en des arrollo. ftp: File Transfer Protocol. Servicio de Internet que permite el envio y la recepción de ficheros. Para su uso necesitamos disponer de una cuenta en la maquina que va a recibir o enviar los ficheros. Si bien hay multitud de maquinas en Internet que permiten el uso de sus sistemas utilizando una cuenta anó-

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] nima y validando el password con nuestra dirección de correo. gcc GNU C Compiler. El compilador estándar de la FSF. getty Procesos que controlan cada una de las terminales que estan conectadas al sistema, o las terminales virtuales que podamos tener abiertas. Establecen las características de los terminales y llaman al proceso encargado de validar la entrada al sistema de los usuarios. ghostcript: Programa encargado de la visualización de ficheros de texto con formato postcript. GNOME: GNU Network Object Model Environment. Entorno de escritorio basado en las librerías GTK diseñadas para el programa de retoque fotográfico GIMP. Ofrece un entorno amigable y la posibilidad de que las aplicaciones intercambien datos entre si. GNU: Gnu is Not Unix. Proyecto de la FSF para crear un sistema UNIX libre. GNU/Linux: Sistema operativo compuesto de las herramientas GNU de la FSF y el nucleo desarrollado por Linus Torvalds y sus colaboradores. GPL: General Public License. Una de las mejores aport aciones de la FSF. Es una licencia que protege la creación y distribución de software libre. groff: Versión GNU del programa nroff para el formateo de textos. Las paginas del manual en linea han sido escritas con este formato. GID: Group IDentification. En UNIX/ LINUX se definen grupos para administrar las herramientas a las que tienen acceso unos y otros, el pertenecer a un determinado grupo nos puede permitir, por ejemplo, tener acceso a Internet. La pertenencia a algún grupo viene determinada por el numero GID establecido en el cuarto campo del fichero /etc/passwd.

http: HyperText Transfer Protocol.Protocolo de red para la transferencia de paginas de hipertexto, o lo que es lo mismo, paginas web como esta. HURD: Nombre del núcleo del sistema que sigue desarrollando la FSF dentro del proyecto GNU. inetd: Demonio encargado de mantener en escucha determinados puertos y de llamar a determinados programas en función de las señales recibidas. Por ejemplo, atiende a las llamadas de telnet, finger o ftp. init: Init es el primer proceso que se ejecuta en un sistema UNIX/Linux y el que inicia todos los procesos getty. Tiene varios estados, llamados niveles de ejecución, que determinan los servicios que pueden ofrecer. Por ejemplo, dependiendo del nivel de ejecución podemos establecer la posibilidad de poner la maquina en modo monousuario, impidiendo la posibilidad de acceso a otras personas. initdefault: El valor de initdefault establece el nivel de ejecución por defecto de entrada al sistema. inode: Todos los archivos en UNIX/Linux tienen un inode que mantienen información referente al mismo, tal como situación, derechos de acceso, tamaño o tipo de fichero. Jargon: Jerga técnica o humorismo job: Orden interna de bash que muestra los trabajos pendientes que tengamos en segundo o primer plano.

host: Nombre de un ordenador en una red.

KDE: K Desktop Environment. Entorno de escritorio que integra gestor de ventanas propio y una barra de tareas y que al igual que GNOME permite la interacción entre sus aplicaciones. Programado en C++ y con la base de librerías QT+ ha sido victima de criticas por parte de la comunidad GNU/Linux, ya que estas librerías eran propiedad de una empresa comercial.

HOWTO: Vease COMO.

kernel: Vease núcleo

Grupo de usuarios de Linux Ags. Manual del participante

– 109 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] kerneld: Demonio para la carga dinámica de módulos. Cuando necesitamos el uso de un determinado dispositivo, no es necesario tener su controlador todo el tiempo cargado en memoria, por lo que este demonio se encarga de enlazarlo con el resto del núcleo. LaTeX: Lenguaje para el formateado de textos. Muy potente y completo. lilo: LInux LOader. Programa que nos permite elegir que sistema operativo arrancar, en el caso de tener varios. Linus Torvalds: Estudiante finlandés creador del núcleo de GNU/Linux. Actualmente, el desarrollo del núcleo, depende de unos cientos de personas, incluido Linus. Linux Núcleo del sistema operativo GNU/Linux login: Programa encargado de la validación de un usuario a la entrada al sistema. Primero pide el nombre del usuario y después comprueba que el password sea el asignado a este. loopback: Sistema de trabajo en red en modo local. Con este sistema podemos trabajar en red con nuestro pr opio ordenador, su utilidad radica en probar progr amas de seguridad, leer las noticias o el correo de los servidores instalados en nuestro ordenador o simplemente poder ejecutar Xwindow. lpd: Demonio encargado de asistir a las peticiones de impresión por parte del sistema. LuCaS: Organización de voluntarios dedicada a la traducción de documentación del sistema GNU/Linux al castellano. man: Manual en línea del sistema. Aquí puedes buscar casi cualquier cosa relacionada con el sistema, sus comandos, las funciones de biblioteca, etc. mbr: Master Boot Record. Tabla de información referente al tamaño de las particiones.

Grupo de usuarios de Linux Ags. Manual del participante

– 110 –

módulos: Porciones de código que se añaden en tiempo de ejecución al kernel para el manejo de dispositivos o añadir funciones al núcleo. monousuario: Sistema informático que solo admite el trabajo con una persona. montar: Poner un dispositivo o un sistema de ficheros en disposición de ser usado por el sistema. motif: Librería de funciones para el desarrollo de aplicaciones graficas. Son de carácter comercial, aunque existe una implementación libre llamada lesstif mta: Mail Transfer Agent.Programa encargado del transporte de correo electrónico. Es el encargado de deliberar las direcciones y de transportarlas hacia su correcta ubicación, dentro de nuestra red local o en Internet. Los más usados en Linux son Sendmail,qmail,postfix y exim. mtools: Conjunto de herramientas para la administración de ficheros, disquetes o discos duros con el sistema de archivos de msdos. mua: Mail User Agent. Programa encargado de la lectura y composición de mensajes de correo electrónico. Algunos típicos en Linux son: Mutt,Kmail,Pine,Balsa. multitarea: Capacidad de un sistema para el trabajo con varias aplicaciones al mismo tiempo. Multiusuario: Capacidad de algunos sistemas para ofrecer sus recursos a diversos usuarios conectados a traves de terminales. nntp: Network News Transfer Protocol.Protocolo de transmisión para el envió y recepción de los grupos de noticias de USENET. núcleo: Parte principal de un sistema operativo, encargado del manejo de los dispositivos, la gestión de la memoria, del acceso a disco y en general de casi to-

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] das las operaciones del sistema que permanecen invisibles para nosotros. password: Palabra clave personal, que nos permite el acceso al sistema una vez autentificada con la que posee el sistema en el fichero passwd. path: Variable del entorno, cuyo valor contiene los directorios donde el sistema buscara cuando intente encontrar un comando o aplicación. Viene definida en los ficheros .bashrc o .bash_profile de nuestro directorio home. Permisos: Todos los archivos en UNIX/Linux tienen definido un set de permisos que permiten establecer los derechos de lectura, escritura o ejecución para el dueño del archivo, el grupo al que pertenece y los demás usuarios. PID: Process IDentification. Num ero que identifica un proceso en el sistema, este número es único para cada proceso. posix: Es un estándar con una serie de normas definidas para permitir la portabilidad entre diferentes sistemas UNIX. GNU/Linux cumple con este estándar. postscript: Formato profesional de impresión para impresoras de gama alta. ppp: Point to Point Protocol. Protocolo de transmisión de datos, utilizado en la mayoría de las conexiones a internet domesticas. proceso: Programa en ejecución en un sistema informático. prompt: El prompt es lo siguiente que vemos al entrar al sistema, una línea desde donde el sistema nos indica que esta listo para recibir ordenes, que pu ede ser tan sencilla como: $ o algo mas compleja como: amphora:1505200:home/israel:$ Redirección Con los operadores de redirección podemos dirigir la salida de un proceso hacia un dispositivo difere nte al estandar o a un fichero.

Grupo de usuarios de Linux Ags. Manual del participante

– 111 –

respawn: Parámetro para el proceso init que indica la necesidad de volver a arrancar el programa implicado, una vez finalizado o muerto por alguna causa. root: Persona o personas encargadas de la administración del sistema Tiene TODO el privilegio para hacer y deshacer, por lo que su uso para tareas que no sean absolutamente necesarias es muy peligroso. sed: Editor de flujo. Sed se utiliza en la manipulación de cadenas de texto de acuerdo a unas reglas especificadas. Señales: Las señales son eventos que se hacen llegar a un proceso en ejecución para su tratamiento por este. Las señales las podemos mandar nosotros u otros programas a otros programas. Tienen diferentes valores, y en función a esos valores el proceso que las recibe actúa de una manera u otra. setuid: Establece la identidad del usuario del proceso en curso. Si bien es muy común oír hablar del bit setuid. Este bit establece permisos de root para el programa que lo posea, por lo que cualquier usuario puede utilizar ese programa con los mismos privilegios que el administrador. Es fácilmente identificable por la "s" que aparece en vez de la "x" en los permisos del archivo. shell: Traducido del inglés concha o caparazón. El shell es el intérprete de comandos que se establece entre nosotros y el kernel. Hay muchos tipos de shell cada uno con sus propias características, sin embargo el estándar en GNU/Linux es el shell bash ya que es el que forma parte del proyecto GNU. smtp: Simple Mail Transfer Protocol. Más claro el agua. superusuario: Ver root swap: Memoria virtual. Espacio de disco duro que utiliza el kernel en caso de necesitar mas memoria de la que tengamos instalada en nuestro ordenador

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected] Ultima versión utilizada del sistema de ventanas Xwindow. telnet Servicio que nos permite la conexión a otro orden ador de la red, pasando nuestro sistema a ser una terminal de ese ordenador. terminal: Una terminal es un teclado y una pantalla conectados por cable u otro medio a un sistema UNIX/Linux, haciendo uso de los recursos del sistema conectado. tubería Las tuberías son como conexiones entre procesos. La salida de un proceso la enc adenamos con la entrada de otro, con lo que podemos procesar unos datos en una sola linea de comando. uid: User IDentification. Número que identifica al usuario frente al sistema. unix: Sistema operativo creado por AT&T a mediados de los 70 uucp: Unix to Unix CoPy. Sistema de copia de ficheros entre m aquinas con sistema operativo unix. vi: Editor de texto muy potente aunque algo complejo al principio. Es el editor por defecto en casi todas las distribuciones. Hay versiones mejoradas (vim) o versiones para X Xvim. Debería ser obligado su aprendizaje 8-). WindowMaker: Gestor de ventanas con buena apariencia y poco consumidor de recursos. windowmanager: Gestor de ventanas. Programa que se encarga de dar apariencia a los programas que se ejecutan bajo Xwindow, también se encarga de maximizar/minimizar ventanas, ponerles el marco, un fo ndo al escritorio... X ó Xwindow: Entorno grafico. Es el programa que se encarga de dibujar en pantalla todo lo que le solicitan los pr ocesos que corren bajo este entorno. Tiene la facultad de visualizar programas que están siendo ejecutados en otro ordenador de la red. X11R6:

Grupo de usuarios de Linux Ags. Manual del participante

– 112 –

xterm: Terminal virtual que funciona bajo el sistema de ventanas Xwindow.

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

REFERENCIAS ELECTRONICAS

BIBILIOGRÁFIA

Sitio oficial de linux www.linux.org

Título: Linux al día en una hora Autor: Susana Galán, Lino Floriano ISBN: 84-415-0065-7 Colección: Al día en una hora Editorial: Anaya Multimedia Año: 2002 Páis: España

Sitio del grupo de usuarios de linux Aguascalientes. www.gulags.org Sitio del proyecto de documentación de linux. www.ldp.org

Título: La Biblia de Red Hat Linux Autor: David Pitts ISBN: 84-415-0524-1 Colección: La Biblia de Editorial: Anaya Multimedia Fecha de publicación: Enero 1999 Páis: España

Aprendiendo a Aprender Linux http://structio.sourceforge.net/guias/ Sitio Linux para todos www.linuxparatodos.com.mx

Título: Linux Autor: César Martín Pérez, Ismael Pérez Crespo ISBN: 84-415-0406-7 Colección: Guías prácticas Editorial: Anaya Multimedia Fecha de publicación: Enero 1999 Páis: México Título: Linux. Guía de instalación y administración Autor: López ISBN: 84-481-2891-5 Colección: Editorial: Osborne/McGraw Hill Fecha de publicación: Enero 2001 Páis: México Título: Red Hat Linux. Herramientas para la administración de redes. Autor: Steve Maxwell ISBN: 958-41-0220-6 Colección: Editorial: Osborne/McGraw Hill Fecha de publicación: Año 2001

Grupo de usuarios de Linux Ags. Manual del participante

– 113 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

INDICE ALFABETICO A ADMINISTRACIÓN DE PAQUETES RPM (YUM, APT RPM), 60 ADMINISTRACIÓN DE PROCESOS., 50

N NIVELES DE EJECUCIÓN, 49

P

C Permisos de archivos, 26 Características de Linux, 7 COMANDOS BASICOS, 23 COMPILACIÓN DE PROGRAMAS DESDE CÓDIGO FUENTE., 67

R REQUISITOS DE HARDWARE, 13 REVISIÓN KNOPPIX, 14

D S

DISTRIBUCIONES DE LINUX., 11

SISTEMA DE ARCHIVOS, 17

E U

Editor pico, 59 EL ARRANQUE DEL SISTEMA., 47

UNIDAD 2. INSTALACIÓN DE LINUX, 13 UNIDAD 3. PRIMEROS PASOS CON EL SISTEMA LINUX, 17 UNIDAD 4. ADMINISTRACIÓN DEL SISTEMA, 41 UNIDAD 5. EDITORES, 57 UNIDAD 6. INSTALACION DE PROGRAMAS, 60 UNIDAD 7. REDES., 69 UNIDAD I. FUNDAMENTOS, 6 UNIDAD I. FUNDAMENTOS., 6 UTILIZACIÓN DE SECURE SHELL, 35

H Historia y evolución de GNU/Linux, 6

L Linux en Internet y la red local, 9 Linux en Internet, la oficina y la red local , 9 Linux en la oficina., 10

Grupo de usuarios de Linux Ags. Manual del participante

– 114 –

Curso Sistema operativo Linux José Alberto Rodríguez Castañeda [email protected]

MATERIAL DE APOYO

Grupo de usuarios de Linux Ags. Manual del participante

– 115 –