Curso Linux Admi 2006 – [PDF Document]

  • II CURSO DE ADMINISTRACIN DESISTEMAS OPERATIVOS GNU/LINUXGua del alumnoJunio de 2006Facultad de Fsica, Universidad de Sevilla
  • Autores:Jos Enrique Garca RamosAlberto Molina CoballesFranciscoPrez BernalFuentes:Gua de referencia Debian, O. Aoki (traducido por W.O.Echarri).(http://www.debian.org/doc/manuals/reference/reference.es.html)Linux:a network solution for your office, V.T. Toth (Sams, Indianapolis,1999).Manual Debian de seguridad, A. Reelsen, J. Fernndez SanguinoPea(http://www.nl.debian.org/doc/manuals/securing-debian-howto/index.es.html)Linuxmxima seguridad, Annimo (Prentice Hall, Madrid,2000).http://www.ecn.wfu.edu/ cottrell/wp.html publicado por AllinCottrell y traducido por JosMara Martn Olalla.debian-reference, que puede encontrarse enhttp://www.debian.org/doc/manuals/debian-reference.LINUX: Rute Users Tutorial and Exposition, Paul Sheer(2001).Administracin avanzada de GNU/Linux, Josep Jorba Esteve yRemo Suppi Boldrito.XP04/90785/00019, Formacin de posgradoUniversidad Oberta de Catalunya (2004).Classic Shell Scripting,Arnold Robbins and Nelson H.F. Beebe, OReilly (2005).AutomatingUnix and Linux Administration, Kirk Bauer Apress (2003).HOWTOs eningls.Manual Pages.Versin 0.2.Copyright c 2005-2006 J.E. Garca Ramos, A. MolinaCoballes y F. Prez Bernal.Se otorga permiso para copiar, distribuiry/o modificar este documento bajo los trminos de laLicencia deDocumentacin Libre de GNU, Versin 1.2 o cualquier otra versinposterior publi-cada por la Free Software Foundation1; sinsecciones invariantes ni textos de cubierta delantera nitextos decubierta trasera.Este texto se distribuye con la esperanza de quesea til, pero no existe ninguna garanta sobre l.1Puede encontrar una copia de la licencia en
  • ndice general0. Motivacin y objetivos 50.1. Antecedentes . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 50.2. Motivacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 70.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 7I Administracin local de GNU/Linux 91. Administracin local del sistema 111.1. Introduccin . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111.2. Arranque del sistema . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 111.2.1. Antes de Linux: El cargador . . . . . . . . . . . . . . .. . . . . . . . . 111.2.2. El proceso . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 171.3. Control del estado del sistema . . . . . . . . . . . . . .. . . . . . . . . . . . . 211.3.1. Directorio /proc . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 211.3.2. Procesos . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221.3.3. Memoria . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 251.3.4. Discos y sistemas de ficheros(filesystems) . . . . . . . . . . . . . . . . . 251.4. Gestin de sistemas de ficheros . . . . . . . . . . . . . .. . . . . . . . . . . . . 281.4.1. Creacin de particiones ysistemas de ficheros . . . . . . . . . . . . . . . 281.4.2. Montajede los sistemas de ficheros . . . . . . . . . . . . . . . . . . . .301.5. Ficheros de registro . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 311.5.1. Arranque del sistema . . . . .. . . . . . . . . . . . . . . . . . . . . . . 311.5.2. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.6. Bibliografa . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 352. Sistemas de archivos 372.1. Introduccin . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 372.2. Laestructura de archivos del s.o. GNU/Linux . . . . . . . . . . . . .. . . . . . 372.2.1. Principales directorios en un sistema GNU/Linux . . . . .. . . . . . . . 382.2.2. Puntos de montaje . . . . . . . . . . . .. . . . . . . . . . . . . . . . . 392.3. Permisos: su significado y cmo variarlos . . . . . . . . .. . . . . . . . . . . . 402.3.1. Usuarios y grupos . . . . . . . .. . . . . . . . . . . . . . . . . . . . . 402.3.2. Interpretacin delos permisos . . . . . . . . . . . . . . . . . . . . . . . 422.3.3.Modificacin de permisos . . . . . . . . . . . . . . . . . . . . . .. . . 432.3.4. El sticky bit . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 432.3.5. Permisos y . . . . . . . . . .. . . . . . . . . . . . . . . . . 452.3.6. Permisos numricos . . .. . . . . . . . . . . . . . . . . . . . . . . . . 451
  • 2 Curso de Administracin GNU/Linux2.4. ! y !»# . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 462.5. Bibliografa . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 483. Configuracin de perifricos 493.1. Impresoras . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.1.1. CUPS . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 493.1.2. Lprng . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 533.2. Scanner . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 543.2.1. Escaneando con XSANE . . . . . .. . . . . . . . . . . . . . . . . . . . 583.3. Dispositivos de memoria usb . . . . . . . . . . . . . . . .. . . . . . . . . . . . 583.4. Bibliografa . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 584. Compilando el kernel 594.1. Introduccin . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 594.2.Compilando el kernel . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 594.2.1. Antes de compilar . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 594.2.2. Compilacin del kernel . . . . . . . . .. . . . . . . . . . . . . . . . . . 614.3. Bibliografa . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 635. Uso de scripts para administracin del sistema 655.1.Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 655.2. Shells . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 655.3. Comandos msusados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 685.4. Scripts en Perl . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 705.4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 705.4.2. Nociones Bsicas . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 705.4.3. Algunos onelinersinteresantes . . . . . . . . . . . . . . . . . . . . . . . 745.5. Bibliografa . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 756. Ejecucin asncrona de tareas 776.1. Introduccin . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2.cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 776.2.1. El fichero $%#&'() y el directorio *+’ $*$%#& ,». . . . . . . . . . . . . 776.2.2. Indicando la periodicidad . . .. . . . . . . . . . . . . . . . . . . . . . . 786.2.3. Crontab paraun usuario cualquiera . . . . . . . . . . . . . . . . . . . .796.3. anacron . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 806.4. at . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 806.5. Outputde las tareas . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 816.6. Bibliografa . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 817. TCP/IP y aplicaciones de red 837.1. Origen de TCP/IP . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837.2.Nivel de acceso a red . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 837.3. Nivel de red . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 837.3.1. Direcciones IP . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 847.4. Nivel de transporte . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 857.5. Nivel deaplicaciones: conexiones seguras . . . . . . . . . . . . . . . . .. . . . 867.5.1. ssh . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 877.5.2. scp . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 87
  • Curso de Administracin GNU/Linux 37.5.3. sftp . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 887.5.4. Cmo generar y transmitir la clavepblica . . . . . . . . . . . . . . . . 887.6. Bibliografa . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 898. DHCP 918.1. Configuracin del cliente . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 918.2. Configuracin delservidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . .918.3. Bibliografa . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 929. Cortafuegos: iptables 939.1. Poltica por defecto . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 949.2.Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 959.2.1. Enmascaramiento IP . . . . . . . . . . . . . . . . . . .. . . . . . . . . 969.2.2. Creacin de un script de iptables . . . .. . . . . . . . . . . . . . . . . . 969.3. Bibliografa . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 97II Construccin de un cluster GNU/Linux 9910. Descripcin de un cluster modelo 10110.1. Las mquinas delcluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10110.2. Caractersticas de los nodos del cluster . . . . . . . . .. . . . . . . . . . . . . . 10210.3. Esquema de servicios delcluster . . . . . . . . . . . . . . . . . . . . . . . . . .10310.4. Descripcin detallada de todos los servicios de un clustermodelo . . . . . . . 10411. NIS y NFS 10711.1. Introduccin . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 10711.2. NIS . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 10711.2.1. Paquetes Debian . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 10711.2.2. Demonios y scripts de inicio . . . .. . . . . . . . . . . . . . . . . . . . 10811.2.3. Ficheros deconfiguracin . . . . . . . . . . . . . . . . . . . . . . . . .10811.2.4. Puesta en marcha de un servidor . . . . . . . . . . . .. . . . . . . . . . 10811.2.5. Puesta en marcha de un cliente . . .. . . . . . . . . . . . . . . . . . . . 11111.2.6. Uso de NIS yherramientas bsicas . . . . . . . . . . . . . . . . . . . . .11311.2.7. El fichero /etc/netgroup . . . . . . . . . . . . . . . .. . . . . . . . . . . 11311.3. NFS . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 11411.3.1. Paquetes Debian . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 11411.3.2. Demoniosy scripts de inicio . . . . . . . . . . . . . . . . . . . . . . . .11411.3.3. Ficheros de configuracin . . . . . . . . . . . . . . . .. . . . . . . . . 11411.3.4. Puesta en marcha de un servidor . . .. . . . . . . . . . . . . . . . . . . 11511.3.5. Puesta en marchade un cliente . . . . . . . . . . . . . . . . . . . . . . . 11611.4. Autofs como complemento de NFS . . . . . . . . . . . . . .. . . . . . . . . . . 11611.4.1. Paquetes Debian . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . 11611.4.2. Demonios yscripts de inicio . . . . . . . . . . . . . . . . . . . . . . . .11711.4.3. Ficheros de configuracin . . . . . . . . . . . . . . . .. . . . . . . . . 11711.4.4. Puesta en marcha de un servidor . . .. . . . . . . . . . . . . . . . . . . 11811.4.5. Puesta en marchade un cliente . . . . . . . . . . . . . . . . . . . . . . . 11811.5. Problemas de interaccin NIS, NFS, autofs, RPC . . . . . .. . . . . . . . . . . 12011.6. Bibliografa . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 120
  • 4 Curso de Administracin GNU/Linux12. Proceso de instalacin de Debian Sarge en los nodos 12112.1.Instalacin por copia directa . . . . . . . . . . . . . . . . . . .. . . . . . . . . 12112.1.1. Requisitos . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 12112.1.2. Uso . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 12212.2. Instalacin a travs de los discos de Debian . . . . . . . .. . . . . . . . . . . . 13112.2.1. Requisitos . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 13112.2.2. Instalacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13212.2.3. Configuracin . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 13313. Configuracin global del cluster 13913.1. Configuracinasncrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 13913.1.1. Qu es? . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 13913.1.2. Requisitos . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 13913.1.3. Ejemplos . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13913.2. El comando multiscr . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 14113.2.1. Requisitos . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 14113.2.2. Uso . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 14113.2.3. Variantes . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 14214. Copias de seguridad 14314.1. Introduccin . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 14314.2.Copias de seguridad de las cuentas de los usuarios . . . . . . . .. . . . . . . . . 14314.2.1. Con tar . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 14314.2.2. Con rdist . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 14514.2.3. Con pdumpfs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14714.2.4. A una unidad de cinta . . . . . . . . . . . . . . . . .. . . . . . . . . . 14814.3. Copias de seguridad de ficheros de configuracin . . . . .. . . . . . . . . . . . 14914.3.1. Con tar . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 15014.4. Bibliografa . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 15215. Ajustes finales en el cluster 15315.1. Seguridad en elcluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 15315.2. Sistema X . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 15315.3. Seguridad fsica . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15315.4.The Windows corner . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 15315.5. Varios . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 154
  • Captulo 0Motivacin y objetivos0.1. AntecedentesEl primer contacto de los autores con GNU/Linux data de octubrede 1995, en ese momentoGNU/Linux ya contaba con 4 aos de vida y elproyecto GNU tena ms de 10 aos de existencia.En esa poca lainstalacin y configuracin del sistema no era tan cmoda como lo esactualmentepero a pesar de las dificultades rpidamente comprendimosque era un sistema operativo que seadaptaba perfectamente anuestras necesidades.Las principales ventajas que observamos en el sistema fueron lassiguientes:El coste del sistema era 0, si excluimos el precio delCD de instalacin, que en muchasocasiones poda obtenerse al compraralguna revista informtica.Se trataba de un sistema operativo tipo UNIX.Era un sistema multiusuario y multitarea.No era tan slo un sistema operativo sino que incorporabasoftware muy variado: editores detexto, latex, representacionesgrficas, paquetes matemticos, compiladores de C y Fortran.Permita compartir fcilmente recursos: lectores de CDs, discosduros o impresoras.Posea navegadores de internet.Tena clientes y servidores de correo electrnico.Permita conectarse fcilmente a otros ordenadores, pudiendousarse incluso aplicacionesgrficas de dichos ordenadores remotos,lo que permita trabajar con varios ordenadores ala vez.Podamos conectarnos a nuestros ordenadores desde ordenadoresremotos, pudiendo acce-der a todos nuestros documentos yprogramas.Otras personas podan usar nuestro ordenador sin que pudierancambiar nuestra configura-cin personal o acceder a nuestrosdocumentos o programas.Incluso para personas inexpertas era muy difcil daar el sistemaoperativo.No existan virus.5
  • 6 Curso de Administracin GNU/LinuxTodas las anteriores caractersticas eran tremendamenteatractivas para nosotros, al haber usadootros sistemas operativosmultiusuarios como el UNIX de Hp o el VMS (de Digital), yestarinmersos en el mundo universitario al pertenecer aldepartamento de Fsica Atmica, Molecular yNuclear de la Universidad(FAMN) de Sevilla donde se dispona de varios PCs y de una reddedatos que permita una buena conectividad entre ellos.En esos das nuestro trabajo en GNU/Linux era exclusivamente anivel de usuario e inclusocambiar el fondo de pantalla supona ungran esfuerzo. No obstante, siempre estabamos abiertosa ayudar acualquiera que tuviera problemas, con lo que poco a poco empezamosa comprendermejor los entresijos de GNU/Linux y a realizar tareasque no son las habituales de un simple usua-rio, transformndonospor arte de magia en superusuarios. Con el anterior comentario debequedarclaro para los lectores que nosotros no somos programadores,aunque sabemos programar, o profe-sionales de la informtica, aunquegran parte de nuestro trabajo est relacionado conordenadores,simplemente conocemos ligeramente GNU/Linux y tenemosmucha experiencia configurandosistemas y resolviendo problemas.Durante los primeros aos de nuestro trabajo con GNU/Linux, en elDepartamento de FAMNexistan unos 10 ordenadores con la distribucinSlackware (distribucin que an existe) instalada,pero cada uno deestos ordenadores era independiente del resto, de forma que podamosentrar deun ordenador en otro (siempre que tuvieramos una cuenta deusuario) y almacenar informacin ocorrer programas, pero era precisocopiar los ficheros de uno a otro ordenador y a crearconstan-temente cuentas de usuario. De forma anloga, laconfiguracin de los ordenadores deba hacerseuno a uno, invirtiendobastante tiempo en realizar cambios en todos los ordenadores delDeparta-mento o en instalar nuevos programas. Otro inconvenienteera que si un usuario deseaba usar elordenador de un compaero, sedeba invertir cierto tiempo copiando la informacin de sucuenta.Todo esto nos llev en abril de 1999 a tomar la decisin deconstruir un verdadero cluster1de ordenadores en el que secompartiera todo cuanto fuera posible: cuentas de usuario,ficherosde configuracin, copias de seguridad, servidor de correo,etc. Adems se opt por emplear ladistribucin Debian de GNU/Linux.Los motivos para ello fueron:La estructura del proyecto Debian garantizaba que en el futurola distribucin seguira siendocompletamente gratuita.Se podan realizar actualizaciones sin necesidad de rebotar losordenadores.Posea un cuidado sistema de dependencias entre los diferentespaquetes, de forma quenunca faltaban libreras al instalar un nuevoprograma.Existan mltiples sitios Debian oficiales desde los que podanobtenerse o actualizarse nue-vos programas.Existan actualizaciones constantes de paquetes relativas afallos de seguridad del sistema.Finalmente en agosto de 1999 tenamos un cluster con la mayorparte de las caractersticasque necesitabamos, y cuya estructura eramuy similar a la de los actuales CLF (Cluster LinuxFAMN) delDepartamento de FAMN y CLGEM (Cluster Linux GEM) del Grupo deEstructura dela Materia (GEM) de la Universidad de Huelva.1En este manual no empleamos la palabra cluster para referirnosa una configuracin de ordenadores destinada arealizar clculos enparalelo.
  • Curso de Administracin GNU/Linux 70.2. MotivacinDespus de todos estos aos trabajando conGNU/Linux, estamos firmemente convencidosde que ste ofrece muchas ventajas frente a Windows(TM), aunqueni mucho menos desprecia-mos dicho sistema operativo. Simplementeestamos ms cmodos en nuestro trabajo diario conGNU/Linux. Creemosque deben usarse aquellos programas que faciliten al mximo nuestrotra-bajo, ya sean programas GNU/Linux o Windows(TM).Bajo este prisma consideramos que el trabajo de un grupo depersonas que tienen la posibilidadde compartir recursos informticose informacin en su lugar de trabajo, se optimiza empleandouncluster GNU/Linux donde se compartan el mximo de recursos. Elinconveniente de estesistema es que debe haber una personaresponsable de todo el sistema. Ya que dicha personatienehabitualmente otras obligaciones, adems de las informticas, espreciso minimizar sus tareasinformticas asociadas al mantenimientodel cluster. De nuevo consideramos que un clusterGNU/Linux donde secompartan el mximo de recursos reduce notablemente su trabajo.Despus de estos aos trabajando con un cluster GNU/Linux creemosque es importanteimpartir curso y crear documentacin que enseen adesenvolverse en este entorno. Consideramosque dichos cursos ydicha documentacin pueden ser tiles para muchas personas y ademsreduciren el futuro nuestras tareas como administradores, ya quemuchos de nuestros compaeros podrnresolver sus problemas por smismos.0.3. ObjetivosEn este curso hay dos objetivos:Conocer las tareas bsicas que debe realizar un administrador desistemas GNU/Linux engeneral y de sistemas Debian enparticular.Aprender a construir un cluster GNU/Linux donde se compartan elmximo de recursosposibles.En relacin al primer objetivo es imposible estudiar en detallecada una de las diferentes tareasque debe realizar el superusuarioya que pueden abordarse de muy diversas formas. En este manualseexplicar la forma en la que nosotros solemos abordar dichas tareasy se darn referencias paraque el lector pueda optar por otra formade trabajar que se adapte mejor a sus necesidades.Al cubrir el segundo objetivo mostraremos cmo se construye uncluster GNU/Linux muyparticular: uno anlogo al CLF o al CLGEM.Aunque el diseo del cluster puede ser muchoms eficiente, pensamosque el lector tendr con este manual las ideas bsicas paraconstruirun cluster, con unos requerimientos mnimos, que pueden irsiendo ampliados hasta adaptarseperfectamente a las necesidades delgrupo de usuarios que trabajar con l.Debe quedar claro que en este manual no daremos una descripcindetallada de los diferentesdemonios y servicios que usaremos, msbien proporcionaremos una forma particular de usar-los, apoyndonossobre todo en los ficheros de configuracin que se emplean en el CLFo en elCLGEM.
  • 8 Curso de Administracin GNU/Linux
  • Parte IAdministracin local de GNU/Linux9
  • Captulo 1Administracin local del sistema1.1. IntroduccinEl administrador de un sistema GNU/Linux debecuidar del buen funcionamiento del sistemadesde su arranque, controlando la correcta iniciacin de todoslos dispositivos necesarios y que losdiferentes grupos de usuariospuedan realizar con normalidad (y seguridad) sus tareas. Enconcretoesto implica saber qu servicios son necesarios al iniciarel sistema y la forma en que se lleva acabo el arranque delmismo.Una vez con el sistema en marcha es necesario saber comocontrolar los diferentes dispo-sitivos, gestionar memoria ysistemas de ficheros y, finalmente, monitorizar los procesos queseestn corriendo en sistema. Adems, ha de tenerse una idea de comoreaccionar ante los posiblesproblemas que se vayan planteando. Enrelacin con esto ltimo es muy til saber dnde y cmoorganiza lainformacin el sistema, en los llamados logs, pues nos esto nospermite reconstruir loocurrido antes de un problema y nos orientaacerca de la naturaleza del mismo.1.2. Arranque del sistemaEn esta seccin examinaremos brevemente el proceso de arranque deun sistema estndar desdeque lo encendemos hasta que podemos hacerlogin en el mismo. Esto nos permitir entender laforma en que searrancan los diferentes servicios en los llamados niveles deejecucin (o runlevels),cmo pasar de un nivel a otro y cmoconfigurar estos niveles.1.2.1. Antes de Linux: El cargadorAl arrancar un ordenador lo primero que este hace es unautochequeo (power on self test)comprobando que todo est en orden yse puede proceder al arranque del que se hace responsableunprograma llamado el bootstrap loader1. Este programa se encuentraen la ROM BIOS delordenador y su propsito es buscar un sector dearranque.Se llama sector de arranque al primer sector de un disco (enrealidad de un sistema de fi-cheros, aunque tambin puede arrancarseun ordenador por red) y en este sector de arranque elordenadorencuentra un pequeo programa que hace posible cargar el sistemaoperativo.En la BIOS del ordenador (para ver cmo se accede a la misma hayque prestar atencin almensaje inicial que proporciona el sistemadurante el autochequeo) hay una lista de los lugares1A veces se traduce como programa calzador aunque la definicinen ingls de bootstrap es:bootstrap: (n) a strap that is looped andsewn to the top of a boot for pulling it on.11
  • 12donde el ordenador busca un sector de arranque y el orden en elque se lleva a cabo esta bsqueda.Una vez encontrado un sector dearranque se ejecuta el programa que se encuentra en l que seencargade cargar el sistema operativo, pudiendo ser posible escoger entrevarias posibilidades. Enun sistema Debian existen dos alternativasprincipales a la hora de escoger este programa, -.-/ y0123.El programa -.-/El programa -.-/ (acrnimo de -.nux -/ader) permite configurar elarranque de un sistemaGNU/Linux. Se ejecuta en dos etapas, lasegunda de ellas nos proporciona un prompt, que pode-mos configurarpara que sea de naturaleza grfica o alfanumrica, donde se nospermite escogerentre los diferentes sistemas operativos instaladosen nuestro ordenador. Tambin podemos si fueranecesario pasarargumentos al kernel en el arranque del sistema.Existe una informacin exhaustiva acerca de -.-/ en las pginas456 y, por ejemplo, en elLILO User Manual, contenida dentro delpaquete2.La primera vez que instalamos nuestro sistema se instala y seejecuta -.-/ de forma queinstala el cargador del sistema operativoen el sector de arranque del disco duro o MBR (MasterBoot Record).Tambin puede instalarse en el sector de arranque de alguna de lasparticionesque hayamos realizado. Al instalarse almacena lainformacin acerca de los diferentes sistemasoperativos que sepueden ejecutar. Cada vez que hacemos algn cambio dentro de laconfiguracinde arranque debemos de volver a ejecutar -.-/ comosuperusuario para que dicho cambio quedereflejado en elcorrespondiente sector de arranque. La configuracin de -.-/ seencuentra en elfichero 789 :7-.-/ ;:/[email protected]A BBCDEFGHEIFJ= >K@LAJMK= >M @NBBCDEFGHEIFJK= >O@PBQRJPC= >[email protected]TU VCJLLDEA BBCEA BBC WA= >X@FGLJYDKZ= >[@Q JRDEA BBCEQ JR= >\@H]JDUBNQ JL= >^@RNBQRCCTQ GB_CD ?ZZ= `GNUGLKWOWK[TQ J]GDEA BBCEHQ LTU_a bKWOWK[LJAGLDKWOWK[TU TCNFDEA BBCETU TCNF bKWOWK[WTQ ]NGJF bBULYJRRGUFD cIFPDTFG bVPVTc= `GNUGLKWOWK[2En Debian puede encontrarse en E_ VNEVIJNGEFBPELTLBEdJU_ JLWCeC W]a
  • 13fg hijklm nnolpg qfrst uv wx wvvqhmjqkv wx wvvfr foyzklmnnolfr foyz wfg i uv wx wvvyjhz unr q{| }hrzyh~jfg hijkl}hrzyh~jlm nnolpg qfrstqhmjqkg hrzyh~jynnoklzjplzhyjhz unr q{nofnrhqyjoyfojzhqfhk|frzntjnojyklzjplzhqhmjqkfrzn uEste fichero configura un sistema que Debian que arranca con dosposibles kernels, dados en laopcin y adems indica que puedearrancar una particin con la distribucin Mandrakeo tambin enWindows XP (TM). Al indicar una imagen (kernel) las opciones msimportantesson:: Indica la etiqueta que identifica a esa imagen en el prompt.:Si la imagen se encuentra en una particin diferente a la particinroot por defecto.: Fichero usado por el kernel al arrancar.Adems de estas opciones que afectan a cada imagen las opcionesgenerales indican lo siguiente:1. Especifica desde qu dispositivo se arrancar el sistema2. Opcin relacionada con la forma que tiene de acceder a unaunidad de fichero quean no est montada. Desde 1998 es la opcinestndar y permite superar la limitacinexistente en sistemas msantiguos que forzaba a que la informacin de arranque del sistemaseencontrara en los primeros 1024 cilindros del disco.3. Indica qu dispositivo se montar como root ().4. Permite leerde forma ms eficiente el sector de arranque. Esta opcin estespecialmen-te indicada si se arranca desde un floppy o si se observa que elsistema tarda un tiempoinusualmente largo en cargar el kernel.5. Fichero que se instala como sector de arranque. La opcin pordefecto es .6. Nmero de dcimas de segundo que el sistema espera antes dearrancar la imagen por de-fecto.7. Localizacin del archivo map que contiene los kernels con losque es posible arrancar y sulocalizacin en el disco.8. Modo de texto VGA en el que se arranca el ordenador.9. La opcin muestra la informacin acerca de los kernelsdisponibles y espera dadecisin del usuario durante un tiempo fijadoen la opcin
  • 14El programa GRUBEl nombre , acrnimo de and nified ootloader, corresponde al quehoy por hoy esprobablemente el mejor cargador de sistemas(bootloader) disponible y que, casualmente, entradentro delsoftware ofrecido por GNU3.La aplicacin es independiente del sistema o sistemas operativosinstalados en el ordena-dor. Podemos considerar a GRUB como unminsculo sistema operativo en s mismo. El propsitode este mini s.o.es reconocer sistemas de ficheros y ficheros que sean imgenes dearranque delsistema, y trabajar con ellos. Para esto ltimo nosproporciona entornos tanto de men como deconsola. En particulareste ltimo entorno es particularmente til y potente ya que, porejemplo,cuenta con un historial de comandos y algunascaractersticas que hacen que aquellos que estnacostumbrados atrabajar con bash se sientan a sus anchas con l.En concreto demuestra todo su potencial cuando se instala ensistemas que cuentancon mltiples sistemas operativos y modos dearranque, propios de aquellos usuarios que gustande probarsimultneamente diferentes distribuciones GNU/Linux y que a la vezconservan otrossistemas operativos en su ordenador. Incluso sisigue siendo el cargador que utilicemos pordefecto, es interesantecontar con un floppy en el que hayamos instalado y que nospermitarealizar tareas de rescate del sistema en caso de problemas.A continuacin supondremos que elprograma est instalado en elordenador y describiremos como instalarlo en el MBR de unfloppy yde nuestro disco duro.En Debian forma parte de la distribucin estndar y si noestuviera instalado en el sistemaes muy simple aadirlo usando lasherramientas para la gestin de paquetes de Debian.En principio reconoce multitud de sistemas de ficheros, pero alser lo ms frecuentevamos a instalarlo en un floppy con un sistemade ficheros FAT. De paso eso nos va a permitirpresentar algunasherramientas importantes.Lo primero insertar un en la disquetera, le damos formato FAT ycreamos el sistemade ficheros:Por cierto, esto destruye toda la informacin que hubiera en elfloppy. Esperemos que no seademasiado tarde… Ahora hemos decopiar algunos ficheros al diskette, as que lo montamos parapoderacceder a l y copiamos los ficheros que necesita GRUB parafuncionar:Aunque lo hayamos desmontado no sacaremos el floppy pues an nosqueda el paso msimportante, que es instalar el cargador de en elMBR del disco. Por cierto, donde estn losficheros de depende de laversin y la distribucin que estemos usando, otras posibilidadesa ladada en el texto son los directorios o .A continuacin ejecutamos elcomando con lo que entramos en un emulador del intrpretede comandosde y ejecutamos3La versin que incorpora en la actualidad Debian Sarge es GRUBLegacy, mientras que est en desarrollo la nuevaversin GRUB2. Vasela pgina web
  • 15Con esto hemos completado la instalacin de en el floppy ypodemos arrancar el sistemacon el mismo.Supongamos que tenemos un sistema simple, que puede arrancartanto en Windows Me, insta-lado en , como en GNU/Linux con unKernel 2.4.x siendo /dev/hda2 el dispositivo montadoen la particinraz (). Al arrancar con el diskette que hemos preparadoanteriormente obtenemosun prompt de desde el que podemosinteraccionar con el sistema. Con el comandoobtenemos una lista de los comandos de los que disponemos.Veamos primero como arrancar Windows TM, para lo cual damos lasiguiente secuencia decomandos:Y tendremos enseguida en marcha el familiar (para algunos)proceso de arranque de un sistemaWindows. No vamos a explicar endetalle los comandos de grub empleados, aunque si convienedar unabreve explicacin de la convencin que emplea para etiquetar lasparticiones, ya quees diferente de la que emplea Linux ( ). Laforma de referirse en a una particin es como donde indicacomenzando por cero la unidad de disco de quese trate (0 si es laprimera como en nuestro ejemplo) e indica tambin comenzando porcero, queparticin es la que queremos utilizar. La primera ennuestro ejemplo. El porqu de este cambio esdebido a que no slo seutiliza con Linux sino con otros muchos sistemas operativos,cadauno con una convencin diferente a la hora de designar discos yparticiones. Es por ello que se hadefinido un esquema propio de ,independiente de todo sistema operativo.Para arrancar el kernel Linux en haremos, en el caso del sistemaque tenemoscomo ejemplo:! » ##»#$% &» # $Et voil! Tenemos al ordenador correctamente arrancado enDebian/Linux. El comando ‘( ‘)*es necesario siempre que el kernelnecesite de una imagen initrd para su arranque. Si no lopropor-cionamos podemos terminar en un simptico +*( ,( ‘-.Despus de arrancar varias veces nuestro sistema de este modo esposible que nos sinta-mos un poco cansados de tanta orden yqueramos configurar un men que nos permita ele-gir como arrancar.Nada ms fcil, definimos un fichero llamado .(/ 0) que copiamosa1234*/22):5 65 75 7
  • 168 9:;; [email protected] ?AB [email protected] BD?FG HI:;; J8 [email protected] < @@?KDL M KDNO?K?;B PQR SM KDNO[email protected]@? TAEU VJW>BFDB; SXY ;KDNZ [email protected]@?[SEBXSAE:\ [email protected]KD K?FE[SKD K?FE HKY L8 [email protected] < @@?KDL ] [email protected]^ C _B?K?;B ] [email protected]^ C _B < @@? Y BDN[email protected]@[email protected] TAEU VU WY :>B:=?KXB=A:KD;@:EBF ` J8 [email protected] KD C?:;;KDL PaRb [email protected] ?AB A:FE EKC>?K?;B cD C?:;; PaRb [email protected] ?AB A:FE EKC>[email protected]@? TAEU VJWCB?Nd TAEU W8 eA:DLB ?AB [email protected];@FC H?K?;B eA:DLB ?AB [email protected];@FC[email protected];@F ;KLA? fLFBBD S fGB;;@^S< ;NBComo podemos ver al arrancar de nuevo, una vez que el fichero hasido copiado al diskette,tenemos ahora un men en el que podemosescoger entre arrancar el sistema en cualquiera delas dos opciones,instalar ghij en el MBR del disco duro o cambiar el esquema decolores dela pantalla de presentacin de ghij. Desde el men podemosaadir parmetros al kernel en elmomento del arranque pulsando latecla klm tras seleccionar la opcin a la que queremos aadiralgnparmetro y tambin podemos trabajar en el modo intrprete de comandospulsando la teclaknm.Para terminar veremos como instalar ghij en el MBR desde elintrprete de comandos unavez que nos hayamos acostumbrado a ghijusando el floppy. Con el paso intermedio por el floppytratamos deevitar algn efecto colateral no deseado en caso de que nosequivoquemos, una pos-tura conservadora que es adecuado seguircuando se trabaje como superusuario. De todos modoses buena ideaconservar el diskette con ghij ya que puede ser de gran ayuda encaso de que nosencontremos con un sistema con el MBR daado o conalgn problema en opoq. La instalacin deghij en el MBR es unaoperacin muy parecida a la que hemos llevado a cabo para instalarghijen el diskette. Por ejemplo podemos crear un directoriorsqqtruvwsr en cualquier particin decualquiera de nuestros discos,aunque lgicamente es preferible hacerlo en aquella particinqueutilicemos ms a menudo y sea ms estable, vamos, que no sea en laque experimentamos ins-talando diferentes sistemas… Una vez hechoesto se copian todos los archivos que se encuentrenenropsruvwsrpxyz{| n o en el directorio que corresponda en tudistribucin particular al direc-torio rsqqtruvwsr comprobandocuidadosamente que }l~w ot tambin est entre los ficherosaadidos. Acontinucin se entra en el modo de comandos de ghij y se ejecutanlos siguientescomandos:LFN< [email protected]@? TAEU VJWLFN< CB?Nd TAEU WLFN< N K?Terminado. Ya tienes un sistema con ghij en el MBR que tepermitir iniciar tu ordenadorcon toda comodidad en el sistemaoperativo que ms te interese.
  • 171.2.2. El procesoUna vez leido el sector de arranque el siguiente paso para elsistema consiste en iniciar losdiferentes servicios del ordenador,dependiendo del nivel en el que el ordenador est arrancando.Estosniveles de arranque, llamados runlevels, suelen estar configuradosen sistemas UNIX usandodos alternativas diferentes: BSD o SystemV.En el caso de Debian se utiliza el sistema SystemV,que explicaremosbrevemente a continuacin, pero otros UNIX, y alguna distribucinGNU/Linux(como Slackware, por ejemplo) utilizan el modelo BSD.En el caso del esquema SystemV, el primer proceso que arranca esel programa ,que utiliza un fichero de configuracin llamado paradecidir el modo de ejecucinen el que va a entrar el sistema. Eneste fichero de configuracin se define el runlevel por defectoenarranque, y una serie de servicios de terminal para atender laentrada del usuario. Cualquier pro-grama que coloquemos en lugar dese ejecutara cuando el kernel hubiera terminadode cargarse.Los servicios, como habamos comentado, se inician despus dehaberse cargado el kernel delsistema e iniciarse el primer proceso,denominado init. Este proceso es el responsable de ejecutaryactivar el resto del sistema. Como lleva a cabo esta tarea init seconfigura, como dijimos, desdeel fichero . En la figura 1.1 vemosun fichero tpico del que describiremossomeramente su contenido.La sintaxis del fichero es bastante simple. Las lneas quecomienzan por # son comenta-rios, el resto de las lneas tienen laformadonde es una secuencia de uno a cuatro caracteres que define laentrada, es el o losrunlevels a los que afecta la lnea, describeque accin se va a llevar a cabo y esel proceso que se va aejecutar.En la pgina puede encontrarse una descripcin detallada de estefichero, ex-plicando, por ejemplo, las diferentes opciones posiblesen el campo . As hace queel sistema ejecute el proceso al entrar enel runlevel y espere a que este termine para proseguir, o, que implica que una vez terminado el proceso el sistema vuelvaa lanzarlo.Como puede verse en la figura 1.1 lo primero que hace elproceso , tras definir el nivelpor defecto de ejecucin (el dos en nuestro caso) es correr unscript inicial en bash que en unsistema Debian es . Este script seencarga de fijar en una primera definicinalgunas variables delsistema, chequear y montar los sistemas de ficheros definidos,fijar la horadel reloj, hacer accesible es espacio de intercambio(swap space), definir el nombre del ordenador(hostname) etc.A continuacin se encarga de la gestin de los niveles de ejecucin(o runlevels), arran-cando el sistema en el nivel que proceda. Unnivel de ejecucin conlleva que se inicien una serie deprogramas yservicios, orientados a un determinado funcionamiento. En la tabla1.1 se encuentrala descripcin de los niveles de acuerdo con elestndar LSB 1.34 y su traduccin a Debian.La ltima tarea que realiza es iniciar algunos procesos , con locual se obtienenterminales virtuales donde los usuarios puedenhacer login y entrar en el sistema. En Debian seinician de estemodo seis consolas a las que se puede acceder mediante lacombinacin de teclasdonde =1, … , 6.En la seccin dedicada a los ficheros de logdel sistema se detalla como obtener la informacinque se produce durante el arranque del sistema.
  • 18Figura 1.1: Ejemplo de fichero de configuracin .
  • 19Runlevel LSB 1.3 Descripcin Debian0 Parada Finaliza servicios yprogramasactivos, as como desmonta fi-lesystems activos y para laCPU.Parada1 Monousuario Finaliza la mayora de servicios.Permite accederslo al root enconsola para mantenimiento ycorreccin de errores.Monousuario2 Multiusuario sin red No se inicia el sistema de red.Multiusuario normal3 Multiusuario normal Multiusuario normalMultiusuario normal4 Reservado para uso local Tpicamente es igualque el 3. Multiusuario normal5 Multiusuario entorno grficoMultiusuario en xdm o equiva-lente.Multiusuario normal6 Reinicio Para todos los programas y ser-vicios, y reinicia elsistema.ReinicioCuadro 1.1: Niveles de arranque en Debian GNU/Linux.El nivel en el que arranca Debian por defecto es el nivel dos,aunque como puede verse en latabla 1.1 Debian parte de que losniveles multiusuario sean todos equivalentes, permitiendo queeladministrador del sistema defina las diferencias que creapertinentes.As pues, en Debian el X Windows System no se gestionadirectamente desde ,sino que existe un gestor independiente (porejemplo gdm o kdm) como si fuera un servicio msdel runlevel 2.Segn el runlevel escogido, el sistema al arrancar consulta losficheros contenidos en el direc-torio donde X es el numero asociadoal runlevel. En dicho directorio se encuentrauna lista de serviciosque hay que activar o parar en caso de que arranquemos oabandonemos elrunlevel. La parada o arranque se decide en base auna serie de scripts (generalmente son enlacesa los scripts en )que controlan cada servicio.Un servicio es una funcionalidad proporcionada por el ordenador.La activacin o parada deservicios se realiza mediante la utilizacinde scripts. Como veremos en el captulo 2, la mayo-ra de serviciosestndar suelen tener su correpondiente fichero o directorio deconfiguracin enel directorio y se controlan mediante los scriptspresentes en el directorio .En este directorio suelen aparecerscripts con nombre similar al servicio al que van destinados,yaceptan parmetros de activacin o parada. Estos servicios no slo searrancan al iniciar el ordena-dor y se detienen al apagarlo, sinoque el superusuario puede controlarlos en cualquier momento.Asarranca el servicio, para elservicio y primero para y despusarranca el servicio. Si, porejemplo, hemos de reiniciar el demoniode impresin haremos como superusuarioCada script posee un nombre relacionado con el servicio, una S oK inicial que indica si es elscript para iniciar (S) o matar (K) elservicio, y un nmero que refleja el orden en que se ejecutarnlosservicios.4Ver, por ejemplo, ! » # $ % &’& ( &
  • 20Una serie de comandos de sistema son los que perminten manejarlos niveles de ejecucin,entre ellos cabe mencionar:)*+,-./0, permite parar (1* de halt) o reiniciar el sistema (12 dereboot). Puede darse tam-bin un intervalo de tiempo para hacerse, obien inmediatamente. Para estas tareas tambinexisten los comandos*34, y 256..,./344, permite enviar mensajes de advertencia a los usuarios delsistema. de este modo eladministrador puede anunciar a todos losusuarios que se va a parar la mquina en un deter-minado momento.Comandos como )*+,-./0 suele utilizarlo de forma automtica.78-.9, utilidad que permite averiguar el PID (Process ID) asociado aun proceso. Con 7 )obtenemos los listados de procesos, y siqueremos eliminar un servicio o proceso, mediante:844 necesitaremos su PID.+7-3,512 ; ?AC E1A @AB47C16FG6FG EEH I 3.06 84 50CC7C JKIL IKKMEKNEKN JO =KI @AB47CNtese la P mayscula al final de la cadena de permisos. Indicaque se ha activado el sticky bity que el directorio no es accesiblea usuarios fuera del grupo del propietario, o sea, que la sealdelsticky bit no encubre una seal de ejecucin, Q asociada al grupo*ther. Si al final de los permisosse encuentra una R minsculaentonces indica que se ha activado el sticky bit y que eldirectorio esaccesible a todos los usuarios. Esta es la nicadiferencia entre la marca R y la marca P. Este bitslo afecta aldirectorio en el que se ha activado, y no a sus subdirectorios.Un posible listado del contenido del directorio planes es elsiguiente3 86 83. =>[email protected]?AC EBA303BA M16FG6FG EEH I 3.06 84 50CC7C JKIL IKKMEKNEKN JO =JI S16FG6 EG6 EG L 3.06 84 50CC7C JKIL IKKMEKNEKN JO =KN SSE6F E6 EE6 EE J TB41BAU 50CC7C JIM IKKMEKNEKN JO =JN @AB4VB48AA0E6F E6 EE6 EE J 3.06 84 50CC7C JJL IKKMEKNEKN JO =JK@AB4VB3BWX7E6F E6 EE6 EE J 5 8A50 50CC7C IIY IKKMEKNEKN JO =JJ@AB4VABT0?Como podemos ver diferentes miembros del grupo )*++,+ han aadidoarchivos a este di-rectorio. Supongamos que al usuario gandalf nole parece adecuada la informacin en el archivo9:;
  • 452.3.5. Permisos cd ef y cg efEn esta seccin tratamos de dospermisos que deben de manejarse con precaucin, pues puedenser una importante brecha en la seguridad de los sistemas si nose manejan con cuidado: el permisohi jk (het iser jkentity y elpermiso hljk (het lroup jkentity.Cuando se activa el bit hi jk de un fichero ejecutable al corrercualquier usuario dicho ficherolo hace no con sus privilegios, sinocon los privilegios asociados al usuario propietario del fiche-roejecutable. Del mismo modo si se activa el bit hl jk de un programaeste se ejecuta con losprivilegios asociados al grupo propietariodel fichero y no con los del grupo del usuario que loejecuta.Un ejemplo para aclarar este punto. Supongamos que el usuariothorin compila un programa Cllamado m noopoqr que tiene el mismoefecto que ejecutar el comando st uvwtxuyvwsnrupoqrxzupoqr{oq|w,borrando el fichero poqr{oq|w. Supongamos quethorin permite a los miembros de su grupo eje-cutar este programa yadems lo hace hi jk con el comando }vt w~ z um noopoqr:Si ahora el usuario gandalf trata de borrar el fichero poqr{oq|wy para ello utiliza el programam noopoqrz finalmente tiene xito, apesar del sticky bit, y ello es porque el programa corre conlosprivilegios de thorin, su propietario, y l si puede borrar elfichero:Si queremos activar el bit hi jk a un programa resulta obvio quedicho programa debe contarcon permisos de ejecucin para el grupo opara todos los usuarios.El permiso especial hl jk tiene un efecto similar pero con losgrupos. Si se activa el bit de unejecutable con el comando }vt w~|z fichero y el fichero puede ser ejecutado por usuariosnopertenecientes al grupo (w), entonces al ejecutarse el programacorre con la GID asociada a supropietario y no al usuario que loejecuta.En ambos casos, hi jk y hl jk, este permiso slo tiene efectosobre programas binarios (com-pilados), no sobre scripts.IMPORTANTE: Por razones obvias los permisos hi jk y hljk puedencomprometer de for-ma innecesaria la seguridad de un sistema si seactivan en programas pertenecientes a root o acualquier usuario conprivilegios de administrador. En estos casos deben usarse concuidado y essiempre recomendable utilizar algunas de lasherramientas para delegar la autoridad del superu-suario citadas enla prxima seccin.2.3.6. Permisos numricosHasta ahora para especificar lospermisos asignados a un fichero hemos utilizado las letrasq, w, | y (all, other, group y user) para representar a losdiferentes conjuntos de usuarios y s, y (read, write y execute)combinndolas con los signos y . Existe una alternativa aestaconvencin que permite especificar de forma numrica los permisosy que aunque resulta algodifcil de recordar en un principio resultams rpida.
  • 46Especificar el modo de un archivo utilizando el mtodo numricoimplica dar un nmero decuatro dgitos que lleva toda la informacinnecesaria. El primer dgito se refiere a los permisosespeciales, elsegundo concierne al usuario, el tercero al grupo y el ltimo alresto del mundo. Porejemplo 0740 implica ningn permiso especialactivado, para el usuario, para el grupo y para otros.La traduccin de nmeros a permisos se lleva a cabo asignando unvalor al permiso de eje-cucin, al de escritura y al de lectura.Para aadir simultneamente varios permisos sumamosloscorrespondientes valores. As pues permiso supone .En el caso de los archivos especiales corresponde a activar ,activa y el stickybit.Por ejemplo hace que testfile sea un programa con permisos parael usuario, para el grupo y para el resto de usuarios.La aplicacin nos permite determinar los permisos con los que secrean los archivos pordefecto. Para saber el valor que tenemosdefinido basta con correr sin argumento alguno.Si thorin ejecuta elcomando obtieneEsto implica segn lo que acabamos de ver ningn permiso especial,ningn permiso para elusuario y permiso de escritura para el grupo yel resto de usuarios. No parece demasiado lgico…La explicacin deesto radica en que no trabaja directamente con los modos. Elresultadoes necesario restarlo a para obtener el modo de los ficheros quese creen. Por tanto, un modo por defecto bastante ms lgico. Un ltimo apunte a teneren cuenta:el permiso de ejecucin slo se activa de forma automticaen el caso de directorios. Para cambiarlos permisos por defectobasta con ejecutar con el valor numrico apropiado, teniendoencuenta lo que acabamos de decir acerca de restar a . Para queeste nuevo valor permanezcapara cualquiier sesin se puede incluirla correspondiente lnea en el fichero o.2.4. yUn problema que suele plantearse al administrar nodos con UNIX,en especial cuando se tratade un cluster con un nmero elevado deusuarios es la gran disparidad de privilegios existente entreelsuperusuario (root) y el resto de usuarios. Por un lado tenemos alsuperusuario con TODOSlos permisos habidos y por haber, con laposibilidad de manejar y alterar el sistema a todos losniveles. Porotra parte los usuario de a pie tienen un nmero muy restringido depermisos yuna posibilidad muy limitada de poder manejar el sistema.Esto hace que tengamos en muchasocasiones que matar moscas acaonazos utilizando la identidad de superusuario para tratarconsituaciones rutinarias que otro usuario podra resolver. Y elproblema ms grave que estoacarrea -aparte del agotamiento deladministrador del sistema- es que abre la posibilidad de quelacontrasea del superusuario sea conocida por un crculo demasiadoamplio de usuarios.Una primera solucin al problema descrito es promover en elsistema una poltica adecuadade permisos, lo que combinado con lasherramientas que presentamos a continuacin, en especial, permitesolventar, al menos en parte, este problema.El comando username nos permite transformarnos temporalmente enotro usuario, adqui-riendo su identidad. Por ejemplo, si el usuariothorin quiere convertirse durante una sesin en elusuario bomburhar
  • 47Al ejecutar el comando es necesario proporcionar la contraseadel usuario al que se va aacceder y tras ello tenemos los mismospermisos que dicho usuario. Si el superusuario es el queejecuta elcomando no necesita introducir contrasea alguna. Si aade un guin alcomando ( username) entonces adems de entrar como el usuario seejecutan sus ficheros de configuracin,esto es, se inicia una loginshell. Si al comando no se le da un nombre de usuario entoncessesupone que se desea adquirir la identidad del superusuario,siendo necesario introducir el passwdde root.Una forma simple de limitar la actividad como superusuario es atravs de la opcin ,que seguida de un comando hace que se ejecuteese comando con la nueva identidad regresandoel usuarioinmediatamente a la inicial, por ejemplo si thorin necesitarealizar una bsqueda en unode los ficheros de log sin abrir unasesin de root puede hacerCon la opcin se consigue solventar en parte el problema delimitar al mnimo el accesocomo superusuario al sistema, aunquesigue siendo necesario introducir la contrasea del superu-suario,una informacin que debera ser muy restringida. Un mtodo ms adecuadode solventarel problema de acceder a aplicaciones pertenecientes aroot es mediante el uso del comando ,cuyo nombre proviene de lacontraccin peruser . Esta aplicacin permite a usuarios norma-les laejecucin de aplicaciones del superusuario con la ventaja de que noes necesario que losusuarios conozcan la contrasea del superusuarioy adems lleva un registro de las actividades delos usuarios a losque se ha dado permiso para ejecutar las aplicaciones.En todas las distribuciones Debian est presente este comando, sino estuviera instalado bastacon ejecutar como superusuario. Laconfiguracin de se lleva acabo en el fichero aunque este archivo nose edite directamente sino a travs delcomando . En este archivo sedefinen las aplicaciones que se van a abrir a otros usuariosycuales van a ser estos usuarios.Pongamos un ejemplo algo artificial, en el sentido que es muysimple, pero nos puede dar unaidea de como funciona . Si, porejemplo, el superusuario desea permitir a gandalf borrar elarchivoperteneciente a bilbo puede aadir al archivo la lneaUna vez salvada la nueva versin de entonces el usuario gandalfpuede ejecutarTras los cual se le pide que introduzca su password (atencin, supropio password y no el deroot) y cuando lo proporciona el comandoes ejecutado y el fichero finalmente borrado. En laspginas ! de , ypuede encontrarse una informacin exhaustiva acercade estecomando.
  • 482.5. Bibliografa1. UNIX for the impatient, Paul W. Abrahams andBruce A. Larson, Ed. Addison Wesley(1992).2. Filesystem Hierarchy Standard, Daniel Quinlan, DebianPolicy Manual (2000).3. Linux Filesystem Security, Parts I and II,Mick Bauer, Linux Journal issues 126 and 127SSC Publications (2004).4. Gua de referencia DEBIAN3, Osamu Aoki(Trad. al espaol coordinada por Walter O.Echarri) (2005).5. Manual de Seguridad de DEBIAN4, JavierFernndez-Sanguino Pea (2004).3http://www.debian.org/doc/manuals/debian-reference4http://www.debian.org
  • Captulo 3Configuracin de perifricosUna vez que el sistema est instalado en el disco duro y laspartes esenciales del hardware delsistema han sido reconocidassatisfactoriamente: teclado y ratn, tarjeta de vdeo, tarjeta dered,modem, lectores y grabadores de CD/DVD, an es preciso quefuncionen otros perifricos que enla mayor parte de los casosresultan imprescindibles. En particular la mayor parte de losusuariosprecisa de una impresora, un scaner y algn dispositivo dememoria USB.Aunque GNU/Linux tiene soporte para la mayor parte del hardwareque hay en el mercado,no debe sorprendernos que haya algndispositivo no soportado. En lo que sigue ensearemos aconfiguraruna impresora, un scaner y un dispositivo USB, suponiendo que todoel hardware estsoportado GNU/Linux. Si ste no fuera el caso, no hayque desesperarse, ya que hay herramientas,que no son las que seexplicarn a continuacin, con las que se puede llevar a cabo laconfiguracin.3.1. Impresoras3.1.1. CUPSTradicionalmente se han utilizado en Unix dos sistemas deimpresin: Berkeley Line PrinterDaemon (LPD) y el AT&T LinePrinter, creados en los aos 70 para usar las impresorasmatri-ciales de la poca. Ms tarde, con la evolucin de estosperifricos incorporando las tecnologaslser o de chorro de tinta,estos sistemas fueron adaptndose e incluyendo controladores queper-mitieran su uso en este tipo de impresoras, aunque sin mejorarsustancialmente sus capacidadesoriginales. A finales de los aos 90surgieron diferentes iniciativas orientadas a la creacin deunsistema estndar de impresin, establecindose las especificacionesdel protocolo IPP (InternetPrinting Protocol) como una extensin delHTTP (HyperText Transfer Protocol) -en el que se basala navegacinpor Internet- con el propsito de proporcionar servicios de impresinremota. CUPS(Common UNIX Printing System) es software libre,distribuido conforme a los trminos de laLicencia Pblica General(GPL) y basado en este protocolo IPP, apareciendo su primeraversinen octubre de 1999 con el objetivo de dotar de una solucinmoderna, en materia de impresin, alos sistemas tipo Unix.El sistema de impresin CUPS ha sido desarrollado por la empresacaliforniana Easy Soft-ware Products (http://www.easysw.com/) ytoda la informacin sobre el mismo puede encontrarseen la direccinde Internet: http://www.cups.org.49
  • 50El demonio de impresinAunque hayas instalado GNU/Linux en un ordenador aislado, sinconexin con ningn otro,debes saber que tienes funcionando unsistema de red. El ncleo est concebido con una estructuramodular,de modo que permite aadir o suprimir servicios individualmente sincomprometer laestabilidad del resto del sistema. La idea es muysencilla y, a la vez, muy efectiva.Los servicios se ofrecen con el modelo habitual de las redes, esdecir, basados en la filosofacliente servidor, de manera que lasaplicaciones demandan cualquier tipo de tarea al ncleo a travsde undeterminado puerto -podramos considerarlos como diferentes lugaresidentificados por uncdigo numrico a travs de los que el ncleoescucha las peticiones- y ste les responde con elserviciocorrespondiente. Los programas encargados de regular estos dilogosse conocen con elnombre de demonios.En el caso concreto de GNU/Linux, el demonio encargado deregular las peticiones de im-presin proporcionado por CUPS, escupsd (CUPS daemon), por lo tanto, necesitamos que seencuentreejecutndose para que la impresora pueda recibir nuestrasinstrucciones.Normalmente, el sistema est preparado para que este demonio seactive durante el arranquedel ordenador, por lo que es probable, notengamos que hacer nada en este sentido. No obstante,no est de msque aprendamos a parar y a iniciar este servicio, ya que elprocedimiento es similaral que debemos utilizar con cualquier otrodemonio del sistema.En primer lugar, vamos a comprobar si se est ejecutando.Accedemos al men de GnomeAplicaciones | Herramientas del sistema |Panel de control | Servicios. Por supuesto, se nospedir la clave deadministracin -la clave de root que fijamos durante la instalacin-y nos mos-trar una ventana con todos los servicios del sistema,junto a una casilla de verificacin que nosinformar de cules seencuentran en ejecucin. En este caso debemos fijarnos si seencuentramarcada la casilla correspondiente a cupsys. En caso de noser as, la marcaramos y pulsaramossobre el botn Aplicar.Otra forma de comprobar el estado de CUPS sera, abrir unaterminal y ejecutar la orden:»#$#%&'() *+, -./0 12 3() 4 56$1#(1276889 :+; < =< < => >,
  • 51Una impresora no es una impresoraEste epgrafe puede parecer una broma un tanto desconcertante,pero no es as. Simplementequeremos destacar que en GNU/Linux nodebemos confundir el concepto de impresora con elobjeto fsico, esdecir, con una impresora real, al menos, no tiene por qu seras.En la mayora de las ocasiones, cuando nos referimos a unaimpresora o cuando enviamosun trabajo a imprimir, en realidad,deberamos precisar que se trata de una cola de impresinconfiguradaconforme a unas caractersticas particulares establecidas por elusuario. Aclaremosesta situacin con un ejemplo.Supongamos, como es mi caso, que tenemos una impresora deinyeccin de tinta con calidadfotogrfica. Es este caso, deseamosconfigurarla correctamente, de modo que nos permita imprimirlasfotos e ilustraciones con unos resultados ciertamente vistosos.Sin embargo, qu ocurre cuando necesitamos imprimir una o variaspginas de texto puro?Pues, seguramente, la configuracin concalidades altas no mejorar en gran medida el aspecto denuestrostextos impresos, tan slo ocasionar un mayor gasto de tinta y, comoconsecuencia, undespilfarro que, aunque leve, no menosindeseable.La solucin pasa por definir distintas colas de impresin que elsistema asumir como impre-soras, aunque se trate, en realidad, delmismo dispositivo fsico. Podramos definir una impresora-asentendida con resoluciones altas, llamada foto, por ejemplo, paraenviar a ella los trabajos querequieran de una impresin de calidad.Otra, llamada normal, para imprimir documentos a color,pero sinunas exigencias de nitidez elevadas, por ejemplo, pginas deInternet.Finalmente, una tercera impresora, borrador, a la que enviaremoslos trabajos que slo con-tengan texto puro, configurada con unacalidad econmica. De esta forma, el sistema se comportacomo situvisemos tres impresoras distintas cuando, en realidad, se tratadel mismo dispositivoconfigurado adecuadamente para cada necesidad.Ni que decir tiene que esta caracterstica del sis-tema estotalmente opcional, quedando a criterio del usuario la utilizacinque hace de ella. Sinembargo, es conveniente aclarar que cuandodecimos configurar la impresora, vamos a configurarrealmente unacola de impresin.Configuracin de la impresora con el navegadorUna de las caractersticas de CUPS es la posibilidad de realizartodas las tareas de administra-cin de los servicios de impresindesde un navegador. Por lo tanto, elegiremos nuestronavegadorfavorito, Mozilla Navigator, Mozilla Firebird o Epiphany yescribiremos en la barra de direcciones:JKKL MNNOPQROJPSK MTU VO bien, el nombre del ordenador:JKKL MNNWPXMTU VEn cualquiera de los casos, como nos hemos asegurado que eldemonio cupsd est ejecutn-dose a la espera de recibir peticiones,accederemos al men principal de administracin.Pulsaremos sobre el enlace Manage Printers y, seguidamente,sobre Add Printers, el sistemanos solicitar el nombre de usuario(root) y la contrasea de administracin, e iniciar el asistenteparaaadir una nueva impresora al sistema.La primera pantalla nos pedir el nombre de la impresora -enrealidad, el nombre de la cola deimpresin que no puede contenerespacios en blanco, la localizacin y la descripcin. Estos dosl-timos campos son de tipo informativo, por lo tanto, podemosincluir los comentarios que describanla cola de impresin sin temora que interfieran en algn aspecto esencial de la configuracin.
  • 52A continuacin, debemos elegir el modo de conexin con laimpresora, seleccionando el dispo-sitivo adecuado. Si nuestraimpresora es de tipo USB, indicaremos USB Printer 1. Si seencuentraen el puerto paralelo, Parallel Port 1. Si se trata de unaimpresora de red, AppSocket/HP Direct, oel puerto correspondientesi no se trata de ninguno de los anteriores.Pulsando Continue debemos indicar a CUPS la marca del fabricantede nuestra impresora y,seguidamente, el modelo de la misma.Ahora es el momento de elegir los ajustes de impresin acordescon las caractersticas de lacola que estamos definiendo, porejemplo, si se trata de la impresora con calidad fotogrfica, esaqudonde debemos establecer los parmetros para que nuestras fotografasse impriman con lacalidad deseada.Una vez completado el proceso, regresaremos a una ventana deadministracin donde CUPSnos informar de las caractersticas quehemos definido para nuestra impresora y tendremos laoportunidad deimprimir una pgina de prueba.Establecer la impresora predeterminadaProbablemente nos haya parecido una buena idea definir distintascolas de impresin paraun mismo dispositivo. En ese caso, debemosindicarle al sistema cul de ellas utilizar comopredeterminadaimpresora por defecto, para ello, hemos de registrarnos comoadministrador yejecutar la orden:YZ[\] ^_ `\ _a]bcd`^]Zcdeac[donde nombre-impresora es el que corresponda a la cola deimpresin deseada que fijamosdurante la instalacin. Este nombre noes sensible a maysculas y minsculas. En concreto:fgdgY^_hi `jk lmno ehp[eeqac\ lca_ lrsa] drtc ^][Y\aeu YZ[\] ^_ `\ _ac][Yv wxEsta secuencia fijara la cola normal810 como impresorapredeterminada del sistema.Impresin desde la lnea de comandosEn estos momentos ya tenemos a GNU/Linux en condiciones decomunicarse con nuestraimpresora y atender nuestras peticiones eneste sentido. Ahora bien, cmo hemos de imprimir?Vamos a ver elejemplo ms sencillo de uso de las posibilidades de este sistema.Para ello, conla impresora conectada -y con algo de papel-, abrimosuna terminal y ejecutamos, uno a uno,cualquiera de los comandossiguientes:fgdgY^_hi `jk lmno Ye y YZcdzhde{ ^\ ^e _ac][Yv wx`j| }w ~ ^Yd }efgdgY^_hi `jk lmno YZ Zaczhd ^ {i{cdzhde{ ^\ ^e _ac][Yv wx`j }w ~ ^Yd }efgdgY^_hi `jk lmno YZ `\ ~a{av wx ^] [td_ Z_tEn el primer caso hemos pedido al sistema que nos muestre elcontenido (ls) del directorioen el que estamos situados -el smbolom, que representa nuestro directorio personal- yhemosredireccionado (|) la salida hacia la impresora (lp).Observaremos cmo la impresora empieza afuncionar y expulsa una hojacon el listado de archivos.
  • 53En el segundo caso, enviamos a la impresora (lp) un archivo(porquevi.txt) que se encuentrasituado en el directorio actual, siestuviese en otra ubicacin, deberamos expresar la ruta completadelarchivo. De la misma forma, obtendremos automticamente el documentoimpreso.Por ltimo, en el tercer caso, enviamos (lp), seleccionando (-d)como impresora de destino(foto810), el archivo (imagen.png) que seimprimir con los parmetros de calidad establecidos enlaconfiguracin de esta cola.Para imprimir desde cualquier aplicacin del sistema, bastarindicar la orden lp en la ven-tana del dilogo de impresin que dichaaplicacin nos facilite. De esta forma, enviaramos eldocumento a laimpresora establecida como predeterminada.Si deseamos utilizar otra diferente, lo indicaremos utilizandoel modificador -d seguido delnombre de cola.3.1.2. LprngEl sistema lprng es un spooler de impresin que proporciona losservicios esenciales de impre-sin para sistemas operativos de tipoUNIX. Aunque GNU/Linux no incluye este servicio (puedeinstalarse sise desea) consideramos muy conveniente comentar brevemente losrudimentos paraponerlo a funcionar ya que es un sistema que sigueusndose muy a menudo.El paquete debian que contiene este servicio es lprng y y loscomandos que tiene asociadosson:lpr -Pcola file: permite imprimir ficheros.lpq -Pcola: permitever el estado de una cola de impresin.lprm: permite borrar un trabajo de impresinlpc: programainteractivo para controlar las colas de impresin.Es muy conveniente instalar los paquetes debian ifhp ymagicfilter que corresponden a filtrosde impresin que permitirnconfigurar gran cantidad de impresoras: laser, chorro de tinta,etc.El fichero donde se almacena la informacin sobre las colas deimpresin es .Para ver algunas de sus opciones analizaremos unfichero printcap concreto:
  • 54Como puede verse, al definir las colas hay una primera lneadonde se define el nombre onombres de la cola de impresin. lp serefiere al dispositivo de impresin, que puede ser local oremoto.sd, af, lf y cd se refieren al directorio de spool y a diferentesficheros de registro. ifhp y if serefiere al filtro de impresin quese emplea, en uno de los casos se usa ifhp y en el otromagicfilter.Adems de este fichero deben crearse con los permisosadecuados los directorios de spool (losficheros de registro secrean automticamente).Si no se entiende muy bien el anterior proceso, pero an sequiere usar lprng puede emplearseel frontal grfico lprngtool (hayque instalar previamente el paquete lprngtool) con el cualpuedengenerarse de forma sencilla las distintas colas de impresindel printcap y tambin se crean deforma automtica los distintosdirectorios de spool.3.2. ScannerA diferencia de lo que ocurre con las impresoras, el hecho deque un scanner est o no sopor-tado por Guadalainex depende bastantedel tipo de conexin y del chip concreto que incorporeeldispositivo, incluso un mismo fabricante puede producir modeloscon distintos chips, algunos sinsoporte.En cualquier caso, para salir de dudas podemos mirar en la pginahttp://www.saneproject.org/,donde se centraliza todo lo relativo alfuncionamiento de los scanners bajo GNU/Linux, concre-tamente enhttp://www.sane-project.org/sane-supported-devices.html tenemos unarelacin com-pleta, clasificada por fabricantes, con el driver y lasindicaciones pertinentes para hacer funcionarnuestro scanner.Bsicamente, podramos decir que si se trata de un modelo con conexinSC-SI, seguro que estar soportado y no tendrs ningn problema parasu configuracin y uso enGNU/Linux, al igual que la mayora deescneres con conexin USB. Hoy en da, los fabrican-tes estncolaborando con el proyecto SANE, conscientes de las posibilidadesque representa estecreciente mercado de usuarios de sistemaslibres. Si ests pensando en adquirir un escner, ase-gratepreviamente que funcionar a pleno rendimiento en GNU/Linux,consultando en la pginareferenciada ms arriba.Qu es SANE?SANE son las siglas de Scanner Access Now Easy. Esuna interfaz de acceso estandarizado acualquier dispositivo de captura de imgenes, concebida con unascaractersticas muy avanzadasque la sitan por encima de otrosproyectos similares. Permite, por ejemplo, el acceso al escneratravs de una red, o la posibilidad de escanear desde la consola detexto -lo que simplifica laautomatizacin de tareas mediantescripts-, separando claramente la interfaz de usuario paralacaptura de imgenes de los controles del dispositivo. Se trata desoftware de dominio pblico ypuede distribuirse conforme a lostrminos de la Licencia GPL. GNU/Linux proporciona todosloselementos necesarios para hacer funcionar a cualquier escnersoportado sin mucho esfuerzo
  • 55en la configuracin; sin embargo, son varios los elementos delsistema que intervienen en el pro-ceso, incluso con algunasvariaciones dependiendo del tipo de conexin y del modelo deescnerque poseamos. Comprobando los dispositivos GNU/Linux, durantela instalacin, habr efectuadoun exhaustivo reconocimiento denuestro hardware y tendremos un ncleo preparado para gestio-narnuestra instalacin. No obstante, podemos comprobar si tenemoscorrectamente conectados yreconocidos los dispositivos, proceso quevamos a explicar a continuacin.Si nuestro escner es SCSI ejecutaremos:Esta orden nos mostrar toda la cadena de perifricos SCSIconectados a nuestro sistema, en estecaso, un scanner y unagrabadora de CDs. En el caso de tener un scanner USB, el comandosera:El sistema devolvera un bloque informativo similar a ste paracada dispositivo USB presente yreconocido.Hasta aqu, todo correcto, sin embargo, nuestro scanner estaraccesible para GNU/Linux enun fichero de dispositivo del directorioque, en el caso SCSI, ser:Es decir, el acceso ser mediante el dispositivo sg0 -scsigeneric, si se trata del primer elementode la cadena SCSI conectadaa nuestro equipo-, para ello, hemos pedido un listado (ls)detallado(-al) del fichero para asegurarnos que estaba presente.Observamos que el dispositivopertenece al root y slo l puedeusarlo. Para permitir a los usuarios usar el scanner, es unabuenaidea crear un grupo dueo del fichero -llamado, por ejemplo,scanner- e incluir en l a los usuariosque puedan usarlo, otorgndolelos niveles de acceso adecuados:
  • 56En el supuesto de conexin USB:Configurando SANETanto si nuestro scanner es USB o SCSI, GNU/Linux habr instaladoun kernel con el soporteadecuado para el control de todos losdispositivos de esta naturaleza que puedan estar presentes,peronecesitaremos unos retoques en la configuracin de SANE paraadaptarlo a nuestra insta-lacin personal. El primer fichero dondemiraremos ser en el del cargador dinmico de driversproporcionadospor SANE, es decir:!» # $%&’ ()*$ # # ) ) +*# (#»# #*»++,+-#-,++.)+/SANE carga, en tiempo de ejecucin, controladores -backends- paraentenderse con cadascanner de los fabricantes listados en elarchivo anterior. Observaremos que algunos estn pre-cedidos delsigno # y otros no. sta es una caracterstica habitual de muchostipos de ficheros enGNU/Linux y, por tanto, en GNU/Linux, paraindicar al sistema que no tenga en cuenta las lneasque comienzancon el smbolo #. En estas lneas se suelen indicar los comentariosque ayuden enfuturos desarrollos o, en este caso tambin, paraevitar trabajo superfluo al indicarle a SANE quecargue slo aquelloscontroladores susceptibles de hacerle funcionar a nuestro scanner.De modoque debemos incluir un # antes de las entradas que nocorrespondan con el nuestro y dejar sin #,
  • 57descomentada, la lnea que identifique a nuestro scanner. Veamosahora el contenido del directoriode configuracin de SANE:012134567 89: ;3? @2A [email protected]?B52 CD@BEBAF5 C1F5GD19H C1F5G I 41JFA2K9 C1F5G ?5BL?1B5 C1F5GBMGBGF16? C1F5GD33 C1F5G I 41JFA2K C1F5G ?L NH1 C1F5GBLL32 C1F5GDI 1 C1F5G I6?A2K C1F5G ?AOPP C1F5GBJA21 C1F5G 2L ?F5 C1F5G I6 ?A2KQLL C1F5G ABI BJB1K C1F5GBJA21Q2L36?OR6 C1F5G G6S4A?6 C1F5G I6 ?A2KQ6?E C1F5G A21F NC1F5GBT 4?4F5 C1F5G MLUFAF9 C1F5G 521 C1F5G A21F9 C1F5GEU C1F5G MAVR77 C1F5G 52A C1F5G A21F: C1F5G1B5F5V:P6 C1F5G ULHOPP C1F5G L 42 C1F5G A2?A C1F5G1B5F5 C1F5G UL C1F5G L36?A2K C1F5G 6IB7 N99P6 C1F5G1B5F5QLL C1F5G UL ?SH? C1F5G W 1BI C1F5G 6IB7 C1F5G1FF3?1B59 C1F5G 4EI C1F5G J 41FU C1F5G 6I B7QLL C1F5G1FF3?1B5 C1F5G 32F C1F5G ?XP:V C1F5G TO3 C1F5GD19NP C1F5G IB NHPX C1F5G ?12LAJ2 C1F5GD19OP C1F5G IBA?6?U 4AB C1F5G ?UBJL C1F5GAqu se encuentra la configuracin especfica de nuestro modelo descanner, y es donde de-bemos fijar los parmetros adecuados para queSANE pueda acceder sin problemas al dispositivo.No debemospreocuparnos, los ficheros ya estn preparados a falta,generalmente, de indicarle eltipo de conexin. Veamos, a modo deejemplo, el correspondiente a un scanner Epson:012134567 89: ;1BA @2A [email protected]?B52 CD@2L ?F5 C1F5GY2L?F5 C1F5GYYU2J2 BJ2 ?FI2 27BIL32? GFJ UFZ AF 1F5G 4M6J2 AU2 [\]^_EB1K25DYY]`]a ?1B552J ;Y?1?4 [\]^_YY\BJB3323 LFJA ?1B552J ;YL 4F P79bRYL 4F P7:bRYL 4F P7:c`YY d]c ?1B552J 8 F53e 25BE32 AU 4? 4G eF6 UBT2 B5 [\]^_ ?1B552JCaA 1F63DYFAU2JZ 4?2 E3F1K eF6J 5F5 8[\]^_ ?1B552J GJFI E245MYJ21FM5 4f2DCY g2L25D45M F5 eF6JD4?AJ 4E6A 4F5 h eF6 IBe 522D24AU2J AU2YG4J ?A FJ AU2 ?21F5D25AJe CY6 ?E @D[email protected]?E?1B552JP6?E @D[email protected][email protected]?1B552JPEn este caso, al ser un scanner USB, slo es necesariodescomentar la lnea 6?E @[email protected][email protected]?1B552JP,tal y como recoge elcontenido del fichero. Si nuestro scanner Epson tuviese una conexinSCSIo al puerto paralelo del ordenador, nicamente habra quedescomentar la entrada correspondientey dejar el restocomentado.
  • 583.2.1. Escaneando con XSANEUna vez realizados todos los pasosdescritos anteriormente, estaremos en condiciones de uti-lizar nuestro scanner bajo GNU/Linux. Para ello, abrimos unaterminal y tecleamos xsane direc-tamente.3.3. Dispositivos de memoria usbLas unidades de memoria flash ylas cmaras digitales pueden parecer, en principio, dos dis-positivos totalmente dispares. En parte es cierto, sin embargo,tambin es verdad que compartenalgunas caractersticas que les hanhecho desarrollarse casi a la par. Ambos poseen una memoriadealmacenamiento de datos que puede comunicarse con un ordenador atravs de cualquier puertoUSB, en este sentido ha estado ligado sudesarrollo hasta alcanzar las capacidades de hoy en da.GNU/Linuxtrata estos dispositivos como si fueran discos SCSI, de hecho, losdrivers usados sonlos mismos y, tanto los memory driver como lastarjetas compact flash, estn soportados como dis-positivos delectura/escritura, es decir, una comunicacin total, en ambossentidos. Si posees unaunidad de memoria flash -llamada comnmentellavero USB- o una cmara digital, GNU/Linuxacceder perfectamente alos datos que puedan contener, siempre y cuando estos dispositivosres-peten los estndares internacionales USB.En el caso de llavero USB, seguramente GNU/Linux habr creado lasentradas correspondien-tes a los puertos USB en el archivo ijklimnkop y, del mismo modo, habr creado el directoriode montajeiqrkis npt y iqrkis np u. De esta forma, slo tendremos que conectarnuestro llaveroal puerto USB y seleccionar, en el men del botnderecho del ratn, Discos | usb0, para queaparezca un icono en elescritorio representando un disco duro. Si pulsamos dos veces sobrelcon el botn izquierdo del ratn, se abrir una ventana de Nautilusmostrndonos el contenido dela unidad.Si conectamos nuestra cmara digital, en lugar del llavero,accederemos de la misma formaal contenido de la tarjeta de memoriay podemos recuperar nuestras fotografas, retocarlas y/oalmacenarlasen el disco duro, independientemente del modelo de nuestra cmara.Por ltimo,si deseamos cambiar el nombre de los directorios demontaje, tendremos que registrarnos comoadministrador del sistema yejecutar:vljlwxrsy z{| }~q iqrkisnpt iqrkiwwojvljlwxrsy z{| }~x ijk limnkopoqp xoqn wo wrjo }ijino u iqrkis npt mok jmoswk n rosk snj t tnko sj lrk xjrj jw rsjsrk j q rkoj }ijino u iqrkiwwoj mok jmoswk n rosk snj t tEs decir, renombramos como iqrkiwwoj el directorio iqrkis npt yeditamos el fichero ijk limnkoppara cambiar tambin la entradacorrespondiente. A partir de ese momento, el contenido denuestraunidad de memoria se encontrar en el directorio iqrkiwwojcuando sea montada.3.4. Bibliografa1. Guadalinex. La gua de instalacin y primerospasos, Jos J. Grimaldos, Edit Lin Edito-rial (2004).
  • Captulo 4Compilando el kernel4.1. IntroduccinLa compilacin del kernel, que cuando Linuxcomenz a difundirse era una tarea difcil ynecesaria casi siempre que se instalaba, se ha simplificadomucho. Adems la introduccin demdulos, aunque el kernel sigue siendodel tipo monoltico, ha permitido reducir el nmero deocasiones enlas que es necesario compilar nuestro propio kernel. De cualquiermodo y aunque engeneral los kernels precompilados que sesuministran con las distribuciones GNU/Linux suelen darbuenosresultados es conveniente tener una idea de como compilar el kernelpara poder adaptarnosa posibles cambios de hardware no soportadosen el kernel precompilado o para optimizar el kernelde acuerdo conel sistema que estemos empleando.Antes de pasar a la compilacin propiamente diche es apropiadodar alguna informacin ge-neral acerca del kernel Linux.El kernel de un sistema Linux podemos asimilarlo al corazn delsistema, es el encargadode gestionar la multitud de procesos queestn corriendo simultneamente, tanto lanzados por elmismo sistema,por los usuarios o por el superusuario. Permite tambin comunicarunos procesoscon otros cuando sea necesario, es el responsable degestionar la memoria, los ficheros y el flujode informacin con losperifricos.Las versiones del kernel Linux se agrupan en la serie de kernelsinestables o experimental y laestable o de produccin. Los primerosllevan un nmero impar en la segunda cifra, mientras que losestablesllevan un nmero par en la segunda cifra. La ltima versin estable enel momento en quefue escrito este documento es la 1. En concretodaremos las instrucciones de compilacinrefirindonos a la versin enun sistema con Debian Sarge.4.2. Compilando el kernel4.2.1. Antes de compilarUna vez que nos hemos decidido a compilar el kernel hemos decomprobar si nuestro sistemaposee los requilitos mnimos para poderllevar a cabo dicha compilacin. Nos har falta unos40MB libres en eldisco duro para las fuentes del kernel, y unos 400MB ms para losficheros quese vayan generando durante la compilacin. En la tablaque sigue se incluye las condiciones quedebe cumplir un sistemapara compilar un kernel :1Un lugar donde poder descargarnos el cdigo fuente de los ltimoskernels publicados es.59
  • 60Versin Cmo comprobarloGnu C 2.95.3 Gnu make 3.78 binutils 2.12 lutil-linux 2.10o module-init-tools 0.9.10 e2fsprogs 1.29 jfsutils1.1.3 reiserfsprogs 3.6.3 xfsprogs 2.1.0 pcmcia-cs 3.1.21quota-tools 3.09 PPP 2.4.0 isdn4k-utils 3.1pre1 nfs-utils 1.0.5procps 3.1.13 oprofile 0.5.3Es importante tener en cuenta que compilar el kernel es unatarea que requiere de bastantesrecursos y que puede tomar un tiempoconsiderable en una mquina que no sea demasiado potente.Sin embargono debemos olvidar que dicha compilacin no tiene porqu llevarse acabo necesa-riamente en la mquina en la que va a instalarse elkernel. Es posible compilar en un ordenadorpotente y una vezcompilado el kernel instalarlo en otra mquina. Tambin es posible (yrecomen-dable) compilar el kernel como un usuario que no sea rootde forma que as nos evitamos meter lapata en algo bsico como rootprovocando un dao quizs irreparable al sistema2.Si contamos con las herramientas antes citadas podemosproseguir, aunque antes es conve-niente tener una idea del hardwaredel ordenador en el que correr el kernel. Para ello es muy tillaorden que nos lista todos los dispositivos PCI3 disponibles en elordenador.Tambin es recomendable tener en cuenta la informacin acerca dela CPU de nuestro sistemalo que como hemos visto en el captulo deadministracin local del sistema se consigue haciendo.2Dont take the name of root in vain… Encontrado en elkernel-source-2.6.8 .3PCI: Peripheral Component Interconnect
  • 61A continuacin hay que obtener el cdigo fuente del kernel. Si elkernel que queremos com-pilar es uno de los recogidos en ladistribucin Debian que tengamos instalada en nuestro sistemabastacon instalar el correspondiente paquete deb4. Tras ello tendremosla fuente del kernel com-primida en el directorio . Se descomprimey desempaqueta:!»!#$!#% &’&(&) &*+%) ,-.!»!#$!#% &’&(&) &*+%!»!#$!#% &’&(!»!#$!#% &’&(&) &*+%A partir de ahora comenzar la compilacin del kernel y para ellotrabajaremos en el directorio/010234035 6768.4.2.2. Compilacin del kernelUna vez que estamos en el directorio/010234 035 67 68 un primer paso antes de co-menzar la compilacin del kernel es salvar la configuracinpresente en el sistema, por si fueranecesario recuperarla ms tardepara lo que hacemos!»!#$!#% &’&(9 &&»,&$». : &&»,&$». : &);!y decidir que etiqueta vamos a usar en el campo [email protected]
  • 62t uv utw xyz {vy{v |y}~v~{zv|~|yuzt uv utw xyz {vy{v |yuz}~vv~vPara configurar el kernel existen cuatro herramientas, queson: Es la opcin ms pesada de usar ya que simplemente presenta unaseria de pregun-tas que deben ser respondidas y si nosequivocamos… vuelta a empezar.: Esta opcin lee las opciones pordefecto de un fichero previo y rehacelos enlaces y ficherosnecesarios de acuerdo con l. Sirve si hemos hecho pequeos cambiosenel cdigo fuente.En este caso tenemos un frontal basado en que resulta bastanteintui-tivo y de naturaleza similar a los mens que nos encontramosen la instalacin de Debian.Permite acceder a una pantalla de ayudaen caso de necesidad.Frontal grfico bastante intuitivo y configurable con una seccinde ayuda que semuestra para cada seccin del kernel. Adems muestraposibles problemas de dependenciaslo que ayuda a diagnosticarerrores en la construccin del kernel. Otro posible frontal grficoes.t uv utw xyz {vy{v |yuz|y}~v~{zv|~t uv utw xyz {vy{v |y}~v~{zv|~}~|uUna vez decidida la configuracin del kernel podemos directamentepasar a compilar el kernel6para lo que haremost uv utw xyz {vy{v |y}~v~{zv|~}~~y dependiendo de la CPU que dispongamos nos armaremos de ms omenos paciencia hastaque termine la compilacin. Si tenemos suerte,tras una serie de mensajes obtendremos algo similarat~u|~u{t{~|tvt~{~tzu{t~{{t~u{}~v~xv |wyuyty~u{v~t uv utw xyz {vy{v |y}~v~{zv|~on esto ha temrinado la compilacin del kernel que en nuestrocaso estar en el ficheroyz {vy{v |y}~v~{zv|~yv |wyuyty~Ahora debemos compilar los mdulos asociados al nuevo kernel conla ordent uv utw xyz {vy{v |y}~v~{zv|~}~z~{Tras un buen rato con la CPU trabajando a tope si no hay erroralguno llegaremos a recuperar elprompt con lo que podemos pasar ainstalar los mdulos recin compilados. Este paso es necesariohacerlocomo root as que toca hacer si hemos realizado la compilacin comousuario de a pie.t uv utw xyz {vy{v |y}~v~{zv|~}~z~{u{t6En el caso de los kernels de
  • Publicaciones Similares