Sistemas Operativos 2010 ÍNDICE I FUNDAMENTOS DEL SISTEMA OPERATIVO 2

July 21, 2017 | Autor: Shogoki/01 Kojima | Categoria: Information Technology
Share Embed


Descrição do Produto

UNIVERSIDAD TECNOLÓGICA DE PUEBLA TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Sistemas Operativos 2010 Alejandra Villalva Rojas Ana María Rosas Hernández José David Alanís Urquieta Eric Noé Pérez Osorno Nélida Alicia Casas Reyes

Mayo-Agosto 2010

2010 

Sistemas Operativos

ÍNDICE I FUNDAMENTOS DEL SISTEMA OPERATIVO

2

1.1 Introducción

2

1.2 Evolución de los sistemas operativos 1.2.1 Los primeros sistemas 1.2.2 Sistemas por lotes multiprogramados 1.2.3 Sistemas de tiempo compartido 1.2.4 Sistemas de Computador Personal 1.2.5 Sistemas paralelos 1.2.6 Sistemas Distribuidos

3 3 4 5 5 6 7

1.3 Características de los sistemas operativos 1.3.1 Gestión de procesos 1.3.2 Gestión de la memoria principal 1.3.3 Gestión de archivos 1.3.4 Gestión del sistema de E/S 1.3.5 1.4 Clasificación de los sistemas operativos 1.3.6 Clasificación de los sistemas operativos

8 8 9 9 10

II INSTALACIÓN DE UN SISTEMA OPERATIVO ( Basado en LINUX).

16

2.1 Requerimientos del Sistema Linux 2.2 Procedimiento de instalación caso CentoS 4,2 2.3 Esquema de particiones 2.4 Gestores de arranque PC 2.5 Páginas de otros Sistemas Operativos Linux

16 18 29 30 31

III COMANDOS BASICOS DE LOS SISTEMAS OPERATIVOS

32

3.1 Comandos básicos 3.2 Comandos para el manejo y organización de archivos y directorios 3.2.1 Concepto de archivo 3.2.2 Sistemas archivos 3.2.3 Directorios 3.2.4 El sistema de archivos de LINUX 3.2.5 Comandos para el manejo de directorios 3.2.6 Comandos para el majeo de archivos

32 37 37 38 40 40 43 44

3.3 Comandos para el manejo de procesos 3.3.1 Definición de proceso

62 62

Sistemas Operativos

2010 

3.3.2 ID de un proceso 3.3.3 Estados de un proceso 3.3.4 Comandos relacionados con la ejecución de procesos 3.3.5 Redireccionamiento de entrada y salida estándar 3.3.6 Conexión de procesos mediante tuberías 3.3.7 Procesamiento en segundo plano

63 64 65 68 70 70

3.4 Editor vi 3.4.1 Modo comando 3.4.2 Modo de inserción 3.4.3 Modo ejecución de comandos

71 72 73 74

3.5 Administración de cuentas y grupos de usuarios 3.5.1 Comandos relacionados con la administración de cuentas y grupos de usuarios

79 83

IV SERVICIOS DE RED

85

4.1 Herramientas de administración de los servicios 4.1.1. Herramienta de configuración de servicios 4.1.2 ntsysv 4.1.3 chkconfig

85 86 88 89

4.2 Servicio de impresión

90

4.3 Servicio web 4.3.1 Estándares empleados 4.3.2 Ventajas de los servicios web 4.3.3 Archivos de configuración de Apache

93 93 94 94

4.4 Servidor de correo electrónico: SENDMAIL 4.4.1 Comando mail

95 96

4.5 Compartir recursos entre diferentes sistemas operativos 4.5.1 Compartir Recursos en Red con Samba 4.5.2 Instalación y Configuración 4.5.3 Impresoras en Samba 4.5.4 Compartiendo directorios a través de Samba

98 98 98 100 101

4.6 Servicio de acceso remoto 4.6.1 Conexión a un servidor remoto usando ssh

107 107

Fuentes Bibliográficas

109

2010 

Sistemas Operativos

UNIDAD 1 FUNDAMENTOS DEL SISTEMA OPERATIVO 1.1 Introducción Un sistema operativo es un programa que actúa como intermediario entre el usuario de un computador y el hardware del computador. El propósito de un sistema operativo es crear un entorno en el que el usuario pueda ejecutar programas de forma cómoda y eficiente. Un sistema operativo es una parte importante de casi todos los sistemas de cómputo. Éstos últimos se pueden dividir a grandes rasgos en cuatro componentes: el hardware, el sistema operativo, los programas de aplicación (o del usuario) y los usuarios

Figura 1.1 Perspectiva abstracta de los componentes de un sistema operativo

Un sistema operativo es similar a un gobierno. Los componentes de un sistema de computador son su hardware, software y datos. El sistema operativo proporciona los medios para aprovechar adecuadamente esos recursos durante el funcionamiento del sistema de computador. Al igual que un gobierno, el sistema operativo no desempeña ninguna función útil por sí solo; se limita a crear un entorno dentro del que otros pueden realizar un trabajo útil. Podemos ver al sistema operativo como un asignador de recursos. Un sistema de computación tiene muchos recursos (hardware y software) que pueden ser necesarios para resolver un problema: tiempo de CPU, espacio de memoria, espacio para almacenamiento Página 2

Sistemas Operativos

2010 

de archivos, dispositivos de E/S, y demás. El sistema operativo actúa como gestor de dichos recursos y los asigna a programas y usuarios específicos según los necesiten para sus tareas. Dado que puede haber muchas solicitudes de recursos que tal vez no se puedan satisfacer simultáneamente, el sistema operativo debe decidir cuáles solicitudes atenderá asignando recursos para operar el sistema de computación de manera eficiente y justa.

1.2 Evolución de los sistemas operativos Los sistemas operativos han evolucionado en los últimos años, a continuación se presenta una reseña histórica que destaca diferencias y similitudes entre los sistemas:

1.2.1 Los primeros sistemas Los primeros computadores eran máquinas con un tamaño (físico) enorme que se ejecutaban desde una consola. El programador, que también era el operador del sistema de computación, escribía un programa y luego operaba el programa directamente desde la consola del operador. Primero, el programa se cargaba manualmente en la memoria usando los interruptores del tablero frontal (una instrucción a la vez), desde cinta de papel o desde tarjetas perforadas. Luego se oprimían los botones apropiados para establecer la dirección de inicio y poner en marcha la ejecución del programa. Mientras el programa se ejecutaba, el programador/operador podía vigilar su ejecución gracias a las luces de la consola. Si se descubrían errores, programador podía detener el programa, examinar el contenido de la memoria y los registros, y depurar el programa directamente desde la consola. Las salidas se imprimían o se perforaban en cinta de papel o tarjetas para imprimirse posteriormente. El tiempo de preparación del trabajo era un verdadero problema. Mientras se estaban montando cintas o el programador estaba operando la consola, la CPU permanecía ociosa. Además estaban los costos de operación de electricidad, enfriamiento, programadores, y demás. Por tanto, el tiempo de computador era extremadamente valioso, y los dueños querían que sus computadoras se usaran lo más posible. La solución tuvo dos aspectos: primero, se contrató un operador de computador profesional, el programador ya no operaba la máquina. Tan pronto como terminaba un trabajo, el operador podía iniciar el siguiente, debido a su mayor experiencia, el tiempo se redujo. El segundo ahorro de tiempo considerable implicó la reducción del tiempo de preparación. Los trabajos con necesidades similares se agrupaban en lotes y se ejecutaban juntos en el computador. Por ejemplo, supongamos que el operador recibía un trabajo en FORTRAN, uno en COBOL y otro en FORTRAN. Si los ejecutaba en ese orden, tendría que preparar el sistema para FORTRAN (cargar las cintas del compilador, etc.), Página 3

2010 

Sistemas Operativos

luego para COBOL y luego otra vez para FORTRAN. En cambio, el operador ejecutaba los dos programas FORTRAN como un lote y el de COBOL como un lote diferente.

Figura 1.2 Conjunto de tarjetas para un sistema por lotes sencillo

1.2.2 Sistemas por lotes multiprogramados El spooling da origen a una importante estructura de datos: la reserva de trabajos. Como resultado del spooling, puede haber varios trabajos ya leídos esperando en el disco, listos para ejecutarse. Al tener reserva de trabajos en disco, el sistema operativo puede escoger cuál trabajo ejecutará a continuación, a fin de mejorar el aprovechamiento de la CPU. Si varios trabajos están en un dispositivo de acceso directo, como un disco, es posible la planificación de trabajos. El aspecto más importante de la planificación de trabajos es la capacidad de multiprogramar. La idea es la siguiente: El sistema operativo, mantiene varios trabajos en la memoria a la vez (Figura 1.3). Este conjunto de trabajos es un subconjunto de los que se mantienen en la reserva de trabajos. El sistema operativo escoge uno de los trabajos que están en la memoria y comienza a ejecutarlo. Tarde o temprano, el trabajo tendrá que esperar mientras se lleva a cabo alguna tarea, como el montaje de una cinta o la terminación de una operación de E/S. En un sistema sin multiprogramación, la CPU estaría ociosa. En un sistema multiprogramado, el sistema operativo simplemente selecciona otro trabajo y lo ejecuta. Cuando ese trabajo necesita esperar, la CPU se conmuta a otro trabajo, y así sucesivamente. En algún momento, el primer trabajo terminará su espera y recuperará la CPU, que nunca estará ociosa mientras haya algún trabajo que ejecutar.

Página 4

2010 

Sistemas Operativos

Figura 1.3 Organización de la memoria en un sistema multiprogramado

1.2.3 Sistemas de tiempo compartido Los sistemas por lotes multiprogramados proporcionan un entorno en el que los distintos recursos del sistema (CPU, memoria, dispositivos periféricos) se aprovechan de manera efectiva. No obstante, tienen ciertos problemas desde el punto de vista del usuario, por ejemplo que el programador no puede modificar un programa durante su ejecución a fin de estudiar su comportamiento. El tiempo compartido, o multitareas, es una extensión lógica de la multiprogramación. Se ejecutan múltiples trabajos mientras la CPU se conmuta entre ellos, pero la conmutación es tan frecuente que los usuarios pueden interactuar con cada programa durante la ejecución. La idea del tiempo compartido se demostró ya en 1960, pero dada la dificultad y el costo de construir tales sistemas, apenas se hicieron comunes a principios de la década de 1970. A medida que ha crecido la popularidad del tiempo compartido, los investigadores han intentado fusionar los sistemas por lotes y de tiempo compartido. Muchos sistemas de computador que se diseñaron primordialmente para como sistemas por lotes se han modificado para crear un subsistema de tiempo compartido. Por ejemplo, el OS/360 de IBM, un sistema por lotes, se modificó para apoyar la opción de tiempo compartido (TSO, Time Sharing Option). Al mismo tiempo, son varios los casos de sistemas de tiempo compartido a los que se ha añadido un subsistema por lotes. Hoy día, la mayoría de los sistemas ofrecen tanto procesamiento por lotes como tiempo compartido, aunque su diseño y uso básico tiende a ser de un tipo o del otro.

1.2.4. Sistemas de Computador Personal Con la caída en los costos del hardware, ha vuelto a ser factible tener un sistema de computación dedicado a un solo usuario. Estos tipos de sistemas se conocen como computadores personales (PC, personal computer). No hay duda de que los dispositivos de E/S han cambiado: los tableros de interruptores y los lectores de tarjetas han sido Página 5

Sistemas Operativos

2010 

reemplazados por teclados tipo máquina de escribir y ratones. Las impresoras de líneas y perforadoras de tarjetas han cedido el paso a pantallas e impresoras pequeñas y rápidas. Las computadoras personales aparecieron en la década de 1970. Se trata de minicomputadoras mucho más pequeñas y económicas que los sistemas de macrocomputador (mainframes). Durante su primera década, las CPU de los PC carecían de las funciones necesarias para proteger el sistema operativo de los programas de usuario. No obstante, los objetivos de estos sistemas operativos han cambiado con el tiempo; en lugar de maximizar el aprovechamiento de la CPU y los periféricos, los sistemas optan por maximizar la comodidad del usuario y la rapidez con que responden a sus necesidades. Estos sistemas incluyen los PC que ejecutan Microsoft Windows y el Apple Macintosh.

1.2.5 Sistemas paralelos La tendencia actual es hacia los sistemas multiprocesador. Tales sistemas tienen más de un procesador en comunicación íntima, los cuales comparten el bus del computador, el reloj y a veces la memoria y los dispositivos periféricos. Estos sistemas están fuertemente acoplados. Una ventaja de construir estos sistemas es el aumento en el rendimiento. Al incrementar el número de procesadores, esperamos realizar más trabajo en un tiempo más corto. Sin embargo la proporción de aumento de la velocidad con n procesadores no es n, sino más bien menor que n. Cuando varios procesadores cooperan para llevar a cabo una tarea, se incurre en cierto “gasto extra” para mantener todos los componentes funcionando correctamente. Este gasto extra, aunado a la contención por los recursos compartidos, reduce la ganancia que cabría esperar de los procesadores adicionales. Los sistemas de múltiple procesador más comunes en la actualidad siguen el modelo de multiprocesamiento simétrico, en el que cada procesador ejecuta una copia idéntica del sistema operativo, y estas copias se comunican entre sí cuando es necesario. Algunos sistemas utilizan multiprocesamiento asimétrico, en el que a cada procesador se asigna una tarea específica. Un procesador maestro controla el sistema; los demás procesadores obtienen sus instrucciones del maestro o bien tienen tareas predefinidas. Este esquema define una relación maestro-esclavo. El procesador maestro planifica y asigna trabajo a los procesadores esclavos. Un ejemplo de sistema con multiprocesamiento simétrico es la versión encoré de UNIX para el computador Multimax. Este computador puede configurarse de modo que utilice docenas de procesadores, todos los cuales ejecutan una copia de UNIX. La ventaja de este modelo es que muchos procesos pueden ejecutarse simultáneamente (N procesos si hay N CPU) sin que haya deterioro del desempeño.

Página 6

Sistemas Operativos

2010 

Es importante darse cuenta de que la diferencia entre multiprocesamiento simétrico y asimétrico puede deberse al hardware o al software. Podría existir hardware especial para diferenciar los múltiples procesadores, o podría escribirse software que permita un solo maestro y varios esclavos. Por ejemplo, el sistema operativo de Sun, SunOS versión 4, ofrece multiprocesamiento asimétrico, mientras que la versión 5 (Solaris 2) es simétrica.

1.2.6 Sistemas distribuidos En contraste con los sistemas fuertemente acoplado, los procesadores no comparten la memoria ni el reloj. En vez de ello, cada procesador tiene su propia memoria local. Los procesadores se comunican entre sí a través de diversas líneas de comunicación, como buses de alta velocidad o líneas telefónicas. Solemos decir que tales sistemas están débilmente acoplados o distribuidos. Las razones para construir sistemas distribuidos son: •

• • •

Recursos compartidos: un sistema distribuido ofrece mecanismos para compartir archivos en sitios remotos, procesar información de una base de datos distribuida, imprimir archivos en sitios remotos, usar equipos especializados remotos, etc. Computación más rápida: un sistema distribuido distribuye el cálculo entre diferentes sitios y lo ejecuta de forma concurrente. Confiabilidad: si un sitio de un sistema distribuido falla, los sitios restantes podrían seguir funcionando. Comunicación: si muchos sitios están conectados a través de una red de comunicaciones, los procesos de diferentes sitios tienen la oportunidad de intercambiar información.

1.2.7 Sistemas de tiempo real Se usa cuando los requisitos de tiempo de la operación de un procesador o del flujo de datos son estrictos; por ello, a menudo se utilizan como dispositivos de control en aplicaciones dedicadas. Los sensores envían datos al computador, el cual debe analizar estos datos y posiblemente ajustar controles a fin de modificar las entradas de los sensores. Hay dos tipos de sistemas de tiempo real. Un sistema de tiempo real duro garantiza que las tareas críticas se terminarán a tiempo. Este objetivo requiere que todos los retardos del sistema estén limitados, desde la obtención de datos almacenados hasta el tiempo que el sistema operativo tarda en atender cada solicitud que se le presenta. Tales restricciones de tiempo determinan los recursos que están disponibles en este tipo de sistemas. El almacenamiento secundario de cualquier índole suele estar limitado o ausente, y los datos se almacenan de preferencia en memoria de corto plazo o en memoria de sólo lectura ROM. También está ausente la mayor parte de las funciones avanzadas de los sistemas Página 7

Sistemas Operativos

2010 

operativos, ya que tienden a separar al usuario aún más del hardware, y tal separación causa incertidumbre acerca del tiempo que una operación tarda. Un tipo menos restrictivo es el sistema de tiempo real blando, en el que una tarea de tiempo real crítica goza de prioridad hasta que se lleva a cabo. Al igual que los sistemas de tiempo real duros, es preciso limitar los retardos del núcleo: no es posible mantener a una tarea de tiempo real esperando indefinidamente a que el núcleo la ejecute. En vista de que no apoyan el cumplimiento estricto de plazos, es riesgoso utilizarlos en control industrial y robótica, aunque hay varias áreas en las que pueden ser útiles, como multimedia, realidad virtual y proyectos científicos avanzados como la exploración submarina y planetaria.

1.3 Características de los sistemas operativos Un sistema operativo crea el entorno en el que se ejecutan los programas. Los sistemas operativos varían mucho en su estructura interna, pues se organizan según muchas filosofías de distintas. El diseño de un sistema operativo es una tarea de gran magnitud. Es importante definir bien los objetivos del sistema antes de iniciar el diseño. Aunque no todos los sistemas operativos tienen la misma estructura, muchos sistemas modernos comparten el objetivo de apoyar los tipos de componentes del sistema que se bosquejan en las siguientes secciones.

1.3.1. Gestión de procesos Un programa no puede hacer nada si la CPU no ejecuta sus instrucciones. Podemos pensar en un proceso como una porción de un programa en ejecución o todo el programa. Un proceso necesita ciertos recursos, incluidos tiempos de CPU, memoria, archivos y dispositivos de E/S, para llevar a cabo su tarea. Estos recursos se otorgan al proceso en el momento en que se crea, o bien se le asignan durante su ejecución. Además de los diferentes recursos físicos y lógicos que un proceso obtiene cuando se le crea, podrían pasársele algunos datos de inicialización (entradas). Un programa por sí solo no es un proceso; un programa es una entidad pasiva, como el contenido de un archivo almacenado en disco, mientras que un proceso es una entidad activa, con un contador de programa que especifica la siguiente instrucción por ejecutar. La CPU ejecuta una instrucción del proceso tras otra, hasta que el proceso termina. Además en cualquier instante dado, se ejecuta cuando más una instrucción para el proceso. Así, aunque haya dos procesos asociados al mismo programa, se considerarán como dos secuencias de ejecución individuales.

Página 8

Sistemas Operativos

2010 

El sistema operativo se encarga de las siguientes actividades relacionadas con la gestión de procesos: • • • • •

Crear y eliminar procesos tanto de usuarios como del sistema Suspender y reanudar procesos Proveer mecanismos para la sincronización de procesos Proveer mecanismos para la comunicación entre procesos Proveer mecanismos para manejar bloqueos mutuos (deadlocks)

1.3.2 Gestión de la memoria principal La memoria principal es crucial para el funcionamiento de un sistema de computación moderno. La memoria principal es una matriz grande de palabras o bytes, cuyo tamaño va desde cientos de miles hasta cientos de millones. Cada palabra o byte tiene su propia dirección. La memoria principal es un depósito de datos a los que se puede acceder rápidamente y que son compartidos por la CPU y los dispositivos de E/S. El procesador central lee instrucciones de la memoria principal durante el ciclo de obtención de instrucciones, y lee y escribe datos de la memoria principal durante el ciclo de obtención de datos. A fin de mejorar tanto el grado de utilización de la CPU como la rapidez con que el computador responde a sus usuarios, es necesario mantener varios programas en la memoria. Hay muchos esquemas de gestión de memoria distintos que reflejan diversas estrategias, y la efectividad de los diferentes algoritmos depende de la situación específica. La selección de un esquema de gestión de memoria para un sistema en particular depende de muchos factores, pero sobre todo del diseño del hardware del sistema. El sistema operativo se encarga de las siguientes actividades de gestión de memoria: • • •

Saber cuáles partes de la memoria se están usando actualmente y quién las está usando. Decidir cuáles procesos se cargarán en la memoria cuando se disponga de espacio. Asignar y liberar espacio de memoria según se necesite.

1.3.3 Gestión de archivos La gestión de archivos es uno de los componentes más visibles de un sistema operativo. Los computadores pueden almacenar información en varios tipos distintos de medios físicos. Los medios más comunes son cinta magnética, disco magnético y disco óptico. Cada uno de éstos tiene sus propias características y organización física y cada medio se controla con un dispositivo como una unidad de disco que tiene características distintas y

Página 9

Sistemas Operativos

2010 

únicas. Estas propiedades incluyen la rapidez, capacidad, taza de transferencia de datos y método de acceso (secuencial o aleatorio). El sistema operativo implementa el concepto abstracto de archivo administrando los medios de almacenamiento masivo y los dispositivos que los controlan. Además los archivos normalmente se organizan en directorios con objeto de facilitar su uso. Por último, si varios usuarios tienen acceso a los archivos, podría ser deseable controlar quién y de qué modo puede acceder a los archivos. El sistema operativo se encarga de las siguientes actividades relacionadas con la gestión de archivos: • • • • •

Crear y eliminar archivos. Crear y eliminar directorios. Proveer las primitivas para manipulación de archivos y directorios. Establecer la correspondencia de los archivos con el almacenamiento secundario. Resguardar los archivos en medios de almacenamiento estables (no volátiles).

1.3.4 Gestión del sistema de E/S Uno de los objetivos de un sistema operativo es ocultar las peculiaridades de dispositivos de hardware específicos de modo que el usuario no las perciba. Por ejemplo, en UNIX, el subsistema de E/S oculta las peculiaridades de los dispositivos de E/S del resto del sistema operativo mismo. Dicho subsistema consiste en: • • •

Un componente de gestión de memoria que incluye el uso de buffers, caché y spool. Una interfaz general con los controladores de dispositivos. Drivers (Controladores de software) para dispositivos de hardware específico.

Sólo el driver del dispositivo conoce las peculiaridades del dispositivo específico al que está asignado.

1.4 Clasificación de los sistemas operativos Un sistema operativo moderno puede ser tan grande y complejo que debe ser diseñado con mucho cuidado para que funcione correctamente y sea fácil de modificar. Una estrategia común consiste en dividir la tarea en componentes pequeños, en lugar de tener un sistema monolítico. Cada uno de estos módulos debe ser una porción de bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas. De acuerdo a la forma en que los componentes de un sistema se conectan entre sí y se combinan para formar un núcleo, puede mencionarse la siguiente clasificación de sistemas operativos.

Página 10

2010 

Sistemas Operativos

1.4.1 Estructura simple Hay muchos sistemas comerciales que no tienen una estructura bien definida. Es común que tales sistemas operativos hayan sido en un principio sistemas pequeños, sencillos y limitados, y luego hayan crecido más allá de su alcance original. MS-DOS es un ejemplo; originalmente fue diseñado e implementado por un puñado de personas que no tenían idea de la popularidad que llegaría a adquirir. Se escribió con objeto de proporcionar el máximo de funcionalidad en el mínimo de espacio, a causa del hardware limitado en el que se ejecutaba, y por ello no se dividió con cuidado en módulos. En la figura 1.4 se muestra su estructura.

Figura 1.4 Estructura de capas de MS-DOS

En MS-DOS, las interfaces y niveles de funcionalidad no están bien separados. Por ejemplo, los programas de aplicación pueden acceder a las rutinas de E/S básicas para escribir directamente en la pantalla y en las unidades de disco. Tal libertad deja al MS-DOS a merced de programas erróneos (o mal intencionados), y causa caídas del sistema cuando los programas de usuario fallan. Desde luego, MS-DOS también estaba limitado al hardware de su época. Dado que el Intel 8088 para el cual fue diseñado no cuenta con modo dual ni protección por hardware, los diseñadores del MS-DOS no tuvieron más opción que dejar el hardware básico accesible. Otro ejemplo de estructuración limitada es el sistema operativo UNIX original. UNIX es un sistema que inicialmente estuvo limitado por la funcionalidad del hardware. UNIX consiste en dos partes separables: el núcleo y los programas del sistema. El núcleo se divide a su vez en una serie de interfaces y controladores de dispositivos que se han agregado y ampliado con el paso de los años a medida que UNIX ha evolucionado. El sistema operativo UNIX se puede ver como la serie de capas de la figura 1.5. Todo lo que está por debajo de la interfaz de llamadas al sistema y arriba del hardware físico es el núcleo, que desempeña las funciones de gestión del sistema de archivos, planificación de la CPU, gestión de la memoria, etc., por medio de llamadas al sistema. En conjunto, esto implica Página 11

2010 

Sistemas Operativos

una enorme cantidad de funcionalidad combinada en un solo nivel. Los programadores de sistemas utilizan las llamadas al sistema apoyadas por el núcleo para ofrecer funciones útiles, como compilación y manipulación de archivos.

Figura 1.5 Estructura del sistema UNIX

Las llamadas al sistema definen la interfaz del programador con UNIX; el conjunto de programas del sistema que comúnmente están disponibles definen la interfaz del usuario. Las interfaces del programador y del usuario definen el contexto que el núcleo debe apoyar. 1.4.2 Enfoque por capas La modularización de un sistema se puede poner en práctica de muchas maneras; la más atractiva es el enfoque de capas, que consiste en dividir el sistema operativo en varias capas (niveles), cada una construida sobre las capas inferiores. La capa inferior (capa 0) es el hardware; la capa más alta (capa N) es la interfaz con el usuario. Una capa del sistema operativo es una implementación de un objeto abstracto que es el encapsulamiento de datos y de operaciones que pueden manipular esos datos. En la figura 1.6 se representa una capa de sistema operativo representativa, que designamos capa M. Esta capa, consiste de en algunas estructuras de datos y un conjunto de rutinas que las capas de nivel superior pueden invocar. La capa M, a su vez, puede invocar operaciones de capas de niveles más bajos.

Página 12

2010 

Sistemas Operativos

Figura 1.6 Capa de un sistema operativo

La principal ventaja del enfoque de capas es la modularidad. Las capas se escogen del modo que cada una utilice sólo funciones (operaciones) y servicios de capas de los niveles inferiores. Esto simplifica la depuración y la verificación del sistema porque por definición sólo utiliza el hardware básico (que se supone correcto) para implementar sus funciones. Una vez depurada la primera capa, se puede dar por sentado su funcionamiento correcto mientras se trabaja con la segunda capa, y así sucesivamente. Si se encuentra un error durante la depuración de una capa en particular, sabemos que el error está en esa capa, porque las capas inferiores ya están depuradas. Así, el diseño e implementación del sistema se simplifica cuando el sistema se divide en capas. El enfoque de diseño por capas se usó por primera vez en el sistema operativo THE creado en la Technische Hogesschool Eindhoven. El sistema THE se definió en seis capas, como se muestra en la figura 1.7 capa 5:

programas de usuario

capa 4:

buffers para dispositivos de entrada y salida

capa 3:

driver de la consola del operador

capa 2:

gestión de memoria

capa 1:

planificación de CPU

capa 0:

hardware Figura 1.7 Estructura de capas de THE

Página 13

Sistemas Operativos

2010 

Este enfoque puede utilizarse de muchas formas. Por ejemplo, el sistema Venus también se diseñó en capas. El principal problema del enfoque en capas tiene que ver con la definición apropiada de las distintas capas. Puesto que una capa sólo puede usar las capas que están a un nivel más bajo, la planificación deber ser muy cuidadosa. El OS/2 es un descendiente del MS-DOS con las características adicionales de ser multitareas y operar en modo dual, entre otras. A causa de su mayor complejidad y del hardware más potente para el cual se diseñó, el OS/2 se implementó con más capas. A diferencia de MS-DOS, OS/2 no permite el acceso directo de los usuarios a los recursos de niveles inferiores, con lo que el sistema operativo tiene más control sobre el hardware y más conocimiento de qué recursos está usando cada programa. La primera versión de Windows NT, tenía una organización muy orientada a hacia las capas. Sin embargo, el desempeño de esta versión era pobre en comparación con el de Windows 95. En Windows NT 4.0 se remediaron algunos de estos problemas de desempeño transfiriendo capas del espacio de usuarios al del núcleo, e integrándolas de forma más íntima.

1.4.3 Máquinas virtuales Conceptualmente, un sistema de computador se compone de capas. El hardware es el nivel más bajo en todos estos sistemas. El núcleo que es ejecuta en el siguiente nivel utiliza las instrucciones del hardware para crear un conjunto de llamadas al sistema que las capas exteriores pueden usar. Así, los programas del sistema que están arriba del núcleo pueden usar llamadas al sistema o instrucciones de hardware y en ciertos sentidos estos programas no distinguen entre las dos. Algunos sistemas llevan este esquema un paso más allá permitiendo a los programas de aplicación invocar fácilmente los programas del sistema. Aquí también, aunque los programas del sistema están en un nivel más alto que las demás rutinas, los programas de aplicación podrían ver todo lo que está debajo de ellos en la jerarquía como si formara parte de la máquina misma. Este enfoque de capas se lleva a su conclusión lógica en el concepto de máquina virtual. El sistema operativo VM para sistemas IBM es el mejor ejemplo del concepto de máquina virtual, porque IBM fue de los primeros que trabajaron en esta área. Utilizando planificación de CPU y técnicas de memoria virtual, un sistema operativo puede crear la ilusión de que múltiples procesos se ejecutan cada uno en su propio procesador con su propia memoria (virtual). Desde luego, lo normal es que el proceso tenga características adicionales, como llamadas al sistema y un sistema de archivos, que el hardware desnudo no provee. El enfoque de máquina virtual, en cambio, no proporciona funcionalidad adicional, sino que presenta una interfaz que es idéntica al hardware Página 14

Sistemas Operativos

2010 

desnudo subyacente. Cada proceso recibe una copia (virtual) del computador subyacente (figura 1.8).

Figura 1.8 Modelos de sistemas. (a) Máquina no virtual. (b) Máquina virtual

Página 15

2010 

Sistemas Operativos

UNIDAD II INSTALACIÓN DE UN SISTEMA OPERATIVO ( Basado en LINUX).

Objetivo: El alumno instalará la plataforma de sistemas operativos Centos 4.2 comprobando sus configuraciones en equipos de cómputo. Introducción Un Sistema Operativo (SO) es una colección organizada de rutinas o extensiones de software del hardware. Estas rutinas de control hacen funcionar una computadora y proporcionan un entorno para la ejecución de los programas. Existen otros programas que se apoyan en el SO para poder acceder a los recursos que necesitan. Esto se lleva a cabo a través de llamadas sistema operativo. También el SO debe brindar una forma de que el usuario se pueda comunicar con él a través de una interfaz que le brinde una vía de comunicación con el hardware del sistema informático. El objetivo principal del SO es lograr que los sistemas informático se emplee de modo eficiente y como objetivo secundario se use de manera cómoda y ofrecer servicios a los programas y los usuarios para facilitar la tarea de programación. Para lograr esto el hardware debe brindar algún mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y así mismo el SO debe poder utilizar este recurso de hardware de modo que esto se cumpla.

Instalación Se tiene que tener en cuenta que cuanto más se conozca de su computadora menos problemas tendrá en la instalación de GNU/Linux. Se tendrán que tener a mano una serie de información elemental que le serán requeridas en el momento de la instalación tales como el idioma del teclado y la zona del tiempo donde se encuentra. Aunque parezca elemental, es aquí donde la mayoría se paraliza o pone mal los datos, lo que traerá futuros dolores de cabeza. Es importante conocer que las diferentes distribuciones más importantes que existen bajo Linux se instalan en forma similar.

2.1 Requerimientos del Sistema Linux Requisitos de hardware Para que GNU/Linux funcione correctamente se tendrá que contar con un sistema Pentium III con disco rígido de por lo menos 20 GB con al menos 16 MB para memoria en modo gráfico, se recomienda 2 GB en RAM. Página 16

Sistemas Operativos

2010 

Espacio en el disco duro Antes de comenzar el proceso de instalación, deberán reunirse al menos una de las condiciones siguientes: • •

Su computadora deberá tener espacio sin particionar para la instalación de Linux. Deberá contar con una o más particiones que pueda borrar para conseguir más espacio libre para instalar Linux.

Casi todos los sistemas operativos modernos utilizan particiones de discos, y Linux no es una excepción. Cuando instale Linux, tendrá que trabajar con particiones de disco. Si Linux va a compartir su sistema con otro SO, necesitará estar seguro de tener espacio disponible suficiente en su(s) disco(s) duro(s) para la instalación. El espacio de disco destinado a Linux debe estar separado del espacio utilizado por otros sistemas operativos que puedan estar instalados en su sistema, como por ejemplo Windows, OS/2, o incluso una versión diferente de Linux. Al menos dos particiones (/ y swap) deben estar dedicadas a Linux. Hay que recordar algo muy importante a la hora de realizar un particionamiento del disco. GNU/Linux necesita como mínimo 2 particiones. Una principal (raíz) y otra de intercambio (swap). Si se pensara poner dicha máquina como servidor, tendríamos que pensar en por lo menos MB de RAM adicional por usuario en modo texto y 2 MB para modo grafico que aunque parezca demasiado, cuando se cuenta con 100 usuarios usando el entorno gráfico se vera que la memoria se evapora como agua en el desierto. Si el trabajo a realizar requiere de un entorno gráfico como el KDE o el GNOME y el uso de aplicaciones ofimáticas como el OpenOffice, los requerimientos serán mayores debido a que estos requiere por lo menos de 3 GB para su correcto funcionamiento y de un Pentium IV por lo menos. Puede consultar también la lista de compatibilidad de hardware de linuxQuestions.org disponible en: http://www.linuxquestions.org/hcl/index.php No se trataran el tema de instalación a partir de cada una de las distribuciones ya que en cada una de ellas existe la documentación para poder hacerlo. Lo que se tratara es la instalación a partir de un sistema que tenga Windows instalado, que será la mayoría de las ocasiones. Actualmente Linux es un sistema fácil de usar. Cada distribución trae programas seleccionados por los autores de la distribución incluidos en el cd o en el dvd, y se pueden instalar tanto al comienzo de la instalación como luego de haber instalado el sistema operativo debe iniciar cada vez que enciendas el ordenador; en este caso practico instalaremos Centos 4.2.

Página 17

2010 

Sistemas Operativos

2.2 Procedimiento de instalación caso CentoS 4,2 Lo primero que necesita es insertar el primer cd de instalación del sistema operativo Centos 4.2 en la unidad óptica. En seguida resetear la pc para asegurarse de que la unidad de CD óptica es el primer dispositivo de arranque, lo que se puede hacer por entrar en la BIOS (normalmente se hace pulsando la tecla eliminar en el arranque, o tecla F2, F10 según el modelo ) y el control bajo la prioridad de CD / DVD está por encima de la unidad de disco duro, si no cambiarlo en consecuencia y guarde los cambios A) Introduzca el CD instalador de Linux distribución Centos , reinicie la PC y oprima una tecla para inicializar desde la misma…espera hasta que Centos cargue la siguiente pantalla: (Figura 2.1)

Figura 2.1 Pantalla inicial

B) Una vez que ha cargado se puede seleccionar el 'install' oprimiendo la tecla enter para iniciar la instalación. Posteriormente Centos le preguntara si quiere empezar con el testing; pulse la tecla Tab hasta que Skip es puesto en relieve, a continuación pulse Intro.

Página 18

2010 

Sistemas Operativos

Figura 2.2 Testing

C) El "Bienvenidos" es visualizada. Pulse el botón Next (Figura 2.3)

Figura 2.3 Iniciar instalación

Página 19

2010 

Sistemas Operativos

D) Obtendrá la siguiente imagen (figura 2.4 ) para seleccionar el lenguaje, busque Spanish (Español), pulse el botón Next

Figura 2.4 Selección del idioma

E) Centos le pedirá la configuración del teclado, esta será igual en español, continúe oprimiendo Siguiente (figura 2 5)

Figura 2.5 Configuración del teclado

Página 20

2010 

Sistemas Operativos

F) Lea y seleccione el mejor tipo de instalación que le convenga y se ajuste a sus necesidades; en este caso le daremos Servidor para que podamos configurar servicios en red posteriormente. (figura 2.6)

Figura 2.6 Tipo de Instalación

G)

Una vez seleccionado el Servidor Centos nos proporciona la siguiente pantalla. La pantalla de Configuración del Particionamiento del disco aparece. Pulse la tecla Tab (tabulador) hasta que Particionamiento Automático se pone de relieve si desea configurar las particiones en un entorno interactivo, seleccione Participación manual con Disk Druid. Si quiere conservar los datos y las particiones seleccione “Particionamiento Automático” este guardara todas las particiones y usará el espacio libre; de clic en el botón Siguiente.

Página 21

2010 

Sistemas Operativos

Figura 2.7 Tipo de partición

Una vez particionado el disco en forma automática se tendrá la siguiente pantalla (figura 2.8), seleccione “Guardar todas las particiones y use el espacio libre existente” para obtener un arranque dual. Continúe con el botón Siguiente.

Figura 2.8 Particionamiento automático

Página 22

2010 

Sistemas Operativos

Asegúrese que la opción del check box “Revise (y modifique si lo necesita) las particiones que ha creado” no este activada (sin palomita) para que Linux Centos no le de la pantalla de Configuración del Disco Duro Manual. H) Continuando con la instalación Centos nos dará la pantalla de gestor de Arranque que por defecto se instalara el GRUB (es un administrador o gestor de arranque múltiple, desarrollado por el proyecto GNU, GRUB en español significa Gran Gestor de Arranque Unificado, que se usa comúnmente para iniciar uno de dos o más sistemas operativos instalados en un mismo computador, se usa principalmente en sistemas operativos GNU/Linux. En cambio seleccione el botón siguiente para continuar.

Figura 2.9 Gestor de arranque

Centos da la opción de cambiar el gestor de arranque aunque este no se recomienda, también puede agregar otros sistemas operativos adicionales con el botón “añadir” , en caso de tener ya Windows, Centos lo reconocerá y creará las configuraciones necesarias para que el GRUB haga un arranque dual. (figura 2.9). I)

Después Centos presentará la pantalla de configuración de Cortafuegos, este le dará mayor seguridad al equipo por lo tanto, se recomienda que lo configure activando las casillas de verificación sobre el cuadro blanco, para continuar dar clic en el botón siguiente. (figura 2.10) Página 23

2010 

Sistemas Operativos

Figura 2.10 Configuración de firewall

J) Posteriormente tenemos la pantalla de Configuración de Red; un host o anfitrión es un ordenador que funciona como el punto de inicio y final de las transferencias de datos. Más comúnmente descrito como el lugar donde reside un sitio web. Un host de Internet tiene una dirección de Internet única (direción IP) y un nombre de dominio único o nombre de host.

Figura 2.11 Configuración de los servicios de red

Página 24

2010 

Sistemas Operativos

Una puerta de enlace predeterminada es un dispositivo (un router o una computadora) que sirve como enlace entre dos redes informáticas, es decir, es el dispositivo que conecta y dirige el tráfico de datos entre dos redes. Generalmente en las casas, ese dispositivo es el router y Cable-Modem o DSL-Modem que conecta la red local de la casa (LAN) con Internet (WAN). En las empresas, muchas veces es una computadora la que dirige el tráfico de datos entre la red local y la red exterior, y, generalmente, también actúa como servidor proxy y firewall. (fig. 11) Este dispositivo, al conectar dos redes de IP, poseerá: una dirección IP privada: que servirá para identificarse dentro de la red local, una dirección IP pública: que servirá para identificarse dentro de la red exterior. Ejemplo una red compuesta por cinco dispositivos (generalmente computadoras, pero pueden ser impresoras, etc.) y un enrutador: Dirección de los dispositivos: 192.168.4.3 (computadora 1) 192.168.4.4 (computadora 2) 192.168.4.5 (computadora 3)

K) La siguiente pantalla solicita el soporte extra del idioma, se recomienda volver elegir al español y dar clic en el botón siguiente.

Figura 2.12 Soporte del idioma adicional

Página 25

2010 

Sistemas Operativos

L) A continuación tiene la pantalla para predeterminar el uso de los horarios, con su mouse vaya a dar clic sobre el país México seleccionado la región en que vive, luego de clic en el botón siguiente. (figura 2.13)

Figura 2.13 Selección del huso horario

M) La siguiente pantalla es muy importante, ya que dará la contraseña del Root, este es el superusuario, el principal y no deberá olvidar la contraseña ya que tiene los derechos de configurar al mismo Centos posteriormente si se requiere.

Figura 2.14 Contraseña de root

Página 26

2010 

Sistemas Operativos

N) La siguiente pantalla es para seleccionar la paquetería que se desea instalar en su servidor Centos, observe que para una instalación completa deberá contar con los demás cd’s que el mismo sistema se lo solicitara. Seleccione el botón siguiente. (figura2.15)

Fig. 15 Selección de aplicaciones

Esta selección de paquetes dependerá del tipo de programas con que trabaja la empresa como puede ser administradores de bases datos, desarrolladores de software o paquetes de oficinas para administrativos. O) Listo para empezar con la descarga de los archivos que configuran al Sistema Operativo Centos, dando clic en el botón siguiente como se observa en la siguiente pantalla. (figura 2.16)

Página 27

2010 

Sistemas Operativos

Figura 2.16 Inicio de instalación

P) Por último aparecerá la pantalla de avance donde el mismo sistema pide los cd’s de instalación por lo que vaya introduciéndolos como se lo requiere la propia computadora. (figura 2.17)

Figura 2.17 Instalación de paquetes

Página 28

Sistemas Operativos

2010 

2.3 Esquema de particiones

Estilo tradicional PC Un disco duro puede tener un máximo de 4 particiones primarias, porque la información de la tabla de particiones reside (junto con el código de arranque) en el MASTER BOOT RECORD: el sector 0 del disco. Sin embargo una de las particiones primarias puede ser designada como “partición extendida”, y ser “subdividida” en un número ilimitado de particiones “lógicas”. Nomenclatura Windows necesita ser instalado en una partición primaria. Linux puede ser instalado en cualquier tipo de partición. Linux suele numerar las particiones primarias de un disco desde 1 a 4, y reserva los números 5 y superior para las lógicas. Recordemos entonces al particionar que cuando se llegue a crear una cuarta partición, conviene hacerla lógica. Nomenclatura Linux de discos y particiones como iremos viendo, en el diseño tradicional UNIX, “todo es un fichero”. Los discos se nombran mediante su fichero de dispositivo: IDE: /dev/hda Disco maestro en canal IDE 0 /dev/hdb Disco esclavo en canal IDE 0 /dev/hdc Disco maestro en canal IDE 1 /dev/hdb Disco esclavo en canal IDE 1 SCSI y USB: /dev/sda, /dev/sdbb, etc. Las particiones de un disco se nombran mediante el nombre de dispositivo y el número de partición: Primarias: /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda4 Lógicas: /dev/hda5, etc. De cara a una instalación para uso generalista, propondremos un primer esquema simple y efectivo: Una partición para swap (memoria virtual en disco) Una partición para el sistema (raíz de la jerarquía, es decir: / ) Una partición para los datos de los usuarios ( directorio /home ) La partición de swap se utiliza como espacio de memoria RAM virtual en disco duro. Sirve para que, en casos de sobrecarga de trabajo, el sistema operativo pueda relegar a disco aquellos programas que están ejecutándose pero pueden esperar. El swap es la única partición que no tiene filesystem. Antiguamente se recomendaba un tamaño del doble que la RAM disponible; hoy en día no es muy importante. Un GB suele ser suficiente.

Página 29

Sistemas Operativos

2010 

La partición raíz (/) es la que contiene todo el software del sistema operativo. El filesystem recomendado y más estándar en Linux es “ext3”. Una instalación típica minimalista puede ocupar unos 200 MB; una instalación completa con entorno gráfico suele superar el GB (a veces varios GB porque depende de cuánto software provee la distribución) La partición /home. es en donde todos los usuarios UNIX escriben todos sus datos. Por tanto, la dimensionaremos según creamos que vayan a ser las necesidades de usuario.

2.4 Gestores de arranque PC Puede tener un disco duro puede varias particiones, cada una de ellas puede estar en el formato que quieras. El sistema operativo Windows monta cada partición con una letra, generalmente empezando por la C:/, en cambio Linux monta las particiones como carpetas, de forma que la partición en la que está instalada el sistema operativo está montada en /, y el resto de particiones las puedes montar donde quieras (aunque generalmente si son de datos se suelen montar en /media/nombre_partición). Para poder mantener en nuestro PC dos sistemas operativos, además de haberlos instalado en distintas particiones necesitaremos poder elegir en el momento del arranque entre uno u otro. Esta es la labor de los gestores de arranque. Existen varios gestores, el propio Windows tiene el suyo. Uno de los más flexibles y el que se está convirtiendo en estándar es GRUB (GRand Unified Bootloader). Conceptualmente todos los gestores funcionan así: primero la BIOS del PC debe leer el código de arranque del MBR (sector 0 del disco). Para ello deberemos antes configurar la BIOS para que pueda arrancar del disco que queramos en concreto. La BIOS sólo sabe arrancar el programa que se encuentra en el MBR Dicho programa es el gestor de arranque, en su primera “etapa”: a su vez “sabe” a qué particiones tiene que ir a leer para continuar con la carga de la siguiente etapa, y de ahí ofrecernos ya un menú para que seleccionemos uno u otro sistema operativo. El arranque del sistema es todo un caso. Se esta contando seguramente con dos SO en el mismo sistema. Los programas que lo guiaran por la instalación les pedirán que indiquen que sistema operativo quieren que inicie al encender la computadora. Con GNU/Linux se utiliza un programa que reside en el MBR de disco rígido llamado LILO (LInux LOader) el cual administra en que partición se encuentra cada SO y uno puede elegir, presionando la tecla Tab, con cual SO se quiere iniciar.

Página 30

2010 

Sistemas Operativos

2.5 Páginas de otros Sistemas Operativos Linux

Esta liga te lleva a la instalación de Linux Fedora http://docs.fedoraproject.org/install-guide/f12/es-ES/html/

Esta liga te lleva a un archivo .pdf en inglés sobre sistemas operativos Windows y Linux Red hat http://www.sans.org/security-training/os_install2.pdf

Esta liga te lleva a ver los pasos de la instalación de Linux Ubuntu http://www.ajpdsoft.com/modules.php?name=news&file=article&sid=154

Esta liga te lleva a ver los pasos de la instalación de Linux Centos 5.0 http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u=http://www. slideshare.net/poustchi/installing-linux-centos-50

Página 31

2010 

Sistemas Operativos

UNIDAD III COMANDOS BASICOS DE LOS SISTEMAS OPERATIVOS 3.1 Comandos básicos Comando: date Formato: date [-u] [+FORMAT] [MMDDhhmm] [[CC]YY] [.ss] Descripción: Imprime y establece la fecha. Visualizará la fecha y hora actual tal como es conocida por la máquina. No especificando ningún argumento o si el argumento comienza con +, imprimirá la fecha y la hora; caso contrario, se registra o establece la fecha. La especificación de un formato consiste en una cadena entre comillas. Los campos particulares vienen representados entre signos de porcentaje (%) seguidos por una letra de código. Los descriptores de campo son: %% Literal %. %a Establece abreviatura para los días de la semana (Sat...Sun). %A Asigna nombre completo a los días de la semana (Saturday...Sunday). %b Establece abreviatura a los meses (Jan...Dec). %B Asigna nombre completo a los meses (January...December). %c Fija fecha y hora de la forma (Sun Dec 08 08:03:30 EST 2002). %d Día del mes (01...31). %D Fecha (mm/dd/yy). %h Igual que %b. %H Horas de 00 a 23. %I Horas de 01 a 12. %j Día del año 001 a 365. %k Horas de 0 a 23. %l Horas de 1 a 12. %m Mes de 01 a 12. %M Minutos de 00 a 59. %n Nueva línea. %p Fija AM o PM. %r Hora en notación AM/PM. %S Segundos de 00 a 59. %t Inserta carácter de tabulación horizontal. %w Día de la semana (de domingo a sábado) %x Establece la representación de fecha como mm/dd/yy. %X Establece la representación de hora como %H:%M:%S. %y Sólo año. Las opciones son: -u Asigna el tiempo y la fecha en coordenadas universales. MM Mes. DD Día del mes. hh Hora. mm Minutos. CC Primeros dos dígitos del año (siglo). yy Últimos dos dígitos del año. Página 32

Sistemas Operativos

2010 

.ss Segundos. Nota: Sólo el superusuario (administrador del sistema) puede fijar o cambiar el sistema horario. Ejemplos: $ date Wed Jun 10 18:50:06 EDT 2002 $ date +%m 06 $ date “Hoy es %d de %h. La hora exacta es %r” Hoy es 10 de Sep. La hora exacta es 06:26:32 PM $ date + “Mes: %m%nDía: %d%nHora: %T” Mes: 09 Día: 10 Hora: 19:02:58 Las ordenes de date especialmente construidas se utilizan con frecuencia en guiones shell para producir una visualización o para asignarlas, a variables del entorno. date también se utiliza a menudo para poner una estampación (marca) de tiempo a un trabajo. Comando: echo Formato: echo [-ne] [argumento(s)] Descripción: Regresa cualquier cosa que haya escrito después de echo. Escribe los argumentos por la salida estándar, separados por espacios en blanco y terminado(s) por una nueva línea. echo reconoce algunas anotaciones especiales: \b Caracter de retroceso o retroceder un caracter. \c Escbir la línea sin nueva línea. \f Salto de página o cambio de hoja. \n Cambio de línea o salto de línea. \r Retorno de carro. \t Caracter de tabulación o tabulador horizontal. \\ Barra invertida o barra inclinada hacia la izquierda. \v Caracter de tabulación vertical. -e Habilita la interpretación de caracteres especiales marcados por la barra inclinada hacia la izquierda. -n Elimina el salto de línea final.

Ejemplos:

$ echo Estoy contento Estoy contento

$ SALUDO=“Hola a todos” Variables de entorno. $ PREGUNTA=“como estan” $ echo $SALUDO $PREGUNTA Hola a todos como estan echo se utiliza para visualizar cadenas arbitrarias en la terminal y también para visualizar el contenido de variables de entorno.

Página 33

Sistemas Operativos

2010 

Comando: exit Formato: exit Descripción: Indica que se ha terminado la sesión y libera a la terminal para ser utilizada por alguien más o para ingresar con un identificador distinto. La terminación o despedida impide que gente extraña utilice la terminal y el identificador para provocar perjuicios potenciales. Comando: man Formato: man [comando] Descripción: Localiza y muestra la(s) página(s) del manual del comando especificado. Ejemplo: man date El manual en línea man contiene páginas del manual para cada comando y otras páginas acerca de las funciones internas que los progrmadores utilizan, formatos para diferentes tipos de sistema de archivo, descripciones de hardware que puede conectarse a su SO. Comando: passwd Formato: passwd [nombre del usuario] Descripción: Cambia la contraseña del usuario (password), siempre que ya se haya registrado. Una contraseña sólo puede ser cambiada por el propietario de la misma, passwd pedirá que escriba la contraseña actual para probar que aún es la misma persona que cuando se llevo a cabo el registro. Posteriormente el programa. passwd pide la nueva contraseña dos veces para asegurarse de que sea correcta. Si se ha introducido la misma contraseña las dos veces, la orden passwd cambiará la idea de que el sistema tiene la contraseña y regresará luego al shell de la forma usual para aceptar la siguiente orden. Si se comete un error, el programa passwd acabará volviendo al shell para que se pueda intentar de nuevo. Si se cancela la ejecución del comando passwd, acabará dejando la vieja contraseña todavía en activo. Si olvidara la contraseña, no hay manera de recuperarla, ni aún el administrador del sistema puede hacerlo. Puede asignarle una nueva. El administrador del sistema podrá crear una contraseña nula o variar las contraseñas de los distintos usuarios. Sugerencias para escribir una contraseña: • Debe contener entre 6 y 8 caracteres. • Debe contener, al menos, un dígito (0-9). • Intercale dígitos, caracteres en minúscula y caracteres en mayúscula (LINUX distingue (son diferentes) mayúsculas de minúsculas). • Escriba una contraseña que sea fácil de recordar, sin necesidad de anotarla en alguna parte, y que no sea predecible. Comando: shutdown Formato: /bin/shutdown [-t segundos] [-rkhncf] tiempo [mensaje] Descripción: Termina todos los procesos que se estén ejecutando en el sistema de manera ordenada. Cierra el sistema, parando todas las conexiones y esperando antes de detenerse mientras lanza mensajes de aviso. Cuando se especifica una hora, el cierre se realizará a la hora indicada. Sólo el superusuario o un usuario con autorización pueden ejecutar la orden shutdown. Las opciones son: -t segundos Espera los segundos dados entre el mensaje de atención y las señales de finalización de shutdown. Página 34

Sistemas Operativos

2010 

-k Manda el mensaje de aviso pero no cierra realmente el sistema. -r Reinicia después de cerrar. -n No sincroniza antes el reseteo. -f Resetea sin comprobación de los archivos de sistema. -c Cancela un shutdown que se está ejecutando. -h Se detiene después de hacer el shutdown. mensaje Envía el mensaje a todos los usuarios. tiempo El argumento tiempo puede tener diferentes formatos; formato de tiempo absoluto en la forma hh:mm, donde hh es la hora con uno o dos dígitos, y mm minutos con dos dígitos. Podrá utilizar el formato +m, donde m es el número de minutos en tiempo de espera. Tenga en cuenta la palabra now como alias de +0. shutdown –h +10 El sistema se cierra al cabo de 10 minutos. shutdown –r now Cierra el sistema inmediatamente y después lo vuelve a arrancar. shutdown –h +5 “El sistema necesita un descanso” Advierte a los usuarios del cierre del sistema para darles tiempo a terminar lo que estén haciendo. El comando shutdown forma parte del procedimiento de desconexión, que tiene como finalidad mantener la sanidad del sistema cuando se arranque de nuevo. shutdown trata de evitar que los procesos en ejecución no se vean afectados o alterados por la caída o desconexión del sistema. Ejemplos:

Comando: poweroff Formato: poweroff Descripción: Este comando se utiliza para apagar el sistema sin que se vuelva a reinicializar. Opciones: -h Para el sistema para apagado. (no reinicia) -r Reiniciar el sistema -f reinicio rápido. No se comprobaran los sistemas de archivo al iniciar. -q Silencioso. No se solicita mensaje. -s Reinicio en modo monousuario. Muy util. Comando: who Formato: who [opciones] [archivo] who am i Descripción: Informa sobre quién está en el sistema. Lista el nombre de conexión, el nombre de la terminal y el momento de conexión para cada usuario conectado al sistema LINUX. También puede escribir who am i y sólo se imprimirá la línea de la terminal en la cual se escribió el comando. -m -q -s

Igual que who am i. Nombre de los usuarios y número de ellos conectados al sistema. Ignorado. Compatibilidad con otras versiones who.

Página 35

Sistemas Operativos

2010 

-i Muestra el número de horas y minutos que un usuario ha estado inactivo. El carácter “.” significa que el usuario ha estado inactivo menos de un minuto, y el término old, más de 24 horas.-u Igual que –i. Ejemplos: who –q who am i El comando who se ocupa para saber quien se encuentra en el sistema con la finalidad de: mandar mensajes, conocer la carga del sistema o para verificar la actividad en el sistema antes de su cierre. Comando: id Formato: id [opciones] Descripción: Muestra información sobre la identificación dentro del sistema del usuario que ejecuta el comando. La información que facilite consiste en nombre de usuario, UID, nombre de grupo y GID. Las opciones son: -g Muestra sólo el identificador de usuario. -n Muestra sólo el nombre de usuario o de grupo, es necesario en combinación con –u o -r –g. -q Muestra UID y GID reales en lugar de efectivos, es necesario en combinación con –u o –g. Muestra sólo la identificación de usuario. Comando: time Formato: time comando Descripción: Facilita la información de tiempo que consume un comando. La información que nos facilita es de tres tipos: tiempo real que transcurre desde que lanza el comando hasta que termina, tiempo de usuario que es el tiempo que realmente a utilizado de CPU y por último, tiempo de sistema que es el tiempo consumido en peticiones al sistema. Las opciones son: comando Comando que se quiere medir. Ejemplo: time ls –s / Medirá el tiempo que tarde en ejecutarse un ls –l de todo el sistema de archivos. Comando: cal Formato: cal [-j] [-y] [mes] [año] Descripción: Muestra en pantalla el calendario del año indicado, o del mes indicado. Las opciones son: Las fechas se muestran en formato juliano enumerando los días de forma -j consecutiva desde el 1 de enero. Muestra el calendario del año actual. -y mes Sirve para especificar el mes que queremos ver, se puede indicar tanto por número del 1 al 12 como por su nombre en inglés. Por defecto el valor es el del mes actual. año Especifica el año que se quiere visualizar, de año 1 a año 9999. Los años han de ser especificados con su número completo. Ejemplos: cal Muestra en pantalla el calendario del mes actual. cal 4 1974 Página 36

Sistemas Operativos

2010 

Muestra el calendario de abril de 1974. cal 2010 Muestra el calendario del año 2010. Comando: clear Formato: clear Descripción: Borra la pantalla completamente de la terminal en la que se este trabajando. Comando: finger Formato: finger [opciones] usuarios Descripción: Este comando se utiliza para obtener información sobre los usuarios del sistema, muestra toda la información referente a un usuario que hay registrada en el sistema. Si solo se invoca el comando sin ninguna opción ni nombre de usuario nos da información referente a los usuarios actualmente conectados al sistema. Podemos pedir información sobre usuarios de otras computadoras conectadas en red poniendo: [email protected]. Las opciones son: Da diversa información sobre los usuarios. -s Muestra la misma información que la opción –s pero en formato de líneas y -l además nos muestra los contenidos de los ficheros .plan y .project, si éstos existen, del directorio home del usuario. -p usuarios Impide que la opción –l muestre el contenido de los archivos .plan y .project. Se da una lista de usuarios sobre los que se demanda la información. Ejemplo: finger psanchez Nos devolverá la información almacenada referente al usuario psanchez.

3.2 Comandos para el manejo y organización de archivos y directorios

3.2.1 Concepto de archivo Archivo es un conjunto de datos con un nombre asociado y suelen residir en dispositivos de almacenamiento secundario. Algunos sistemas operativos imponen a todos sus archivos una estructura determinada bien definida. En Linux un archivo no es más que una secuencia de bytes. Los archivos son administrados por el SO. Su estructura, nombre, forma de acceso, uso, protección e implementación son temas fundamentales en el diseño de un SO. Aquella parte del SO que trabaja con los archivos se conoce, como un todo, como el sistema de archivos. Cuando un proceso crea un archivo, le da a éste un nombre. Cuando el proceso concluye, el archivo sigue existiendo y otros procesos pueden tener acceso a él mediante su nombre. Las reglas exactas para los nombres de archivo varían un poco de sistema a sistema, aunque los actuales SO permiten cadenas de hasta 256 caracteres (algunos otros SO,

Página 37

Sistemas Operativos

2010 

permiten cadenas de hasta 8 letras) como nombres de archivo. También es frecuente que se permitan dígitos y caracteres especiales. Algunos sistemas de archivos distinguen entre las mayúsculas y las minúsculas, mientras que otros no. UNIX está dentro de la primera categoría; MS-DOS dentro de la segunda. Así, un sistema UNIX puede tener los siguientes archivos distintos: bárbara, Bárbara, BARBARA, BARbara y BarBaRa. En MS-DOS, todos los nombre se refieren al mismo archivo. La mayoría de los SO utilizan nombres de archivo con dos partes, separadas por un punto, como en prog.c. La parte posterior al punto es la extensión de archivo e indica por lo general algo relativo al archivo. Por ejemplo, en MS-DOS, los nombres de archivo tienen una longitud de hasta ocho caracteres más una extensión opcional de hasta tres caracteres. En UNIX, el tamaño de la extensión, si ésta existe, se deja al usuario; además, un archivo puede tener incluso dos o más extensiones. Tipos de archivos. Muchos SO soportan varios tipos de archivos. UNIX y MS-DOS, por ejemplo, tienen: • Archivos regulares. Son aquellos que contienen información del usuario. • Archivos en ASCII. Constan de líneas de texto. En ciertos sistemas, cada línea termina con un carácter de retorno de carro. En otros se utiliza el carácter alimentador de línea. En ciertas ocasiones se necesitan ambos. Las líneas no tienen que tener la misma longitud. La gran ventaja de los archivos ASCII es que se pueden exhibir e imprimir tal cual son y pueden editarse mediante un editor de texto común. Además, si un gran número de programas utilizan archivos en ASCII para la entrada y salida, es fácil conectar la salida de un programa con la entrada de otro, como en las tuberías del shell. (La exploración entre los procesos no es del todo fácil, pero la interpretación de la información sí lo es cuando se utiliza una convención estándar, como ASCII, para expresarla.) • Archivos binarios. No son archivos en ASCII. El listado de su contenido produce una lista incomprensible de algo que parece aleatorio y sin sentido. Por lo general, tienen cierta estructura interna. • Directorios. Son archivos de sistema para el mantenimiento de una estructura del sistema de archivos. • Archivos especiales de caracteres. Tienen relación con la Entrada/Salida y se utilizan para modelar dispositivos seriales de E/S, tales como las terminales, impresoras y redes. • Archivos especiales de bloques. Se utilizan para modelar discos. Todos los archivos tienen elementos o características que se asocian a él, conocidos como atributos La información esencial de un archivo consta de: nombre, extensión, tamaño, y fecha/hora de creación. Los atributos pueden ser manipulados por: el usuario, el SO y/o una aplicación. Algunos son exclusivos de alguno de los manipuladores. Los archivos existen para poder almacenar la información y recuperarla más adelante. Los distintos sistemas proporcionan diversas operaciones para permitir el almacenamiento y la recuperación. Algunas de las llamadas más comunes al sistema relacionadas con los archivos son: Página 38

Sistemas Operativos

• • • • • • • • • •

2010 

CREAR. Construir un archivo nuevo. DESTRUIR. Eliminar un archivo. ABRIR. Preparar un archivo para hacer referencia a él. CERRAR. Evitar cualquier otra referencia al archivo en tanto no se le abra otra vez. COPIAR. Crear otra versión del archivo con un nombre nuevo. RENOMBRAR o REBAUTIZAR. Cambiar el nombre de un archivo. LISTAR. Imprimir o exhibir el contenido de un archivo. BUSCAR. Especificar (mediante métodos) dónde tomar los datos de un archivo. OBTENER ATRIBUTOS. Leer los atributos de un archivo para que él(los) proceso(s) pueda(n) realizar su trabajo con él. ESTABLECER ATRIBUTOS. Fijar o especificar las características (atributos) de un archivo ya existente.

Los elementos de información individuales dentro del archivo se pueden manipular con operaciones tales como: • LEER. Introducir un elemento de información de un archivo a un proceso. • ESCRIBIR. Transferir un elemento de información de un proceso a un archivo. • MODIFICAR. Alterar un elemento de información ya existente en un archivo. • INSERTAR o AÑADIR. Añadir un nuevo elemento de información a un archivo. • ELIMINAR. Borrar un elemento de información de un archivo. 3.2.2 Sistemas archivos Un sistema de archivos debemos entenderlo como aquella parte del sistema responsable de la administración de los datos en dispositivos de almacenamiento secundario. El sistema de archivos debe proporcionar los medios necesarios para un almacenamiento seguro y privado de la información y, a la vez, la posibilidad de compartir esa información, en caso de que el usuario lo desee. En general, los sistemas de archivos contienen: • Métodos de acceso. Se ocupan de la forma en que se obtiene acceso a los datos almacenados en archivos. • Administración de archivos. Se ocupa de ofrecer mecanismos para almacenar, compartir y asegurar archivos, y hacer referencia a ellos. • Administración de almacenamiento secundario. Se ocupa de asignar espacio a los archivos en dispositivos de almacenamiento secundario. • Mecanismos de integridad de archivos. Se ocupan de garantizar que no se corrompa la información en un archivo. Cuando se asegura la integridad de los archivos, cualquier información que deba estar en un archivo estará ahí; la información que no deba estar en un archivo se mantiene fuera de él. Las funciones más importantes del sistema de archivos son: 1. Los usuarios deben poder crear, modificar y eliminar archivos. 2. Los usuarios deben ser capaces de compartir sus archivos entre sí en forma cuidadosamente controlada para aprovechar y continuar el trabajo de los demás.

Página 39

Sistemas Operativos

2010 

3. El mecanismo para compartir archivos debe ofrecer varios tipos de acceso controlado, tales como acceso para lectura, acceso para escritura, acceso para ejecución o diversas combinaciones de éstos. 4. Los usuarios deben poder dar a sus archivos la estructura más apropiada para cada aplicación. 5. Los usuarios deben ser capaces de ordenar la transferencia de información entre archivos. 6. Deben ofrecerse recursos de respaldo y recuperación para evitar ya sea la pérdida accidental o la destrucción mal intencionada de información. 7. Los usuarios deben poder hacer referencia a sus archivos mediante nombres simbólicos en vez de tener que usar nombres de dispositivos físicos (o sea, independencia con respecto a los dispositivos). 8. En ambientes delicados en los cuales la información debe mantenerse segura y privada, el sistema de archivo puede ofrecer también funciones de ciframiento y desciframiento, lo cual hace que la información sólo resulte útil a quienes está destinada (es decir, a aquellos que poseen claves para desciframiento). 9. Lo más importante de todo: el sistema de archivos debe ofrecer una interfaz amable con el usuario. Debe proporcionar a los usuarios una vista lógica de sus datos y de las funciones que se puedan realizar con ellos, más que una vista física. El usuario no deberá tener que preocuparse de los dispositivos específicos en los cuales está almacenada la información, la forma que adoptan los datos en esos dispositivos o los mecanismos físicos para transferir datos de esos dispositivos o hacia ellos.

3.2.3 Directorios Un directorio no es más que un archivo especial, el cual contiene información que permite localizar otros archivos. Es un archivo de sistema que sirve para el mantenimiento de una estructura del sistema de archivos. Llevan un registro de los archivos almacenados en la computadora. Las llamadas al sistema permitidas para el manejo de los directorios tienen más variación de sistema a sistema que las relacionadas con los archivos. • •



• • • •

CREAR. Se crea un directorio el cual está vacío excepto por punto y puntopunto, los que se colocan en él en forma automática por el sistema. ELIMINAR. Se elimina un directorio. Sólo se puede eliminar un directorio vacío. Un directorio que sólo contenga punto y punto-punto se considera vacío ya que éstos por lo general no se pueden eliminar. ABRIR. Se pueden leer los directorios. Por ejemplo, para exhibir una lista de todos los archivos de un directorio, un programa de listado abre el directorio para leer los nombres de todos los archivos que contiene. Antes de poder leer un directorio, éste debe ser abierto. CERRAR. Cuando se ha leído un directorio, éste debe cerrarse para liberar el espacio de la tabla interna. LEER. Esta llamada regresa la siguiente entrada en un directorio abierto. CAMBIAR DE NOMBRE. En muchos aspectos, los directorios son como los archivos y se les puede cambiar el nombre al igual que éstos. LIGAR. El ligado es una técnica que permite que un archivo aparezca es más de un directorio. Esta llamada al sistema especifica un archivo existente y el Página 40

2010 

Sistemas Operativos



nombre de una ruta de acceso, además de crear un enlace del archivo ya existente con el nombre especificado en la ruta de acceso. De esta forma, el mismo archivo puede aparecer en varios directorios. DESLIGAR. Se elimina una entrada del directorio. Si el archivo que se desea desligar aparece sólo en un directorio (el caso normal), se elimina del sistema de archivos. Si esta presente en varios directorios, sólo se elimina la ruta de acceso especificada, mientras que las demás permanecen.

. 3.2.4 El sistema de archivos de LINUX. En LINUX, todos los archivos están organizados en directorios que, a su vez, están jerárquicamente conectados entre sí en un único sistema global de archivos conocida como estructura de árbol invertido. Se hace referencia a un archivo, entonces, no sólo por su nombre, sino indicando también el lugar que ocupa dentro de esta estructura de archivos. Puede crear tantos directorios como quiera, añadiendo así más directorios a la estructura de archivos. Las órdenes para el manejo de archivos de LINUX pueden efectuar operaciones sofisticadas, como desplazar o copiar directorios completos junto con todos sus subdirectorios. En la estructura de árbol invertido no hay un tronco. El árbol se representa invertido, con la raíz en la parte superior. Extendiéndose hacia abajo, desde la raíz, están las ramas. Cada rama nace desde una sola rama, pero puede tener muchas ramas que desciendan de ella. A este respecto, se puede decir que tiene una estructura padre–hijo. Cada directorio puede tener muchos subdirectorios, pero en sí mismo es hijo de un solo directorio padre. / (root)

dev

bin

home

mark

robert

Directorio

el tiempo

Archivo

chris

informes

programas

lunes La estructura de árbol LINUX.

La estructura de archivos de LINUX se bifurca en varios directorios a partir del directorio /, conocido como “raíz” (root). Dentro del directorio raíz hay varios directorios del sistema que contienen archivos y programas que son los que proporcionan las características del sistema LINUX. El directorio raíz también tiene un directorio llamado home, que puede contener los directorios propios (home) de todos los usuarios del sistema. El directorio propio (home) de cada usuario, a su vez, contiene todos los directorios que el usuario haya creado para su propio uso. Cada uno de estos también podría contener directorios. Estos directorios anidados se desprenderían del directorio propio (home) del usuario, como se ilustra en la siguiente figura: Página 41

2010 

Sistemas Operativos

/ (root)

Directorios de sistema

dev

Directorios home

Directorios de usuario

bin

home

mark

robert

chris

informes

programas

Directorio La estructura de archivos de LINUX empieza desde el directorio root e incluye los directorios de sistema, home y de usuario.

El directorio raíz, en el que empieza el sistema de archivos de LINUX, contiene varios directorios del sistema. Los directorios del sistema contienen archivos y programas que se usan para ejecutar y mantener el sistema. Muchos contienen otros programas para ejecutar características específicas de LINUX. Por ejemplo, el directorio /usr/bin contiene diversas órdenes LINUX que ejecutan los usuarios, tales como cp y mv. El directorio /bin contiene interfaces para diferentes dispositivos de sistema, tales como la impresora o la terminal. La siguiente tabla presenta una lista de los directorios de sistema básicos. Directorio / /home /bin /usr /usr/bin /usr/sbin /usr/lib /usr/doc /usr/man /usr/spool /sbin /var /dev /etc

Función Comienza el sistema de archivos. Se conoce como la raíz. Contiene los directorios propios (home) de los usuarios. Contiene todas las órdenes estándar y los programas de utilidad. Contiene los archivos y órdenes usados por el sistema. Este directorios se descompone en varios subdirectorios. Contiene las órdenes orientadas a los usuarios y los programas de utilidad. Contiene las órdenes de administración de sistema. Contiene las bibliotecas de los lenguajes de programación. Contiene documentación de LINUX. Contiene archivos del manual interactivo man. Contiene archivos en formato spool, tales como los que se generan para imprimir tareas y hacer transferencias en redes. Contiene órdenes de administración de sistema para arrancar el sistema. Contiene archivos que varían, tales como los archivos “mailbox” (buzón). Contiene interfaces de archivo para dispositivos tales como la terminal y la impresora. Contiene archivos de configuración del sistema y cualquier otro archivo de sistema.

Página 42

2010 

Sistemas Operativos

En la siguiente figura se muestra como están organizados en la estructura de árbol.

/ (root) Directorio

sbin

sbin

usr

bin

dev

lib

var

man

etc

spool

home

chris

robert

Directorios del sistema en LINUX.

3.2.5 Comandos para el manejo de directorios Comando: mkdir Formato: mkdir [opciones] directorio Descripción: Crea directorios. Las opciones son: -m modo Establece los permisos facilitados en modo del directorio en su creación. -p Crea los directorios padres necesarios si no existen. directorio Directorio que se quiere crear. Ejemplos: mkdir –p /home/juan/documentos/cartas Crea el directorio cartas y todos los directorios anteriores necesarios. Comando: rmdir Formato: rmdir directorio Descripción: Borra el directorio especificado. Ejemplos: rmdir cartas Comando: pwd Formato: pwd Descripción: Informa sobre cuál es el directorio actual en el que nos encontramos, no tiene ningún tipo de parámetro. Comando: cd Formato: cd nombre_del_directorio

Página 43

Sistemas Operativos

2010 

Descripción: Cambia del directorio actual al indicado en nombre_del_directorio. Éste puede ser cualquier directorio del sistema. Si no se indica ningún directorio cambiara al directorio raíz del usuario que lo invoca. Admite los directorios . y .. correspondientes al actual y al padre del actual para indicar los caminos relativos al directorio destino. Ejemplos:

3.2.6 Comandos para el manejo de archivos Comando: ls Formato: ls [opciones] archivos Descripción: Lista los archivos indicados mostrando información sobre ellos. Si no se pasa como parámetro ningún nombre de archivo, lista los archivos del directorio actual. Las opciones son: Muestra todos los archivos del directorio actual incluyendo los archivos ocultos, -a que en LINUX son los que comienza su nombre por punto. Muestra la lista de archivos en formato de columnas. -C Muestra la lista de archivos en colores según el tipo de archivo. --color Muestra la lista de archivos en formato de columnas ordenada por columnas. -x Muestra los directorios como archivos en lugar de mostrar sus contenidos. -d Muestra los tamaños de los archivos en kilobytes. -k Lista de forma extensa los archivos, con información como derechos -l propietarios, fecha de creación y tamaño. Muestra ordenando por la fecha de la última modificación. -t Muestra ordenando por la fecha del último acceso. -u Muestra ordenando pero de forma inversa. -r Lista el contenido de los subdirectorios recursivamente. -R Muestra el numero de inodo de cada archivo. -i Formatea la salida poniendo símbolos para diferenciar entre los distintos tipos -F archivos de archivos. Lista de archivos que se quiere listar, sobre todo la utilidad de este parámetro es usando los caracteres comodín ? y *. Ejemplos: ls –l Muestra los archivos del directorio actual con el formato extendido dando toda la información. ls –la *.c Muestra todos los archivos en formato extenso cuyo nombre termine en .c y que comiencen por cualquier cadena de carácter, mostrará también los que se consideran ocultos, que comprenden por .., y cumplan en resto de las condiciones. 3.14 Caracteres comodín y argumentos que son nombres de archivo. Carácter comodín. Es un carácter especial que actúa como cualquier carácter en nombres de archivos o comandos. Los nombres de archivo son los argumentos más comunes en las ordenes. Es frecuente que solo sepa una parte del nombre del archivo, o tal vez le interese hacer referencia a varios nombres de archivo que tienen la misma extensión o que comienzan con el mismo Página 44

Sistemas Operativos

2010 

carácter. El shell proporciona un conjunto de caracteres especiales que buscan, hacen coincidir y generan una lista de nombres de archivo. Estos caracteres especiales o comodín son * y ? y los [ ]. Dado el nombre parcial de un archivo, el shell usa estos operadores de coincidencia para buscar archivos y generar una lista con los nombres de archivo encontrados. El shell reemplaza el argumento del nombre parcial de archivo con la lista de nombres de archivos que hacen coincidencia. Esta lista de nombres de archivo puede entonces convertirse en los argumentos de órdenes tales como ls, que pueden operar sobre muchos archivos. Caracteres comodín Ejecución Equivale a cualquier conjunto de caracteres de nombres de archivos. * Coincide con un solo carácter cualquiera de nombres de archivo. ? Coincide con una clase de posibles caracteres de nombres de archivo. [] Delimita el carácter siguiente: se usa para delimitar caracteres comodín. \ Ejemplos de uso de los caracteres comodines: $ ls doc1 doc2 doc3 doc4 docA docB docD docs document answers? lib.a mydocs anwers?.quiz monday tuesday answers?.mid main.c mylock main.o calc.c sydoc1 answers?.final $ ls doc* doc1 doc2 doc3 doc4 docA docB docD docs document $ls *day monday tuesday $ ls *.c calc.c main.c $ls doc? doc1 doc2 doc3 doc4 docA docB docD docs $ls ?y?oc? mydocs mylock sydoc1 $ls *.? calc.c lib.a $ls doc[1As] doc1 docA docs $ls doc[1-3] doc1 doc2 doc3 $ls doc[B-G] docB docD $ls *.[co] main.c main.o calc.c $ls answers\? answers? $ls answers\?.* answers? answers?.quiz answers?.mid answers?. Comando: cat Formato: cat [opciones] archivos Página 45

Sistemas Operativos

2010 

Descripción: Concatena la lista de archivos que se le facilita en la salida estándar. Si sólo se le indica un archivo, lo muestra. Si se le indica, lo crea con el contenido que se escriba en la entrada estándar finalizando con [Ctrl] [d] para grabar o [Ctrl] [c] para salir sin grabar. Las opciones son: archivos Lista de archivos a concatenar. Numera las líneas que no estén en blanco. -b Numera todas las líneas aunque estén en blanco. -n Elimina varias líneas en blanco consecutivas sustituyéndolas por una sola. -s Muestra los caracteres de control excepto final de línea y tabuladores. -V Muestra el carácter $ al final de cada línea. -E Muestra los caracteres de control de los tabuladores. -T Ejemplos: Comando: rm Formato: rm [opciones] archivos Descripción: Elimina archivos y directorios del sistema de ficheros. Se utiliza tanto para borrar archivos, enlaces y directorios. Para eliminar directorios es necesaria la opción –r. Hay que tener mucho cuidado con la utilización de este comando pues sus acciones son irreparables. Las opciones son: Por defecto rm pide confirmación antes de borrar, con esta opción forzamos la -f operación sin pedir confirmación. Activa el modo interactivo para solicitar confirmación antes de borrar, este modo -i esta por defecto. -r Opción para borrar los directorios y su contenido, es necesaria para borrarlos. -v archivos Muestra el nombre de los archivos antes de borrarlos. Lista de archivos que se quiere eliminar. Ejemplos: rm * Borra todos los archivos del directorio actual pidiendo permiso para cada archivo que va a borrar. rm –rf a* Borra todos los archivos y directorios del directorio actual cuyo nombre empiece por a. Comando: cp Formato: cp [opciones] fuente destino Descripción: Copia archivos y directorios. Copiará fuente a destino, fuente puede ser una lista de archivos que copiará a un directorio indicado en destino. También puede copiar un archivo sobre otro archivo. Las opciones son: -a Conserva los atributos y estructuras del origen en la copia. -b Hace copias de seguridad de archivos que van a ser sobrescritos o borrados. -d Al copiar los enlaces simbólicos los mantiene como tales en lugar de copiar los ficheros a los que apuntan, y preserva las relaciones de las ligaduras físicas entre archivos fuente en las copias. -f Borrar archivos destino existentes. -i Interroga sobre si sobrescribir ficheros destino existentes. -l -p En lugar de hacer copiar archivos que no son directorios, crea ligaduras físicas. Preserva los permisos, el propietario y el grupo, así como los SUID Y SGID, además Página 46

Sistemas Operativos

2010 

también conserva el tiempo de última modificación y de último acceso. Copia directorios recursivamente descendiendo en su árbol de directorios hijos. Es la opción que se debe indicar si se pretende copiar un directorio. Hace enlaces simbólicos en vez de copias de archivos que no sean directorios. Todos los nombres de archivos origen deben ser absolutos (empezar por ‘/’) a menos que los archivos de destino estén en el directorio de trabajo. Esta opción simplemente -u produce un mensaje de error en sistemas que no admitan enlaces simbólicos. No copia un archivo no-directorio si el destino ya existe y tiene el mismo tiempo de -v modificación o más reciente. -x Muestra el nombre de cada archivo antes de copiarlo. Se salta subdirectorios que estén en sistemas de archivos diferentes de aquél en el que empezó la copia. Ejemplos: cp –R */tmp Copia el contenido del directorio actual así como sus subdirectorios de forma recursiva al directorio /tmp. cp –a *.txt /home/jgarcía Copia todos los archivos *.txt del directorio actual al directorio /home/jgarcía conservando los mismos permisos que los archivos originales. cp /usr/bin/joe Copia el archivo joe del directorio /usr/bin al directorio actual. -r -R -s

Comando: mv Formato: mv [opciones] origen destino Descripción: Mueve archivos y directorios. El comando en sí lo que realiza es la copia del origen en el destino y el borrado del origen. También es el comando que se utiliza para renombrado de archivos y directorios por ser similar el efecto que se produce. Las opciones son: Por defecto mv pregunta antes de borrar algo, con esta opción eliminamos esta -f confirmación. -i Con esta opción mv pregunta antes de borrar algo, está opción está por defecto. origen Archivo que se quiere mover. Se puede dar también una lista de archivos origen que serán movidos con su mismo nombre en un directorio que se dará como destino destino. Nombre del destino. Si se ha dado una lista de archivos origen el destino tendrá que ser un directorio. Ejemplos: mv carta.txt carta.doc Cambia de nombre el archivo carta.txt a carta.doc. Comando: ln Formato: ln [-s] origen destino Descripción: Crea un enlace a un archivo, con el fin de poder acceder a un archivo con más de un nombre. Se pueden utilizar estos enlaces para copiar archivos sin ocupar espacio en disco. Podemos tener dos tipos de enlaces, los simbólicos y los fijos. Los enlaces fijos o ligaduras físicas crean una nueva entrada en el directorio pero no crean un nuevo inodo, sino que a esa nueva entrada se le asigna en número de inodo de origen. Las ligaduras simbólicas crean un fichero especial cuyo contenido es origen. La opciones son: -s Crea un enlace simbólico. Página 47

Sistemas Operativos

2010 

origen

Archivo al que se quiere crear un enlace de ligadura. Se puede dar también una lista de archivos origen que serán enlazados con su mismo nombre en un destino directorio que se dará como destino. Nombre del enlace que se quiere crear y después de la creación del enlace y que tras la creación del enlace se podrá utilizar para referirse al archivo origen. Si se ha dado una lista de archivos origen, el destino tendrá que ser un directorio. Ejemplos: ln –s documento.txt trabajo.txt Crea un enlace simbólico o ligadura simbólica del archivo documento.txt en el enlace trabajo.txt. Comando: more Formato: more [opciones] archivos Descripción: Se utiliza para paginar texto que no cabe en la pantalla y, por tanto, se desplaza sin poderlo ver. Se utiliza a través de un redireccionamiento o una pipe para formatear el resultado de otro comando como cat o ls. Las opciones son: -n Establece el tamaño de las páginas que muestra a n líneas. -c Cambia el formato en que muestra las páginas en la pantalla, escribiendo las líneas una a una y desplazando. -q Cambia el aviso por omisión para el desplazamiento de las páginas. -s Supone varias líneas en blanco consecutivas y las cambia por una sola. Comandos más útiles de more. Comandos básicos. h Despliega información de ayuda. Espacio Despliega la pantalla siguiente q Para salir del programa Comandos avanzados. Retorno Para avanzar un renglón. Para avanzar n renglones n Retornos d Para avanzar (hacia abajo) media pantalla. u Para retroceder (hacia arriba) media pantalla. nf Para avanzar n pantallas. b Para retroceder una pantalla. nb Para retroceder n pantallas. v Arranca el editor vi usando el archivo el archivo que sé este exhibiendo. /modelo Busca el modelo especificado, hacia abajo. n Repite el comando de búsqueda anterior. comando Ejecuta el comando del intérprete de comandos especificado. = Despliega el número de renglón en uso. . Repite el comando anterior. No oprimir Retorno después de ningún comando, excepto de / y  Ejemplos: ls –l | more Lista los archivos del directorio actual y se los pasa al comando more para que lo pagine y lo muestre página a página. Comando: less Página 48

Sistemas Operativos

2010 

Formato: less [-cmsCM] [-xtab] [+comando] [archivo...] Descripción: Al igual que more y pg, less es un programa de paginación. En trabajos sencillos less funciona como los otros dos programas. No obstante, para los usuarios avanzados less es mucho más refinado. Una de sus principales ventajas es que hace fácil desplazarse hacia atrás o hacia adelante de un archivo. El programa less despliega el contenido de los archivos que se especifiquen. Los datos se despliegan pantalla por pantalla. Después de escribirse cada pantalla, se verá un indicador en la esquina inferior izquierda. El primer indicador le muestra el nombre del archivo. Cada uno de los indicadores subsecuentes será un signo de dos puntos :. Comandos Descripción básicos H Despliega información de ayuda. Espacio Avanza una pantalla. q Para salir del programa. Comandos más avanzados Retorno Avanza un renglón. nRetorno Avanza n renglones. b Retrocede una pantalla. y Retrocede un renglón. ny Retrocede n renglones. d Avanza (hacia abajo) media pantalla. u Retrocede (hacia arriba) media pantalla. g Va al primer renglón. ng Va al renglón n. G Va al último renglón. np Va al renglón que represente el n porciento en el archivo. v Arranca el editor vi usando el archivo que se esté exhibiendo. /modelo Busca hacia abajo el modelo especificado. ?modelo Busca hacia arriba el modelo especificado. n Repite el comando de búsqueda previo. !comando Ejecuta el comando del intérprete de comandos especificado. = Despliega el número de renglón y el nombre de archivo en uso. -opcion Cambia la opción especificada. _opcion Despliega el valor actual de opcion. No oprimir retorno después de ningún comando excepto, /,? Y !. Existen un gran número de opciones que se pueden utilizar de arrancar less, las tres más útiles son: -s Remplaza múltiples renglones en blanco por uno solo, lo que es útil para condensar una salida que contenga renglones en blanco sin significado. -c Despliega cada pantalla de datos nueva de arriba abajo (borra la pantalla). -M Hace que el indicador muestre aún más información: el nombre del archivo, el número de renglón y el porcentaje desplegado. Ejemplos: less –M memo esto muestra: memo line 48/75 93% less +G memo Página 49

Sistemas Operativos

2010 

despliega el archivo memo con la posición inicial al final del archivo. less +/Harley memo despliega el mismo archivo comenzando con una búsqueda de la palabra Harley. less +37 memo un número después de + hace que less arranque en ese renglón. less +37g memo esto hace lo mismo que la opción anterior. less –x5 memo la opción –x seguida de un número hace que less establezca los tabuladores en el intervalo regular especificado. En este caso los tabuladores se configuran a cada cinco espacios. Comando: chgrp Formato: chgrp [opciones] grupo archivos Descripción: Permite el cambio del grupo propietario de un archivo o directorio. Para cambiar la propiedad de grupo de un archivo o directorio hay que ser el propietario de dicho archivo o ser el usuario root. Las opciones son: Muestra detalladamente la acción de cambio de grupo propietario para archivo o -c directorio en el que se realice la acción. Anula los mensajes de error de los archivos o directorios a los que no puede -f cambiar el grupo propietario. Muestra detalladamente los cambios de grupo propietario. -v Cambia recursivamente la propiedad de grupo en los directorios y sus -R contenidos. grupo archivos En grupo se indica cuál será el nuevo propietario. En archivos se indica la lista de archivos y directorios a los que se le quiere cambiar el grupo propietario. Ejemplo: chgrp invitados p* Cambia el grupo propietario a invitados de todos los archivos que comiencen por la letra p dentro del directorio actual. Comando: chmod Formato: chmod [opciones] modo archivos Descripción: Permite el cambio de los permisos o modo de los archivos y directorios. Los permisos de un archivo o directorio permiten controlar el acceso a los mismos. Existen tres niveles de permisos, los de propietario, grupo y otros. Así los permisos de propietario afectan al propietario del archivo o directorio, los permisos de grupo afectan al grupo propietario y, por último, otros afectan al resto de usuarios del sistema. Dentro de cada nivel de permisos existen tres tipos de derechos de lectura r de escritura w y de ejecución x. En archivos, los derechos de lectura y escritura permitirán leer y escribir el archivo respectivamente y el derecho de ejecución ejecutar si se trata de un fichero que contiene código ejecutable. En directorios, el derecho de lectura permite hacer un /s sobre el directorio y ver su contenido, el derecho de escritura permite crear nuevos archivos y directorios en él, así como borrar y, por último, el derecho de ejecución permite poder cambiar el directorio Página 50

Sistemas Operativos

2010 

actual por ése con el comando cd. Sólo se puden cambiar los permisos de un archivo o directorio si es el usuario propietario o si es usuario root. Las opciones son: Muestra detalladamente la acción de cambio de permisos a cada archivo en el -c que se realice la acción. Anula los mensajes de error de los archivos a los que no puede cambiar los -f permisos. -v Muestra detalladamente los cambios de permisos. -R Cambia recursivamente los permisos en los directorios y sus contenidos. modo En modo se indica cuáles van a ser los nuevos permisos o modo. Estos permisos se agrupan en tres grupos de derechos u, g, o, correspondiéndose con usuario propietario, grupo propietario y otros respectivamente, además, existe el grupo a que, además está por defecto y que modifica a los tres. Y los tipos de derechos que se pueden modificar son r, w, x, lectura escritura y ejecución, respectivamente. Para formar el modo al que se quiere cambiar, primero se archivos indica el tipo de derechos que se quiere cambiar u,g,o, luego la acción a tomar, + para poner derechos, - para quitarlos, y los derechos que se van a ver afectados por el cambio r, w, x. En archivos se indica la lista de éstos a los que se les quiere cambiar los permisos. se quitan los derechos de lectura y escritura al grupo propietario y se quitan todos los derechos a otros. Obsérvese que los distintos cambios de permisos se separan por comas. Comando: chown Formato: chown [opciones] usuario archivos Descripción: Permite el cambio de usuario propietario de un archivo o directorio. Para cambiar el propietario de un archivo o directorios hay que ser el propietario de dicho archivo o ser el usuario root. Si se cambia la propiedad de un archivo sin ser el root ya no se podrá volver a obtener dicha propiedad, esta acción la tendrá que hacer el nuevo propietario o el root. Las opciones son: Muestra detalladamente la acción de cambio de propietario para cada archivo o -c directorio en el que se realice la acción. Anula los mensajes de error de los archivos o directorio a los que no puede -f cambiar el propietario. -v Muestra detalladamente los cambios de propietario. -R usuario Cambia recursivamente el usuario propietario en los directorios y sus contenidos. archivos En usuario se indica cuál va a ser el nuevo propietario. En archivos se indica la lista de archivos y directorios a los que se quiere cambiar el propietario. Ejemplos: chown psanchez tabla.txt Cambia el propietario de tabal.txt al usuario psanchez. Comando: du Formato: du [opciones] archivos

Página 51

Sistemas Operativos

2010 

Descripción: Informa sobre la cantidad de espacio que ocupan en disco los archivos y directorios indicados como parámetros. Si no se da ningún parámetro se da la información del directorio actual. Las opciones son: Muestra para cada archivo su tamaño. -a Muestra los tamaños en bytes. -b Muestra los tamaños en kilobytes. -k Muestra sólo la información referente a los sistemas de archivos actualmente -x montados. -L Muestra la información del espacio ocupado por el archivo al que apunta una ligadura en lugar de mostrar el espacio que ocupa la ligadura en sí. -s Muestra el tamaño que ocupa cada subdirectorio en conjunto con la suma de archivos todo lo que ocupa su contenido. Lista de directorios y archivos sobre los que se demanda la información referente a su tamaño. Ejemplos: du –s /var Muestra el tamaño total ocupado por el directorio /var y todo su contenido. Comando: file Formato: file [opciones] archivos Descripción: Da información sobre un archivo referente al tipo de archivo. Así nos dará información sobre si un archivo es ejecutable, de datos, de texto. Las opciones son: -c Muestra para cada archivo su tamaño. -z Muestra los tamaños en bytes. -L Muestra los tamaños en kilobytes. -f archilista Muestra sólo la información referente a los sistemas de archivos -m actualmente montados. Muestra la información del espacio ocupado por el archivo al que archivos apunta una ligadura en lugar de listar el espacio que ocupa la ligadura en sí. Lista de directorios y archivos sobre los que se demanda la información referente a su tipo. Ejemplo: file /etc/profile Nos indica el tipo de archivo que es el archivo file /etc/profile, que en este caso es de texto. Comando: head Formato: head –líneas archivos Descripción: Muestra la cantidad de primeras líneas indicadas de una lista de archivos. Las opciones son: -líneas Cantidad de líneas que queremos que se muestre. archivos Lista de archivos separados por comas que se pretende que se muestre el número de líneas indicado, por defecto diez. Comando: tail Formato: tail [opciones] archivo Descripción: Muestra las últimas líneas del archivo que se le pasan como parámetro. Por defecto muestra las diez últimas líneas. Página 52

Sistemas Operativos

2010 

Las opciones son: Número desplazamiento dentro del archivo, en número de líneas, a partir de los offset cuales queremos que se muestre el archivo. Si el número va precedido del signo +, mostrará a partir de ese número de líneas, si va precedido del signo –, mostrará a partir de ese número de últimas líneas. -f Muestra el crecimiento de un archivo, sólo termina con la combinación de teclas archivo [Ctrl] [C]. Archivo que se quiere procesar. Comando: wc Formato: wc [opciones] [archivo(s)] Descripción: La orden wc (word counter) es un contador de líneas, palabras y caracteres de un archivo. Para wc, una palabra es una cadena de caracteres delimitada por espacios en blanco, tabuladores o retornos de carro existentes en el archivo. Las posibles opciones son: -l Visualizará el número de líneas. -w Visualizará el número de palabras. -c Visualizará el número de caracteres. Si a wc no se le especifica ninguna opción, tomará por defecto las tres anteriores, visualizando en orden el número de líneas, palabras y caracteres. Ejemplo: $ wc ftemp 253 939 6728 ftemp En el caso anterior, wc está indicando que el archivo ftemp tiene 253 líneas, 939 palabras y 6728 caracteres. Obviamente, la orden wc sólo puede ser utilizada para procesar archivos de texto. Comando: su Formato: su [–] [usuario] Descripción: La orden su (switch user) permite cambiar nuestro identificador de usuario. Cuando se invoca, nos pide la palabra clave (password) del usuario al que queremos cambiar. Si a su no le pasamos como parámetro ningún nombre de usuario, asumirá que deseamos convertirnos en el administrador del sistema (root). Obviamente, si no conocemos la palabra clave del usuario, la orden fallará. La opción – se emplea para indicar a su que se tomen los parámetros de inicio (directorio de arranque, ruta de búsqueda de archivos, variables del entorno, etc.) definidos por el usuario al que nos convertiremos. Por defecto estos parámetros no se toman. Ejemplo: $ su – lucas password: $ id uid=519(lucas) gid=519(lucas) grupos=519(lucas) Comando: sort Formato: sort [opciones] [+campo] [archivo(s)] Descripción: Ordena líneas compuestas por campos, separados por tabuladores, aunque podemos especificar cualquier tipo de separador de campo. Si a sort no le pasamos ningún archivo como parámetro, tomará su entrada de la entrada estándar. Con esta orden Página 53

Sistemas Operativos

2010 

podemos ordenar las líneas de uno o varios archivos según un campo en particular. Esta ordenación no produce ninguna modificación en los archivos tratados. Ejemplo: $ Cat > desord uno dos tres cuatro [Ctrl-d] $ sort desord cuatro dos tres uno $ cat > numeros 101 112 10 373 64 19 1111 [Ctrl-d] $ sort numeros 10 101 1111 112 19 373 64 Podemos observar, a tenor de los resultados, que algunos números aparecen ordenados aparentemente al revés. La razón es que sort, por defecto, ordena las palabras según los caracteres ASCII que la componen. Si lo que deseamos es ordenar según el valor numérico asociado a esos caracteres, debemos utilizar la opción –n (ordena numéricamente), tal y como se muestra a continuación: $ sort –n numeros 10 19 64 101 112 373 1111 Los campos separadores utilizados por defectos son los tabuladores, y en algunas versiones de sort, también los espacios en blanco, pero también podemos decirle que utilice cualquier tipo de separador específico, utilizando para ello la opción –t y a

Página 54

Sistemas Operativos

2010 

continuación el separador. Como ejemplo vamos a ordenar el archivo que figura a continuación, denominado sortfich, por el último campo. $ cat sortfich blanco:73:Marte:1543:Manuel verde:17:Jupiter:1968:Sebastian azul:24:Venus:1970:Ana rojo:35:Neptuno:1122:Javier amarillo:135:Tierra:1234:Raul Como podemos apreciar, los distintos campos están separados por dos puntos. Eso no es ningún problema para sort, ya que podemos especificar el carácter de separación de campos que deseemos. $ sort –t: +4 sortfich azul:24:Venus:1970:Ana rojo:35:Neptuno:1122:Javier blanco:73:Marte:1543:Manuel amarillo:135:Tierra:1234:Raul verde:17:Jupiter:1968:Sebastian En el caso del ejemplo, el último campo es el número 4, por eso en las opciones de sort hemos puesto un +4. Obsérvese que la numeración de campos comienza por el cero. Comando: grep Formato: grep [opciones] patrón [archivo(s)] Descripción: Permite buscar cadenas de caracteres en los archivos que le indiquemos. grep toma el patrón que deseamos buscar como primer argumento y el resto de los argumentos los toma como nombres de archivos. En caso de que el elemento que deseemos buscar se componga de más de una palabra, ese elemento deberemos incluirlo entre comillas dobles. Una vez buscado el patrón, se visualizan todos los archivos que lo contienen. Con grep podemos utilizar varias opciones; las tres más comunes son las que se citan a continuación: -i Indica a grep que se ignoren mayúsculas y minúsculas. Se busca el patrón y no se diferencia entre letras mayúsculas y minúsculas. -v Visualiza por pantalla las líneas que no contienen el patrón especificado. -n Muestra por pantalla el número de línea en que se encuentra el patrón. Ejemplos: $ grep NULL * depura.c: argn = strtoul (argum, (char **)NULL, 16); depura.c: argn = strtoul (argum, (char **)NULL, 16); depura.c: DirecDeParada = strtoul (&orden[1], (char **)NULL, 16); depura.c: R[reg] = strtoul (cadena, (char **)NULL, 16); desen.c: if ((pf = fopen (programa, “r”)) == NULL) En este caso, grep busca el patrón NULL en todos los archivos del directorio actual. Recordemos que el asterisco sustituye a cualquier cadena de caracteres, y en este caso a todos los archivos del directorio en el que estemos situados. $ grep –n main /home/chan/spro/*.c /home/chan/spro/desen.c:21:main (int argc, char *argv[]) /home/chan/spro/desen.c:46:} /* Fin de main */ Página 55

Sistemas Operativos

2010 

/home/chan/spro/ensa.c:30:main() /home/chan/spro/ensa.c:42:} /* Fin de main */ /home/chan/spro/gen.c:3:main() /home/chan/spro/principal.c:19:void main (int argc, char *argv[]) /home/chan/spro/principal.c:53:} /* Fin de main */ En el caso anterior, al colocar la opción –n se visualiza el número de línea del archivo donde se encuentra el patrón buscado.

Comando: find Formato: find directorio(s) criterios_de_seleccion opcion_de_comando Descripción: El comando find se utiliza para examinar la jerarquía de directorios en búsqueda de archivos. Para esta búsqueda pueden indicarse ciertos criterios. Además, también puede aparecer el nombre del archivo encontrado en pantalla o ejecutarse con un comando. Puesto que el comando find examina sistemáticamente los directorios y sus subdirectorios, se ha convertido en una herramienta indispensable para el usuario y especialmente para el administrador del sistema. Las posibilidades del comando find no solo pueden utilizarse para la búsqueda de archivos individuales, sino que también pueden utilizarse para guardar datos o eliminar archivos dispersos por el sistema de archivos. Estructura y modo de funcionamiento del comando find El comando find examina los directorios y sus subdirectorios de forma recursiva en búsqueda de archivos o incluso directorios. Para ello find se vale de tres datos distintos: •

¿En qué directorio debe iniciarse la búsqueda de archivos?.



¿Cuáles son los criterios de selección para esta búsqueda?.



Que debe hacer al encontrar un archivo o un directorio que cumple con los criterios de selección?

El primero y el tercero son indispensables pero el segundo puede omitirse, en cuyo caso se encontrarían todos los archivos. Como parámetros pueden indicarse varios directorios a partir de los cuales se iniciara la búsqueda. La opción de comando más sencilla es print. Con este se muestra el nombre de ruta de todos los archivos encontrados. El ejemplo siguiente muestra como visualizar todos los archivos que se encuentran bajo el directorio actual. Con el primer parámetro del comando find se determinara cual es el punto de partida para la búsqueda del directorio actual. La opción -print indica que debe indicarse el nombre de ruta del archivo encontrado.

Página 56

2010 

Sistemas Operativos

Los archivos encontrados se visualizaran mediante sus nombres de ruta relativos. S i como punto de inicio para la búsqueda se especifica un nombre de ruta absoluto, en la salida aparecerán también los nombres de ruta absolutos. Durante la búsqueda, find examina también los subdirectorios bajo el directorio de inicio. Aquí se tiene también en cuenta, lógicamente, los derechos de acceso de los directorios. Un directorio solo podrá examinarse cuando el usuario posea derechos de lectura y ejecución para dicho directorio. Si no es así se enviara un mensaje de error a través del canal de errores.

Criterios de selección para archivos y directorios Si no se introducen opciones de selección el comando find encontrara todos los archivos, siempre que lo permitan las autorizaciones para todo el directorio. Con las opciones de selección se delimita el numero de archivos . Las siguientes opciones de selección pueden utilizarse para delimitar la búsqueda. Opción

Significado

-name

Búsqueda por nombre de archivo

-type

Búsqueda por tipo de archivo

-user

Selección por propietario del archivo

-group

Selección por pertenencia a grupo

-size

Selección por tamaño del archivo

-atime

Selección por fecha del último acceso

-mtime

Selección por fecha de la última modificación del archivo

-ctime

Selección por fecha de creación del archivo

-perm

Selección por derechos de acceso

-links

Selección por numero de referencias del archivo

Con todas las opciones excepto –name , -type, -user, -group y perm, aparecen cifras como parámetros , adicionales tras el nombre de opción. Ante la cifra puede aparecer también un signo más (+) o un signo menos (-). Un signo más significa siempre “mayor que” y un signo menos significa siempre “menor que” es decir, el dato +3 significa que se permiten valores mayores que 3, y el dato -5 que solo se admiten valores menores que 5.

Página 57

Sistemas Operativos

2010 

Con la opcion –name seguido de un nombre de archivo se define que nombre de archivo debe tener el archivo que se buscara. La figura siguiente muestra algunos ejemplos. En lugar de nombres de archivo fijos, también pueden utilizarse plantillas de búsqueda para los nombres de archivo. en ese caso, el comando find accede a los mismos símbolos especiales que el shell en la expansión del nombre de archivo. Para que sea el comando find el que interprete los símbolos especiales y no el shell, estos deben protegerse del shell mediante comillas o comillas invertidas. adams:-$ find . –name abraham -print ./abraham ./mi_primer/abraham adams:-$ find . –name ”A-Z]*” -print ./Verdura ./Fruta ./Sortdat ./ListaUsuarios ./mi_segundo/k ./mi_segundo/m ./mi_segundo/s adams:-$ find . –name “*t “ -print ./Fruta ./Sortdat adams:-$ Opcion name En ningún caso debe olvidar introducir como mínimo la opcion –print. Sin la opcion –print el comando find ejecuta la búsqueda de archivos, pero no muestra nada en pantalla al encontrar los archivos deseados. Selección por el tipo de archivo Hasta ahora conocemos solo tres tipos de archivos diferentes: 1. Archivos Normales 2. Carpetas 3. Archivos de Dispositivo El tipo de archivo también puede ser un criterio de selección en la búsqueda por el árbol de archivos. En la siguiente lista se resumen los tipos de archivos que find diferencia con las letras identificadas por cada uno de ellos:

Página 58

2010 

Sistemas Operativos

Letra identificativa

Tipo de a archivo

f

Archivo Normal

d

Directorio

c

Archivo de dispositivo orientado a caracteres

b

Archivo de dispositivo orientado a bloques

p

Canalizaciones con nombre o FIFO

En este momento no trataremos en detalle de los llamados archivos FIFO. Se utilizan para el intercambio de datos entre procesos que no se encuentran en relación directa entre procesos principales y secundarios. Por otra parte, funcionan como las conocidas canalizaciones. Las opciones de selección –name y –type pueden combinarse tal como se muestra en la siguiente figura. En este caso, deben cumplirse ambos criterios a la vez. Se dice que ambos criterios de selección se vinculan con un Y lógico. adams:-$ find . –type d -print . ./.term ./mi_primer ./mi_segundo adams:-$ find . –type d -name “*Z*” -print ./mi_segundo adams:-$ combinación de - name y – type La opción - user permite la selección de los archivos que pertenecen a un propietario determinado. Para ello se especifica el nombre del propietario como siguiente parámetro tras la opcion - userTambién podría suceder que se buscaran archivos que pertenecieran a usuarios que no se conocieran en el sistema como propietario habitual. En este caso, en el lugar en el que normalmente aparecería un nombre de usuario en el comando ls-l, aparece solo un nombre de usuario. Dichos números de usuario son también admisibles como parámetro tras la opcion –user. En la siguiente figura encontrara ejemplos para la búsqueda de archivos por nombres de archivo y ejemplos para la opcion –group. La opcion - group tiene una estructura similar a al de la opcion - user.

Página 59

Sistemas Operativos

2010 

Con – group el criterio de selección será la pertenencia del archivo a un grupo determinado. Para los archivos pertenecientes a un grupo que en el sistema no se conoce mediante un nombre de grupo, se especificara como parámetro siguiente solo el numero de identificación del grupo. adams:-$ find / - user hugo -print 2>/dev/null>lista adams:-$ cat lista /tmp/lista /var/spoll/mail/hugo /home/hugo /home/hugo/.kermrc /home/hugo/.less /home/hugo/.lessrc /home/hugo/.term /home/hugo/.term/termrc /home/hugo/abraham /home/hugo/verdura /home/hugo/mi_primer /home/hugo/mi_primer/passwd /home/hugo/mi_primer/group /home/hugo/mi_primer/abraham /home/hugo/mi_primer/zebraham -rwxr-xr-x 1hugo sys 98 May 5 13:49 keymap* -rwxr-xr-x 1hugo sys 211 May 5 13:49 local* adams:-$ find . –group sys -print ./mi_segundo/K ./mi_segundo/M ./mi_segundo/S ./mi_segundo/keymap ./mi_segundo/local ./mi_segundo/0 ./mi_segundo/cdrom

Con frecuencia puede resultar útil al usuario buscar archivos especialmente grandes o solo archivos vacíos. La opcion –size permite la búsqueda de archivos según su tamaño. Tras la opcion –size se indican los datos de tamaño que pueden representarse en una cifra de bloque o en una cifra de bytes. Si no se indica lo contrario, la cifra tras la opcion se interpretara como cifra de bloque. Cada bloque tiene un tamaño de 512 caracteres. Para averiguar el numero de caracteres a partir del numero de bloque, debe multiplicarse por 512 la cifra tras la opcion –size. Con el siguiente comando se realizaría la búsqueda de todos los archivos que tengan exactamente 5120 caracteres: find . –size

10 -print

Página 60

Sistemas Operativos

2010 

También puede incorporarse a la cifra el carácter c si el valor debe interpretarse como numero de caracteres. La búsqueda anterior también podría activarse de la siguiente forma: find . –size 5120c -print El comando find gana flexibilidad con una ampliación que ya hemos mencionado al principio del capitulo. Si delante de la cifra aparece un signo menos, se buscaran todos los archivos menores que el dato en bytes o bloques. Con un signo mas delante de la cifra se buscaran solo archivos mayores que dicho valor. Para buscar todos los archivos mayores que 200 KB, podría utilizarse el siguiente comando: find . –type f -size +200k -print En este caso, no se utilizara la letra c, sino la letra k para indicar que el valor debe interpretarse como referencia a KB. Como criterio adicional se indica también el tipo de archivo. Normalmente, el resto de tipos de archivo no son tan grandes. Mediante las tres marcas de tiempo introducidas para cada archivo, se registra internamente en segundos cuando se creo, se accedió y se modifico el archivo por ultima vez. El comando find no soporta esta precisión. El comando find y sus tres opciones, -atime, -mtime y –ctime, consultan solo con exactitud en periodos de 24 horas. Para las tareas que debe llevar a cabo es normalmente suficiente. Como ya explicamos con la opcion –size, delante de los datos de las opciones –atime, mtime y - ctime pueden aparecer signos más o menos para indicar que se permite un valor o menor que la cifra del día. A continuación se muestra un ejemplo del comportamiento del comando find con la opcion –mtime: find . –mtime -3 -print

Opciones del comando find Las opciones se ejecutan para cada archivo encontrado. Junto con las opciones de comando –print que muestra el nombre de ruta del archivo encontrado, con la opcion de comando –exec puede ejecutarse el comando introducido tras esta. Los comandos que aparezcan tras -exec se ejecutaran sin previa comprobación. La opcion de comando – ok plantea al usuario la pregunta de si realmente desea ejecutar el comando. La ejecución sin pregunta de constatación con la opcion de comando –exec la especificación de un comando tras la opcion –exec debe someterse a algunas reglas que exponemos a continuación: Página 61

Sistemas Operativos

2010 

La opcion de comando –exec debe ser la ultima opcion. El comando tras la opcion de exec debe cerrarse mediante el parámetro \; puesto que el punto y coma es un carácter especial para el shell, debe protegerse del shell con una barra diagonal si en el comando tras la opcion –exec debemos referirnos al nombre de archivo encontrado , se utiliza el signo {}. El siguiente comando muestra el formato del comando ls para cada archivo encontrado: find . –user hugo -exec ls -l {} \; El punto y coma debe reconocerse también como parámetro. Una forma habitual de utilizar el comando find y la opcion –exec es la supresión de archivos que se encuentran en directorios diferentes pero que cumplen unos criterios comunes. Si se deseara suprimir todos los archivos a los que no se han accedido desde hace dos semanas se utilizaría el comando: find . –type f -atime +13 -exec rm {} \; Para la opción de comando –ok, se aplican las mismas normas que para la opción –exec, pero con la opcion –ok se indica en pantalla el comando completo para cada archivo encontrado y se pregunta si el comando correspondiente debe ejecutarse de la forma indicada. El comando tras la opcion –ok solo se ejecutara si se responde y a la pregunta. adams:-$ find . –exec echo , por lo que debe tenerse cuidado de no destruir información útil de esta manera. >> Se usa para añadir información a un archivo existente. Por ejemplo, el siguiente comando agrega la fecha actual a un archivo llamado reporte: date >> reporte Tabla 3.2: Símbolos de redireccionamiento de la E/S estándares. A continuación se presenta un ejemplo más extenso. Suponga que el archivo ventas contiene en el primer campo de cada línea de texto un código de identificación de cliente. date > reporte_ventas sort < ventas >> reporte_ventas mail jperez smaldonado < reporte_ventas La primera línea coloca la salida del comando date (fecha) en el archivo reporte_ventas. La segunda línea utiliza el archivo ventas como entrada hacia el comando sort (ordenar) y añade la salida al archivo reporte_ventas. La última línea envía por correo electrónico el archivo reporte_ventas a los usuarios jperez y smaldonado.

Página 69

2010 

Sistemas Operativos

Nota: Si se redirecciona un mismo archivo como entrada y salida hacia un comando, lo más probable es que se destruya el contenido del archivo.

3.3.6 Conexión de procesos mediante tuberías. Aunque cada proceso (programa o comando) es una entidad independiente, con su propio contador de programa y estado interno, es usual que los procesos deban interactuar con otros. Con frecuencia es necesario utilizar la salida de un proceso como entrada de otro, o dicho de otra manera, un proceso podría generar cierta salida que fuera utilizada por otro. Por ejemplo, en el comando: cat Capitulo1 Capitulo2 Capitulo3 | grep programa el primer proceso, que ejecuta cat, concatena tres archivos. El segundo proceso, que ejecuta grep, selecciona e imprime en la salida estándar todas las líneas que contienen la palabra “programa” desde la salida generada por el primer proceso (concatenación de los archivos Capitulo1, Capitulo2 y Capitulo3 ). En vez de introducir cada comando por separado y guardar los resultados en archivos intermedios, puede conectar una secuencia de comandos por medio de una tubería. El carácter de tubería de Linux es una barra vertical ( | ). El término tubería es apropiado. La salida del programa a la izquierda de la tubería (la barra vertical) se envía por la tubería y se emplea como la entrada del programa situado a la derecha. Con las tuberías es posible conectar varios procesos. La tabla 3.3 muestra algunos ejemplos. Comando sort ventas | lp cat ventas* | sort | lp ls –l | less ls | tee3 datos | more who > fusu | pico

Acción Ordena el archivo ventas y lo imprime. Imprime una lista ordenada de los datos de todos los archivos con nombres que comienzan con ventas. Despliega en la pantalla la salida del comando ls –l Coloca una copia del listado de archivo generado por ls en el archivo datos, mientras se ve el listado por medio del paginador more. Escribe la salida del comando who en el archivo fusu y dicho archivo lo recibe como entrada el editor de texto pico.

Tabla 3.3: Ejemplos de comandos que emplean tuberías ( | ).

3.3.7 Procesamiento en segundo plano Linux permite correr un comando en segundo plano al mismo tiempo que se ejecuta un comando en primer plano, es decir, el Shell permite correr un proceso e iniciar otro antes de que se complete el primero; al hacer esto, el primer proceso queda en segundo plano. 3 El comando tee divide la salida de una tubería en uno o más archivos. Esto permite que se capture lo que se está enviando hacia la salida estándar y se coloque esa salida en un archivo mientras todavía se permite que la salida fluya por la salida estándar.

Página 70

Sistemas Operativos

2010 

Para colocar un proceso en segundo plano es necesario utilizar el símbolo & como último carácter de la línea que contiene el comando que se desea que corra en segundo plano. Por ejemplo, al introducir el siguiente comando: sort ventas > ventas.ord & verá un número en la pantalla que corresponde al PID del proceso que se colocó en segundo plano. Por lo general, cuando se ejecuta un comando, el shell suspende operaciones hasta que éste se completa. Si se agrega el símbolo & al final de una cadena de comandos, ésta correrá simultáneamente con el shell, el cual continúa su operación tan pronto como se ejecuta el comando de segundo plano. A menos que se use un redireccionamiento de E/S con el comando de segundo plano, tanto el comando de segundo plano como el shell actual esperarán una entrada de la terminal y producirán una salida hacia la misma. A menos que el comando de segundo plano se encargue de la propia E/S, la sintaxis para el procesamiento en segundo plano es: cadena_de_comando [archivo_de_entrada] archivo_salida & Por ejemplo, para copiar una serie de archivos cuyos nombres terminan con los caracteres .txt a un subdirectorio llamado antiguos y, sin esperar a que termine ese proceso, imprimir una lista ordenada de los datos en todos los archivos cuyo nombre empiece con ventas, se escribe: cp *.txt antiguos & cat ventas* | sort | lp Notas: 1. Se colocan trabajos en segundo plano cuando: a) Se quiere esperar a que un programa termine antes de arrancar otro. b) Se tiene una serie de tareas y por lo menos una de ellas debe correr por sí misma. En tal caso, se inicia ésa y se coloca en segundo plano. 2. Todos los procesos hijos se aniquilan cuando mueren sus padres. Como el proceso en segundo plano es hijo del shell del usuario, se aniquila de manera automática después de que el usuario termina una sesión.

3.4 Editor vi Un editor de texto es simplemente un programa usado para la edición de archivos que contienen texto, como una carta, un archivo en C o un archivo de configuración del sistema, mientras que hay muchos editores de texto en Linux, el único editor que está garantizado encontrar en cualquier sistema UNIX y es el vi “visual editor” . Este es el editor estándar usado por todos los sistemas UNIX, el cual sirve para escribir y modificar archivos. La manera de entrar al editor es a través de la línea de comandos tecleando “vi” y después el nombre del archivo o desde el menú de programas. Página 71

Sistemas Operativos

2010 

El editor vi tiene 3 modos de trabajo -Modo Comando -Modo Inserción - Modo Ejecución de Comandos Cada uno de los cuales cuenta con sus propios comandos, que ha continuación se explican:

3.4.1 Modo comando Para activar este modo se presiona la tecla ESC, y entonces queda listo para recibir instrucciones las cuales tienen categorías en base a la función que desempeñan. enseguida se muestra un listado de las categorías del modo comando con sus comandos respectivos. Movimientos del cursor h Desplaza el cursor una localidad hacia la izquierda. j Desplaza el cursor una localidad hacia abajo k Desplaza el cursor una localidad hacia arriba. l Desplaza el cursor una localidad hacia la derecha. w ó e Desplaza el cursor una palabra a la derecha. b Desplaza el cursor una palabra hacia la izquierda $ Desplaza el cursor al final de la línea . O Desplaza el cursor al principio de la línea. G Desplaza el cursor al final del documento. lG Desplaza el cursor al principio del documento. nG Desplaza el cursor a la línea n dentro del documento. ctrl.-f Una pantalla hacia delante. ctrl.-b Una pantalla hacia atrás.

Reemplazo de texto r ns R cw ncw c$ cO cc ncc

Reemplaza la letra sobre el cursor por la que sea presionada después de la letra Cambia n letras partiendo de la posición del cursor. Reemplaza todo texto deseado a partir de la posición del cursor. Cambia la palabra que se encuentra el cursor. Cambia n palabras empezando con la que se encuentra sobre el cursor Cambia todo el texto a partir del cursor y hasta el final de la línea. Cambia todo el texto a partir del cursor y hasta el inicio de la línea. Cambia el texto de una línea completa. Cambia el texto de n líneas completas.

Borrado de texto Página 72

2010 

Sistemas Operativos

x nx dw ndw d$ ó D d0 dd ndd

Borra el carácter que se encuentra sobre el cursor. Borra n caracteres partiendo de la posición del cursor. Borra una palabra que se encuentra sobre o a la derecha del cursor. Borra n palabras que se encuentran sobre o a la derecha del cursor. Borra el texto de la posición del cursor al final de la línea. Borra el texto de la posición del cursor al inicio de la línea. Borra la línea donde se encuentra el cursor. Borra n líneas a partir de donde se encuentra el cursor.

3.4.2 Modo de inserción Para activar este modo se presiona cualquiera de las teclas que permiten introducir texto al documento las cuales son: I I A A O O

Entra al modo de inserción de texto. Inserta el texto al principio de la línea. Añade texto una posición delante de la del cursor. Añade texto al final de la línea. Abre una línea para inserción de texto bajo la posición del cursor. Abre una línea para inserción de texto sobre la posición del cursor.

3.4.3 Modo ejecución de comandos Para activar este modo se presiona la tecla ESC y uno de los siguientes caracteres :,/,? ó !. Más adelante se verá el uso de cada uno de ellos. Una vez activado este modo se pueden realizar las siguientes funciones: Búsqueda Busca un patrón de caracteres a partir de la posición el cursor hasta el final del archivo. ? patrón Busca un patrón de caracteres partiendo de la posición del cursor hasta el inicio del archivo /patrón

n

Repite la última búsqueda o busca la siguiente ocurrencia.

N

Repite la última búsqueda o busca la siguiente ocurrencia en sentido contrario.

l

Reemplazo :s/patrón/cadena/[g]

Busca la cadena patrón en la línea actual y al encontrarlo lo reemplaza por cadena. Si la opción “g” esta puesta hará un reemplazo Página 73

2010 

Sistemas Operativos

global en la línea de los contrario solo reemplazará la primera ocurrencia.

Copiado :inicio,final co posición

Copia el texto a partir de la línea inicio hasta la línea final y lo posiciona en el lugar posición

Movimiento :inicio ,final m posición

Mueve el texto que se encuentra entre las líneas inicio y final posicionándolo a partir de la línea posición. Salvar

:w

Salva el contenido actual del buffer (archivo) y continua trabajando en el editor.

:w archivo l

Salva el contenido actual del buffer (archivo) en uno nuevo llamado archivo l.

:x

Salva el contenido actual del sistema y sale del editor.

:q!

Sale del editor sin salvar el trabajo o modificaciones recientes. Ejecución de comandos UNIX

:! Comando

Una vez que le da la tecla de “!” sale del vi y permite que el comando sea ejecutado después de lo anterior retorna al editor. Otros

:set number :ser nonumber u

Activa la numeración de líneas. desactiva la numeración de líneas. Elimina el último comando que se realizó.

La sintaxis de vi es: vi nombre del archivo Página 74

Sistemas Operativos

2010 

Por ejemplo inicie vi tecleando /home/larry# vi test Inmediatamente aparecerá algo parecido a ~ ~ “test” [New file] La columna de caracteres “-“ indica que esta al final del archivo Insertando texto •

Orden “i”

Está ahora en el modo ordenes, para poder insertar texto en el archivo, pulse (lo que le hará entrar en el modo de inserción), y empiece a escribir. Now is the for all gob men to come to the aid of the party ~ ~ Mientras inserta texto, puede escribir tantas líneas como desee (pulsando después de cada una) y puede corregir los errores con la tecla de borrado de carácter. Para salir del modo de inserción y volver al modo de ordenes solo pulse . Mientras esta en modo ordenes puede usara las teclas del cursor para moverse por el archivo. Cuando solo se tiene una línea e intenta moverse hacia abajo muy probablemente vi emita un pitido. •

Orden “a” Insertar texto comenzando detrás de la posición actual del cursor, en lugar de la posición actual del cursor.

Por ejemplo, use la tecla de cursor a la izquierda para desplazar el cursor sobre las palabras “good” y “men” Now is the for all gob_men to come to the aid of the party ~ ~ Pulse para iniciar el modo de inserción y escriba Now is the for all gob women to come to the aid of the party ~ Página 75

Sistemas Operativos

2010 

~ •

orden “o” Para insertar texto en la línea de debajo de la actual Por ejemplo, pulse y teclee otra línea o dos:

Now is the for all gob women to come to the aid of the party Afterwards, we’ ll go out for pizza and beer. ~ ~ Borrando texto Desde el modo de ordenes, la orden “x” borra el caracter debajo del cursor. Si pulsa “x” cinco veces terminara con> Now is the for all gob women to come to the aid of the party Afterwards, we’ ll go out for pizza and_ ~ ~ Ahora pulse , inserte algún texto seguido de : Now is the for all gob women to come to the aid of the party Afterwards, we’ ll go out for pizza and Diet coke. ~ ~ •

orden dd Se utiliza para borrar líneas enteras. Por ejemplo para borrar la segunda línea, mueva el cursor en la segunda línea y pulse la tecla d dos veces (dd). Now is the for all gob women to come to the aid of the party ~ ~ •

orden dw Borra la palabra sobre la que se encuentra el cursor. Por ejemplo, situé el cursor sobre la palabra “good” y pulse . Now is the for all women to come to the aid of the party ~ ~

Página 76

Sistemas Operativos

2010 

Modificando texto •

Orden R

Se utiliza para sustituir sesiones de texto Por ejemplo, Situé el cursor en la primera letra de la palabra “party” y pulse , y escriba la palabra “hungry”.

Now is the for all gob_men to come to the aid of the hungry ~ ~ El uso de la orden R para editar texto es bastante parecido al uso de las ordenes “i” y “ a”, pero “R” sobrescribe texto en lugar de insertarlo. •

Orden

Sustituye un único carácter situado debajo del cursor Por ejemplo, situé el cursor al comienzo de la palabra “now” y escriba “r” seguido c, obtendrá: c_ow is the for all gob_men to come to the aid of the party ~ ~ •

La orden “~” cambia de mayúsculas a minúsculas o viceversa la letra donde se encuentra el cursor. Por ejemplo, situé el cursor sobre la “o” de “Cow”, y repetidamente pulsa , . Cow is the for all gob_men to come to the aid of the party ~ ~

Ordenes de movimiento

Además de utilizar las teclas del cursor para moverse por el documento, en vi existen las ordenes h, j, k y l, para mover el cursor a la izquierda, abajo, arriba y derecha respectivamente. • • •

Orden w Mueve el cursor al comienzo de la siguiente palabra. Orden b Lo lleva al comienzo de la palabra anterior Orden 0 (cero). Mueve el cursor al comienzo de la línea actual. Página 77

Sistemas Operativos

2010 



Orden $ Lo lleva al final de la línea. • Orden Avanza el cursor una pantalla hacia delante • Orden Regresa una pantalla atrás. • Orden G Lleva el cursor al final del archivo, puede también desplazarse una línea arbitraria; por ejemplo, pulsando la orden 10G, llevara el cursor a la linea 10 del archivo, para desplazarse al comienzo pulse 1G. Puede también asociar ordenes de desplazamiento con otras ordenes como es el borrado. Por ejemplo, la orden d$ borrara todo desde la posición del cursor al final de la línea; dG borrara todo desde la posición del cursor al final del archivo. Guardando archivos y saliendo del editor vi •

Orden :q! Al pulsar “:” , El cursor se desplazara a la ultima línea de la pantalla. (Esta en modo de ultima línea). Cow is the for all gob_men to come to the aid of the party ~ ~ : • • •

Orden :wq Salva el archivo y sale de vi Orden ZZ (desde el modo de ordenes, sin “:”) Es equivalente a la orden :wq Orden :w Salva los cambios sin salirse de vi.

Editando otro archivo •

Orden :e Se utiliza para abrir otro archivo. Por ejemplo, para dejar de editar el archivo test y en su lugar editar el archivo test2

Cow is the for all gob_men to come to the aid of the party ~ ~ :e test2 Si utiliza la orden :e sin salvar primero el archivo, obtendrá el mensaje de error No write since last change (“:edit !” overrides) Página 78

Sistemas Operativos

2010 

Lo cual significa que vi no quiere editar otro archivo hasta que salve el primero •

Orden :e! Indica al editor que realmente se desea editar otro archivo sin salvar los cambios en el primero.

Incluyendo otro archivo •

Orden :r Puede incluir el contenido de otro archivo en el archivo que esta editando. Por ejemplo, para editar los archivos test y test2, estando editado el test Cow is the for all gob_men to come to the aid of the party ~ ~ :r test2 Ahora tendremos dos archivos, el archivo test2 se inserta en la posición actual del cursor. Ejecutando comandos del interprete Se pueden ejecutar comandos del interprete desde editor vi con las siguientes ordenes: •

Orden :r! Funciona como la orden :r, pero en lugar de leer un archivo, inserta la salida de un comando dado en el archivo en la posición actual del cursor. Por ejemplo, la orden :r! ls –F . Muestra en el archivo el listado del directorio donde se encuentra ubicado. • Orden :! Se utiliza para salir a un interprete de comandos desde vi, es decir, ejecutar desde dentro de vi y volver al editor una vez finalice. Por ejemplo, si usa la orden: :! ls –F La orden ls –F sera ejecutada, y los resultados mostrados en la pantalla, pero no insertados en el archivo de edición. • :shell. Con esta orden vi inicia una instancia de comandos, permitiéndole temporalmente dejar a vi “parado” mientras ejecuta otras ordenes. Simplemente salga del intérprete de comandos usando la orden exit, para regresar a vi.

3.5 Administración de cuentas y grupos de usuarios Una de las principales responsabilidades del administrador del sistema Linux es mantener las cuentas de usuarios y de grupos de usuarios. Ello incluye dar de alta nuevas cuentas, eliminar las que nos se utilicen, establecer los mecanismos de comunicación con los usuarios, etc. Página 79

Sistemas Operativos

2010 

Existe 3 tipos de usuarios: •





Usuario Normal, es un individuo particular que puede entrar en el sistema, con más o menos privilegios que harán uso de los recursos del sistema. Como indicador en el prompt utiliza el símbolo $ (dólar). Ejemplo: raul, sergio, mrodriguez, etc. También se les conoce como usuarios de login. Usuarios de Sistema, son usuarios propios del sistema vinculados a las tareas que debe realizar el sistema operativo, este tipo de usuario no puede ingresar al sistema con un login normal. Ejemplo: mail, ftp, bin, sys, proxy, etc. También se le conoce como usuarios sin login. root (superusuario), todo sistema operativo GNU/Linux cuenta con un superusuario, que tiene los máximos privilegios que le permitirán efectuar cualquier operación sobre el sistema, su existencia es imprescindible ya que se encarga de gestionar los servidores, grupos, etc.

En todas las operaciones con usuarios se ven implicados 3 archivos en donde se guardan la información concerniente a los usuarios y a los grupos a que pertenecen: • • •

/etc/passwd: guarda información de los usuarios del sistema como: nombres, directorio home, shell. /etc/group: almacena la información sobre los grupos existentes en el sistema. /etc/shadow: contiene las contraseñas cifradas de los usuarios además de otros datos para su validación.

Archivo /etc/passwd El archivo passwd almacena los usuarios creados en el sistema y tiene el siguiente formato: root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync clases:x:1000:1000:LinuxCentro:/home/clases:/bin/bash Cada línea esta separada en campos, el separador de campo son los dos puntos (:), y cada campo representa lo siguiente:



Login: el nombre del usuario. No puede haber dos nombres iguales.

Página 80

Sistemas Operativos



• • •





2010 

Contraseña cifrada: si no se utiliza el fichero de shadow, las contraseñas cifradas se almacenan en este campo. Si utilizamos el fichero de shadow, todos los usuarios existentes en este fichero deben existir también en el de shadow y en este campo se pone el carácter “x”. User ID: número de identificación del usuario. Es el número con el cual el sistema identifica al usuario. El 0 es el único que está reservado para el root. Group ID: el número de grupo al cual pertenece el usuario. Como un usuario puede pertenecer a más de un grupo, este GID es del grupo primario. Comentarios: campo reservado para introducir los comentarios que queramos sobre el usuario. Se suele utilizar para poner el nombre completo o algún tipo de identificación personal. Directorio home: el directorio home del usuario es donde éste podrá guardar todos sus ficheros, generalmente se encuentran dentro del directorio /home y el nombre de cada directorio es similar al de cada usuario. Intérprete de comandos: un intérprete de comandos (shell ) es un programa que se encarga de leer todo lo que escribimos en el teclado y ejecutar los programas o comandos que le indiquemos. Hay decenas de ellos, aunque el más utilizado es, sin duda, el bash (GNU Bourne-Again SHell). Si en este campo está: /bin/false ó /bin/nologin el usuario no podrá tener acceso a su shell y no podrá ejecutar comandos.

Archivo /etc/group El archivo group almacena la información de los grupos del sistema, y tiene el siguiente formato: root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm clases:x:502: Al igual que el archivo anterior cada línea está separada en campos el separador de campo son los dos puntos (:), y cada campo representa lo siguiente:



Nombre del grupo. Por defecto con los comandos habituales se crea un grupo con el mismo nombre que el usuario creado, aunque pueden existir otros grupos con nombres específicos. Página 81

Sistemas Operativos







2010 

Contraseña cifrada: la contraseña de un grupo se utiliza para permitir que los usuarios de un determinado grupo se puedan cambiar a otro o para ejecutar algunos programas con permisos de otro grupo, siempre que se disponga de la contraseña. Group ID: número de identificación del grupo. Es el número con el cual el sistema identifica internamente a los grupos. El 0 es el único que está reservado para el grupo del root (los administradores). Lista de usuarios: los nombres de los usuarios que pertenecen al grupo, separados por comas. Aunque todos los usuarios deben pertenecer a un determinado grupo (especificado en el cuarto campo del fichero de passwd), este campo se puede utilizar para que usuarios de otros grupos también dispongan de los mismos permisos que tiene el que se está referenciando.

Archivo /etc/shadow El archivo shadow se encarga de almacenar las contraseñas cifradas del usuario, y tienen el siguiente formato: root:$1$qvZCDFha$8CsNHHB/QDYlx3wDnZWzp/:12829:0:99999:7::: bin:*:12829:0:99999:7::: daemon:*:12829:0:99999:7::: clases:$1$8Ne4Ij4r$th9obKXkR7iTZGj26jGUc/:12831:0:99999:7::: Igual que los archivos anteriores cada línea esta separada en campos el separador de campo son los dos puntos (:), y cada campo representa lo siguiente:

• • • • • • • • •

Login: debe ser el mismo nombre que se utiliza en el fichero de passwd. Contraseña cifrada. Días que han pasado, desde el 1 de enero de 1970, hasta que la contraseña ha sido cambiada por última vez. Días que deben pasar hasta que la contraseña pueda ser cambiada. Días que han de pasar hasta que la contraseña deba ser cambiada. Días antes de caducar la contraseña en el que se avisará al usuario de que debe cambiarla. Días que pueden pasar después de que la contraseña caduque, antes de deshabilitar la cuenta del usuario (si no se cambia la contraseña). Días, desde el 1 de enero de 1970, desde que la cuenta está deshabilitada. Campo reservado.

En sistemas UNIX es muy común representar las fechas a partir del número de segundos transcurridos desde el 1 de enero de 1970. Página 82

2010 

Sistemas Operativos

3.5.1 Comandos relacionados con la administración de cuentas y grupos de usuarios Comando: useradd Formato: useradd [-opciones] usuario Descripción: Este comando se utiliza para dar de alta a nuevos usuarios en el sistema. Si no se proporcionan argumentos, tomará determinados valores por defecto, dichos valores se pueden consultar con la opción –D y están almacenados en el directorio /etc/default/useradd Ejemplo # useradd –g Usuarios –c “Norma Roldan” normita En este ejemplo se creó la cuenta normita y se asigno al grupo Usuarios Algunas de las opciones más comunes de este comando son: - u: permite especificar el UID. - c: añade los valores a la sección de comentarios. - d: permite especificar el directorio de trabajo, creará automáticamente el directorio señalado. - s: permite establecer el shell. Ejemplos:

# useradd -u 501 alexvira # useradd –c “Luis Ramos” luis # useradd –d /home/soft msantos # useradd –s /bin/false operador1

crea el usuario alexvira con su UID 501 crea el usuario luis rellenando el comentario con “Luis Ramos” crea el usuario msantos con su directorio de trabajo “soft” crea el usuario operador1 desactivando la posibilidad de ejecutar un shell

Una vez creado el usuario debemos agregarle una contraseña con la orden: # passwd normita O dejar la cuenta sin password para que el usuario la establezca: #passwd –d normita Comando: userdel Formato: userdel [-opciones] usuario Descripción: Este comando permite eliminar usuarios del sistema. Por ejemplo, si queremos eliminar al usuario normita, se escribe lo siguiente: #userdel normita

Página 83

Sistemas Operativos

2010 

Si queremos eliminar también su directorio HOME, debemos emplear la opción –r. Es aconsejable eliminar las cuentas de usuarios que ya no se conectan al sistema, ya que éstas pueden ser agujeros en la seguridad. Comando: groupadd Formato: groupadd [-opciones] grupo Descripción: Con esté comando podemos dar de alta un nuevo grupo en el sistema por ejemplo, si queremos dar de alta al grupo de usuarios de captura utilizamos la orden: # groupadd captura Si quiere añadir un grupo supervisor con GID 601: # groupadd –g 601 supervisor Comando: newgrp Formato: newgrp [-opciones] grupo Descripción: Comando que permite que un usuario pueda cambiarse de grupo. Por ejemplo el usuario normita que pertenece al grupo captura, quiere cambiarse al grupo programadores #newgrp programadores Comando: gpasswd Formato: gpasswd [-opciones] grupo Descripción: Permite administrar los grupos. Se puede utilizar para añadir y eliminar usuarios, señalar un administrador e indicar un password para el grupo. El administrador del sistema es el encargado de nombrar a un administrador por grupo. Dicho administrador puede ser un usuario cualquiera del sistema. El administrador de grupo tendrá el permiso de incluir nuevos usuarios en su grupo. Solo root puede establecer quién será de un grupo. Por ejemplo para definir al usuario normita como administrador del grupo captura utilizamos la orden: #gpasswd –A normita captura Ejemplos: # gpasswd admin cambia el passwd del grupo admin # gpasswd -a juan admin añade el usuario juan al grupo admin Comando: groupdel Formato: groupdel [-opciones] grupo Descripción: Este comando permite eliminar un grupo del sistema, el grupo no podrá ser eliminado si este es el grupo primario de un usuario. Ejemplo: # groupdel admin Página 84

2010 

Sistemas Operativos

UNIDAD IV SERVICIOS DE RED

4.1 Herramientas de administración de los servicios Los servicios son aplicaciones que se ejecutan independientemente del usuario y de que éste haya iniciado la sesión en el equipo. Normalmente se asocia los servicios sólo a servicios de red, pero los servicios proporcionan una gran funcionalidad al sistema operativo. Estas aplicaciones se registran como servicios y los controla el administrador de servicios. El administrador de servicios permite establecer los servicios que se van a ejecutar al iniciar el sistema, y nos permite parar, ejecutar o reanudar los servicios que están activos actualmente en el sistema. Hay diferentes métodos de administrar el acceso a los servicios del sistema. Debe decidir qué método le gustaría usar en función del servicio, la configuración del sistema y el nivel de conocimientos que tenga de Linux. La forma más fácil de denegar el acceso a un servicio es desactivándolo. Los servicios en la jerarquía /etc/rc.d se pueden configurar para iniciarse o detenerse con tres aplicaciones diferentes: • Herramienta de configuración de servicios — una aplicación gráfica que muestra

una descripción de cada servicio, muestra si los servicios se han iniciado en el momento del arranque (para los niveles de ejecución 3, 4, y 5), y permite que los servicios sean arrancados, detenidos o reiniciados. • ntsysv: una aplicación basada en texto que permite configurar cuáles servicios son

arrancados al momento de arranque para cada nivel de ejecución. Los cambios no toman efecto de inmediato para los servicios no xinetd. Los servicios que no son xinetd no pueden ser arrancados, detenidos o reiniciados usando este programa. • chkconfig: utilidad de línea de comandos permite activar o desactivar servicios para

los diferentes niveles de ejecución. Los cambios no toman efecto de inmediato para los servicios no xinetd. Los servicios no xinetd no pueden ser arrancados, detenidos o reiniciados usando esta utilidad. • setup:

Niveles de ejecución Antes de configurar el acceso a servicios, deberá entender qué son los niveles de ejecución en Linux. Un nivel de ejecución es un estado o un modo que los servicios incluídos en el directorio /etc/rc.d/rc.d definen, donde es el número del nivel de ejecución. Página 85

Sistemas Operativos

2010 

Red Hat Linux utiliza los siguientes niveles de ejecución: •

0 — Parada



1 — Modo de un usuario



2 — No se utiliza (definido por el usuario)



3 — Modo completo de multiusuario



4 — No se utiliza (definido por el usuario)



5 — Modo completo de multiusuario (con una pantalla de conexión basada en X)



6 — Rearranque

Si usa una pantalla de texto para el ingreso al sistema, estará operando a nivel de ejecución 3. Si usa una pantalla gráfica para ingresar al sistema, estará operando a nivel de ejecución 5. El nivel de ejecución por defecto se puede cambiar si se modifica el fichero /etc/inittab, que contiene una línea junto a la parte superior del fichero con el siguiente aspecto: id:5:initdefault:

Cambie el número de esta línea para reflejar el nivel de ejecución que desee. El cambio no tendrá efecto hasta rearrancar el sistema. Para cambiar el nivel de ejecución inmediatamente, use el comando telinit seguido del número del nivel de ejecución. Debe ser usuario root para poder usar este comando. 4.1.1. Herramienta de configuración de servicios La Herramienta de configuración de servicios es una aplicación gráfica desarrollada por Red Hat para configurar qué servicios SysV en /etc/rc.d/init.d se inician en el momento del arranque (para los niveles de ejecución 3, 4, y 5) y cuáles servicios xinetd están activados. También le permite arrancar, detener y rearrancar servicios SysV así como rearrancar xinetd. Para arrancar la Herramienta de configuración de servicios desde el escritorio, vaya al botón Menú principal (en el Panel) => Configuración del servidor => Servicios o escriba el comando redhat-config-services en el intérprete de comandos (por ejemplo, en un XTerm o un terminal de GNOME ).

Página 86

Sistemas Operativos

2010 

Figura 4.1 Herramienta de configuración de servicios

La Herramienta de configuración de servicios muestra el nivel de ejecución así como también el nivel de ejecución en el cual está modificando actualmente. Para modificar otro nivel de ejecución, seleccione Editar nivel de ejecución desde el menú desplegable y seleccione los niveles 3, 4, o 5. La Herramienta de configuración de servicios muestra los servicios de /etc/rc.d/init.d y los servicios controlados por xinetd. Haga click en un servicio para mostrar una breve descripción del servicio y también para ver el estado del mismo. Si el servicio no es xinetd, la ventana de estado muestra si el servicio se está ejecutando o no. Si el servicio es controlado por xinetd, la ventana de estado mostrará la frase servicio xinetd. Para arrancar, detener o rearrancar un servicio inmediatamente, seleccione el servicio y haga click en el botón adecuado (o elija la acción correspondiente en el menú desplegable Acciones). Si el servicio es xinetd, los botones de acción estarán desactivados porque no pueden ser arrancados o detenidos individualmente. Si activa o desactiva un servicio xinetd marcando o desmarcando la casilla de verificación al lado del nombre del servicio, debe seleccionar Archivo => Guardar cambios desde el Página 87

Sistemas Operativos

2010 

menú desplegable para reiniciar xinetd e inmediatamente activar/desactivar el servicio xinetd que usted cambió. También se configura xinetd para recordar la configuración. Puede activar/desactivar más de un servicio xinetd a la vez y guardar los cambios cuando haya terminado. Por ejemplo, imagine que verifica rsync para activarlo a nivel de ejecución 3 y luego guarda los cambios. El servicio rsync se activará de inmediato. La próxima vez que arranque xinetd, rsync estará todavía activado.

Aviso Cuando guarde los cambios de los servicios xinetd, xinetd es reiniciado y los cambios toman efecto de inmediato. Cuando guarda cambios a otros servicios, el nivel de ejecución es reconfigurado, pero los cambios no serán efectivos de inmediato. Para activar un servicio no xinetd para que se inicie en el momento de arranque del sistema para el nivel de ejecución seleccionado actualmente, marque la casilla de verificación al lado del nombre del servicio en la lista. Después de configurar el nivel de ejecución, aplique los cambios seleccionando Archivo => Guardar cambios desde el menú desplegable. La configuración del nivel de ejecución es modificada, pero el nivel de ejecución no es reiniciado; por tanto los cambios no toman efecto de inmediato. Por ejemplo, asuma que está configurando un nivel de ejecución 3. Si cambia el valor para el servicio anacron de marcado a desmarcado y luego selecciona Guardar cambios, el nivel de ejecución 3 cambia y entonces anacron no es iniciado al momento de arranque. Sin embargo, el nivel de ejecución 3 no es reinicializado, por tanto anacron todavía estará ejecutándose. Llegados a este punto, seleccione una de las siguientes opciones: 1. Detener el servicio anacron — Detenga el servicio seleccionándolo de la lista y haciendo click en el botón Parar el servicio . Aparecerá un mensaje para indicar que se ha detenido correctamente el servicio. 2. Reinicializar el nivel de ejecución — Reinicializar el nivel de ejecución escribiendo en el intérprete de comandos del shell el comando telinit 3 (donde 3 es el número de nivel de ejecución). Esta opción es recomendada si cambia el valor Comenzar al arrancar de más de un servicio y quiere activar los cambios inmediatamente. 3. No es necesario que detenga el servicio anacron. Puede esperar a que se rearranque el sistema para detener el servicio. La próxima vez que se arranque el sistema, se inicializará el nivel de ejecución sin que se ejecute el servicio anacron.

4.1.2 ntsysv La utilidad ntsysv provee una interfaz sencilla para activar y desactivar servicios. Puede usar ntsysv para activar o desactivar un servicio xinetd. También puede usar ntsysv para configurar los niveles de ejecución. Por defecto, únicamente el nivel de ejecución actual es Página 88

2010 

Sistemas Operativos

configurado. Para configurar un nivel de ejecución diferente, especifique uno o más niveles con la opción --level. Por ejemplo, el comando ntsysv --level 345 configura los niveles de ejecución 3, 4, y 5. La interfaz ntsysv funciona de forma similar al programa de instalación en modo texto. Utilice las flechas arriba y abajo para desplazarse por la lista. La barra espaciadora selecciona o anula la selección de servicios, y también sirve para "pulsar" los botones Aceptar y Cancelar. Para desplazarse en la lista de servicios y entre los botones Aceptar y Cancelar, use la tecla [Tab]. Un asterisco, *, significa que el servicio está activado. Con la tecla [F1] se mostrará una breve descripción de cada servicio.

Aviso

Los servicios manejados por xinetd son afectados de inmediato por ntsysv. Para todos los demás servicios, los cambios no toman efecto de inmediato. Usted debe detener o arrancar el servicio individual con el comando service daemon stop. En el ejemplo anterior, sustituya daemon por el nombre del servicio que desee detener, por ejemplo httpd. Reemplace stop por start o restart para arrancar o reiniciar el servicio.

4.1.3 chkconfig El comando chkconfig puede ser usado para activar y desactivar servicios. Si usa el comando chkconfig --list, verá una lista de los servicios del sistema y si están iniciados (on) o detenidos (off) en los niveles de ejecución 0-6. Al final de la lista, verá una sección para los servicios manejados por xinetd. Si usa chkconfig --list para realizar una consulta a un servicio manejado por xinetd, verá si el servicio xinetd está activado (on) o desactivado (off). Por ejemplo, el comando chkconfig --list finger retorna la salida siguiente: finger

on

Como se muestra, finger está activado como un servicio xinetd. Si xinetd está ejecutándose, finger estará activo. Si usa chkconfig --list para consultar un servicio /etc/rc.d, verá las configuraciones del servicio para cada nivel de ejecución. Por ejemplo, el comando chkconfig --list anacron devuelve la siguiente salida: anacron

0:off 1:off 2:on

3:on

4:on

5:on

Página 89

Sistemas Operativos

2010 

6:off chkconfig también puede ser usado para configurar un servicio para que comience (o no) en un nivel de ejecución específico. Por ejemplo, desactive nscd en los niveles de ejecución 3, 4, y 5, usando el comando siguiente:

chkconfig --level 345 nscd off

Aviso Los servicios gestionados por xinetd están afectados por chkconfig. Por ejemplo, si se está ejecutando xinetd, finger está deshabilitado y se ejecuta el comando chkconfig finger on y se activa de inmediato finger sin tener que reiniciar xinetd de forma manual. El resto de los cambios no se producen inmediatamente tras haber usado chkconfig manualmente. Deberá parar y reiniciar el servicio individual con el comando service daemon stop. En el ejemplo anterior, reemplace daemon con el nombre del servicio que desea parar; por ejemplo, httpd. Reemplace stop start o con restart para iniciar o reiniciar el sistema .

4.2 Servicio de impresión El sistema de impresión de Linux al igual que su antecesor Unix, funciona a grandes rasgos de la siguiente manera: El comando lpr copia el archivo a imprimir en el directorio de spool indicado en el archivo printcap y crea en dicho directorio un archivo de control en el que indica: el archivo (del directorio de spool) a imprimir, el usuario que solicitó ese servicio de impresión, los parámetros que se le pasaron en la línea de comandos, entre otros; y ahí termina su función. A continuación entra en juego un daemon llamado lpd. Este programa se activa periódicamente y comprueba si hay archivos de control en el directorio de spool y en caso de que los haya realiza las siguientes acciones para cada uno de dichos archivos: 1. Imprime la página de banner, si ésta no se encuentra suprimida, pasándola a través del filtro de salida si hay alguno definido. 2. Si se indicó al comando lpr que tenía que emplear algún filtro de impresión en concreto (ej.: lpr -t) se ejecuta el filtro indicado en la correspondiente entrada del archivo printcap; si Página 90

Sistemas Operativos

2010 

no se indicó ningún filtro al comando lpr, se ejecuta el indicado por el parámetro 'if' del archivo printcap. 3. Cuando se ejecuta el filtro, se redirecciona su entrada estándar al archivo a imprimir (el creado por lpr en el directorio de spool) , y su salida estándar a: - la entrada estándar del filtro de salida (si éste está definido en el archivo printcap) y la salida de dicho filtro al dispositivo de impresión asociado a esta impresora (orden 'lp' del printcap). - al dispositivo de impresión indicado en el archivo printcap. El servicio de impresión recoge las solicitudes locales o remotas para obtener copias sobre papel y las dirige hacia una cola de trabajos. Como la impresora es un dispositivo más lento que los procesadores, el servicio selecciona el trabajo de impresión correspondiente según sus reglas de control y lo dirige hacia la impresora correspondiente cuando ésta queda libre para realizar la tarea. Un servicio de impresión consta de los siguientes componentes: El proceso servidor que recoge los trabajos de los clientes. Una serie de utilidades de gestión, que permitan controlar los trabajos pendientes. Instalar un controlador de dispositivo para cada impresora definida, ya sea local o remota, donde se indiquen las características básicas del aparato (tipo de papel, calidad de impresión, etc.). Una cola de impresión para cada dispositivo definido, donde se dispongan los trabajos que están pendientes de impresión. Cada cola debe tener un nombre único en el sistema y ser designada mediante alias. Posteriormente debe seleccionarse el controlador correspondiente al modelo de la impresora y el tipo de filtro necesario para los datos que se desea enviar al dispositivo. A continuación se describen las características principales de los 2 tipos de servicios de impresión más utilizados LPRng y CUPS. LPRng: El servicio de impresión LPR de siguiente generación (LPRng) es una evolución de las clásicas utilidades lpr del Unix de Berkeley (BSD), actualmente en desuso. A continuación se muestra la tabla de características del servicio. Paquete RPM: LPRng Servicio: lpd Fichero de configuración: /etc/printcap Fichero de control de acceso: /etc/hosts.lpd Los siguientes son los mandatos que brinda el servicio LPRng:

Página 91

2010 

Sistemas Operativos

Mandato lpd lpc lpr lpq Lprm

Descripción Servicio de impresión Controla las funciones báscias del servicio de impresión Manda un trabajo de impresión a la cola Lista el contenido de los trabajos pendiente de una cola Elimina un trabajo de impresión

CUPS: El Servicio de Impresión Común para Unix (CUPS) brinda el soporte de una capa de impresión portátil para sistemas Unix, ofreciendo interfaces de comandos compatibles con los servicios de Unix System V y los de Unix BSD. Este servicio es el utilizado actualmente en la mayoría de distribuciones de Linux. Las características principales de CUPS son: Utiliza el Protocolo para Impresión en Internet (IPP) como base para la gestión de los trabajos de impresión. Garantiza la compatibilidad con Unix System V (lp) y con Unix BSD (lpr). Soporta interfaz vía web. Ofrece contabilidad y cuotas de trabajos y de páginas impresas. Permite usar servicio de directorios para impresoras conectadas en red. Soporta clientes IPP y LPD. Brinda servicios de autentificación de usuarios y comunicación encriptada. El protocolo IPP suministra métodos para la autentificación segura de los usuarios y la posibilidad de codificar la información mediante capas SSL/TLS. Estas características pueden ser configuradas tanto en las impresoras, como en el servidor CUPS. DHCP. Dynamic Host Configuration Protocol (DHCP), Protocolo de configuración dinámica de servidor, es un protocolo de red para asignar automáticamente información TCP/IP a equipos cliente. Cada cliente DHCP se conecta un servidor DHCP centralizado que devuelve la configuración de red del cliente, incluida la dirección IP, el gateway y los servidores DNS. Motivos para usar el protocolo DHCP DHCP es útil para proporcionar de un modo rápido la configuración de red del cliente. Al configurar el sistema cliente, el administrador puede seleccionar el protocolo DHCP y no especificar una dirección IP, una máscara de red, un gateway o servidor DNS. El cliente recupera esta información desde el servidor DHCP. DHCP también es útil si un administrador desea cambiar las direcciones IP de muchos sistemas. En lugar de volver a configurar todos los sistemas, puede modificar un archivo de configuración DHCP en el servidor para establecer el nuevo conjunto de direcciones IP. Si los servidores DNS de una Página 92

Sistemas Operativos

2010 

organización cambian, los cambios también se aplicarán en el servidor DHCP, no en todos los clientes DHCP. Una vez que se reinicie la red en los clientes (o reinicie los clientes), se aplicarán los cambios. Además, si un portátil o cualquier tipo de equipo móvil se configuran para DHCP, podrá desplazarse entre distintas oficinas sin tener que volver a configurarlo, siempre y cuando cada oficina tenga un servidor DHCP que permita su conexión a la red.

4.3 Servicio web

Un servicio web (en inglés, Web service) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.

4.3.1 Estándares empleados • • • •







Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios Web. XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar. SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio. Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol). WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web. UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles. WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados.

Página 93

Sistemas Operativos

2010 

4.3.2 Ventajas de los servicios web • • • •



Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen. Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento. Al apoyarse en HTTP, los servicios Web pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado. Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados. Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar y abiertos. Las especificaciones son gestionadas por una organización abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entre aplicaciones.

Cuando un usuario se conecta a un servicio de Internet utilizando un navegador, lo hace especificando una dirección al estilo http://www.sitio.com. Esta dirección se llama URL y si se descompone en sus elementos se obtendrá: :/// : es la cadena de caracteres http : es el nombre del computador al cual se ésta conectando : en este caso es / y representa el directorio raíz Para que el servidor remoto obedezca esta solicitud de servicio debe manejar el protocolo http dentro de sus servicios instalados. La información se transmite en formato HTML o lenguaje de marcas de hipertexto. Todo el servicio web se logra gracias al protocolo http en el servidor como ya se dijo, el cual es manejado y administrado por un software llamando servidor web. En Linux se llama Apache. El servidor Apache se desarrollo en NCSA que es el Centro Nacional de Aplicaciones para Supercomputadoras en el año de 1995. 4.3.3 Archivos de configuración de Apache Apache maneja dentro del servidor una serie de directorios en donde residen las páginas web y los programas de aplicaciones orientadas a la web, cuya ubicación puede variar según la distribución de Linux o las especificaciones que se dan en el momento de compilarlo. La manera de averiguar si existe Apache dentro del servidor, si se usó rpm para instalarlo es:

Página 94

Sistemas Operativos

2010 

$ rpm –q httpd en caso de existir el sistema responde: httpd -2.0.54-10 pero puede variar según la versión Cuando se compila Apache desde los códigos fuentes este viene en formato .gz como este: httpd -2.0.54.tar.gz La manera de compilarlo es: gunzip httpd-2.0.54.tar.gz aparece el archivo .tar en cual se debe descomprimir tar xvf httpd-2.0.54.tar aparece el directorio httpd-2.0.54 al cual debe entrar cd httpd-2.0.54 y se ejecutan estos comando como usuario root: ./configure –prefix=/www make make install El parámetro –prefix determina en qué directorio debe quedar Apache. En el caso de Fedora, Apache viene localizado en /var/www y el archivo de configuración en /etc/httpd/conf/httpd.conf y para arrancar el servicio se puede hacer de varias maneras: /sbin/service httpd start /etc/rc.d/init.d/httpd start debe aparecer OK en color verde en la pantalla Para detener Apache ejecutar: /sbin/service httpd stop /etc/rc.d/init.d/httpd stop Si requiere saber el estatus del servicio web ejecutar: /sbin/service httpd status /etc/rc.d/init.d/httpd status

4.4 Servidor de correo electrónico: SENDMAIL El correo electrónico es una de las aplicaciones más usadas a nivel mundial, pues fue un servicio escogido libremente por los usuarios de Internet, lo cual determinó el auge de la computación personal de Internet. SMTP o Simple mail Transfer Protocol es un protocolo de TCP/IP encargado de la transmisión de correos. POP3 e IMAP son protocolos diseñados para la gestión de lso correos y manejos de las bandejas en los agentes de los clientes. Sendmail no es un Página 95

Sistemas Operativos

2010 

programa orientado a que lo use el usuario directamente, pero se puede usar, lo cual se hará en este momento solamente para conocer algunos aspectos de su funcionamiento y recibir el correo con el programa de texto mail que viene en Linux Sendmail viene ya preinstalado para uso básico así que sólo se mencionará los pasos de comprobación como se ha hecho con las otras plataformas: Comprobar si está instalado: rpm –q sendmail Editar como usuario root el archivo de configuración de Sendmail /etc/mail/sendmail.cf sólo como ejercicio de comprobación sin hacer cambios. Este es un archivo muy complejo que es preferible no tocar al menos que sea experto. Para arrancar Sendmail existen 2 formas: /sbin/service sendmail start /etc/rc.d/init.d/sendmail start debe aparecer OK en color verde en la pantalla Para detener Apache ejecutar: /sbin/service sendmail stop /etc/rc.d/init.d/sendmail stop Si requiere saber el estatus del servicio web ejecutar: /sbin/service sendmail status /etc/rc.d/init.d/sendmail status Activar Sendmail para enviarle un correo al usuario manual: /usr/sbin/sendmail manual La pantalla queda en un renglón en blanco y el sistema espera los comandos para enviar el mensaje para lo cual se introducen los datos aquí y se debe terminar con . (punto) 4.4.1 Comando mail El programa de correo más sencillo que hay se denomina mail y se suele hallar en el directorio / bin. Este programa no tiene un editor a pantalla completa y no requiere el sistema X Window. El comando mail, parecido al programa mailx que se distribuye con otras versiones de UNIX , soporta las características básicas necesarias para redactar, enviar, enumerar y leer mensajes. Utilice el redireccionamiento con prudencia. ¡No es una idea muy buena que digamos enviar a alguien el contenido del diccionario del sistema ! Para crear y enviar correo con mail, siga estos pasos: 1. En la línea de comandos, introduzca la palabra mail seguida de la dirección de correo electrónico de destino, de este modo : Página 96

2010 

Sistemas Operativos

# mail 2. El comando mail responderá con la indicación Subject. Introduzca una breve línea relativa al asunto: Subject: Proyecto de Programación Nexus. 3. Pulse Intro y escriba el texto de su mensaje: ¡Tengo una oportunidad inmejorable! La empresa con la que hablamos el miércoles está interesada en contratar tu equipo de programación. Por favor, llámame para confirmar si puedes atenderles. 4. Cuando haya terminado de escribir el texto, introduzca un punto (.) en una línea sola para enviar el mensaje: EOT 5. El programa mail responde imprimiendo las letras EOT (fin de texto) y enviando el mensaje. Utilice el comando mail para recuperar el correo del directorio /var/spool/mail. Para leer el correo, utilice el comando mail en la línea de comandos, así: # mail Cuando utiliza el comando mail, éste imprime una versión corta del mensaje y luego enumera los mensajes. El signo & es una indicación de la línea de comandos. Utilice in comando de una sola letra (véase la Tabla 17.2) para leer, eliminar, guardar o responder al mensaje de correo en curso, lo cual se sabe por un signo mayor que (>). Por defecto, los mensajes guardados se almacenan en un archivo llamado mbox del directorio de inicio. La tabla 17.2 enumera los comandos más habituales del programa mail ; para obtener una lista completa de los comandos mail , remítase a la página man correo. Comandos habituales del programa mail Tecla + ? R d h n q r t x

Acción Moverse al siguiente mensaje y enumerarlo Moverse al mensaje anterior y enumerarlo Imprimir una lista de los comandos mail Responde al remitente Eliminar mensaje en curso Volver a imprimir la lista de mensajes (después de enumerar un mensaje) Ir al mensaje siguiente y enumerarlo Salir y guardar los mensajes en el buzón predeterminado, mbox. Responder al remitente y a todos los destinatarios. Escribir o enumerar el mensaje en curso. Salir y no guardar los mensajes de mbox.

Página 97

Sistemas Operativos

2010 

4.5 Compartir recursos entre diferentes sistemas operativos 4.5.1 Compartir Recursos en Red con Samba Samba es una suite de aplicaciones Unix que habla el protocolo SMB (Server Message Block). Este protocolo, funciona a nivel de la capa de presentación del modelo OSI de TCP/IP. Muchos sistemas operativos, incluidos Windows y OS/2, usan SMB para operaciones de red cliente−servidor. Mediante el soporte de este protocolo, Samba permite a los servidores Unix entrar en acción, comunicando con el mismo protocolo de red que los productos de Microsoft Windows. De este modo, una máquina Unix con Samba puede enmascararse como servidor en tu red Microsoft y ofrecer los siguientes servicios: · Compartir uno o más sistemas de archivos. · Compartir impresoras, instaladas tanto en el servidor como en los clientes. · Ayudar a los clientes, con visualizador de Clientes de Red. · Autentificar clientes logeándose contra un dominio Windows. · Proporcionar o asistir con un servidor de resolución de nombres WINS. Samba es la idea de Andrew Tridgell, quien actualmente lidera el equipo de desarrollo de Samba development desde su casa de Canberra, Australia. El proyecto nació en 1991 cuando Andrew creó un programa servidor de ficheros para su red local, que soportaba un raro protocolo DEC de Digital Pathworks. Aunque él no lo supo en ese momento, aquel protocolo más tarde se convertiría en SMB. Unos cuantos años después, él lo expandió como su servidor SMB particular y comenzó a distribuirlo como producto por Inte rnet bajo el nombre de servidor SMB. Entre otras cosas, Microsoft añadió al protocolo soporte para enlaces simbólicos y duros así como también soporte para ficheros de gran tamaño. Por mera coincidencia esto ocurrió por la misma época en que Sun Microsystems hizo el lanzamiento de WebNFS (una versión extendida de NFS), protocolo NetBIOS, el cual a su vez trabaja sobre NetBEUI (acrónimo de NetBIOS Extended User Interface, que se traduce como Interfaz de Usuario Extendida de NetBIOS), IPX/SPX (acrónimo de Internet Packet Exchange/Sequenced Packet Exchange, que se traduce como Intercambio de paquetes interred/Intercambio de paquetes secuenciales) o NBT, aunque también puede trabajar directamente sobre TCP/IP.

4.5.2 Instalación y Configuración La versión más actual de samba es la 3.5.3. Necesitará tener instalados los siguientes paquetes, que seguramente vienen incluidos en los discos de instalación de su distribución predilecta: · samba: Servidor SMB. · samba-client: Diversos clientes para el protocolo SMB. · samba-common: Ficheros necesarios para cliente y servidor. Consulte a la base de datos RPM del sistema si se encuentran instalados estos paquetes, utilizando el siguiente mandato: Página 98

Sistemas Operativos

2010 

rpm -q samba samba-client samba-common Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo bastará realizar lo siguiente para instalar o actualizar la programática necesaria: yum -y install samba samba-client Para la mayoría de los casos la configuración de Samba como servidor de archivos es suficiente. Configuración Para comenzar la configuración es necesario tener una cuenta en la máquina Linux y otra en la máquina Windows, con la misma contraseña ó clave de acceso. Dado que este usuario no va a tener acceso al Shell entonces, no es necesario que tenga password por medio del comando passwd, es suficiente con definir /bin/false como shell ó bien definirla en /sbin/nologin, como se muestra a continuación: useradd -s /sbin/nologin usuario-windows smbpasswd -a usuario-windows A menos que se necesite que esta misma cuenta, tenga acceso a otros servicios como Telnet, SSH, etc, entonces debe realizarse lo siguiente: useradd -s /bin/bash usuario-windows passwd usuario-windows smbpasswd -a usuario-windows

El fichero lmhosts NetBios significa Network Basic Input/Output System, desarrollado por IBM en la década de los 80 para compartir recursos entre computadoras. El sistema fue desarrollado como una API básica de comunicación entre sistemas de computadoras. NetBIOS posee la característica de poder resolver nombres mediante la asociación con direcciones IP correspondientes. Para fines prácticos el nombre NetBIOS debe tener un máximo de 11 caracteres. Normalmente tomaremos como referencia el nombre corto del servidor o el nombre corto que se asigno como alias a la interfaz de red. Este lo estableceremos en el fichero /etc/samba/lmhosts, en donde encontraremos lo siguiente: 127.0.0.1 localhost Debemos añadir entonces el nombre que hayamos elegido asociado a la dirección IP que se tenga dentro de la red local. Opcionalmente podrá añadir también los nombres y dirección IP del resto de las máquinas que conformen la red local. La separación de espacios se hace con un tabulador. Ejemplo: 127.0.0.1 localhost 192.168.1.5 server Página 99

Sistemas Operativos

2010 

192.168.1.6 client

Parámetros principales del fichero smb.conf. Modifique el fichero /etc/samba/smb.conf con cualquier editor de texto. Dentro de este notará que la información que le será de utilidad viene comentada con un símbolo # y los ejemplos con ; (punto y coma), siendo estos últimos los que tomaremos como referencia. Empezaremos por establecer el grupo de trabajo editando el valor del parámetro workgroup asignando un grupo de trabajo deseado: workgroup = MIGRUPO Opcionalmente puede establecer con el parámetro netbios name otro nombre distinto para el servidor si acaso fuese necesario, pero siempre tomando en cuenta que dicho nombre deberá corresponder con el establecido en el fichero /etc/samba/lmhosts: netbios name = server El parámetro server string es de carácter descriptivo. Puede utilizarse un comentario breve que de una descripción del servidor. server string = Servidor Samba %v en %L

Parámetros útiles para la seguridad. La seguridad es importante y esta se puede establecer primeramente estableciendo la lista de control de acceso que definirá que máquinas o redes podrán acceder hacia el servidor. El parámetro hosts allow sirve para determinar esto. Si la red consiste en máquinas con dirección IP desde 192.168.1.1 hasta 192.168.1.254, el rango de direcciones IP que se definirá en hosts allow será 192.168.1., de modo tal que solo se permitirá el acceso dichas máquinas. Note por favor el punto al final de cada rango. Modifique ésta de manera que quede del siguiente modo: hosts allow = 192.168.1. 127. El parámetro interfaces permite establecer desde que interfaces de red del sistema se escucharán peticiones. Samba no responderá a peticiones provenientes desde cualquier interfaz no especificada. Esto es útil cuando Samba se ejecuta en un servidor que sirve también de puerta de enlace para la red local, impidiendo se establezcan conexiones desde fuera de la red local. interfaces = 192.168.1.254/24

4.5.3 Impresoras en Samba. Las impresoras se comparten de modo predeterminado, así que solo hay que realizar algunos ajustes. Si se desea que se pueda acceder hacia la impresora como usuario invitado sin clave de acceso, basta con añadir public = Yes en la sección de impresoras,

Página 100

Sistemas Operativos

2010 

por otra parte es necesario prevenir problemas con sistemas operativos viejos, ó versiones anteriores de Windows como 95, 98 y ME, como son: print command = lpr -P %p -o raw %s -r lpq command = lpstat -o %p lprm command = cancel %p-%j Por último es posible que se requiera un usuario que pertenezca al grupo que realizan tareas de administración en las impresoras, así la sección [printers] quedará como sigue: [printers] comment = Impresoras. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes print command = lpr -P %p -o raw %s -r lpq command = lpstat -o %p lprm command = cancel %p-%j printer admin = fulano, @opers_impresion

4.5.4 Compartiendo directorios a través de Samba. Para los directorios o volúmenes que se irán a compartir, en el mismo fichero de configuración encontrará distintos ejemplos para distintas situaciones particulares. En general, puede utilizar el siguiente ejemplo que funcionará para la mayoría: comment = Comentario que se le ocurra path = /cualquier/ruta/que/desee/compartir El volumen puede utilizar cualquiera de las siguientes opciones: Opción Descripción guest ok Define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o No. public Es un equivalente del parámetro guest ok, es decir define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o No. browseable Define si se permitirá mostrar este recurso en las listas de recursos compartidos. El valor puede ser Yes o No. writable Define si ser permitirá la escritura. Es el parámetro contrario de read only. El valor puede ser Yes o No. Ejemplos: «writable = Yes» es lo mismo que «read only = No». Obviamente «writable = No» es lo mismo que «read only= Yes»

Página 101

Sistemas Operativos

2010 

valid users Define que usuarios o grupos pueden acceder al recurso compartido. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores. write list Define que usuarios o grupos pueden acceder con permiso de escritura. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores. admin users Define que usuarios o grupos pueden acceder con permisos administrativos para el recurso. Es decir, podrán acceder hacia el recurso realizando todas las operaciones como superusuarios. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores. directory mask Es lo mismo que directory mode. Define que permiso en el sistema tendrán los subdirectorios creados dentro del recurso. Ejemplos: 1777 create mask Define que permiso en el sistema tendrán los nuevos ficheros creados dentro del recurso. Ejemplo: 0644 Por ejemplo para compartir el recurso denominado ftp, que esta en el directorio /var/ftp/pub, con los siguientes premisos activados: 755 para el directorio en general y todo fichero que sea puesto en su interior tendrá permiso 644. [ftp] comment = Directorio del servidor FTP path = /var/ftp/pub guest ok = Yes read only = Yes write list = fulano, administrador directory mask = 0755 create mask = 0644

Opciones para cliente o servidor Wins. Puede habilitar convertirse en servidor WINS o bien utilizar un servidor WINS ya existente. Se puede ser un servidor WINS o un cliente WINS, pero no ambas cosas a la vez. . Si se va ser el servidor WINS, debe habilitarse lo siguiente: wins support = Yes Si se va a utilizar un servidor WINS ya existente, debe des comentar la siguiente línea y especificar qué dirección IP utiliza dicho servidor WINS: wins server = 192.168.1.1

Iniciar el servicio y añadirlo al arranque del sistema. Si iniciará Samba por primera vez realice lo siguiente:/sbin/service smb start Página 102

Sistemas Operativos

2010 

Si va a reiniciar el servicio, realice lo siguiente: /sbin/service smb restart Para que Samba inicie automáticamente cada vez que inicie el servidor solo ejecute el siguiente mandato: /sbin/chkconfig smb on

Accediendo hacia Samba. Modo Texto Smbclient. Indudablemente el método más práctico y seguro es el mandato smbclient. Este permite acceder hacía cualquier servidor Samba o Windows® como si fuese el mandato ftp en modo texto. Para acceder al cualquier recurso de alguna máquina Windows® o servidor SAMBA determine primero que volúmenes o recursos compartidos posee está utilice el mandato smbclient del siguiente modo: smbclient -U usuario -L alguna_maquina Lo cual le devolvería más menos lo siguiente: Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Sharename Type Comment --------------- ---------- ----------------homes Disk Home Directories etlogon Disk Network Logon Service ftp Disk ftp IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) epl5900 Printer Created by redhat-config-printer 0.6.x hp2550bw Printer Created by redhat-config-printer 0.6.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Server Comment ----------- --------------mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor Workgroup Master ---------------- ------MI-DOMINIO MI-SERVIDOR La siguiente corresponde a la sintaxis básica para poder navegar los recursos compartidos por la máquina Windows® o el servidor SAMBA: smbclient //alguna_maquina/recurso -U usuario Ejemplo: smbclient //LINUX/FTP -U jbarrios Después de ejecutar lo anterior, el sistema solicitará se proporcione la clave de acceso del usuario jbarrios en el equipo denominado LINUX. smbclient //LINUX/FTP -U jbarrios Página 103

Sistemas Operativos

2010 

added interface ip=192.168.1.254 bcast=192.168.1.255 nmask=255.255.255.0 Password: Domain=[miusuario] OS=[Unix] Server=[Samba 2.2.1a] smb: \> Pueden utilizarse virtualmente los mismos mandatos que en el interprete de ftp, como serían get, mget, put, del, etc.

Montaje de unidades de red. Si necesita poder visualizar desde GNU/Linux a las máquinas con Windows® e interactuar con los directorios compartidos por estás, necesitará realizar algunos pasos adicionales. De manera predeterminada, y por motivos de seguridad, solo root puede utilizar los mandatos smbmnt y smbumount. Deberá entonces establecer permisos de SUID a dichos mandatos. Puede hacerlo ejecutando, como root lo siguiente:chmod 4755 /usr/bin/smbmnt chmod 4755 /usr/bin/smbumount. Para acceder hacia una máquina Windows® determine primero que volúmenes o recursos compartidos posee está. utilice el mandato smbclient del siguiente modo:smbclient -N -L alguna_maquina lo cual le devolvería más menos lo siguiente: Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Sharename Type Comment --------------- ------- -------------homes Disk Home Directories netlogon Disk Network Logon Service ftp Disk ftp IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) epl5900 Printer Created by redhat-config-printer 0.6.x hp2550bw Printer Created by redhat-config-printer 0.6.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Server Comment --------- ------mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor Workgroup Master --------- ------MI-DOMINIO MI-SERVIDOR En el ejemplo anterior hay un volumen compartido llamado algún_volumen. Si queremos montar este, debemos crear un punto de montaje. Éste puede crearse en cualquier directorio sobre el que tengamos permisos de escritura. Para montarlo, utilizamos entonces la siguiente línea de mandato: smbmount //alguna_maquina/algún_volumen /punto/de/montaje/ Si la máquina Windows® requiere un usuario y una clave de acceso, puede añadir a lo anterior las opciones Página 104

Sistemas Operativos

2010 

-username=el_necesario -password=el_requerido -workgroup=MIGRUPO Si la distribución de GNU/Linux utilizada es reciente, también puede utilizar el ya conocido mandato mount del siguiente modo: mount -t smbfs -o username=el_necesario, password=el_requerido //alguna_maquina/algún_volumen /punto/de/montaje/ Si se genera una cuenta pcguest, similar a la cuenta nobody, podemos montar volúmenes SMB sin ingresar una clave de acceso pero con privilegios restringidos, o aquellos que definamos a un volumen accedido por un usuario invitado. Esto sería el método por elección para compartir volúmenes en una red de área local. Puede generarse una cuenta pcguest o bien dejar que el sistema tome al usuario nobody. Si opta por lo primero, solo de de alta la cuenta NO asigne clave de acceso alguna. Montar volúmenes remotos como usuarios invitado es muy sencillo. Un ejemplo real sería: mount -t smbfs -o guest //LINUX/FTP //var/ftp Lo anterior monta un volumen SAMBA de una máquina con GNU/Linux en otra máquina con GNU/Linux. Puede añadirse también una entrada en /etc/fstab de modo que sólo tenga que ser tecleado mount /punto/de/montaje. Esta línea sería de modo similar al siguiente://LINUX/FTP /var/ftp smbfs user,auto,guest,ro,gid=100 0 0 Recuérdese que el volumen compartido debe estar configurado para permitir usuarios invitados: [FTP] comment = Programática libre (RPMS) path = /var/ftp/pub public = Yes guest ok = Yes Modo gráfico Desde el entorno de GNOME. Si utiliza GNOME 2.x o superior, éste incluye un módulo para Nautilus que permite acceder hacia los recursos compartidos a través de Samba sin necesidad de modificar cosa alguna en el sistema. Solo hay que hacer clic en Servidores de red en el menú de GNOME.

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

Página 105

Sistemas Operativos

2010 

Uniendo máquinas al dominio del Controlador Primario de Dominio. El controlador de dominio permite utilizar a Samba como servidor de autenticación y servidor de archivos que además permite almacenar el perfil, preferencias y documentos del usuario en el servidor automáticamente sin la intervención del usuario.

Creando manualmente cuentas de máquinas Bajo algunas circunstancias será necesario crear cuentas de máquinas (trust accounts o cuentas de confianza) a fin de permitir unirse al dominio. El procedimiento es simple: /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de máquina" -M maquina-windows$ smbpasswd -a maquina-windows$ Es de resaltar que las cuentas de máquinas deben incluir obligatoriamente un símbolo $ al final del nombre.

Windows 95/98/ME y Windows XP Home Ya que los sistemas con Windows 95/98/ME y Windows XP Home no incluyen una implementación completa como miembros de dominio, no se requieren cuentas de confianza. El procedimiento para unirse al dominio es el siguiente: • Acceder hacia Menú de inicio → Configuraciones → Panel de control → Red • Seleccione la pestaña de Configuración • Seleccione «Cliente de redes Microsoft» • Haga clic en el botón de propiedades • Seleccione Acceder a dominio de Windows NT y especifique el dominio correspondiente. • Clic en todos los botones de «Aceptar» y reinicie el sistema • Acceda con cualquier usuario que haya sido dado de alta en el servidor Samba y que además cuente con una clave de acceso asignada con smbpasswd.

Windows 2000/2003 y Windows XP Profesional • Clic derecho en el icono de «Mi PC». • Seleccionar «Propiedades» • Haga clic en la pestaña de «Identificación de red» o «Nombre del sistema». • Clic en el botón de «Propiedades». • Clic en el botón «Miembro de dominio» • Ingrese el nombre del dominio y el nombre de la máquina y haga clic en el botón de «Aceptar» • Aparecerá un diálogo que preguntará por una cuenta y clave de acceso con privilegios de administración en el servidor.

Página 106

Sistemas Operativos

2010 

Especifique la root y la clave de acceso que asignó a la cuenta de root con el mandato smbpasswd (NO LA CLAVE DE ACCESO DE ROOT EN EL SISTEMA). • Espere algunos segundos. • Deberá mostrarse un mensaje emergente de confirmación que dice «Bienvenido a MIDOMINIO» • Reinicie el sistema • Acceda con cualquier usuario que haya sido dado de alta en el servidor Samba y que además cuente con una clave de acceso asignada con smbpasswd.

4.6 Servicio de acceso remoto Tradicionalmente Linux ha utilizado una serie de comandos para conectarse de manera remota a un servidor como son el cado de telnet para hacer conexión, ftp para transportar archivos remotamente y otros como rlogin para conexión remota, y rsh para el manejo de líneas de comando de manera remota, los cuales tienen el inconveniente de no ser seguros debido a que la información no se transporta de manera encriptada. ssh en cambio usa el algoritmo de encriptación pública RSA que es un estándar en la industria. Con ssh toda la comunicación será encriptada con la conveniencia adicional de poder interactuar de manera gráfica a través de a través de Xwindows pues es la variable de entorno DISPLAY que puede ser compartida. El programa servidor tiene un archivo de configuración en /etc/ssh/ssh_config y que también se puede administrar desde Webmin. Igualmente, puede ser activado usando los comandos: /sbin/service sshd start /etc/rc.d/init.d/sshd start debe aparecer OK en color verde en la pantalla, y para detener el servicio: /sbin/service sshd stop /etc/rc.d/init.d/sshd stop Para usar ssh se requiere que esté instalado openssh-server como servidor y opensshclients como cliente, lo cual se peude ver con los comandos: $ rpm –q openssh-server $ rpm –q openssh-clients

4.6.1 Conexión a un servidor remoto usando ssh La manera de conectarse a un servidor remoto es: $ ssh usuario@servidor

Página 107

Sistemas Operativos

2010 

Por ejemplo ssh [email protected] Desde ese comente se es usuario remoto del servidor Linux.domain.com.co, en este caso como usuario manuel, el cual debe estar creado como tal en el servidor remoto y aparece el prompt [manuel@linux]$ Muchas veces no es necesario entrar a un servidor para ejecutar un comando sino basta indicarlo de manera directa y remota. Por ejemplo si se quiere ver qué programas .conf existen en el directorio remoto /etc se usa el siguiente comando: $ ssh Linux.domain.com.co ls/etc/*.conf A continuación, el sistema remoto pide la contraseña y si ésta es correcta, ejecuta el comando mostrando los archivos del caso.

Página 108

Sistemas Operativos

2010 

Fuentes Bibliográficas Bandel David, Napier Robert, Linux Edición Especial, 6ta Edición, Prentice Hall, España, 1999 Dávila Sguerra, Manuel GNU/Linux y el Software libre y sus múltiples aplicaciones Alfaomega, México, 2009 Eckstein Robert, Collier−Brown David, Kelly Peter, Usando Samba, Primera Edición, Noviembre de 1999 http://www.linuxparatodos.net/portal/staticpages/index.php?page=13como-samba:

Página 109

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.