MANUAL DEL PARTICIPANTE

Transcripción

MANUAL DEL PARTICIPANTE
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 << EOF
pdf2ps carta.pdf carta.ps
EOF
convertirá el documento carta.pdf a formato postscript a las 8:40PM del mismo día. La fecha
puede especificarse de muchas maneras, por ejemplo 20:40 20.01.2005 o now+2 hours. Con
el comando atq puede ver las tareas programadas y con atrm puede eliminar una tarea especificando el número (el número de cada tarea programada es mostrado por atq). Cuando
programa una tarea con a t, esta se ejecutará aún cuando usted no tenga una sesión abierta
y mientras el sistema esté operando a la hora programada.
Para que un usuario pueda programar eventos periódicos con cron, el administrador del sistema debe otorgarle permiso. Si usted tiene el permiso podrá emplear el programa crontab
para agregar acciones que se ejecutaran periódicamente. Si teclea sólo crontab -e entrará al
editor que tenga configurado
para modificar su archivo de acciones periódicas
(/var/spool/cron/crontabs/usuario), un ejemplo de tal archivo es:
# Mi archivo de acciones periódicas para cron
PATH=/usr/bin:/usr/local/bin
0 0 24 12 *
$HOME/cron/recuerda1.sh # Cumpleaños
0 * * * * $HOME/cron/hora.sh
que establece la variable de ambiente PATH que se usará al realizar las acciones y especifica dos comandos por ejecutar periódicamente . El script $HOME/cron/recuerda1.sh se ejec utará el 24 de diciembre de cada año a las 00:00 (medianoche), mientras que
$HOME/cron/hora.sh se ejecutara cada hora (a las 0:00, 1:00, 2:00, ... 23:00), todos los días,
todos los meses, todos los años. Un archivo para crontab puede tener líneas con comentarios (iniciadas con el carácter '#'), líneas que definen variables de ambiente y líneas que especifican acciones periódicas compuestas por 6 campos y eventualmente seguidas por un
comentario.
Los campos de estas acciones se separan unos de otros con uno o más espacios y son en
orden: mi nuto, hora, día del mes, mes, día de la semana y comando por ejecutar. cron es un
proceso que cada minuto examina los archi vos crontab de los usuarios y ejecuta los coma ndos cuyo tiempo concue rde con la hora del sistema. El tiempo de un comando concuerda con
la hora del sistema si la hora, los minutos, el mes y bien el día del mes o bien el día de la
semana concuerdan. La hora del sistema concuerda con la hora de una acción si ambas son
iguales o la hora de la acción es el carácter '*', lo análogo ocurre con los minutos, meses y
días.
Grupo de usuarios de Linux Ags.
Manual del participante
– 79 –
Curso Sistema operativo Linux
José Alberto Rodríguez Castañeda
[email protected]
Ejercicios: Administración de procesos
n Revise los procesos que están corriendo en su sistema con los programas ps, pstree, top
y gtop.
n ¿Qué hace el siguiente comando? dvi2ps -o salida.ps entrada.dvi >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.
+<n> :
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 –

Documentos relacionados