miércoles, 27 de enero de 2010

6.4.3 Servidor De Archivos


Tipo de servidor en una red de ordenadores cuya función es permitir el acceso remoto a archivos almacenados en él o directamente accesibles por este. En principio, cualquier ordenador conectado a una red con un software apropiado, puede funcionar como servidor de archivos. Desde el punto de vista del cliente de un servidor de archivos, la localización de los archivos compartidos es transparente. O sea, normalmente no hay diferencias perceptibles si un archivo está almacenado en un servidor de archivos remoto o en el disco de la propia máquina.
Un servidor de archivos proporciona una ubicación central en la red, en la que puede almacenar y compartir los archivos con usuarios de la red. Cuando los usuarios necesiten un archivo importante, como un plan de proyecto, podrán tener acceso al archivo del servidor de archivos en lugar de tener que pasarlo entre distintos equipos. Si los usuarios de la red necesitan tener acceso a los mismos archivos y aplicaciones accesibles a través de la red.
Si tiene toda la información de la empresa almacenada en su servidor de archivos, el respaldo de este es mas simple de realizar
Algunos protocolos comúnmente utilizados en servidores de archivos:
SMB/CIFS (Windows, Samba en Unix)
NFS (Unix)
Un servidor de archivos proporciona una ubicación central en la red, en la que puede almacenar y compartir los archivos con usuarios de la red. Cuando los usuarios necesiten un archivo importante, como un plan de proyecto, podrán tener acceso al archivo del servidor de archivos en lugar de tener que pasarlo entre distintos equipos. Si los usuarios de la red necesitan tener acceso a los mismos archivos y aplicaciones accesibles a través de la red.

6.4.4 Seguridad en archivos

El sistema de archivos bajo Linux es una estructura de arbol construida bajo archivos y directorios. Linux almacena distintos tipos de información sobre cada archivo en sus sistema de archivos, incluyendo la siguiente información:
El nombre del archivo.
El tipo de archivo.
El tamaño del archivo.
La ubicación fisica del archivo en el disco.
Varios horarios de permisos controlan los derechos de acceso del propietario, los miembros del grupo asociado y otros utilitarios. Si se utiliza el comando ls-l se creará una lista de archivos que muestra el campo de permisos. Los permisos del archivo se modifican mediante el comando chmod.
PROGRAMAS SUID Y SGID:
Existen 2 bits adicionales de permiso asociados a un archivo: los bits SUID y SGID.
SUID representa Establecer el identificador del usuario y SGID representa Establecer el identificador de grupo. Cuando se ejecutan programas con estos permisos, éstos se comportan como si pertenecieran a identificadores de usuarios distintos. Cuando se ejecuta un programa con SUID, su identificador de usuario efectivo es el mismo que el del usuario propietario del programa en el sistema de archivo, independientemente de quién esté ejecutando realmente el programa. SGID es similar, salvo que cambia el identificador de grupo.
Los problemas de seguridad de los programas SUID surgen cuando el programa ejecuta una línea de comandos, activa un shell o ejecuta una archivo que los usuarios pueden modificar para que contenga sus propios comandos.
Aunque algunos programas SUID son necesarios, es mejor reducirlos al mínimo.-

COPIAS DE SEGURIDAD
Pocos temas con los que tratan los administradores típicos de linux son tan importantes como las copias de seguridad de un sistema. Un administrador puede ser despedido o una empresa puede llegar a colapsarse por la pérdida de datos valiosos. Los discos de una computadora son dispositivos electromecánicos y pueden fallar en cualquier momento.
La mayoría de discos duros nuevos están homologados para periodos de funcionamiento de unas 150.000 horas de media entre fallos; es decir mas de 5 años. Pero las estadísticas de tiempos medios pueden ser engañosas. Su disco puede fallar después de 50.000 horas de trabajo o podría durar mas de 10 años(algo poco probable). Correrá un gran riesgo si solo realiza copias de seguridad de un sistema de tarde en tarde y se arriesgara aun mas si no comprueba sus cintas de copia de seguridad.
Pam: la arquitectura conectable de módulos de autenticación
Los usuarios necesitan poder ejecutar las tareas deseadas, incluso si su objetivo es
Existen cuatro tipos de módulos PAM a saber:
Autentificación que lleva a cabo la actividad de autentificación.
Cuenta que define la autentificación está permitida. Supongamos, por ejemplo, que un usuario sólo puede estar conectado al sistema por el día pero no así por las noches y fines de semana. Un modulo de cuenta detectara al usuario si trata de ejecutar una acción en plena madrugada.
Contraseña que determina las contraseñas.
Sesión que proporciona servicios al usuario una vez el modulo de cuenta haya permitido al modulo de autentificación comprobar la identidad del usuario.
Los módulos pueden estar dispuestos de forma secuencial para habilitar múltiples métodos de acceso o para restringir el acceso, exigiendo la consecución de distintos métodos.

6.4.5 Mecanismos De Protección De Archivos

Dominios de Protección
Muchos objetos del sistema necesitan protección, tales como la cpu, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc.
Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre él. Un dominio es un conjunto de parejas (objeto, derechos)
Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.
Un proceso se ejecuta en alguno de los dominios de protección:
• Existe una colección de objetos a los que puede tener acceso.
• Cada objeto tiene cierto conjunto de derechos.
Los procesos pueden alternar entre los dominios durante la ejecución. Una llamada al S. O. provoca una alternancia de dominio. En algunos S. O. los dominios se llaman anillos.
Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz:
• Los renglones son los dominios
• Las columnas son los objetos.
• Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.
Listas Para Control de Acceso
Las “matrices de protección” son muy grandes y con muchos lugares vacíos:
• Desperdician espacio de almacenamiento.
• Existen métodos prácticos que almacenan solo los elementos no vacíos por filas o por columnas. La lista de control de acceso (ACL: access control list):
• Asocia a cada objeto una lista ordenada con:
• Todos los dominios que pueden tener acceso al objeto.
• La forma de dicho acceso (ej: lectura ®, grabación (w), ejecución (x)).
Una forma de implementar las ACL consiste en:
• Asignar tres bits (r, w, x) para cada archivo, para:
• El propietario, el grupo del propietario y los demás usuarios.
• Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
• Permite prohibir accesos antes permitidos.
Posibilidades
La matriz de protección también puede dividirse por renglones:
• Se le asocia a cada proceso una lista de objetos a los cuales puede tener acceso.
• Se le indican las operaciones permitidas en cada uno.
• Esto define su dominio.
La lista de objetos se denomina lista de posibilidades y los elementos individuales se llaman posibilidades. Cada posibilidad tiene:
• Un campo tipo:
• Indica el tipo del objeto.
• Un campo derechos:
• Mapa de bits que indica las operaciones básicas permitidas en este tipo de objeto.
• Un campo objeto:
• Apuntador al propio objeto (por ej.: su número de nodo-i).
Las listas de posibilidades son a su vez objetos y se les puede apuntar desde otras listas de posibilidades; esto facilita la existencia de subdominios compartidos. Las listas de posibilidades o listas-c deben ser protegidas del manejo indebido por parte del usuario. Los principales métodos de protección son:
• Arquitectura marcada:
• Necesita un diseño de hardware en el que cada palabra de memoria tiene un bit adicional:
• Indica si la palabra contiene una posibilidad o no.
• Solo puede ser modificado por el S. O.
• Lista de posibilidades dentro del S. O.:
• Los procesos hacen referencia a las posibilidades mediante su número.
• Lista de posibilidades cifrada dentro del espacio del usuario:
• Cada posibilidad está cifrada con una clave secreta desconocida por el usuario.
• Muy adecuado para sistemas distribuidos.
Generalmente las posibilidades tienen derechos genéricos aplicables a todos los objetos, por ej.:
• Copiar posibilidad:
• Crear una nueva posibilidad para el mismo objeto.
• Copiar objeto:
• Crear un duplicado del objeto con una nueva posibilidad.
• Eliminar posibilidad:
• Eliminar un dato dentro de la lista-c sin afectar al objeto.
• Destruir objeto:
• Eliminar en forma permanente un objeto y una posibilidad.
Muchos sistemas con posibilidades se organizan como una colección de módulos con módulos administradores de tipos para cada tipo de objeto y entonces es esencial que el módulo administrador de tipos pueda hacer más cosas con la posibilidad que un proceso ordinario.
Se utiliza la técnica de amplificación de derechos:
• Los administradores de tipo obtienen una plantilla de derechos que les da más derechos sobre un objeto de los que permitía la propia lista de posibilidades.
Modelos de Protección
Las matrices de protección no son estáticas sino dinámicas. Se pueden identificar seis operaciones primitivas en la matriz de protección:
• Crear objeto.
• Eliminar objeto.
• Crear dominio.
• Eliminar dominio.
• Insertar derecho.
• Eliminar derecho.
Las primitivas se pueden combinar en comandos de protección, que pueden ser ejecutados por los programas del usuario para modificar la matriz de protección.
En cada momento, la matriz de protección determina lo que puede hacer un proceso en cualquier momento; no determina lo que no está autorizado a realizar. La matriz es impuesta por el sistema. La autorización tiene que ver con la política de administración.
Control de Acceso Por Clases de Usuarios
Una matriz de control de acceso puede llegar a ser tan grande que resulte impráctico mantenerla. Una técnica que requiere menos espacio es controlar el acceso a varias clases de usuarios. Un ejemplo de esquema de clasificación es el siguiente:
• Propietario
• Grupo o proyecto
• Público

6.4.6 Implementación Sistemas De Archivos


Implantación: estos archivos podrían implantarse como parte de un sistema operativo distribuido, haciendo el papel de una capa de software cuya tarea es administrar la comunicación entre los sistemas operativos y los sistemas de archivos convencionales. Las características propias de un SAD son Ia multiplicidad y autonomía de los clientes y servidores en el sistema.
La implantación de un sistema distribuido de archivos incluye aspectos tales como
• El uso de los archivos.
• La estructura del sistema.
• El ocultamiento.
• La duplicación o réplica.
• El control de la concurrencia

El uso de archivos generalmente se utiliza antes de implantar un sistema de archivo, y primero se realiza un analisis de patrones de uso, para realizar dicho analisis es necesario tomar las siguientes mediciones: Estatica (Representan una toma instantanea del sistema en un momento dado y comprende la distribución de tamaño de archivo) y Dinamica(Registra toda las operaciones que modifican el sistema de archivos)

6.5 Llamadas Al Sistema System Calls

Es la Forma como se traslada la informacion, la recuperacion y el almacenamiento entre los datos de diferentes terminales
Podemos definir las llamadas a sistema como una interfaz entre el área de usuario y la de kernel, si un proceso necesita realizar una tarea que implique acceder a la área de kernel, posiblemente por que no tenga privilegios para hacerlo el directamente, debe hacerlo a través de una llamada al sistema. Ejemplos típicos seria acceder a un dispositivo de i/o, crear un proceso hijo, esperar a que se cumpla una condición, ...
El listado completo de llamadas al sistema que existen lo encontramos en el fichero /usr/include/sys/syscall.h.
Rastreando las llamadas de sistema en nuestro equipo
La información acerca de que llamadas a sistema se están ejecutando nos puede dar pistas de la actividad de los distintos procesos en nuestro equipo. Lógicamente procesar una llamada tiene un coste a nivel de recursos, sin embargo dependiendo de la tarea que deba realizar su coste es distinto.
El tiempo empleado en dicha tarea es computado como tiempo de sistema, por ello la columna sy en el apartado faults (system calls) y sy en el apartado cpu (tiempo de sistema) de la salida del vmstat están intimamente relacionadas.

6.6 Tipos De Interfaz


Interfaz de menú simple
Es una variante de la forma anterior, se presenta al usuario una lista de opciones y la selección se realiza por medio de un número, letra o un código en particular. Ofrece al usuario un contexto global y tiene menos porcentaje de errores que el anterior, pero su uso puede llegar a ser tedioso. Este es el caso de las opciones del ejemplo de la figura, que incluyen subopciones (que a su vez puede incluir otras opciones) dentro de las opciones principales.
Interfaz orientada a ventanas
A medida que el hardware se ha hecho mas eficiente y los ingenieros de software han aprendido mas sobre los factores humanos, las técnicas de interfaz evolucionaron, llegando a lo que se conoce como interfaces de la tercera generación. Ofrece al usuario las siguientes ventajas:
Se puede visualizar diferentes tipos de información simultáneamente El esquema de menús desplegables permite realizar muchas tareas interactivas diferentes. Se realizan tareas de control y de dialogo en forma sencilla. La utilización de menús desplegables, botones y técnicas de presentación reducen el manejo del teclado.

6.7 Lenguaje De Comunicación

C es uno de los lenguajes de programación más amplios y extensos que existen en la actualidad; por ello, el manejo de archivos o manipulación de estos no es una tarea tan difícil que digamos.
Al hablar de manejo de archivos en programación C nos referimos no al común almacenamiento en memoria (como normalmente se realiza con variables globales en C) sino a un almacenamiento en cualquier archivo ubicado en nuestro disco rígido, que en la mayoría de los casos es nuestro disco duro.
La entrada y salida (E/S) de datos es una de las características más habitualmente utilizadas en cualquier lenguaje de programación para el manejo de datos…
Para poder manejar archivos en C es oportuno utilizar un puntero predefinido por nosotros dirigido a una estructura FILE que es un tipo de dato específico definido en la librería <>.
La sintaxis básica es:
FILE *nombre;nombre = facciónarealizar ( " nombredelarchivo.doc " , " modo " ) ;
Nótese que para una acción específica, ha de anteponérsele a la misma una f (proveniente de file, que es archivo en español); es indispensable el uso de ésta “palabrita” antes de la acción específica.