BIEN ME GUSTO QUE EL JEFE OANDA ESTUVIERA AQUI BUENO YO CVOLOQUE ESTE TEMA PARA PODER APREENDER DE PROGRAMAS NO DE HACKING YA QUE SI QUIEREN HACKIN PUES LO HACEMOS JAJJAJA
NO ES CIERTO BUENO HAY LES DEJO UNO DE COMO APREENDER LINUX PARA PRINCIPIANTES.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!=" "=!!
!: Descubriendo Linux Red Hat 5.0 DELUXE :!
!( ------------ ----- --- --- --- ------ )!
!: By JAEC EKR. Nuk3m :!
!!0o._ -- --- ----- _.o0!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hola a todos los que estan leyendo esto, yo soy Mr. Nuk3m y voy a tratar
de escribir un manual del sistema operativo Linux Red Hat 5.0. Disculpen
las faltas de ortografia pero no voy a poner acentos, salvo las e¤es
para que todos puedan leer este texto sean usuarios de Windows o Linux
Me reservo los derechos de autor de este manual por lo que si quieren hacer
modificaciones, avisen primero. Este texto es de libre distribucion, siempre
y cuando aparezcan estas lineas y mi nombre, Mr. Nuk3m.
A continuacion un indice para que puedas buscar lo que te interesa saber
de Linux Red Hat 5.0:
Contenido
Introduccion (lo esta leyendo)
1. Caracteristicas Del Sistema Operativo (S.O.) Linux
1.1 Principales Caracteristicas
1.1.1 Linux y los sistemas de Microsoft
1.1.2 Linux y los sistemas de archivos
1.1.3 Linux y las redes
1.1.4 Linux y la interconeccion con otros sistemas
1.2 Caracteristicas de Hardware requerido y soportado
1.2.1 Hardware requerido por Linux en maquinas con arquitecturas
Intel 80x86
1.2.2 Hardware soportado por Linux
2. Estructura General Del Sistema De Archivos
2.1 Sistema De Archivos
2.1.1 Nombres de archivos
2.1.2 Atributos de los archivos
2.1.3 Directorios
2.1.4 Estructura del sistema de archivos
2.1.5 Rutas dentro del sistema de archivos
2.1.6 Los "links" y los archivos
2.2 Estructura General De Un Sistema De Archivos Linux
3. Usuarios, Permisos y Grupos
3.1 Permisos de acceso
3.2 Directorio "home" y permisos predefinidos
4. Dispositivos De Entrada-Salida
4.1 Conceptos Fundamentales
4.1.1 Puertos de entrada-salida
4.1.2 Iterrupciones e IRQ's
4.1.3 Accesos Directos a Memoria (DMA)
4.2 Tratamiento de los dispositivos en Linux
4.2.1 Archivos de los dispositivos mas comunes
5. Programas y Procesos
5.1 Ejecucion en primer plano y en "background"
5.2 Demonios
6. La Interaccion Con El Sistema. Shell y Comandos
6.1 La Shell
6.1.1 Funcionamiento de la shell
6.2 Comandos
6.2.1 Comandos simples
6.2.2 Separador de comandos
6.3 La Entrada Estandar y La Salida Estandar
6.3.1 Redireccionando la salida
6.3.2 Redireccionando la conexion de errores estandar
6.3.3 Redireccionando la entrada
6.4 Ca¤erias
6.5 Generacion De Nombres De Archivos
7. Comandos Y Utilidades
7.1 Movimiento En El Sistema De Archivos
7.2 Listado De Archivos
7.2.1 Moviendo y copiando archivos
7.3 Manipulando Archivos
7.3.1 Moviendo y copiando archivos
7.3.2 Realizando links
7.3.3 Eliminando archivos
7.4 Manipulando Directorios
7.4.1 Creando directorios
7.4.2 Eliminando directorios
7.5 Busqueda De Archivos
7.5.1 Ejemplos del uso de find
7.6 Cambiando Permisos, Grupos y Due¤os
7.6.1 Averiguando los derechos de acceso de un archivo
7.6.2 Cambiando los permisos
7.6.3 Cambiando el due¤o y el grupo de los archivos
8. Utilidades Adicionales
8.1 Utilidades de monitoreo
8.1.1 date: Muestra la fecha y hora actuales
8.1.2 who: Lista los usuarios logueados actualmente
8.1.3 ps: Listado de los procesos
8.1.4 free: Sumario de la utilizacion de la memoria
8.1.5 top: Actividad del procesador
8.1.6 df: Muestra el espacio libre en los sistemas de archivos
8.1.7 du: Uso del disco
8.2 Utilidades para trabajar con texto
8.2.1 cat: Mostrar archivos
8.2.2 head: Muestra el comienzo de un archivo
8.2.3 tail: Muestra el final de un archivo
8.2.4 ascii-xfr: Convierte archivos de texto
8.2.5 more: Filtro para visualizacion de texto por pantalla
8.3 Utilidades para agrupar y comprimir archivos
8.3.1 gzip y bzip2: Compresion de archivos
8.3.2 tar: Agrupa archivos
8.4 Utilidades de ayuda
8.4.1 man: Informacion de los comandos y utilidades
8.5 Otras utilidades
8.5.1 passwd: Cambiando el password
9. Instalacion de software adicional
9.1 Software distribuido con codigo fuente
9.1.1 La distribucion
9.1.2 La configuracion
9.1.3 La compilacion
9.1.4 El directorio /usr/local
9.1.5 La instalacion
9.2 El sistema de paquetes RPM
9.2.1 Convenciones en los nombres de los paquetes
9.2.2 La base de datos RPM
9.2.3 Modos de operacion de rpm
9.3 Utilizacion de librerias
9.3.1 Directorios de las librerias
9.3.2 Instalacion de librerias.
10. Montando sistemas de archivos
10.1 Sistemas de archivos y particiones
10.2 Sintaxis del comando mount
10.3 Montando sistemas de archivos
10.3.1 Tipos de sistemas de archivos
10.4 Desmontando sistemas de archivos
10.5 El archivo /etc/fstab
10.5.1 Campos de cada entrada
10.5.2 Uso del archivo fstab
10.5.3 Permitiendo montar sistemas de archivos a usuarios normales
11. El kernel y los modulos
11.1 ¨Que es el kernel?
11.2 La interaccion
11.2.1 Las librerias del sistema
11.2.2 Las utilidades del sistema
11.3 ¨Que son los modulos?
11.4 Personalizando el kernel
11.4.1 Eligiendo la configuracion adecuada
11.4.2 Compilando el kernel
11.4.3 Compilando los modulos
11.4.4 Instalando los modulos
11.4.5 Instalando el nuevo kernel
11.4.6 Cargando y decargando los modulos
11.4.7 Las dependencias entre los modulos
11.4.8 Una carga de modulos mas inteligente
11.5 Actualizando nuestro kernel
11.5.1 Obteniendo el kernel
11.5.2 Instalando las fuentes del kernel
12. Aspectos avanzados de la shell
12.1 Programas de la shell (scripts)
12.2 Variables de la shell
12.2.1 Exportando variables de la shell
12.2.2 Variables automaticas de la shell
12.2.3 Variables estandar de la shell
12.3 El camino de busqueda (path)
12.4 Caracteres especiales - "Quoting"
12.5 Estado de salida de los comandos
12.6 Los argumentos
12.7 Estructuras de control
12.7.1 Condicionales simples
12.7.2 El condicional if
12.7.3 Los loops condicionales while y until
12.7.4 La sentencia for
12.7.5 La sentencia case
12.8 Evaluacion de condiciones - Test
12.9 Evaluacion de expresiones - Expr
13. Booteo, inicializacion y detencion del sistema
13.1 MBR, particiones y cargadores
13.2 Booteo
13.3 Proceso tradicional de booteo
13.3.1 Niveles de ejecucion (runlevels)
13.3.2 init tiene la posta
13.3.3 Inicializacion del sistema
13.3.4 Inicio de procesos respectivos al runlevel
13.3.5 Inicio de los procesos de incializacion de terminales
13.4 Carga del perfil estandar
13.5 Carga de los perfiles personalizados
13.6 Detencion del sistema
14. Instalacion y configuracion de dispositivos
14.1 Modems
14.1.1 Puertos serie y modems
14.1.2 Modems externos
14.1.3 Modems internos
14.1.4 El archivo /dev/modem
14.1.5 Probando el modem
14.2 Impresoras
14.2.1 El dispositivo parport
14.2.2 Impresoras soportadas
14.2.3 Configuracion de lp
14.2.4 Sofware de spooling
14.3 Tarjetas de sonido
14.3.1 Instalando la tarjeta de sonido
14.3.2 Configurando el kernel
14.3.3 Bootenado Linux y testeando la instalacion
15. Administracion del sistema
15.1 Responsabilidades del administrador
15.2 El superusuario
15.2.1 El comando su
15.3 Administracion de cuentas de usuario
15.3.1 El comando adduser
15.3.2 Los grupos de usuarios
15.3.3 Directorios "home"
15.4 Chequeo de los sistemas de archivos
15.4.1 El comando fsck
15.5 Los modos setuid y setgid
15.6 Ejecucion de programas en intervalos determinados
16. El sistema de ventanas X Window
16.1 Requerimientos de hardware
16.2 Configurando el XFree86
16.2.1 Seleccionando la tarjeta de video
16.2.2 Seleccionando el monitor
16.2.3 Seleccionando la memoria de la tarjeta de video
16.2.4 Seleccionando el "clocking"
16.2.5 Seleccionando los modos graficos
16.2.6 Resolucion virtual
16.3 Ejecutando XFree86
16.3.1 El prograna xinit
16.3.2 El archivo .xinitrc
16.4 El "Window Manager"
16.4.1 FVWM/FVWM2/FVWM95
16.4.2 KDE
16.4.3 Window Maker
16.5 Iniciando el sistema en runlevel 5
16.5.1 El programa xdm
16.5.2 El archivo .xsession
16.6 Aplicaciones utiles para el sistema de ventanas X Window
A. Direcciones relacionadas con el sistema operativo Linux
Despedida
Empecemos con una pregunta clasica, ¨ Por que Linux y no otros S.O. ?
Existen una serie de problemas que son comunes a los sistemas operativos
comerciales y aquellos que, basicamente tienen las siguientes caracteristicas:
* Cuestan mucho dinero (mas de U$S 50).
* El codigo fuente del S.O. no esta disponible.
* Existen limites extrictos en cuanto a la copia del sistema se refiere.
Consecuentemente, Windows, MacOS, DEC, Ultrix, Solaris, OS/2 son sistemas
operativos comerciales. Linux y FreeBSD son gratituos; estan disponibles
generalmente por el costo del medio (CD-ROOM, DISQUETTES, ETC) en que se
distribuye, el codigo fuente esta disponible y existen pocas limitaciones
en cuanto a su distribucion. Dado que los sistemas operativos comerciales
son la fuente de ingreso de las companias que desarollan estos sistemas,
se dan algunas situaciones que no son ventajosas para el usuario final de
la computadora. Algunos de estos problemas se deben a la necesidad de
proteger y mantener en secreto el codigo fuente, como ser:
* SE ACTUALIZA LENTAMENTE: Los S.O. comerciales como Windows, etc.
realizan actualizaciones importantes cada 2 o 3 a¤os (Windows 3.11,
Windows 95, Windows 98 y proximamente Windows 2000), mientras que
existen lanzamientos de las mayores distribuciones de Linux (Red Hat,
Debian, SlackWare) cada 6 u 8 meses y se publica en Internet una version
nueva del Kernel por semana, aproximadamente.
* ALTO COSTO: Una copia y un numero limitado de licencias de cualquier
sistema operativo comercial (especialmente para servidores) cuesta mas
o menos U$S 400 dolares y casi nunca incluyen herramientas de desarrollo,
como servidores de mail, de web, compiladores C, C++, etc.
* SOPORTE TECNICO: Los compradores de S.O. comerciales dependen
exclusivamente del servicio tecnico que brinda la compania en cuestion,
incluso realizando costosas llamadas telefonicas. En la vereda de enfrente
y de una forma descentralizada, existen una gran cantidad de puntos de
consulta para Linux, ya sean organizaciones dedicadas o particulares
experimentados.
Se agregan, ademas, un par de problemas que se aplican casi exclusivamente
al sistema Windows de Microsoft, veamos esto:
* OBSOLENCIA DEL HARDWARE: No se mantiene compatible con los sistemas
anteriores. Se dice que es tecnicamente posible "correr" Windows 95
sobre una PC 386 a 25 Mhz, pero podemos comprobar que hacerlo sobre un
harware anterior a una PC 486 DX2 a 66 Mhz con 16 Mb de Ram es un
ejercicio masoquista
Y es aca donde el costo aparece nuevamente como
un factor importante a considerar.
* PROPENSO A FALLOS: No es raro observar que Windows se "CAE" sin razon
aparente, y la experiencia personal de quien alguan vez uso un Windows
lo ha demostrado con creses. Aunque su hermano mayor, Windows NT, es
bastante mas estable, todavia se caecon una frecuencia mayor a la que
cualquier usuario espera. Hay casos documentados donde servidores Linux
han estado operando por mas de 1 a¤o sin caida alguna
Caracteristicas de Linux
Ventajas
* ADECUADO PARA LA COMUNICACION EN RED: Dado que Linux fue desarrollado por
un grupo de programadores de Internet, se le dio una prioridad mayor a
las propiedades de networking. Estas propiedades funcionan muy bien aun
con configuraciones de hardware minimas. Se lo utiliza tanto de cliente
como de servidor de otros S.O. populares; incluso puede ser utilizado por
los proveedores de Internet. Soporta todos los protocolos mas utilizados
(TCP/IP, FTP, Samba, Apple Talk, etc).
* MULTIUSUARIO - MULTITAREA: Sigue la filosofia Unix, lo cual es ventajoso
incluso si lo utiliza una sola persona, dado que las tareas se ejecutan
con una proteccion mayor; ademas un mismo usuaro puede estar ejecutando
varias tareas concurrentemente. Linux tiene la capacidad de manejar todo
ese "trafico" de informacion.
Falencias
* INTERFACE DE USUARIO INCONSISTENTE: GNU/Linux refelja el trafico de varios
programadores, cada uno con metas de dise¤o diferentes, interfaces
diferentes, etc. Incluso no existe una restriccion de consistencia entre
utilidades de una misma distribucion. Esto puede llevar a confusiones y
frustraciones. Actualmente, se estan llevando a cabo proyectos para
promover interfases graficas consistentes a traves del sistema XWindows
(KDE, GNOME, Teak, etc).
* PAQUETES REPETIDOS: Dentro de una distribucion se pueden encontrar una
gran cantidad de paquetes "repetidos"; cumplen uan misma funcion, pero
fueron dise¤adas por distintas personas, con objetivos de dise¤o. Por
ejemplo: se pueden encontrar varios agentes de transmision de mail como
el sendmail, smail, qmail, exim, etc.
* FALTA DE APLICACIONES COMERCIALES: No se han desarrollado grandes suites
de aplicaciones, aunque en Internet podemos encontrar el Star Office para
Linux
Conclusion
El numero de usuario de Linux esta creciendo rapidamente. Las ventajas
tecnicas de Linux por sobre otros S.O. comerciales son muy grandes,
importantes y evidentes. A pesar de ello, Linux todavia tiene caracteristicas
que lo hacen un poco dificil de usar y otras que pueden hacer que Linux no
sea el sistema adecuado al momento de elegir.
La mayoria de las personas que hoy son usuarios de Linux, eran usuarios de
los distintos sistemas de Microsoft (Windows, MS-DOS, etc) que se dieron
cuenta de la potencialidad del sistema Linux y de su gran futuro. Hoy hay
una gran tendencia a abandonar los sistemas de Microsoft y sumarse a la
filosofia del sistema operativo Linux. Pero, cuidado, obviamente Linux no
es el sistema ideal en todas las situaciones. No existe tal cosa como la
MEJOR COMPUTADORA o el mejor SISTEMA OPERATIVO; todo va a depender de la
tarea que realizemos. Por eso, no creo que Linux sea la mejor solucion para
todos, por mas que sea tecnicamente superior a muchos S.O. comerciales.
Un usuario se beneficiara enormemente con Linux si lo que necesita es
software para programar
, utilizar Internet
, para procesar texto
con "TeX", y software tecnico en genereal, pero si se necesita fuertemente
el software comercial o si el usuario no se siente comodo aprendiendo y
tipeando comandos, entonces debe buscar en otro lado...
Bueno, bueno, hasta aca llego la introduccion ahora empezamos...
CAPITULO 1
CARACTERISTICA DEL SISTEMA OPERATIVO LINUX
En este capitulo vamos a describir las caracteristicas del S.O. Linux. Es
importante conocer estas caracteristicas ya que explican porque Linux es
a un sistema tan potente, versatil y nos daran una amplia vision de algunas
de las caracteristicas internas importantes del sistema. Tambien se
describira el hardware sobre el cual se puede ejecutar Linux y los
distintos dispositivos de entrada/salida que son soportados por el sistema.
Todo lo tratado en este capitulo es aplicable al sistema Linux sobre
plataformas de la familia Intel 80386 y superiores. El nucle analizado es
la version 2.2.5.
1.1 PRINCIPALES CARACTERISTICAS
Linux es un sistema operativo completo multiusuario con multitarea real.
Esto significa que sobre una misma maquina con el S.O. Linux pueden estar
trabajando varias personas simultaneamente y a su vez cada persona puede
estar ejecutando varios procesos.
Linux es un S.O. de 32 bits desarrollado para la plataforma Intel 80386.
Fue realizado aprovechando las caracteristicas de modo protegido de este
procesador. Asi fue posible implementar la multitarea real y otras
caracteristicas como memoria virtual y ejecutables con carga de paginas
por demanda. Linux es tan robusto y completo que es capaz de ser utilizado
en maquinas en las universidades hasta en largas corporaciones en las
cuales trabajan cientos de personas al mismo tiempo.
El codigo del nucleo de Linux fue realizado pensado en ser compatible con
los estandares de POXIS2 de Unix y otros. Esto quiere decir que es
totalmente compatible con la mayoria de los sistemas Unix comerciales y
gratituos que existen en la actualidad. De esta forma la mayoria del
software desarrollado para otras versiones de Unix funciona perfectamente
sobre Linux.
El nucle es capaz de emular por su cuenta las instrucciones del coprocesador
matematico 80387, con lo que cualquier maquina 80386 sin coprocesador podra
ejecutar, sobre Linux, aplicaciones que requieran de estas instrucciones.
En maquina 80486, no es necesario que el nucle emule estas instrucciones ya
que el coprocesador se encuentra instalado en hardware como parte del
procesador.
Otra caracteristica muy importante del sistema es la memoria virtual, que
permite que se puedan ejecutar programas que utilizan mas memoria de la
disponible y que es fundamentalmente necesaria para soportar la multitarea.
Ademas se soportan ejecutables con paginacion por demanda, esto significa
que solo las paginas necesarias son cargadas en memoria en cada momento,
utilizando asi mas efectivamente la memoria del sistema. Relacionado con
esto se encuentra el concepto de area de intercambio o "SWAP" la cual se
utiliza para almacenar temporariamente informacion que no se puede matener
en memoria porque esta no alcanza. Esta area de intercambio es imprescindible
en maquinas que tiene muy poca memoria.
Fuertemente ligado a Linux, y a los sistemas Unix, esta el concepto de
librerias dinamicas. Estas se utilizan para almacenar codigo compartido por
varios programas en una unica libreria. Asi los programas son mas chicos y
utilizan estas funciones.
1.1.1 LINUX Y LOS SISTEMAS DE MICROSOFT
Cabe destacar que Linux NO ES COMPATIBLE con el sistema MS-DOS ni con los
sistemas Windows 95/98/NT. Los sistemas MS-DOS, Windows 95/98 son sistemas
hibridos de 16/32 bits y los programas que se ejecutan sobre estos sistemas
NO PUEDEN SER EJECUTADOS en Linux ya que fueron desrrollados para ser
ejecutados especificamente en esos sistemas. En cuanto al sistema Windows NT
es un sistema de 32 bits con un nucleo completamente nuevo y tambien es
totalmente incompatible con Linux. Sin embargo, todos estos sistemas pueden
convivir tranquilamente en una PC, o sea que sobre cualquier computadora, con
suficiente espacio en el disco duro, es posible tener instalado Linux y ademas
Ms-DOS, Windows 95/98 o NT.
Sobre Linux, existen emuladores de MS-DOS los que permiten que ciertas
aplicaciones de MS-DOS puedan ejecutarse sobre Linux. Uno de los emuladores
mas conocido es el llamado "DOSEMU" y permite ejecutar aplicaciones como
Turbo Pascal, Turbo Assembler, Harvard Graphics, etc. A su vez existe un
proyecto llamado "WINE" (Win Emulator) para permitir ejecutar aplicaciones
Windows sobre el sistema grafico de vantanas X Windows.
1.1.2 LINUX Y LOS SISTEMAS DE ARCHIVOS
Linux posee un sistema de archivos propio, no compatible con los de Microsoft,
llamado "ext2fs" ( Extended File System 2 =). Esto quiere decir que si en una
PC tenemos instalados los sistemas Linux y MS-DOS/Win95/98/NT desde los
sistemas de Microsoft no podremos acceder, ni para lectura ni para escritura,
a los sistemas de archivos de Linux.
En cambio Linux es capaz de leer y escribir en sistemas de archivos de MS-DOS
(FAT), de Win95 (VFAT), inclusive con nonbres largos
) , de Win98 (FAT32),
tambien con nombres largos =) , y de NT (NTFS). Aunque el soporte de escritura
sobre NTFS esta, hasta el momento, desarrollado en forma experimental y se
recomienda no utilizarlo ya que podria da¤ar la escritura de archivos de una
particion NTFS.
Ademas de los sistemas de archivos descriptos anteriormente, Linux es capaz
de leer y escribir sobre particiones basadas en sistemas de archivos de MINIX,
FFS (Fast File System), de Apple Macintosh, de los sistemas Unix SCO, System
V, Coherent y Xenix, y UFS de BSD (Unix de Berkeley).
Linux es capaz de leer archivos de particiones OS/2 HPFS del S.O. OS/2 de
IBM y del ADFS (Acorn Disk file System) del S.O. de Acorn. Soporta ademas
lectura desde los CD-ROM's sobre el sistema de archivos estandar que es el
ISO9660.
Ademas de esto podemos aplicar sobre el sistema de archivos ext2fs porciones
del disco limitadas a cada usuario. Esto es conocido como "QUOTAS" y sirve
para limitar la cantidad de espacio de espacio de almacenamiento en disco
que cada usuario es capaz de usar.
1.1.3 LINUX Y LAS REDES
Cuando hablamos de redes, Linux es la opcion. No solo porque el trabajo en
red esta altamente integrado con el sistema operativo, sino que ademas una
infinidad de aplicaciones de libre distribucion se encuentran disponibles y
que, mas importante aun, es totalmente robusto bajo una gran carga, lo que
es un resultado de a¤os de desarrollo, testeo y correccion basados en el
proyecto Open Server.
Linux tiene realizada como parte de su nucleo una implementacion completa de
los protocolos de la famila TCP/IP muy eficiente y con soporte para muchos
conceptos avanzados de trabajo en redes.
Linux puede funcionar como servidor de WWW en Internet de forma excelente. Es
mas el servidor APACHE mediante el cual se puede instalar un servidor WWW
sobre Linux, es el servidor de WWW mas utilizado en Internet y en Itranets
actualmente. Ademas Linux es capaz de funcionar como cliente de WWW, ya sea
en una maquina conectada permanentemente a Internet o mediante modem (PPP).
Esto no es lo unico que se puede realizar con un sistema Linux. Linux es
capaz de actuar de servidor PROXY, ser utilizado como FIREWALL, como ROUTER
avanzado o como BRIDGE (puente). Tiene soporte para alias de IP, protocolos
IPX/SPX, protocolos IPv6, AppleTalk, X.25, ISDN, PPP, SLIP, PLIP, etc.
A nivel aplicaciones, Linux esta acompa¤ado de innumerables aplicaciones
como lo son:
* Sendmail: Puede actuar de servidor de mail, ya sea para enviar, recibir y
realizar un sin numero de tareas relativas al correo electronico.
Sendmail es el servidor de mail mas utilizado en Internet.
* Ftp: Linux puede actuar como servidor o cliente de ftp (File Trasnfer
Protocol). Un servidor de FTP es capaz de permitir que los clientes
se conecten y recuperen archivos disponibles en el servidor.
* Noticias (NEWS): Existen varias implementaciones del protocolo NNTP, el
cual sirve para permitir que una red de computadoras
sobre Internet intercambien articulos que cubre todo
tipo de topicos o tematicas.
* DNS (Domain Name System): Un servidor DNS tiene el trabajo de traducir
los nombres utilizados en Internet como por
ejempl
www.linux.org en direcciones de IP. El
trabajo de DNS sobre Unix/Linux lo realiza un
programa llamado "NAMED".
* Telnet: Telnet es un programa que permite a una persona usar una
computadora remota como si estuviera trabajando directamente
sobre la misma.
1.1.4 LINUX Y LA INTERCONECCION CON OTROS SISTEMAS
Linux puede interactuar completamente con varios sistemas conocidos
compartiendo archivos e impresoras en una red. Esto hace posible integrar
una maquina Linux con cualquiera de los sistemas mas utilizados actualmente
y permitir su total conectividad.
Los sistemas con los que Linux puede ser usado para compartir recursos son
los siguientes:
* Apple: Linux soporta la familia de protocolos AppleTalk. Linux permite a
clientes Macintosh ver recursos de un servidor Linux, asi como
otros clientes Macintosh en una red y compartir archivos e
impresoras desde el servidor Linux.
* Entorno Windows: El grupo de aplicaciones SAMBA, que es provisto con el
S.O. Linux, permite interactuar a un sistema Linux como
servidor o cliente de maquinas con Windows 95/98, Windows
NT, DOS o Windows For Workgroups.
* Novell Netware: A traves del protocolo IPX, Linux puede ser configurado
para actuar como un servidor o un cliente NCP, y
permitiendo asi servicios de archivos e impresoras en
redes Novell.
* Entornos Unix: La manera mas conocida y eficiente de compartir archivos
en entornos Unix es mediante NFS (Network File Sharing).
Este protocolo fue originalmente desarrollado por Sun
Microsystems. Es una de compartir archivos entre maquinas
de forma que parezca que son archivos locales. Asi se
puede tener una maquina totalmente funcional sin necesidad
de tener un disco rigido instalado.
1.2 CARACTERISTICAS DE HARDWARE REQUERIDO Y SOPORTADO
1.2.1 HARDWARE REQUERIDO POR LINUX EN MAQUINAS CON ARQUITECTURA INTEL 80x86
Linux requiere como configuracion minimima de hardware una maquina con
procesador 80386 con 2 Mb de memoria RAM y 40 Mb de espacio libre en disco
rigido y puede correr tranquilamente sobre esta configuracion. Para utilizar
el modo grafico (vale la pena, Sistema X Windows
necesita al menos 8 Mb
de RAM y 100 Mb de espacio en disco.
Linux puede trabajar con los buses ISA, VLB (Vesa Local Bus), EISA y PCI.
Ademas puede trabajar en sistemas con arquitectura PS/2 MCA (Micro Channel
Architecture).
Linux puede correr, ademas, en la familia de PC's portables, desde las 80386
en adelante, inclusive con su sistema grafico.
1.2.2 HARDWARE SOPORTADO POR LINUX
PROCESADORES, UNIDADES DE PUNTO FLOTANTE Y MEMORIAS
Es totalmente compatible con los microprocesadores 386 SX / DX / SL / DXL /
SLC, 486 DX / SL / SX2 / DX2 / DX4 de Intel/AMD/Cyrix, Pentium, Pentium MMX,
Pentium Pro, Pentium II y III de Intel, K5, K6, K6-2 3D de AMD, y todos los
procesadores de la familia Cyrix.
Linux posee emulacion de unidad de punto flotante para servir de soporte a
los procesadores que no tiene coprocesador matematico como lo son los 386 o
los 486/SX.
Ademas una caracteristtica muy pontente de Linux es que se provee soporte
para sistemas con multiples CPU's (SMP).
Con respecto a las memorias, todas las memerias DRAM, FPM, EDO o SDRAM pueden
ser utilizadas con Linux.
CONTROLADORES DE UNIDADES DE DISCO RIGIDO, DISQUETTES, CD-ROM Y UNIDADES DE
CINTA
Linux puede trabajar con las controladoras estandar de disco IDE, MFM y RLL.
Tambien hay soporte para interfaces IDE extendidas (EIDE), con hasta dos
interfaces IDE y 4 discos y/o unidades de CD-ROM. Linux detectara las
siguientes interfaces EIDE:
* CMD-640
* DTC 2278D
* FGI/Holtek HT-6560B
* RZ1000
* Triton I y II con Bus-Master DMA
Estas interfaces son las mas utilizadas en las computadoras personales y en
general Linux no tendra ningun problema en detectarlas.
Linux funcionara tambien con la interface mas moderna IDE/ATAPI, ya se para
discos, unidades de CD-ROM, unidades de discos flexible o unidades de cinta.
Es posible, ademas, utilizar las modernas unidades Zip de Iomega, ya sea por
el puerto paralelo o SCSI.
UNIDADES DE CD-ROM (NO IDE) (NO SCSI)
Es factible (ja de donde salio esa palabra
utilizar sobre Linux las
siguientes unidades de CD-ROM: Aztech, Creative Labs (una cagada), Goldstar,
IBM, Panasonic, Mitsumi, Sanyo, Sony, Teac.
ULTRA-DMA
Linux puede trabajar con las interfaces de disco con Ultra-DMA mas conocidas
del mercado. (Bus-Master, VIA, etc.).
SCSI
Linux soporta una gran cantidad de interfaces controladoras SCSI. Entre las
mas importantes encontramos: Adaptec, BusLogic, DTC, Future Domain, NCR,
Seagate, UltraStor, Quantum, Iomega y Western Digital.
ADAPTADORES DE RED
De forma similar, Linux soporta una amplia variedad de trajetas de red
Ethernet com lo son: 3Com, AMD, AT&T, Cabletron, DEC, Fujitsu, HP, Intel
EtherExpress, Novell NE2000/1000, SMC, Western Digital, Zenith.
Ademas soporta varias tarjetas de red ISDN, ARCNet, Token Ring, FDDI,
Amateur Radio, PCMCIA, Frame Relay, como otras intefaces (que no utilizan
tarjetas) SLIP, PPP o PLIP.
TARJETAS DE SONIDO
Las tarjetas de sonido mas importantes soportadas por Linux son las
siguientes: Adlib, Crystal, Ensoniq Soundscape, Gravis Ultrasound, Logitech,
Media TriX, Media Vision, Microsoft Sound System, OPTi, Sound Blaster (100 %
compatibles), Turtle Beach y puertos MIDI MPU-401.
MOUSES
Los siguientes mouses pueden ser utilizados con Linux:
* Mouse serie de Microsoft
* Mouse serial de Mouse Systems
* Mouse de Logitech serie o de bus
* Mouse de bus de Microsoft
* Mouse ATI XL
* Mouse PS/2
MODEMS
Todos los modems internos o externos (conectados a un puerto serie) deben
funcionar con Linux. Algunos frabricantes han creado lineas de modems que
solo funcionan con Windows 95, por lo que hay que tener mucho cuidado al
comprar, porque en Linux no sera posible hacerlos funcionar.
Todos los modems que funcionan bajo interfaz PCMCIA deben funcionar en Linux.
En lo que respecta a los Modem/Fax, necesitan software apropiado para
funcionar, pero hay que asegurarse de que el Modem/Fax cumpla con el estandar
de Fax Clase 2.0 porque es generalmente verdad que el software de Fax
disponible para Unix no funciona com Modems/Fax de Clase 1.0
IMPRESORAS
Todas las impresoras conectadas a un puerto paralelo funcionan en Linux, pero
al igual que los modems, algunos fabricantes han lanzado impresoras designadas
para trabajar solamente con el sistema Windows 95.
Muchos programas de Linux generan como salida de impresion documentos en
formato Postscript. En general este formato es entendido solo por impresoras
Laser y algunas otras impresoras avanzadas. Para solucionar este problema en
Linux podemos utilizar el programa Gostscript, que es un interprete del
formato Postscript para utilizar con las impresoras que no tiene el soporte
para este formato. Ghostscript posee, entre otros, drivers para las
siguientes impresoras:
* Impresoras Apple
* Cannon Bubble-Jet, LBP, LIPS III
* Impresoras DEC
* Epson 9 y 24 pines, y serie LQ.
* Epson Stylus con color.
* Una amplia variedad de las impresoras Hewlett Packard Deskjet, Paintjet y
Laserjet
* IBM, Oki, Okidata, Ricoh, Tektronix y Xerox
SCANNERS
Para trabajar con scanners en Linux se debe agregar el paquete SANE (Scanner
Access Now Easy), que es posible conseguirlo gratituamente en Internet, y
provee soporte para los siguientes scanners:
* Adara ImageStar
* Epson GT6000
* Fujitsu SCSI-2 Scanners
* Genius ColorPage, GS-B105G, GeniScan, GS-4000 y ScanMate
* Varios HP ScanJet
* Varios Logitech ScanMan
* Nikon CoolScan
OTROS DISPOSITIVOS
Linux puede trabajar con Touch-Screens, Joysticks, Terminales en los puetos
serie, una gran variedad de trajetas de captura de video, varios sistemas
de manejo de energia UPS, etc.
DISPOSITIVOS PLUG & PLAY
PnP fue inventado por Intel y Microsoft, en parte por eso y en parte por las
diferencias que existian con los desarrolladores de Linux por la forma en que
se habia implementado, Linux no daba soporte a los dispositivos PnP. Pero nos
guste, o no, la mayoria del harware, hoy, es PnP y Linux no tiene otra opcion
que trabajar efectivamente con el PnP.
Los Kernels actuales de Linux poseen soporte integrado para PnP. Esto favorece
a la aceptacion de Linux porque muchas personas se rehusaban a Linux porque
los dispositivos PnP no funcionaban. Hoy estamos en condiciones de usar
cualquier dispositivo PnP con Linux, siempre que sea 100% compatible con algun
dispositivo soportado por Linux.
CAPITULO 2
ESTRUCUTURA GENERAL DEL SISTEMA DE ARCHIVOS
2.1 SISTEMA DE ARCHIVOS
La parte del sistema operativo que fija como los archivos son estructurados,
nombrados, accesidos, usados, protegidos e implementados se conoce como
"Sistema de Archivos".
Desde el punto de vista del usuario, el aspecto mas importante de un sistema
de archivos es la estructura que refleja el sistema de archivos, que
constituye un archivo, como los archivos se nombran y se protegen, que
operaciones estan permitidas sobre los archivos, etc.
2.1.1 NOMBRES DE ARCHIVOS
Las reglas exactas para nombrar archivos, varian de sistema en sistema. En
el caso de Unix es posible tener nombres de archivos de hasta 255 caracteres.
Por lo tanto los siguientes nombres son totalmente validos:
Tony, reporte, README.TXT, ls, cp, Resultados de la primera Fecha - Basket
Una caracteristica importante a tener en cuenta es que en Unix/Linux cae en
la categoria de sistemas que distinguen entre letras minusculas y letras
mayusculas, es decir que es "case-sensitive". Por lo tanto se consideraran
como archivos distintos los siguientes nombre:
tony, Tony, TONY, tONY
Muchos sistemas operativos dividen el nombre de un archivo en dos partes que
se separan por un punto. La parte que se encuentra despues del punto se
llama "extension". En MS-DOS, por ejemplo, los nombres de los archivos deben
formarse con un nombre de 1 a 8 caracteres, con una extension opcional de 1
a 3 caracteres. En Linux la extension es opcional y puede tener la cantidad
de caracteres que el usuario quiera. Asimismo es posible definir archivos
con dos o mas extensiones. Ejemplos:
README.linux, linux-2.2.5.tar.gz
En Linux no existe ninguna restriccion en las extensiones de los archivos
que implique la asociacion del mismo con ciertas operaciones. En MS-DOS, por
ejemplo, solo es posible ejecutar archivos con las extensiones .BAT, .EXE,
.COM. En Linux para poder ejecutar un archivo se imponen otro tipo de
restricciones que seran tratadas mas adelante.
Sin embargo, algunos programas o utilidades exigiran ciertas extensiones en
los archivos sobre los cuales se quiera trabajar. Por ejemplo el compilador
de C de distribucion libre que viene con las distribuciones Linux, llamado
gcc (GNU C Compiler), insistira en que los archivos fuente tengan extension
.c al final del nombre del archivo. Hay que tener en cuenta que esto no es
una restriccion impuesta por el S.O. sino que es el programa el que exige
este tratamiento.
2.1.2 ATRIBUTOS DE LOS ARCHIVOS
Los principales atributos de los archivos en Linux tienen que ver con sus
permisos de acceso, su propietario, grupo al que pertenece (todos estos
conceptos se trataran mas adelante), su tama¤o en bloques, y su ultima
fecha de modificacion.
En el sistema MS-DOS, los archivos ocultos se identificaban con un atributo
llamado HIDDEN. En Linux, en cambio, no existe ningun atributo especial para
determinar cuando un archivo es oculto. La distincion se realiza sobre el
nombre de archivo. Los nombres de los archivos que comienzan con un punto
son considerados archivos ocultos. Ejemplos:
.Xclients, .bash_history, .emacs
2.1.3 DIRECTORIOS
Con respecto a los directorios y sus nombres y sus atributos, todo lo dicho
antes para los archivos se aplica de igual manera para los directorios, ya
que en Linux son a su vez archivos normales.
La estructura de directorios de la mayoria de los sistemas es una estructura
de arbol. Esto quiere decir que se tiene un directorio raiz, el cual a su
vez puede tener varios subdirectorios y asi sucesivamente.
Linux Fue desarrollado con el objetivo de ser multiusuario y de su alta
integracion en redes, por lo que uno de los objetivos fundamentales fuel el
hacer posible el trabajo en grupos y compartir informacion. Con el modelo de
directorios en forma de arbol es imposible permitir que se comparta
informacion entre varios usuarios, por eso Linux fue mas alla y baso su
sistema de archivos en la estructura de grafo aciclico (FIGURA 2.1) que es
una generalizacion natural del del esquema de directorios jerarquico.
2.1.4. ESTRUCTURA DEL SISTEMA DE ARCHIVOS
En sistemas como MS-DOS las distintas unidades de disco, CD-ROM, disco
flexible, etc., se manipulan con una estructura de directorios propia. Esto
quiere decir que cada unidad tiene un directorio raiz y una estructura de
subdirectorios determinada. Para diferenciar las distintas unidades se les
asigna una letra a cada una de ellas. Asi tenemos la unidad A, la unidad C,
etc.
En Linux, esta estructura definitivamente no es adecuada porque trae muchos
problemas de mantenimiento. Mas aun, es totalmente inaplicable en los
sistemas de archivos de red como lo son NFS, SMB, etc. El hecho de fijar a
cada una de las unidades una letra que debe mantenerse para siempre -o todos
los programas perderan las refernecias de nombres- es una limitacion muy
grande en sistem tan flexible como Linux
2.1 SISTEMAS DE ARCHIVOS
________________________
| Tony | Juan | README |
/-----------\-----------\
/ \ \-----\
____________/_________ _\_____________ \
| mail | TODO | prog | | prog | mail | @
/---------/------|---- -/---------\---
/ / | / \
/ / ___|__________/____________ \
/ / / | / \ \
/ / | _|________/___________ | @
@ @ | | mod1 | mod2 | exec | |
\_ ---|------|------|---- _/
\ | | | _/ <-----_
\_ | | | _/ |
\-|------|------|--/ Estos directorios
| | | estan compartidos por
| | | los usuarios Tony y
@ @ @ Juan.
FIGURA 2.1: ESTRUCTURA DE SISTEMA DE ARCHIVOS ACICLICA. EJEMPLO DE UN
DIRECTORIO COMPARTIDO.
Para solucionar esto, Linux utiliza el concepto de particion raiz y sistemas
de archivos montados sobre la particion raiz. Esto significa que todas las
unidades utilizaran una estructura de directorios comun. Asi no existiran
varias unidades y una estructura de directorios por unidad, sino que existira
una unica estructura de directorios y sobre ella se acomodaran las distintas
unidades, inclusive las que se comparten en redes.
La particion raiz es llamada "/" y es el directorio principal de la
estructura. Las unidades, antes de poder ser usadas, deben ser montadas en el
sistema de archivos. Para ello debe existir un "punto de montaje" donde alojar
la informacion de la unidad. Un punto de montaje no es mas que un directorio
cualquiera dentro del sistema de archivos, que debe encontrarse vacio.
_______________________
/ | mnt | Tony | README |
øø/øøøøøø|øøøøøøøøø\øø
/ \ \______
___/__ __\____________ \
| | | prog | mail | @
øøøøøø øøøøøøøøøøøø\øø
\
\
____________________ @
| mod1 | mod2 | exec |
øø|øøøøøø|øøøøøø|øøø
| | |
| | |
@ @ @
FIGURA 2.2: EJEMPLO DE MONTAJE DE UNA UNIDAD. ESTADO DEL SISTEMA DE ARCHIVOS
PREVIO AL MONTAJE.
_______________________
/ | mnt | Tony | README |
øø/øøøøøø|øøøøøøøøø\øø
/ \ \______
______________/__ __\____________ \
| part1 | part2 | | prog | mail | @
øøø/øøøøøøøø/øøøø øøøøøøøøøøøø\øø
/ / \
/ / \
@ @ ____________________ @
| mod1 | mod2 | exec |
øø|øøøøøø|øøøøøø|øøø
| | |
| | |
@ @ @
FIGURA 2.3: EJEMPLO DE MONTAJE DE UNA UNIDAD. ESTADO DEL SISTEMA UNA VEZ
REALIZADO EL MONTAJE.
Veamos un ejemplo de montaje de una unidad en Linux. El estado del sistema
de archivos antes de montar la unidad es el que muestra la figura 2.2.
Supongamos que queremos montar un disquettes que posee dos archivos llamados
"part1" y "part2" en el punto de montaje dado por el directorio "/mnt". El
directorio esta vacio, por lo que no hay ningun problema. El estado del
sistema de archivos despues de realizar el montaje se muestra en la figura
2.3.
Una vez que se monta la unidad dentro del sistema de archivos se puede
utilizar como si fuese cualquier directorio dentro de la estructura. La unica
diferencia es la forma en la que se accede a los datos, ya que un directorio
dentro del sistema de archivos puede corresponder a una particion del disco
rigido, un disquette, un CD-ROM o una unidad de red que se encuentra en otra
maquina. Afortunadamente, el sistema se ocupara de tratar con el dispositivo
que corresponda, de la forma adecuada, para obtener y guardar la informacion.
El tratamiento que Linux aplica a cada directorio del sistema de archivos se
realiza de forma totalmente transparente para el usuario
Esta forma de tratar las unidades trae, por supuesto, muchas ventajas. La
belleza de los sistemas de archivos montados, por sobre las unidades
basadas en letras, recae en la transparencia. Uno puede agregar unidades al
sistema sin romper las referencias de las aplicaciones existentes.
En el modelo de las unidades con letras, cada vez que se agregan unidades al
sistema, cambian las letras de las unidades. Asi la mayoria del software y
algunos S.O. se confunden cuando esto pasa. Tipicamente se termina teniendo
que reinstalar los programas cada vez que se mueve algun disco de lugar.
Este juego se vuelve ridiculo cuando se utilizan unidades de red.
En Linux los sistemas de archivos de red, estan designados desde un principio
con el objetivo de la transparencia. Asi se pueden mover archivos y
aplicaciones de una maquina a otra en la red y ser compartidos ya que sus
puntos de montaje no tienen porque cambiar.
Lo que puede resultar incomodo es el hecho de tener que montar las unidades
antes de usarlas. Esto es verdad, pero solo con las unidades extraibles
(unidades de discos flexibles, o CD-ROM's), ya que las unidades fijas (discos
rigidos, unidades de red, etc.) se configuran para que se monten
automaticamente.
2.1.5 RUTAS DENTRO DEL SISTEMA DE ARCHIVOS
Las rutas (PATH) se utilizan para referirse a determinados directorios o
archivos dentro del sistema de archivos. Ya hablamos del directorio raiz
del sistema, el cual es llamado "/". Dentro de este se pueden crear otros
directorios y archivos. Por ejemplo, si creamos un archivo llamado "Come As
You Are.mp3" en el directorio raiz, entonces para referirnos a el tenderemos
que especificar la siguiente ruta: /Come As you Are.mp3. Si creamos un
directorio llamado "home" nos referiremos a el como /home o /home/. Esto es
posible porque es un directorio.
Generalizando, podemos encontrar encontrar un direcotorio llamado "linux" que
se encuentra dentro del directorio "src" que a su vez se encuentra dentro del
directorio "usr" que es un subdirectorio del directorio raiz. La ruta
adecuada sera: /usr/src/linux.
Las rutas no siempre se estructuran de esa manera. Todos los ejemplos dados
en el parrafo anterior corresponden a "rutas absolutas". Esto quiere decir
que son rutas completas, ya que marcan el camino desde el directorio raiz
hasta el archivo o directorio deseado. Tambien es posible utilizar "rutas
relativas". Las rutas relativas se construyen dependiendo del punto en el
sistema de archivos donde nos encontramos ya que en cada momento nos
encontramos en un cierto punto del sistema de archivos (el directorio
actual o el de trabajo) y podemos cambiar de directorio, desplazandonos en
la jerarquia. Toda ruta que comience con una barra ("/") es considerada una
ruta absoluta, toda otra ruta es considerada ruta relativa.
_______________________
/ | mnt | Tony | README |
øø/øøøøøø|øøøøøøøøø\øø
/ \ \______
/ __\____________ \
@ | prog | mail | @
øøøøøøøøøøøø\øø
\
\
____________________ \
| mod1 | mod2 | exec | _\_______________
øø|øøøøøø|øøøøøø|øøø | mess | attach |
| | | øøø|øøøøøøø|øøøøø
| | | | |
@ @ @ @ @
FIGURA 2.4: EJEMPLO DE RUTAS RELATIVAS. ARBOL DE DIRECTORIOS
Como ejemplo de rutas relativas consideremos la estructura del sistema de
archivos que muestra la figura 2.4, pueden darse las siguientes situaciones:
* Si nos encontramos en el directorio /, entonces la ruta Tony/mail/attach
se refiere al archivo attach que se encuentra dentro del directorio mail
que es un subdirectorio del directorio Tony. Facil
* Si nos en el directorio /Tony/mail entonces las rutas ./attach y attach
ambas se refieren al mismo archivo de los ejemplos anteriores. Tambien
Facil
)
* Si nos encontramos en el directorio Tony/prog, entonces la ruta
../mail/attach se refiere al mismo archivo que el ejemplo anterior. Un
poco mas dificil
* Si el directorio en el que nos encotramos es Tony/prog entonces la ruta
../../README se refiere al archivo README que se encuentra en el
directorio raiza. Muy dificil ;(
HARD LINKS
Los "hard links" (links "duros") son links directos al inodo ( no INODORO)
del archivo y nos permiten tener mas de un archivo apuntando al mismo inodo.
Desde un punto de vista practico dos archivos con el mismo inodo son el mismo
archivo. Los cambios realizados sobre un archivo seran reflejados en el otro y
viceversa. Lo unico que hay que tener en cuenta es que para borrar un archivo
del sistema de archivos hay que borrar todos los hard links que el mismo
posea. Por ejemplo, si el archivo doc1.tex es un hard link al archivo
ejemplo1.tex, al borrar el ultimo no estamos borrando el primero. Para borrar
definitivamente el archivo hay que borrar tambien el archivo doc1.tex. La
unica restriccion que poseen los hard links es que solo pueden definirse
dentro de un sistema de archivos, porque los inodos son unicos internamente a
un sistema de archivos.
Los directorios "." y ".." son hard links y estan presentes en todos los
directorios del sistema de archivos. El primero es un hard link al mismo
directorio y el segundo apunta al directorio padre. En particular la entrada
".." en el directorio "/" apunta a si mismo; es decir que el padre del
directorio raiz es el mismo.
LINKS SIMBOLICOS
Los links simbolicos son otro tipo de links que tambien permiten darles varios
nombres a un archivo pero no asocian a los archivos por numeros de inodo. Por
esto los links simbolicos no tiene la restriccion de tener que permanecer al
mismo sistema de archivos y pueden referenciar archivos entre sistemas de
archivos. Esto quiere decir que un link simbolico tiene su propio numero de
inodo pero apunta a otro archivo.
Funcionalmente, los hard links y los links simbolicos son similares, aunque
tiene algunas diferencias. Por ejemplo, se pueden crear links simbolicos a
archivos que no existen, esto no es posible con los hard links.
2.2 ESTRUCTURA GENERAL DE UN SISTEMA DE ARCHIVOS LINUX
En un sistema de archivos Linux encontraremos los siguientes directorios
importantes que forman parte del sistema y tiene funciones particulares:
/bin Archivos binarios o ejecutables. Aqui encontraremos los comandos mas
utilizados. Los comandos que se encuentren en este directorio pueden
ser ejecutados por todos los usuarios del sistema.
/dev Archivos que representan los dispositivos del sistema.
/etc Archivos de configuracion y pesonalizacion del sistema. Solo pueden
ser modificados por el superusuario (ROOT).
/sbin Ordenes ejecutables solo por el superusuario.
/home Directorio donde se crean los directorios home de los usuarios del
sistema.
/lib Librerias escenciales del sistema.
/proc Es una estructura virtual de archivos utilizada por el kernel para
mostrar la informacion del sistema y su configuracion. A traves del
mismo es posible ver la informacion de las interrupciones, puertos
de entrada/salida, uso del CPU, memoria, particiones, modulos, asi
como la informacion de cada proceso en particular y de los distintos
dispositivos instalados en el sistema.
/tmp Directorio que se utiliza como almacenamiento de archivos temporales.
/var Informacion de la historia del sistema. Se guardan los mensajes que
los precesos realizan al ejecutarse, informacion de debug, archivos a
imprimir, mensajes de correo a ser distribuidos, etc.
/boot Archivos e informacion necesaria para el arranque del sistema.
/usr Programas, herramientas y utilidades instaladas en el sistema como
extension del S.O.
/usr/bin Binarios y ejecutables de los programas agregados al sistema.
/usr/src Codigo fuente de los programas.
/usr/src/linux Codigo fuente del kernel del sistema.
/usr/man Manuales de los comandos del sistema y de los programas agregados.
/usr/X11 Archivos del sistema de ventanas X Windows.
/usr/X11/bin Archivos ejecutables del sistema de ventanas.
/usr/local Softaware agregado localmente al S.O. En este directorio se suele
instalar todo el software que agregamos luego de realizar la
instalacion.
CAPITULO 3
USUARIOS, PERMISOS Y GRUPOS
El sistema operativo Linux es un sistema multiusuario. Esto quiere decir
que un numero cualquiera de personas pueden trabajar en el sistema, ya sea
de forma simultanea o no. Para comenzar a trabajar en el sistema Linux es
necesario iniciar una sesion, esto quiere decir que el sistema nos preguntara
el nombre de usuario con el cual queremos iniciar la sesion. Este proceso se
conoce como LOG IN.
Para que el sistema se asegure que la persona que intenta inciar una sesion
corresponde al usuario indicado se asocio una contrase¤a (PASSWORD) con
cada nombre de usuario. La contrase¤a solamente la debe conocer el usuario
propietario de la cuenta.
Como parte del proceso de inicio de sesion se debe ingresar la contrase¤a
apropiada, la cual sera encriptada por el sistema inmediatamente y chequeada
contra la base de datos de contrase¤as y gurdada en el sistema. Este proceso
se conoce como autenticacion del usuario. Si la contrase¤a es cheaqueada
satisfactoriamente entonces el usuario comienza su sesion en el sistema. De
otra forma se rechaza la solicitud de comienzo de sesion.
Para que este esquema de autenticacion funcione, es necesario que exista una
forma de crear cuentas de usuario y de asociarles sus respectivas
contrase¤as, y ademas no se debe permitir a cualquier usuario que pueda
realizar estas tareas. Para solucionar estos y otros problemas de seguridad,
Linux posee una cuenta predefinida llamada "root". Esta es la cuenta del
superusuario, y es el unico usuario que esta autorizado a crear cuentas,
asignarles contrase¤as y eliminarlas si es necesario. Estos no son los unicos
permisos que posee esta cuenta; en realidad en una sesion iniciada como el
superusuario, root, es posible realizar todas las operaciones necesarias para
la administracion del sistema.
El esquema de autenticacion de usuarios es necesario pero no suficiente. El
hecho de que Linux utilice la estructura de un unico sistema de archivos y
de que sea un sistema multiusuario hacen que sea indispensable un sistema de
permisos aplicable sobre los usuarios para con los archivos. Imaginemos un
entorno en el cual no existieran permisos sobre los archivos y existieran
multiples usuarios. Facilmente un usuario podria leer, modificar e incluso
borrar archivos de otro usuario, o podrian darse otras situaciones
indeseables para con la seguridad del sistema. Para evitar esto Linux
establece un mecanismo de proteccion de archivos que funciona mediante
permisos y grupos.
Anteriormente, cuando hablamos de los atributos de un archivo, mencionamos
que un archivo tiene asociado un usuario y un grupo. Estos atributos
establecen quien es el usuario due¤o del archivo y a que grupo de usuarios
pertenece. Los grupos son conjuntos de usuarios que tambien son definidos
por el superusuario como parte de la administracion del sistema y sirven para
agrupar a varios usuarios con caracteristicas de acceso al sistema similares.
El concepto de grupos de usuario facilita enormemente la tarea de administrar
los permisos en sistemas con gran cantidad de usuarios.
3.1 PERMISOS DE ACCESO
Ademas de los atributos de usuario y grupo, un archivo tiene asociados
"permisos de acceso" que determinan las operaciones que son permitidas sobre
el mismo por parte de cada usuario. Los permisos de un archivo se dividen en
tres partes:
* DUE¥O: El usuario que creo el archivo es el due¤o del mismo. El due¤o es
determinado por el atributo del archivo que especifica quien es el
due¤o.
* GRUPO: El conjunto de usuarios que comparten el archivo y necesitan
permisos de acceso similares. El grupo sobre el cual recaen estos
permisos es el grupo al cual pertenecen el archivo como lo
determina el atributo de grupo.
* OTROS (Universo): El universo se constituye de todos los demas usuarios
que no son ni due¤os del archivo ni pertenecen al
grupo del archivo.
Dentro de cada categoria, los permisos se dividen en tres grupos: leer,
ecribir y ejecutar.
PERMISO DE LECTURA: Deja a un usuario ver el contenido de un archivo o, en
el caso de los directorios poder listar su contenido.
PERMISO DE ESCRITURA: Permite escribir en los archivos o modificar su
contenido. En el caso de los directorios permite
crear nuevos archivos o borrar archivos del
directorio.
PERMISO DE EJECUCION: Deja que el usuario pueda ejecutar el archivo, ya sea
como un programa o como un script de comandos. El
permiso de ejecucion sobre un directorio nos permite
cambiar el directorio de trabajo.
Este mecanismo de permisos nos garantiza seguridad y simul