UNIDAD 1 Conceptos e Historia de Linux...............................................................................................5
Qu es el Software Libre?....................................................................................................................6 Orgenes de Linux..................................................................................................................................8 Que son las distribuciones?..................................................................................................................8 El proyecto CentOS...............................................................................................................................9 Requisitos de sistema...........................................................................................................................10 UNIDAD 2 El sistema de ficheros...........................................................................................................11 Conceptos del sistema de ficheros de Linux........................................................................................12 El directorio de trabajo........................................................................................................................12 Nombres de ficheros y directorios.......................................................................................................12 Rutas absolutas y relativas...................................................................................................................13 Cambiar el directorio de trabajo..........................................................................................................13 Ver el contenido de un directorio........................................................................................................13 Copiar, mover, crear y eliminar ficheros y directorios........................................................................13 Uso de exploradores de archivos.........................................................................................................14 Determinar el tipo de contenido de un fichero....................................................................................15 El sistema de ficheros de Gnu/Linux en profundidad..........................................................................15 Particiones y sistemas de ficheros (formato de discos).......................................................................15 Inodos y directorios.............................................................................................................................15 cp, mv, rm, e inodos.............................................................................................................................16 Enlaces duros y simblicos..................................................................................................................17 Los siete tipos fundamentales de ficheros...........................................................................................17 Comprobar el espacio libre en disco....................................................................................................18 Montar CDs, DVDs, dispositivos USB...............................................................................................18 Empaquetar y desempaquetar ficheros................................................................................................18 Comprimir y descomprimir ficheros...................................................................................................19 Buscar y procesar ficheros...................................................................................................................19 locate....................................................................................................................................................19 find.......................................................................................................................................................20 UNIDAD 3 Uso Bsico de Linux.............................................................................................................22 Ingreso en CentOS Linux....................................................................................................................23 Inicio de consola y acceso a shell desde entorno grfico.....................................................................23 Cambiar la Clave.................................................................................................................................23 root el usuario administrador...............................................................................................................23 Administrar privilegios........................................................................................................................23 Edicin de ficheros de texto................................................................................................................38 UNIDAD 4 Los editores vi y vim............................................................................................................39 Introduccin a VIM.............................................................................................................................40 Linux Bsico LP001 Ver.1 1-1 Uso bsico de vim................................................................................................................................40 Abrir, modificar y guardar ficheros.....................................................................................................40 El modo comando................................................................................................................................41 Deshacer cambios................................................................................................................................42 El modo visual.....................................................................................................................................42 Dividir pantalla....................................................................................................................................42 Configuracin de vi y vim...................................................................................................................43 UNIDAD 5 - Comandos y uso de ayuda..................................................................................................44 Ejecutar comandos...............................................................................................................................45 Utilizar la ayuda...................................................................................................................................45 El comando whatis y la opcin --help.................................................................................................45 Los comandos man e info....................................................................................................................46 La documentacin................................................................................................................................47 Entrada y salida de comandos estndar y pipes...................................................................................47 Entrada y salida estndar.....................................................................................................................47 Redirigir la entrada y salida estndar...................................................................................................47 Combinando salidas y errores..............................................................................................................48 Scripting: para bucles..........................................................................................................................49 Scripting: para bucles continuos..........................................................................................................50 Comandos para procesar texto.............................................................................................................50 Comandos para extraer, analizar y manipular texto............................................................................50 Caracteres especiales...........................................................................................................................51 Comandos bsicos...............................................................................................................................52 UNIDAD 6 Shell BASH..........................................................................................................................55 Introduccin, historia y caractersticas de bash...................................................................................56 Comodines...........................................................................................................................................56 El historial de comandos......................................................................................................................57 Expansin de comandos......................................................................................................................57 Terminales...........................................................................................................................................58 Configuracin del shell BASH............................................................................................................58 Variables en bash.................................................................................................................................58 Variables locales, de entorno, de configuracin e informacin, Alias................................................58 Expansin de variables y evitar la expansin, cmo funciona la expansin en bash..........................59 Scripts de inicio y parada de bash........................................................................................................60 Tipos de shells, variables en shell scripts............................................................................................60 UNIDAD 7 Configuracin y Administracin bsica del sistema............................................................61 Ajustar Fecha y hora............................................................................................................................62 Configuracin de Impresoras...............................................................................................................62 Configuracin de la red.......................................................................................................................63 Qu es un proceso, demonio y tarea?.................................................................................................64 Ver el estado de un proceso.................................................................................................................64 Linux Bsico LP001 Ver.1 1-2 Enviar seales a un proceso.................................................................................................................65 Terminar un proceso............................................................................................................................66 Modificar la prioridad de un proceso...................................................................................................66 Herramientas interactivas de gestin de procesos...............................................................................66 Ejecutar procesos en segundo plano....................................................................................................66 Suspender un proceso..........................................................................................................................66 Ver la lista de procesos en segundo plano o suspendidos....................................................................67 Comandos compuestos........................................................................................................................67 Planificar la ejecucin de un proceso en fecha y hora concreta o ejecucin peridica.......................69 El formato del fichero crontab.............................................................................................................69 Instalacin del sistema.........................................................................................................................69 Administracin de paquetes.................................................................................................................70 Asegurando el sistema.........................................................................................................................71 UNIDAD 8 Administracin de usuarios, grupos y permisos...................................................................72 Usuarios y grupos................................................................................................................................74 Tipos de permisos................................................................................................................................74 Ver los permisos de ficheros y directorios...........................................................................................75 Cambiar permisos usando representaciones simblicas y numricas..................................................75 Cambiar permisos usando el explorador de archivos..........................................................................76 Conceptos avanzados sobre usuarios, grupos y permisos....................................................................77 Identificadores numricos de usuarios y grupos..................................................................................77 Los ficheros /etc/passwd, /etc/shadow, y /etc/group............................................................................77 Usuarios y grupos del sistema.............................................................................................................77 Cambios en el usuario..........................................................................................................................77 Comandos para obtener informacin sobre usuarios y grupos............................................................77 Permisos por defecto............................................................................................................................77 Permisos especiales.............................................................................................................................77 UNIDAD 9 Aplicaciones de acceso a la red...........................................................................................79 Comunicaciones cifradas con ssh y scp...............................................................................................81 rsync: Eficiente sincronizacin de archivos.........................................................................................82 Autentificacin basada en clave OpenSSH.........................................................................................82 Herramientas de diagnstico de problemas de la red..........................................................................83 Conceptos fundamentales para la administracin de Linux................................................................83 Linux Bsico LP001 Ver.1 1-3 UNIDAD 1 Conceptos e Historia de Linux Linux Bsico LP001 Ver.1 1-4 Qu es el Software Libre? La Definicin de Software Libre El software libre es una cuestin de libertad, no de precio. Para entender el concepto, se debera pensar en libre como en libre expresin, no como en barra libre (cerveza). El software libre es una cuestin de la libertad de los usuarios de ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Ms precisamente, significa que los usuarios de programas tienen las cuatro libertades esenciales. La Iibertad de ejecutar eI programa, para cuaIquier propsito (Iibertad 0). La Iibertad de estudiar cmo trabaja eI programa, y cambiarIo para que haga Io que usted quiera (Iibertad 1). EI acceso aI cdigo fuente es una condicin necesaria para eIIo. La Iibertad de redistribuir copias para que pueda ayudar aI prjimo (Iibertad 2). La Iibertad de distribuir copias de sus versiones modificadas a terceros (Ia 3 Iibertad). Si Io hace, puede dar a toda Ia comunidad una oportunidad de beneficiarse de sus cambios. EI acceso aI cdigo fuente es una condicin necesaria para eIIo. Un programa es software libre si los usuarios tienen todas esas libertades. Entonces, debera ser libre de redistribuir copias, tanto con o sin modificaciones, ya sea gratis o cobrando una tarifa por distribucin, a cuaIquiera en cuaIquier parte. El ser libre de hacer estas cosas significa, entre otras cosas, que no tiene que pedir o pagar eI permiso. Tambin debera tener la libertad de hacer modificaciones y usarlas en privado, en su propio trabajo u obra, sin siquiera mencionar que existen. Si publica sus cambios, no debera estar obligado a notificarlo a alguien en particular, o de alguna forma en particular. La libertad de ejecutar el programa significa la libertad para cualquier tipo de persona u organizacin de usarlo en cualquier tipo de sistema de computacin, para cualquier tipo de trabajo y propsito, sin estar obligado a comunicarlo a su programador, o alguna otra entidad especfica. En esta Iibertad, eI propsito de Ios usuarios es eI que importa, no eI propsito de Ios programadores. Como usuario es libre de ejecutar un programa para sus propsitos; y si lo distribuye a otra persona, tambin es libre para ejecutarlo para sus propsitos, pero usted no tiene derecho a imponer sus propios propsitos. La libertad de redistribuir copias debe incluir las formas binarias o ejecutables del programa, as como el cdigo fuente; tanto para versiones modificadas como para las que no lo estn. (Distribuir programas en forma de ejecutables es necesario para que los sistemas operativos libres se puedan instalar fcilmente). Resulta aceptable si no existe un modo de producir una formato binario o ejecutable para un programa especfico, dado que algunos lenguajes no incorporan esa caracterstica, pero debe tener la libertad de redistribuir dichos formatos si encontrara o programara una forma de hacerlo. Para que la 1 y 3 libertad, para realizar cambios y publicar versiones mejoradas, tengan sentido; debe tener acceso al cdigo fuente del programa. Por consiguiente, el acceso al cdigo fuente es una condicin necesaria para el software libre. La 1 libertad incluye la libertad de usar su versin modificada en lugar de la original. Si el programa se entrega con un producto diseado para ejecutar versiones modificadas de terceros, pero rechaza Linux Bsico LP001 Ver.1 1-5 ejecutar las suyas, una prctica conocida como tivoization o arranque seguro (mediante listas negras); la 1 libertad se convierte ms en una ficcin terica que en una libertad prctica. Esto no es suficiente. En otras palabras, estos binarios no son software libre, incluso si se compilaron desde un cdigo fuente que es libre. Una manera importante de modificar un programa es fusionando sub-rutinas y mdulos libres disponibles. Si la licencia del programa dice que no puede fusionar un mdulo existente con una debida licencia, as como si le requiere ser el titular de los derechos de autor de lo que agregue, entonces la licencia es demasiado restrictiva para calificarla como libre. La 3 libertad incluye la libertad de usar sus versiones modificadas liberadas como software libre. Una licencia tambin puede permitir otras formas de re-licenciarlas, en otras palabras, no tiene que ser una licencia de copyleft. No obstante, una licencia que requiera que las versiones modificadas no sean libres, no se puede considerar como una licencia libre. Para que estas libertades puedan ser reales, deben ser irrevocables siempre que usted no cometa ninguna equivocacin; si el programador del software tiene el poder de revocar la licencia, o de cambiar retroactivamente sus trminos, sin que usted se haya equivocado para justificarlo, el software no es libre. Sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre son aceptables, cuando no entran en conflicto con las libertades principales. Por ejemplo, el copyleft (definido muy resumidamente) es la regla en base a la cual, cuando redistribuye el programa, no puede agregar restricciones para denegar a las dems personas las libertades principales. Esta regla no entra en conflicto con las libertades principales; ms bien las protege. Software libre no significa que no sea comercial. Un programa libre debe estar disponible para el uso comercial, la programacin comercial y la distribucin comercial. La programacin comercial de software libre ya no es inusual; tal software libre comercial es muy importante. Puede haber pagado dinero para obtener copias de software libre, o puede haber obtenido copias sin costo. Pero sin tener en cuenta cmo obtuvo sus copias, siempre tiene la libertad de copiar y modificar el software, incluso de vender copias. Si una modificacin constituye una mejora es un asunto subjetivo. Si sus modificaciones se limitan, en esencia, a los cambios que otra persona considera una mejora, eso no se trata de libertad. Sin embargo, las reglas sobre cmo empaquetar una versin modificada son aceptables si no limitan sustancialmente su libertad de publicar versiones modificadas, o su libertad de hacer y usar versiones modificadas en privado. Las reglas estilo si usted hace disponible su versin de tal modo, debe hacerla disponible en tal otro modo pueden ser aceptables tambin, bajo la misma condicin. (Note que dicha regla todava le deja la eleccin sobre si publicar su versin.). Las reglas que requieran la publicacin del cdigo fuente a los usuarios para versiones que haya puesto en uso pblico tambin son aceptables. Tambin es aceptable para la licencia requerir que, si distribuy una versin modificada y un programador anterior le pide una copia, le deba enviar una, o que identifique como propias sus modificaciones. En algunos casos las regulaciones de control de exportacin y las sanciones comerciales pueden limitar sus libertades de distribuir copias de programas intencionalmente. Los desarrolladores de software no tienen el poder de eliminar o pasar por alto estas restricciones, pero lo que pueden y deben hacer es rechazar imponerlas como condiciones para el uso del programa. De este modo, las restricciones no afectarn a las actividades ni a las personas fuera de las jurisdicciones de dichos gobiernos. Por ende, las licencias de software libre no deben requerir la obediencia a ninguna regulacin de exportaciones como condicin de cualquiera de las libertades esenciales. Linux Bsico LP001 Ver.1 1-6 Cuando se habla de software libre, es mejor evitar usar trminos como regalar o gratuito, porque dichos trminos implican que el asunto pasa por el precio, no la libertad. Ms aII deI software Los manuales de software deben ser libres, por las mismas razones que el software debe ser libre, y porque en efecto los manuales son parte del software. Los mismos argumentos tambin tienen sentido para otros tipos de trabajos de uso prctico; es decir, trabajos que incorporen conocimiento til, tal como trabajos educativos y de referencia. Wikipedia es el ejemplo ms conocido. Cualquier tipo de trabajo puede ser libre, y la definicin de software libre se ha extendido a una definicin de trabajos culturales libres aplicable a cualquier tipo de trabajo. Cdigo abierto? Otro grupo ha comenzado a usar el trmino cdigo abierto (del ingls open source) que significa algo parecido (pero no idntico) a software libre. Preferimos el trmino software libre porque, una vez que ha escuchado que se refiere a la libertad en lugar del precio, le hace pensar en la libertad. La palabra abierto nunca se refiere a la libertad. Orgenes de Linux 1984: El proyecto GNU y la Free Software Foundation, Crean una versin open source de utilidades de UNX. Crean la General Public License (GPL), Licencia de software 1991: Linus Torvalds Crea ncleo de tipo Unix de cdigo abierto, publicado bajo la licencia GPL Porta algunas utilidades GNU, solicita asistencia en lnea. Kernel de Linux + utilidades GNU = completo como sistema operativo UNX de cdigo abierto Empaquetado para grupos especficos, como distribuciones Que son Ias distribuciones? Una distribucin GNU/Linux (coloquialmente llamadas distros) es una distribucin de software basada en el ncleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo especfico de usuarios, dando as origen a ediciones domsticas, empresariales y para servidores. Por lo general estn compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios. Adems del ncleo Linux, las distribuciones incluyen habitualmente las bibliotecas y herramientas del proyecto GNU y el sistema de ventanas X Window System. Dependiendo del tipo de usuarios a los que la distribucin est dirigida se incluye tambin otro tipo de software como procesadores de texto, Linux Bsico LP001 Ver.1 1-7 hoja de clculo, reproductores multimedia, herramientas administrativas, etctera. Existen distribuciones que estn soportadas comercialmente, como Fedora (Red Hat), openSUSE (NoveII), Ubuntu (CanonicaI Ltd.), Mandriva, y distribuciones mantenidas por la comunidad como Debian y Gentoo. Aunque hay otras distribuciones que no estn relacionadas con alguna empresa o comunidad, como es el caso de SIackware, wendyx, etc. Entre las distribuciones ms antiguas se incluan: Dos discos denominados H J Lu's "Boot-root" con el ncleo y un mnimo de herramientas para utilizar. MCC nterim Linux, que se poda descargar en un servidor pblico FTP de la Universidad de Mnchester en febrero de 1992. TAMU, creado por entusiastas de la Universidad de Texas A&M al mismo tiempo que SLS SLS (Softlanding Linux System). YggdrasiI Linux cre el primer CD-ROM de una distribucin GNU/Linux. SLS no estuvo bien mantenida; as pues, Patrick VoIkerding lanz una distribucin basada en SLS a la que llam Slackware; lanzada el 16 de julio de 1993. Esta es la distribucin ms antigua que est en desarrollo activo. EI proyecto CentOS CentOS (Community ENTerprise Operating System) es un clon a nivel binario de la distribucin Linux Red Hat Enterprise Linux RHEL, compilado por voluntarios a partir del cdigo fuente liberado por Red Hat. Red Hat Enterprise Linux se compone de software libre y cdigo abierto, pero se publica en formato binario (CD-ROM o DVD-ROM) solamente a suscriptores pagados. Como es requerido, Red Hat libera todo el cdigo fuente del producto de forma pblica bajo los trminos de la Licencia pblica general de GNU y otras licencias. Los desarrolladores de CentOS usan ese cdigo fuente para crear un producto final que es muy similar al Red Hat Enterprise Linux y est libremente disponible para ser bajado y usado por el pblico, pero no es mantenido ni asistido por Red Hat. Existen otras distribuciones tambin derivadas de los fuentes de Red Hat. CentOS usa yum para bajar e instalar las actualizaciones, herramienta tambin utilizada por Fedora Cada versin de CentOS es mantenida durante 7 aos (por medio de actualizaciones de seguridad). Las versiones nuevas son liberadas cada 2 aos y actualizadas regularmente (cada 6 meses) para el soporte de hardware nuevo. Linux Bsico LP001 Ver.1 1-8 Requisitos de sistema Hardware recomendado para operar: Memoria RAM: 64 MB (mnimo). Espacio en Disco Duro: 1024 MB (mnimo) - 2 GB (recomendado). Arquitectura: CentOS soporta casi las mismas arquitecturas que Red Hat Enterprise Linux: ntel x86-compatible (32 bit) (ntel Pentium ///V/Celeron/Xeon, AMD K6//, AMD Duron, Athlon/XP/MP). Advanced Micro Devices AMD64(Athlon 64, etc) e ntel EM64T (64 bit). Las versiones 3.x y 4.x (pero no la 5.0 y posteriores) adems soportaron: ntel tanium (64 bit). PowerPC/32 (Apple Macintosh PowerMac corriendo sobre procesadores G3 o G4 PowerPC). BM Mainframe (eServer zSeries y S/390). Tambin se tuvo soporte para dos arquitecturas no soportadas por Red Hat Enterprise Linux. Alpha procesador (DEC Alpha) (slo en CentOS 4) SPARC (beta en CentOS 4) Linux Bsico LP001 Ver.1 1-9 UNIDAD 2 EI sistema de ficheros Linux Bsico LP001 Ver.1 1-10 Conceptos deI sistema de ficheros de Linux La jerarqua de archivos Linux Archivo y directorio son organizados en una estructura de rbol invertido con "una sola raz" El sistema de archivos comienza en el directorio raz, representado por un nico carcter / (barra oblicua invertida). Nombres son sensible a maysculas y minsculas, rutas de directorios son delimitadas por / AIgunos Directorios Importantes Directorios de inicio: /root,/home/username Ejecutables de usuario: /bin, /usr/bin, /usr/IocaI/bin Ejecutables de sistema: /sbin, /usr/sbin, /usr/IocaI/sbin Otros Puntos de montaje: /media, /mnt Configuracin: /etc Archivos Temporales: /tmp Ncleos y gestor de arranque: /boot Datos de servicios: /var, /srv nformacin del Sistema: /proc, /sys Libreras compartidas: /Iib, /usr/Iib, /usr/IocaI/Iib EI directorio de trabajo Cada entorno de trabajo y proceso del sistema tiene un directorio de trabajo actual (cwd, current working directory) pwd Despliega la ruta absoluta a el directorio de trabajo actual Nombres de ficheros y directorios Los nombres pueden ser hasta 255 caracteres, todos los caracteres son validos, con excepcin de la barra oblicua invertida, puede ser aconsejable utilizar ciertos caracteres especiales en nombres de archivo o directorio, Algunos de los caracteres deben estar protegidos con comillas cuando se hace referencia a ellos, los nombre son sensibles a maysculas y minsculas. Ejemplo: MAIL, MaiI, maiI, y mAiL Linux Bsico LP001 Ver.1 1-11 Rutas absoIutas y reIativas Rutas AbsoIutas Comienzan con una barra oblicua invertida (/), es un completo "mapa de ruta" para la ubicacin del archivo, puede ser utilizado en cualquier momento que desee especificar un nombre de archivo. Rutas reIativas No comienzan con una barra oblicua invertida, se especifica una ubicacin en relacin al directorio de trabajo actual, puede ser utilizado como un camino ms corto para especificar un nombre de archivo Cambiar eI directorio de trabajo cd cambiar de directorio Para una ruta absoluta cd /home/constanza/trabajo O una ruta relativa: cd proyectos/documentos Para un directorio un nivel hacia la raz (/): cd .. Al directorio home: cd y cd ~ Al directorio de trabajo anterior: cd - Ver eI contenido de un directorio Muestra el contenido del directorio actual o un directorio especifico UtiIizar: Is [opciones] [archivos_o_directorios] Ejemplo: Is -a (incluir los archivos ocultos) Is -I (muestra detalles de las caractersticas de los archivos) Is -R (recursivamente a travs de los directorios) Is -Id (informacin sobre directorios y enlaces simblicos) Copiar, mover, crear y eIiminar ficheros y directorios cp - copiar archivos y directorios Utilizar: cp [opciones] archivo destino Linux Bsico LP001 Ver.1 1-12 Ms de un archivo puede ser copiado de una vez si el destino es un directorio: cp [opciones] archivo1 archivo2 directorio Si el destino es un directorio, la copia se coloca all, si el destino es un archivo, la copia sobrescribe el destino, si el destino no existe, se renombra la copia. Moviendo y renombrando archivos y directorios mv - mueve y/o renombra archivos y directorios Utilizar: mv [opciones] archivo destino Ms de un archivo puede ser movido a la vez si el destino es un directorio: mv [opciones] archivo1 archivo2 destino Destino funciona como cp Creando y removiendo archivos touch - crea archivos vacos o actualiza marcas de tiempo del archivo directorio rm - remueve archivos Utilizar: rm [opciones] <archivo>... Ejemplos: rm -i archivo (interactivo) rm -r directorio (recursivo) rm -f archivo (fuerza) Creando y removiendo directorios mkdir crea directorios rmdir remueve directorios vacos rm -r quita recursivamente rboles de directorios Uso de expIoradores de archivos Gnome expIorador grfico de sistema de archivos Puede ejecutar en modo espacial o navegador, se accede a travs de: Los iconos del escritorio o nicio: El directorio de inicio, equipo: sistema de archivos raz, los recursos de red y de medios extrables Linux Bsico LP001 Ver.1 1-13 ApIicaciones-> Herramientas deI Sistema-> ExpIorador de archivos Moviendo y copiando en NautiIus Arrastrar y soItar Arrastrar: Mover el mismo sistema de archivos, copia en el sistema de archivos diferentes CtrI + Arrastrar: Siempre copia Arrastre + AIt: Pregunta si desea copiar, mover o crear un enlace simblico (alias) Men contextual Haga clic para cambiar el nombre, cortar, copiar o pega Determinar eI tipo de contenido de un fichero Archivos pueden contener muchos archivos de datos, se verifica el tipo de archivo antes de abrirlo para determinar comando adecuado o aplicacin para que utilice fiIe [opciones] <nombre_archivo>... Las unidades de disco se divide en particiones, las particiones estn formateadas con sistemas de archivos que permite a los usuarios almacenar datos. Sistema de ficheros por defecto: ext3, el sistema de ficheros Linux extendido, otros sistemas de ficheros comunes: ext2 y msdos (tpicamente usado para fIoppy) iso9660 (tpicamente usado para CD) GFS y GFS2 (tpicamente para SANs) EI sistema de ficheros de Gnu/Linux en profundidad Particiones y sistemas de ficheros (formato de discos) Las unidades de disco se divide en particiones, las particiones estn formateadas con sistemas de archivos que permite a los usuarios almacenar datos, el sistema de ficheros por defecto: ext3 y ext4, el tercer sistema extendido de ficheros de Gnu/Linux. Otros sistemas de archivos comunes son: ext2 y msdos (tpicamente utilizados en los disquetes), iso9660 (usado para Cds), GFS y GFS2 (normalmente para redes SAN) Inodos y directorios Inodos, Una tabla de inodos contiene una lista de todos los archivos en un sistema de ficheros ext2 o ext3, un inodo (nodo ndice) es una entrada en la tabla, que contiene informacin sobre un archivo (los metadatos), entre ellos: Tipo de archivo, permisos, UID, GID El conteo de enlaces (recuento de los nombres de ruta que apunta a este archivo) El tamao del archivo y varias marcas de tiempo Punteros a los bloques de datos del archivo en el disco Otros datos sobre el archivo Linux Bsico LP001 Ver.1 1-14 Directorios,la referencia del sistema para obtener un archivo es el nmero de inodo, la forma humana para hacer referencia a un archivo es el nombre de archivo Nombre Asociado con un inodo de directorio padre Inodo de metadatos Propiedades y un puntero a Ios bIoques en eI disco Contenidos Para directorios: nombre/Lista de inodos (muestra) Para Ios archivos: datos arbitrarios cp, mv, rm, e inodos cp e inodos El comando cp : 1. Asigna un nmero de inodo libre, coloca una nueva entrada en la tabla de inodos 2. Crea una entrada en el directorio, asocia el nombre con el nmero de inodo 3. Copia de datos en el nuevo archivo Un directorio es una correspondencia entre el nombre humano para el archivo y el nmero de inodo del sistema mv e inodos Si el destino del comando mv es el mismo sistema de archivos como la fuente, el comando mv: 1. Crea una nueva entrada de directorio con el nombre de archivo nuevo 2. Elimina la entrada del directorio viejo con el nombre de archivo viejo No tiene ningn impacto en la tabla de inodos (a excepcin de un sello de tiempo) o la ubicacin de los datos en el disco: se mueve sin datos! Si el destino es un sistema de archivos diferentes, los actos mv como copiar y eliminar Linux Bsico LP001 Ver.1 1-15 rm e inodos El comando rm: 1. Disminuye el conteo de enlaces, liberando as el nmero de inodo para ser reutilizado 2. Lugares bloques de datos en la lista libre 3. Elimina la entrada de directorio Los datos no se quitan, pero se sobrescribirn cuando los bloques de datos son utilizados por otro archivo EnIaces duros y simbIicos Un enlace duro agrega una ruta adicional para hacer referencia a un nico archivo, solo un archivo fsico en el sistema de ficheros, cada una de las referencias de directorio es el mismo nmero de inodo, se incrementa el conteo de enlace, el comando rm reduce el conteo de enlace, el archivo existe siempre y cuando al menos un enlace se mantiene, cuando el conteo de enlaces es cero, se elimina el archivo, no se puede extender sobre unidades o particiones Sintaxis: In nombre_archivo [nombre_enIace] Un enlace simblico apunta a otro archivo Is -I muestra el nombre del enlace y el archivo de referencia Irwxrwxrwx 1 joe joe 11 Sep 25 18:02 pf -> /etc/passwd Tipo de archivo: I para enlace simblico El contenido de un enlace simblico es el nombre del archivo que es de referencia Sintaxis: In -s nombre_archivo nombre_enIace Los siete tipos fundamentaIes de ficheros Smbolo Is -I Tipo de archivo - Archivo regular d directorio I enlace simblico b archivo especial de bloque c archivo especial de carcter p archivo especial de pipe s archivo especial de socket Linux Bsico LP001 Ver.1 1-16 Comprobar eI espacio Iibre en disco df - informa espacio de disco utilizado nforma total de kilobytes, kilobytes usados, kilobytes libre por sistema de archivo -h y -H despliega las unidades en tamaos ms fcil de leer du - nforma uso de espacio en disco, informa Kilobytes utilizados por el directorio, incluye los subtotales de cada subdirectorio -s informa solo resumen de solo el directorio Tambin toma las opciones -h y -H Montar CDs, DVDs, dispositivos USB Montar significa poder acceder a un sistema de archivos externo, como si fuera parte del rbol de directorios principal. Antes de acceder, los medios deben ser montados, antes de retirar, los medio deben ser desmontados, por defecto, los usuario no-root, pueden montar ciertos dispositivos (CD, DVD, disquete, USB, etc), los puntos de montaje generalmente estn bajo /media Montando CDs y DVDs Automticamente son montados en Gnome/KDE, de lo contrario deben ser montados manualmente CD/DVD (Lector) | CD/DVD (grabador) mount /media/cdrom | mount /media/cdrecorder El comando eject desmonta y expulsa el CD/DVD, eject -t retrae la bandeja del CD/DVD Montando medio USB Es detectado por el ncleo como dispositivo SCSI /dev/sdaX o /dev/sdbX o similar Se montar automticamente en Gnome/KDE, un icono sera creado en el escritorio, sera montado en /media/D_Dispositivo, el D_Dispositivo, es creado en el dispositivo por el proveedor Empaquetar y desempaquetar ficheros Almacena archivos de muchos lugares en un archivo de destino, haciendo ms fcil hacer copias de seguridad, almacenar y transferir tar comando estndar de Linux para almacenaje, los archivos son normalmente comprimidos, un algoritmo es aplicado para comprimir el archivo, la descompresin restaura el archivo original, tar de forma nativa soporta la compresin con gzip y gunzip, o bzip2 y bunzip2 Linux Bsico LP001 Ver.1 1-17 Comprimir y descomprimir ficheros Los argumentos de accin (al menos uno es requerido): -c crear un archivo -t lista contenido de un archivo -x extraer archivos de un archivo Normalmente se requiere: -f nombrearchivo nombre del archivo comprimido Argumentos opcionales: -z utiliza compresin gzip -j utiliza compresin bzip2 -v muestra detalles Creando archivos comprimidos: Otras herramientas zip y unzip, soportan archivos compatibles con pkzip Ejemplo: zip etc.zip /etc unzip etc.zip fiIe-roIIer Grfico, herramienta de compresin multi-formato Buscar y procesar ficheros Iocate Consulta una base de datos pre-construida de las rutas de acceso de los archivos en el sistema, la base de datos debe ser actualizada por el administrador, la ruta de acceso completa es buscada, no slo el nombre de archivo, puede solo buscar en directorios, donde el usuario tiene permisos de lectura y ejecucin. Ejemplos de Iocate Iocate foo Busca archivos con "foo" en el nombre o la ruta Iocate -r '\.foo$' Expresin regular que busca archivos que finalicen en ".foo" Opciones mas usadas -i realiza una bsqueda sensible a maysculas y minsculas -n X lista solo las primeras X coincidencias Linux Bsico LP001 Ver.1 1-18 find find [directorio...] [criterio...] Busca en el rbol de directorio en tiempo real, mas lento pero ms preciso que Iocate, CWD es usado si no hay directorio de inicio indicado, todo los archivos son verificados si no se da un criterio, se puede ejecutar comandos en los archivos encontrados, se puede solo buscar en directorios, donde el usuario tiene permisos de lectura y ejecucin. EjempIos Basicos find find -name snow.png Busca por archivos de nombre snow.png find -iname snow.png Bsqueda sensible a maysculas y minsculas de archivos de nombre snow.png, Snow.png, SNOW.PNG, etc find -user joe -group joe Bsqueda de archivos cuyo propietario es el usuario joe y el grupo es joe find y operadores Logicos El criterio es AND por defecto. Puede ser OR o negado con -o y -not Parntesis puede utilizarse para definir orden lgico, pero debe ser escapado con barra oblicua (\). find -user jose -not -group jose find -user jose -o -user juana find -not \( -user jose -o -user juana \) find y permisos Puede coincidir con la propiedad por nombre o D find / -user jose -o -uid 500 Puede coincidir los permisos octal o simblico find -perm 755 coincidencia si los permisos son exactamente 755 find -perm +222 coincidencia si cualquiera puede escribir find -perm -222 coincidencia si todos pueden escribir find -perm -002 coincidencia si otros pueden escribir Linux Bsico LP001 Ver.1 1-19 find y criterios numricos Muchos criterios find toman valores numricos find -size 1024k Archivos con un tamao de exactamente 1 megabyte find -size +1024k Archivos con un tamao sobre 1 megabyte find -size -1024k Archivos con un tamao menor que 1 megabyte find y fechas de acceso a Ios archivos find puede buscar coincidencia por marca de tiempo del inodo -atime cuando fue leido por ultima ves el archivo -mtime cuando fue modificado por ultima ves los datos del archivo -ctime cuando fue modifica por ultima ves los datos o metadatos del archivo Los valores son en das find -ctime -10 Archivos modificados hace menos de 10 das atrs Ejecutando comandos con find Comandos pueden ser ejecutados cuando se encuentra archivos, comandos debe ir precedido con -exec o -ok . -ok instrucciones antes de actuar en cada archivo Comando debe terminar con Espacio\; Puede utilizarse {} como un nombre de archivo marcador de posicin find -size +102400k -ok gzip {} \; EjempIos de ejecucin con find . find -name "*.conf" -exec cp {} {}.orig \; Copia de seguridad de archivos de configuracin, agregando una extensin .orig . find /tmp -ctime +3 -user jose -ok rm {} \; Pregunta por los archivos en /tmp de Jose que tienen sobre 3 das de antigedad . find ~ -perm +o+w -exec chmod o-w {} \; Fija otros con permisos de escritura a los archivos en tu directorio de trabajo Linux Bsico LP001 Ver.1 1-20 UNIDAD 3 Uso Bsico de Linux Linux Bsico LP001 Ver.1 1-21 Ingreso en CentOS Linux Registro a un sistema Linux Existen dos tipos de pantallas de registro: Consolas virtuales (basadas en texto) y registros grficos (llamados administrador de sesin) El registro es usando nombre de usuario y clave Cada usuario tiene un directorio de inicio para el almacenamiento de archivos personales Inicio de consoIa y acceso a sheII desde entorno grfico AIternar entre consoIas virtuaIes y eI entorno grfico En un sistema Linux tpico se ejecutar seis consolas virtuales y una consola grfica, en los sistemas de servidor a menudo se tienen slo las consolas virtuales. Computadores de escritorio y estaciones de trabajo suelen tener ambos. Podemos cambiar entre las consolas virtuales tecleando: CtrI-AIt-F [1-6] y acceder a la consola grfica pulsando CtrI-AIt-F7 En algunos sistemas, el servidor X se inicia automticamente al arrancar el sistema, por el contrario, si los sistemas inician con consolas virtuales, los usuarios deben iniciar el servidor X de forma manual. El servidor X debe ser pre-configurados por el administrador del sistema, registrarse en una consola virtual y ejecutar startx. Cambiar Ia CIave Cambie la contrasea la primera vez que se conecte, cambie con regularidad a partir de entonces, seleccione una contrasea que sea difcil de adivinar. Para cambiar la contrasea usando GNOME, vaya a Sistema-> Preferencias-> Acerca de m y luego haga clic en Contrasea. Para cambiar la contrasea en una terminal usar el comando: passwd root eI usuario administrador Usuario root: es una cuenta administrativa especial, que algunos llaman super usuario (pero no hace milagros), tiene un control casi total sobre el sistema... y una capacidad casi ilimitada para hacer dao! No ingresar como root a menos que sea necesario, hgalo como un usuario normal (sin privilegios, potencial para hacer dao es ms limitada). Administrar priviIegios Cambio de Identidades su - permite acceder a un nuevo shell como otro usuario en la sesin activa. Es decir, nos permite asumir la identidad de otro usuario (si conocemos su password): Para terminar la sesin bastara con presionar Ctrl + D (fin de fichero) o tecleando exit. Linux Bsico LP001 Ver.1 1-22 Importante En caso de no indicar ningn usuario con el comando su se supone que se est intentando asumir la identidad de root. La diferencia entre utilizar su - usuario y su usuario , es que cuando se utiliza su - se hace login de la misma forma que si se registrar en la consola, cargando todos los ficheros de configuracin de su perfil. Es posible ejecutar comandos como si furamos otro usuario utilizando su: [usuario@maquina]$ su usuario -c ''rm -Rf /home/directorio'' sudo ejecuta un comando como root, permite implementar un control de acceso altamente granulado de que usuarios ejecutan que comandos. Si un usuario normal desea ejecutar un comando de root (o de cualquier otro usuario), sudo verifica en su lista de permisos y si est permitido la ejecucin de ese comando para ese usuario, entonces sudo se encarga de ejecutarlo. Es decir, sudo es un programa que basado en una lista de control (/etc/sudoers) permite (o no) la ejecucin al usuario que lo invoc sobre un determinado programa propiedad de otro usuario, generalmente del administrador del sistema 'root'. Para fines prcticos se puede dividir en tres partes: * sudo, el comando con permisos de SUID, que los usuarios usan para ejecutar otros comandos a los que se les permite usar. * visudo, el comando que permite al administrador modificar /etc/sudoers. * /etc/sudoers, el archivo de permisos que le indica a sudo que usuarios ejecutan cules comandos. sudo lo ejecuta un usuario normal, al que se supone tiene permisos para ejecutar cierto comando. Entonces, sudo requiere que los usuarios se autentifiquen a si mismos a travs de su contrasea para permitirles la ejecucin del comando. Veamos un ejemplo: $ sudo /sbin/ifconfig Password: .... Como se podr observar se usa el comando sudo seguido del comando (con toda su ruta si es que este no esta en el PATH del usuario) al que se tiene permiso. sudo pregunta por la contrasea del usuario que ejecuta el comando y listo. Por defecto, despus de hacer lo anterior tendrs 5 minutos para volver a usar el mismo comando u otros a los que tuvieras derecho, sin necesidad de ingresar la contrasea de nuevo. Si se quiere extender el tiempo por otros 5 minutos usa la opcin sudo -v (vaIidate). Por el contrario, si ya terminaste lo que tenas que hacer, puedes usar sudo -k (kiII) para terminar con el tiempo de gracia de validacin. Ahora bien, Qu comandos son los que puedo utilizar?, pues la opcin -I es la indicada para eso: $ sudo -I User usuario may run the following commands on this host: (root) /sbin/ifconfig (root) /sbin/lspci Linux Bsico LP001 Ver.1 1-23 En el caso anterior se ejecut un comando de root, pero no tiene que ser as, tambin es posible ejecutar comandos de otros usuarios del sistema indicando la opcin -u: $ sudo -u otto /comando/de/otto Una de las opciones ms interesantes es la que permite editar archivos de texto de root (claro, con el permiso otorgado en 'sudoers' como se ver ms adelante), y esto se logra con la opcin -e, esta opcin esta ligada a otro comando de sudo llamado sudoedit que invoca al editor por defecto del usuario, que generalmente es 'vi'. $ sudo -e /etc/inittab (Permitir modificar el archivo indicado como si se fuera root) Cuando se configura sudo se tienen mltiples opciones que se pueden establecer, ests se consultan a travs de la opcin -L $> sudo -L Available options in a sudoers ``Defaults'' line: syslog: Syslog facility if syslog is being used for logging syslog_goodpri: Syslog priority to use when user authenticates successfully syslog_badpri: Syslog priority to use when user authenticates unsuccessfully long_otp_prompt: Put OTP prompt on its own line ignore_dot: gnore '.' in $PATH mail_always: Always send mail when sudo is run mail_badpass: Send mail if user authentication fails mail_no_user: Send mail if the user is not in sudoers mail_no_host: Send mail if the user is not in sudoers for this host mail_no_perms: Send mail if the user is not allowed to run a command tty_tickets: Use a separate timestamp for each user/tty combo lecture: Lecture user the first time they run sudo lecture_file: File containing the sudo lecture authenticate: Require users to authenticate by default root_sudo: Root may run sudo ... (varias opciones ms) Linux Bsico LP001 Ver.1 1-24 Bastante til, ya que nos muestra las opciones y una pequea descripcin, ests opciones se establecen en el archivo de configuracin 'sudoers'. Una de las opciones ms importantes de consulta es -V, que permite listar las opciones (defaults) establecidas por defecto para sudo todos los usuarios, comandos, equipos, etc. Ms adelante veremos como establecer opciones especficas para ciertos usuarios, comandos o equipos. NOTA: tienes que estar como 'root' para usar esta opcin. # sudo -V Sudo version 1.6.9p5 Sudoers path: /etc/sudoers Authentication methods: 'pam' Syslog facility if syslog is being used for logging: local2 Syslog priority to use when user authenticates successfully: notice Syslog priority to use when user authenticates unsuccessfully: alert Send mail if the user is not in sudoers Lecture user the first time they run sudo Require users to authenticate by default Root may run sudo Log the hostname in the (non-syslog) log file Allow some information gathering to give useful error messages Visudo will honor the EDTOR environment variable Set the LOGNAME and USER environment variables Reset the environment to a default set of variables Length at which to wrap log file lines (0 for no wrap): 80 Authentication timestamp timeout: 5 minutes Password prompt timeout: 5 minutes Number of tries to enter a password: 3 Umask to use or 0777 to use user's: 022 Path to log file: /var/log/sudo.log ... (varias opciones ms listadas) Truncamos el listado anterior en la lnea "Path to log file: /var/Iog/sudo.Iog", donde se indica cual es el archivo 'log' o de registro por defecto de sudo, en este archivo se registra absolutamente todo lo que se haga con sudo, que usuarios ejecutaron que, intentos de uso, etc. Linux Bsico LP001 Ver.1 1-25 visudo Permite la edicin del archivo de configuracin de sudo sudoers. nvoca al editor que se tenga por defecto que generalmente es 'vi'. visudo cuando es usado, bloquea el archivo /etc/sudoers de tal manera que nadie ms lo puede utilizar, esto por razones obvias de seguridad que evitarn que dos o ms usuarios administradores modifiquen accidentalmente los cambios que el otro realiz. Otra caracterstica importante de visudo es que al cerrar el archivo, verifica que el archivo este bien configurado, es decir, detectar si hay errores de sintaxis principalmente en sus mltiples opciones o reglas de acceso que se tengan. Por esta razn no debe editarse /etc/sudoers directamente (perfectamente posible ya que es un archivo de texto como cualquier otro) sino siempre usar visudo. Si al cerrar visudo detecta un error nos mostrar la lnea donde se encuentra, y la pregunta "What now?": >>> sudoers fiIe: syntax error, Iine 15 <<< What now? Se tienen tres opciones para esta pregunta: * e - edita de nuevo el archivo, colocando el cursor en la lnea del error (si el editor soporta esta funcin.) * x - salir sin guardar los cambios. * Q - salir y guarda los cambios. Por defecto el archivo de configuracin es /etc/sudoers pero se pueden editar otros archivos que no sean ese y que se aplique la sintaxis de sudo, y esto se logra con la opcin -f (visudo -f /otro/archivo). Si tan solo se desea comprobar que /etc/sudoers esta bien configurado se usa la opcin -c, toma por el archivo de configuracin por defecto o si no se indica algn otro. #> visudo -c /etc/sudoers fiIe parsed OK La opcin -s activa el modo 'estricto' del uso de visudo, es decir no solo se comprobar lo sintctico sino tambin el orden correcto de las reglas, por ejemplo si se define el alias para un grupo de comandos y este se usa antes de su definicin, con esta opcin se detectar este tipo de errores. Linux Bsico LP001 Ver.1 1-26 Sudoers Archivo de configuracin de sudo, generalmente ubicado bajo /etc y se modifica a travs del uso de visudo. En este archivo se establece quien (usuarios) puede ejecutar que (comandos) y de que modo (opciones), generando efectivamente una lista de control de acceso que puede ser tan detallada como se desee. Es ms fcil entender sudo si dividimos en tres partes su posible configuracin, ests son: * AIias * Opciones (DefauIts) * RegIas de acceso Por extrao que parezca ninguna de las secciones es obligatoria, o tienen que estar en algn orden especfico, pero la que al menos debe de existir es la tercera, que es la definicin de los controles o reglas de acceso. Se detallar cada uno de estos en un momento. Para los que les gusta saber ms la cuestin tcnica es interesante saber que la construccin de un archivo sudoers esta basado en la forma BNF (Backus-Naur Form), concretamente en versin extendida (EBNF), si estudiaste algn curso de informtica universitario seguramente entenders esto ultimo. EBNF describe de una forma precisa y exacta la gramtica de un lenguaje, esta se va creando a travs de reglas de produccin que a la vez son la base para ser referenciadas por otras reglas. Afortunadamente no se necesita saber nada de esto, solo entender como se aplican estas reglas. AIias Un alias se refiere a un usuario, un comando o a un equipo. El alias engloba bajo un solo nombre (nombre del alias) una serie de elementos que despus en la parte de definicin de reglas sern referidos aplicados bajos cierto criterio. Es decir, regresando a EBNF estamos creando las reglas de produccin inicial. La forma para crear un alias es la siguiente: tipo_aIias NOMBRE_DEL_ALIAS = eIemento1, eIemento2, eIemento3, ... eIementoN tipo_aIias NOMBRE1 = eIemento1, eIemento2 : NOMBRE2 = eIemento1, eIemento2 En el segundo caso, separado por ":" es posible indicar ms de un alias en una misma definicin. El tipo_alias define los elementos, es decir, dependiendo del tipo de alias sern sus elementos. Los tipo de alias son cuatro y son los siguientes: * Cmnd_AIias - define aIias de comandos. * User_AIias - define aIias de usuarios normaIes. * Runas_AIias - define aIias de usuarios administradores o con priviIegios. * Host_AIias - define aIias de hosts o equipos. El NOMBRE_DEL_ALIAS puede llevar letras, nmeros o guin bajo ( _ ) y DEBE de comenzar con una letra mayscula, se acostumbra a usarlos siempre en maysculas. Linux Bsico LP001 Ver.1 1-27 Los elementos del alias varan dependiendo del tipo de alias, as que veamos por partes as como varios ejemplos para que comprender esto. Cmnd_AIias Definen uno o ms comandos y otros alias de comandos que podrn ser utilizados despus en alias de usuarios. Ejemplos: Cmnd_AIias WEB = /usr/sbin/apachectI, /usr/sbin/httpd, sudoedit /etc/httpd/ ndica que a quien se le aplique el alias WEB podr ejecutar los comandos apachectI, httpd y editar todo lo que este debajo del directorio /etc/httpd/, ntese que debe de terminar con '/' cuando se indican directorios. Tambin, la ruta completa a los comandos debe ser indicada. Cmnd_AIias APAGAR = /usr/bin/shutdown -h 23\:00 Al usuario que se le asigne el alias APAGAR podr hacer uso del comando 'shutdown' exactamente con los parmetros como estn indicados, es decir apagar -h (haIt) el equipo a las 23:00 horas. Notar que es necesario escapar el signo ':', as como los smbolos ' : , = \ Cmnd_AIias NET_ADMIN = /sbin/ifconfig, /sbin/iptabIes, WEB NET_ADMIN es un alias con los comandos de configuracin de interfaces de red ifconfig y de firewall iptabIes, pero adems le agregamos un alias previamente definido que es WEB, as que a quien se le asigne este alias podr hacer uso de los comandos del alias WEB. Cmnd_AIias TODO_BIN = /usr/bin/, !/usr/bin/rpm A quien se le asigne este alias podr ejecutar todos los comandos que estn dentro del directorio /usr/bin/ menos el comando 'rpm' ubicado en el mismo directorio. NOTA IMPORTANTE: este tipo de alias con un permiso muy amplio menos '!' algo, generalmente no son una buena idea, ya que comandos nuevos que se aadan despus a ese directorio tambin podrn ser ejecutados, es mejor siempre definir especficamente lo que se requiera. User_AIias Definen a uno o ms usuarios, grupos del sistema (indicados con %), grupos de red (netgroups indicados con +) u otros alias de usuarios. Ejemplos: User_AIias MYSQL_USERS = andres, nataIia, hector, %mysqI ndica que al alias MYSQL_USERS pertenecen los usuarios indicados individualmente ms los usuarios que formen parte del grupo 'mysqI'. Linux Bsico LP001 Ver.1 1-28 User_AIias ADMIN = Iuis, andrea 'Iuis' y 'andrea' pertenecen al alias ADMIN. User_AIias TODOS = ALL, !manueI, !danieI Aqu encontramos algo nuevo, definimos el alias de usuario TODOS que al poner como elemento la palabra reservada 'ALL' abarcara a todos los usuarios del sistema, pero no deseamos a dos de ellos, asi que negamos con '!', que seran los usuarios 'manueI' y 'danieI'. Es decir, todos los usuarios menos esos dos. NOTA IMPORTANTE: este tipo de alias con un permiso muy amplios menos '!' algo, generalmente no son una buena idea, ya que usuarios nuevos que se aadan despus al sistema tambin sern considerados como ALL, es mejor siempre definir especficamente a los usuarios que se requieran. ALL es vlido en todos los tipos de alias. User_AIias OPERADORES = ADMIN, aIejandra Los del alias ADMIN ms el usuario 'aIejandra'. Runas_AIias Funciona exactamente igual que User_AIias, la nica diferencia es que es posible usar el ID del usuario UID con el carcter '#'. Runas_AIias OPERADORES = #501, constanza Al alias OPERADORES pertenecen el usuario con UID 501 y el usuario 'constanza' Host_AIias Definen uno o ms equipos u otros alias de host. Los equipos pueden indicarse por su nombre (si se encuentra en /etc/hosts) por nombre de dominio, si existe un resolvedor de dominios, por direccin IP, por direccin IP con mscara de red. Ejemplos: Host_AIias LANS = 192.168.0.0/24, 192.168.0.1/255.255.255.0 El alias LANS define todos los equipos de las redes locales. Host_AIias WEBSERVERS = 172.16.0.21, web1 : DBSERVERS = 192.168.100.10, dataserver Se define dos alias en el mismo rengln: WEBSERVERS y DBSERVERS con sus respectivas listas de elementos, el separador ':' es vlido en cualquier definicin de tipo de alias. Opciones (defaults) Las opciones o defaults permiten definir ciertas caractersticas de comportamiento para los alias previamente creados, para usuarios, usuarios privilegiados, para equipos o de manera global para todos. No es necesario definir opciones o defaults, sudo ya tiene establecidas el valor de cada uno, y Linux Bsico LP001 Ver.1 1-29 es posible conocerlas a travs de sudo -V (ver en la seccin sudo de este manual). Sin embargo, la potencia de sudo est en su alta granularidad de configuracin, as que es importante conocer como establecer opciones especficas. Las opciones o defaults es posible establecerlos en cuatro niveles de uso: * De manera gIobaI, afecta a todos * Por usuario * Por usuario priviIegiado * Por equipo (host) Se usa la palabra reservada 'Defaults' para establecer las opciones y dependiendo del nivel que deseamos afectar su sintaxis es la siguiente: * GIobaI: DefauIts opcion1, opcion2 ... * Usuario: DefauIts:usuario opcion1, opcion2 ... * Usuario PriviIegiado: DefauIts>usuario opcion1, opcion2 ... * Equipo: DefauIts@equipo opcion1, opcion2 ... La lista de opciones es algo extensa, pueden consultarse en las pginas del manual (man sudoers) o en el manual sobre sudo del sitio http://www.rpubIica.net/sudo/indice.htmI#defauIts, est en espaol y define muy claramente lo que significa cada opcin. En este manual nos concentraremos a mostrar varios ejemplos del uso de establecer opciones. Los defauIts los divide el manual (man sudoers) en cuatro: fIags o booIeanos, enteros, cadenas y listas. Veamos entonces algunos ejemplos de uso para cada uno de ellos: fIags o booIeanos Generalmente se usan de manera global, simplemente se indica la opcin y se establece a 'on' para desactivarla 'off' se antepone el smbolo '!' a la opcin. Es necesario consultar el manual para saber el valor por defecto 'on' o 'off' para saber si realmente necesitamos invocarla o no. DefauIts maiI_aIways Establece a 'on' la opcin 'maiI_aIways' que enviara un correo avisando cada vez que un usuario utiliza sudo, a la vez, este opcin requiere que 'maiIto_user' este establecida. DefauIts !authenticate, Iog_host Desactiva 'off' el default 'authenticate' que por defecto esta activado 'on' e indica que todos los usuarios que usen sudo deben identificarse con su contrasea, obviamente esto es un ejemplo y sera una psima idea usarlo realmente, ya que ningn usuario necesitara autenticarse, esto es porque estamos usando DefauIts de manera global. La segunda opcin 'Iog_host' que por defecto Linux Bsico LP001 Ver.1 1-30 est en 'off' la activamos y registra el nombre del host cuando se usa un archivo (en vez de syslog) como registro de sudo. DefauIts:cataIina !authenticate Aqu se aprecia algo ms lgico, usamos opciones por usuario en vez de global, indicando que el usuario 'cataIina' no requerir autenticarse. Pero todos los dems si. DefauIts>ADMIN rootpw Opciones para usuarios privilegiados, en vez de usar una lista de usuarios, usamos un alias 'ADMIN' que se supone fue previamente definido, y establecemos en 'on' la opcin 'rootpw' que indica a sudo que los usuarios en el alias 'ADMIN' debern usar la contrasea de 'root' en vez de la propia. Enteros Tal como su nombre lo indica, manejan valores de nmeros enteros en sus opciones, que deben entonces usarse como opcin = valor. DefauIts:fernando, renata passwd_tries = 1, passwd_timeout = 1 Ejemplo donde se aprecia el uso de opciones con valores enteros. En este caso se establecen opciones para los usuarios 'fernando' y 'renata' solamente, que solo tendrn una oportunidad de ingresar la contrasea correcta 'passwd_tries' el valor por defecto es de 3 y tendrn un minuto para ingresarla 'passwd_timeout' el valor por defecto son 5 minutos. La mayora de las opciones de tiempo o de intentos, al establecerlas con un valor igual a cero entonces queda ilimitado la opcin. DefauIts@webserver umask = 011 Se establecen opciones solo para los usuarios que se conectan al servidor 'webserver' y el valor 'umask' indica que si mediante la ejecucin del comando que se invoque por sudo es necesario crear archivos o directorios, a estos se les aplicar la mscara de permisos indicada en el valor de la opcin. Cadenas Son valores de opciones que indican mensajes, rutas de archivos, etc. Si hubiera espacios en el valor es necesario encerrar el valor entre comillas dobles (" "). DefauIts badpass_message = "Intenta de nuevo: " Para todos los usuarios, cuando se equivoquen al ingresar la contrasea, es el mensaje que saldra. En este caso la opcin por defecto es "Sorry: try again". Linux Bsico LP001 Ver.1 1-31 Listas Permite establecer/eliminar variables de entorno propias de sudo. Los 'DefauIts' para variables es de los menos usados en las configuraciones de sudo y ciertamente de los ms confusos. Para entender como se aplican es ms fcil si primero ejecutas como 'root' el comando sudo -V, y al final del listado encontrars en maysculas las posibles variables de entorno que se pueden establecer o quitar y que vienen del shell. Solo existen tres opciones de listas: env_check, env_deIete y env_keep, las listas pueden ser remplazadas con '=', aadidas con '+=', eliminadas con '-=' o deshabilitadas con '!'. Con un par de ejemplos quedar ms claro. DefauIts env_deIete -= HOSTNAME Elimina la variable de entorno 'HOSTNAME', (pero preserva todas las dems que hubiera) y comandos que se ejecuten bajo sudo y que requieran de esta variable no la tendran disponible. DefauIts env_reset DefauIts env_check += DISPLAY, PS1 La primera opcin 'env_reset' reinicia las variables de entorno que sudo utilizar o tendr disponibles, y solo quedan disponibles LOGNAME, SHELL, USER y USERNAME. La siguiente lnea indica que agregue (+=) a lo anterior, tambin la variable de entorno DISPLAY a su valor establecido antes del reset. RegIas de acceso Aunque no es obligatorio declarar alias, ni opciones (defauIts), y de hecho tampoco reglas de acceso, pues el archivo /etc/sudoers no tendra ninguna razn de ser si no se crean reglas de acceso. De hecho podramos concretarnos a crear solamente reglas de acceso, sin opciones ni alias y podra funcionar todo muy bien. Las reglas de acceso definen que usuarios ejecutan que comandos bajo que usuario y en que equipos. La mejor manera de entender y aprender a configurar sudoers es con ejemplos: usuario host = comando1, comando2, ... comandoN Sintaxis bsica, 'usuario' puede ser un usuario, un aIias de usuario o un grupo (indicado por %), 'host' puede ser ALL cualquier equipo, un solo equipo, un aIias de equipo, una direccin IP o una definicin de red IP/mscara, 'comandoX' es cualquier comando indicado con su ruta completa. Si se termina en '/' como en /etc/http/ entonces indica todos los archivos dentro de ese directorio. danieIa ALL = /sbin/iptabIes Usuario 'danieIa' en cuaIquier host o equipo puede utilizar iptabIes. ADMIN ALL = ALL Linux Bsico LP001 Ver.1 1-32 Los usuarios definidos en el alias 'ADMIN' desde cuaIquier host pueden ejecutar cualquier comando. %gerentes dbserver = (director) /usr/facturacion, (root) /var/Iog/* Un ejemplo ms detallado. Los usuarios que pertenezcan al grupo del sistema llamado 'gerentes' pueden en el equipo llamado 'dbserver' ejecutar como si fueran el usuario 'director' la aplicacin llamada 'facturacion', adems como usuarios 'root' pueden ver el contendido de los archivos que contenga el directorio /var/Iog. Lo anterior introduce algo nuevo, que en la lista de comandos es posible indicar bajo que usuario se debe ejecutar el permiso. Por defecto es el usuario 'root', pero no siempre tener que as. Adems la lista 'hereda' la primera definicin de usuario que se indica entre parntesis ( ), por eso si se tiene ms de alguno hay que cambiar de usuario en el comando conveniente, el ejemplo anterior tambin sera vlido de la siguiente manera: %gerentes dbserver = /var/Iog/*, (director) /usr/facturacion No es necesario indicar (root) ya que es el usuario bajo el cual se ejecutan los comandos por defecto. Tambin es vlido usar (ALL) para indicar bajo cualquier usuario. El ejemplo siguiente da permisos absolutos. enrique ALL = (ALL) ALL Se establece permiso para el usuario 'enrique' en cualquier host, ejecutar cualquier comando de cualquier usuario, por supuesto incluyendo los de root. SUPERVISORES PRODUCCION = OPERACION Una regla formada solo por alias. En el alias de usuario 'SUPERVISORES' los usuarios que esten indicados en ese alias, tendrn permiso en los equipos definidos en el alias de host 'PRODUCCION', de ejecutar los comandos definidos o listados en el alias de comandos 'OPERACION'. En este ltimo ejemplo se aprecia lo til que pueden ser los alias, ya que una vez definida la regla, solo debemos agregar o eliminar elementos de las listas de alias definidos previamente. Es decir, se agrega un equipo ms a la red, se aade al alias 'PRODUCCION', un usuario renuncia a la empresa, alteramos el alias 'SUPERVISORES' eliminndolo de la lista, etc. feIipe ALL = /usr/bin/passwd *, !/usr/bin/passwd root Este es un ejemplo muy interesante de la potencia y flexibilidad . Al usuario 'feIipe', desde cualquier equipo, tiene permiso de cambiar la contrasea de cualquier usuario (usando el comando 'passwd'), excepto '!' la contrasea del usuario 'root'. Lo anterior se logra mediante el uso de argumentos en los comandos. En el primer ejemplo '/usr/bin/passwd *' el asterisco indica una expansin de comodn (wiIdcard) que indica cualquier argumento, es decir, cualquier usuario. En el segundo caso '!/usr/bin/passwd root', si indica un argumento especfico 'root', y la '!' como ya se sabe indica negacin, negando entonces el permiso a cambiar la contrasea de root.. Cuando se indica el comando sin argumentos: /sbin/iptabIes sudo lo interpreta como 'puede usar iptables con cualquiera de sus argumentos'. Linux Bsico LP001 Ver.1 1-33 maria ALL = "/sbin/Ismod" Al estar entre comillas dobles un comando, entonces sudo lo interpreta como 'puede hacer uso del comando Ismod pero sin argumentos'. En este caso el usuario 'maria' podr ver la lista de mdulos del kernel, pero solo eso. Tags (etiquetas de comandos) Cuando se definen reglas, en la lista de comandos, estos pueden tener cero (como en los ejemplos anteriores) o ms tags. Existen 6 de estas etiquetas o tags, NOPASSWD Y PASSWD Por defecto sudo requiere que cualquier usuario se identifique o autentifique con su contrasea. Aprendimos en la seccin de 'Opciones' o 'Defaults' que es posible indicar que un usuario o alias de usuario no requiera de identificacin. Pero el control granular propio de sudo, permite ir aun ms lejos al indicar a nivel de comandos, cules requieren contrasea para su uso y cules no. genaro webserver = NOPASSWD: /bin/kiII, /usr/bin/Iprm, /etc/httpd/conf/ Usuario 'genaro' en el equipo 'webserver' no requerir contrasea para los comandos listados. El tag se hereda, es decir no solo el primer elemento de la lista de comandos, sino los subsiguientes. Suponiendo que el ltimo '/etc/httpd/conf/' elemento, que permite modificar cualquier archivo contenido en el directorio, si deseamos que use contrasea, lo siguiente lo conseguir: genaro webserver = NOPASSWD: /bin/kiII, /usr/bin/Iprm, PASSWD: /etc/httpd/conf/ Aunque ya que solicitar contrasea es el default o defecto preestablecido, lo anterior tambin funcionar de la siguiente manera: genaro webserver = /etc/httpd/conf/, NOPASSWD: /bin/kiII, /usr/bin/Iprm, NOEXEC Y EXEC Este es un tag muy importante a considerar cuando sobre se otorgan permisos sobre programas que permiten escapes a shell (shell escape), como en el editor 'vi' que mediante el uso de '!' es posible ejecutar un comando en el shell sin salir de 'vi'. Con el tag NOEXEC se logra que esto no suceda, aunque no hay que tomarlo como un hecho, ya que siempre existe la posibilidad de vulnerabilidades no conocidas en los mltiples programas que utilizan escapes a shell. Al igual que los tags anteriores, el tag se hereda y se deshabilita con su tag contrario (EXEC), en caso de que en la lista de comandos hubiera varios comandos. vaIentina ALL = NOEXEC: /usr/bin/vi SETENV Y NOSETENV Una de las mltiples opciones que pueden establecerse en la seccin 'DefauIts' u 'opciones' es la opcin booleana o de flag 'setenv' que por defecto y para todos los usuarios esta establecida en 'off'. Esta opcin si se activa por usuario (DefauIts:sergio setenv) permitir al usuario indicado cambiar el Linux Bsico LP001 Ver.1 1-34 entorno de variables del usuario del cual tiene permisos de ejecutar comandos, y como generalmente este es 'root' pues es obvio que resulta bastante peligrosa esta opcin. A nivel de lista de comandos, es posible entonces especificar el tag 'SETENV' a un solo comando o a una pequea lista de estos y solo cuando se ejecuten estos se podrn alterar su entorno de variables. Es decir, en vez de establecerlo por usuario, sera mas conveniente establecerlo por comando a ejecutarse solamente. ADMIN ALL = SETENV: /bin/date, NOSETENV ALL A los usuarios definidos en el alias de usuario 'ADMIN' en cualquier host, pueden alterar las variables de entorno cuando ejecuten el comando 'date' (que puede ser til por ejemplo para cambiar variables del tipo LOCALE), y cualquier otro comando, no tendr esta opcin al habilitar el tag contrario 'NOSETENV'. Y ya que este es el defauIt, tambin sera vlido de la siguiente manera y haran lo mismo: ADMIN ALL = ALL, SETENV: /bin/date Archivo /etc/sudoers de ejempIo Para concluir este manual, veamos un pequeo ejemplo de un archivo /etc/sudoers: # *********************** # ejemplo de un archivo sudoers # enrique.herreranoya@gmail.com # *********************** # *********************** # DEFNCON DE ALAS # *********************** # administradores con todos los privilegios User_AIias ADMINS = Iuis, andrea # administradores de red - network operators User_AIias NETOPS = marceIo, andres # webmasters - User_AIias WEBMAS = cristina, esteban # supervisores de produccin (todos los del grupo de sistema supervisores) User_AIias SUPPRO = manueI, %supervisores # usuarios que pueden conectarse desde nternet User_AIias INETUS = NETOPS, ADMINS, manueI # servidores web Linux Bsico LP001 Ver.1 1-35 Host_AIias WEBSERVERS = 10.0.1.100, 10.0.1.101 # servidores de aplicaciones Host_AIias APLICACIONES = WEBSERVERS, 10.0.1.102, 10.0.1.103, maiIserver # comandos de red permitidos Cmnd_AIias REDCMDS = /sbin/ifconfig, /sbin/iptabIes # comandos de apache Cmnd_AIias APACHECMDS = /usr/sbin/apachectI, /sbin/service httpd * # *********************** # DEFNCON DE OPCONES # *********************** # Los usuarios administradores, requieren autentificarse con la contrasea de 'root' DefauIts>ADMINS rootpw # Para todos los usuarios, tienen hasta dos intentos para ingresar su contrasea y 3 minuto para que esta expire DefauIts passwd_tries = 4, passwd_timeout = 1 # Los usuarios que se conectan desde nternet, solo tienen una oportunidad y cero timeout lo que # implica que cada comando que usen a travs de sudo requerira siempre de autentificacin. DefauIts:INETUS passwd_tries = 1, passwd_timeout = 0 # Mscara de directorios y archivos por default, para los que ejecuten sudo en los servidores web DefauIts@WEBSERVERS umask = 022 # *********************** # DEFNCON DE REGLAS # *********************** # administradores todo se les permite en cualquier equipo (cuidado con esto en la vida real!!!!! ADMINS ALL = (ALL) ALL # administradores de red, en todos los equipos, los comandos de red NETOPS ALL = REDCMDS # webmasters, en los servidores web con los comandos indicados en apachecmds y adems sin # necesidad de contrasea acceder a las btacoras de apache y reiniciar los servidores. WEBMAS WEBSERVERS = APACHECMDS, NOPASSWD: /var/Iog/apache/, /sbin/reboot # supervisores, pueden ejecutar los comandos indicados en los equipos indicados en el alias # aplicaciones y adems son ejecutados bajo el usuario apps. SUPPRO APLICACIONES = NOEXEC: (apps) /usr/IocaI/facturacion.exe, /usr/IocaI/ventas.exe, Linux Bsico LP001 Ver.1 1-36 /usr/IocaI/nomina.exe # no definidos por alias previos, sino directamente # renata es de recursos humanos y puede cambiar contraseas de cualquier usuario menos de root renata ALL = /usr/bin/passwd *, !/usr/bin/passwd root # daniel, puede apagar los equipos de aplicaciones danieI APLICACIONES = /sbin/shutdown, /sbin/haIt # El equipo firewall de la red puede ser reiniciado (no apagado) por felipe que es asistente de redes feIipe firewaII = /sbin/shutdown -r now Comando id muestra informacin sobre el usuario actual Edicin de ficheros de texto El editor nano, es fcil de aprender, fcil de usar, no tiene tantas caractersticas como algunos editores de textos avanzados Otros editores: Kate es un editor grfico sencillo vim un avanzado editor lleno de caractersticas Linux Bsico LP001 Ver.1 1-37 UNIDAD 4 Los editores vi y vim Linux Bsico LP001 Ver.1 1-38 Introduccin a VIM La versin mas nueva de vi, el editor estndar de Linux Ventajas: VeIocidad: Se hace mas con menos tecleos SimpIicidad: No depende de un mouse/GU DisponibiIidad: ncluido con la mayora de los sistema operativos tipo Unix Desventajas DificuItad: Mas empinada curva de aprendizaje que editores mas simples y asociaciones de teclas enfatiza mas en la velocidad que en la intuicin El comportamiento de lo tecleado depende del "modo de vim Son tres modos principales: Modo comando (por defecto): Mover cursor, cortar/pegar texto, cambiar modo Modo de Insercin: Modificar texto Modo ejecucin: Guardar, salir, etc Esc sale modo actual EscEsc siempre vuelve al modo comando Uso bsico de vim Para usar vim, debe al menos ser capaz de Abrir un archivo Modificar un archivo (modo insercin) Guardar un archivo (modo ejecucin) Abrir, modificar y guardar ficheros Abriendo un archivo en vim Para arrancar vi: vim nombredearchivo Si el archivo existe, el archivo se abre y se muestra el contenido, si el archivo no existe, vi lo crea cuando las modificaciones se guardan por primera vez. Modificando un archivo Modo Insercin i comienza el modo de insercin en el cursor Muchas otras opciones existen A agrega al final de la linea I inserta al comienzo de la linea o inserta una nueva linea (abajo) O inserta una nueva linea (encima) Linux Bsico LP001 Ver.1 1-39 Guardando un archivo y SaIiendo de Modo ejecucin Entrar en Modo ejecucin con : Crea un prompt de comando en la parte inferior izquierda de la pantalla Comando comunes de escribir/salir: :w escribir (guardar) el archivo en el disco :wq escribir y salir :q! salir, incluso si perdiendo los cambios (Forzar) EI modo comando Usando eI modo comando Modo por defecto de vim, claves describe el movimiento y los comandos de manipulacin de texto Comandos se repiten cuando es precedido por un nmero Ejemplo FIecha derecha mueve a la derecha un carcter 5, FIecha derecha mueve a la derecha cinco caracteres DespIazarse por eI modo comando Mover por carcter: teclas de flechas, h, j, k, I No Teclas flechas til para conexiones remotas a los sistemas ms antiguos Mover por palabra: w, b Mover por frase: ), ( Mover por prrafo: }, { Saltar a la linea x: xG Saltar al final: G Buscar y reempIazar Modo comando Bsqueda en Iess /, n, N Buscar/Remplazar como en sed Afecta a la linea actual por defecto, utiliza rango x,y o % para todo el archivo :1,5 s/cat/dog/ # ( desde la linea 1 a la 5 ) :% s/cat/dog/g # (t odo el archivo ) Linux Bsico LP001 Ver.1 1-40 ManipuIando Texto Modo comando Cambiar (remplazar) Borrar (cortar) Yank (copiar,tirar) Linea cc dd yy Letra cI dI yI Palabra cw dw yw Frase adelante c) d) y) Frase anterior c( d( y( Prrafo arriba c{ d{ y{ Prrafo debajo c} d} y} Deshacer cambios Deshacer Cambios Modo comando u deshacer cambios ms recientes U deshacer todos los cambios de la lnea actual desde el lugar donde esta cursor en la linea CtrI-r Rehacer ltimo cambio "deshecho" EI modo visuaI Permite la seleccin de bloques de texto v comienza destacado orientado al carcter V comienza destacado orientado a la linea Activado con el mouse en gvim Teclas visuales se pueden utilizar en conjunto con las teclas de movimiento: w, ), }, arrows, etc Texto destacado puede ser borrado, copiado, cambiado, filtrado, buscado/reemplazado, etc. Dividir pantaIIa Usando mltiples "ventanas" Mltiple documentos pueden ser vistos en una sola pantalla vim CtrI-w, s divide horizontalmente la pantalla CtrI-w, v divide la pantalla verticalmente CtrI-w, Arrow se mueve entre ventanas Modo ejecucin siempre afecta a las instrucciones de la ventana actual ventana :heIp muestra mas ventana de comandos Linux Bsico LP001 Ver.1 1-41 Configuracin de vi y vim Configurando al vuelo :set o :set aII Configurando permanentemente ~/.vimrc o ~/.exrc :set number :set autoindent :set textwidth=65 (soIo vim) :set wrapmargin=15 :set ignorecase Unos pocos elementos de configuracin comn Ejecutar opcin :heIp para una lista completa
Linux Bsico LP001 Ver.1 1-42 UNIDAD 5 - Comandos y uso de ayuda Linux Bsico LP001 Ver.1 1-43 Ejecutar comandos Los comandos tienen la siguiente sintaxis: comando opciones argumentos Cada elemento va separado por un espacio, las opciones modifican el comportamiento de un comando. Opciones de una letra usualmente son precedidas por: - Pueden ser pasadas como -a -b -c o -abc Opciones con palabras completas usualmente son precedidas por: -- Ejemplo: --heIp Los argumentos son nombres de archivos u otros datos necesarios para el comando, mltiples comandos pueden estar separados por ; Algunos comandos simples: date despliega fecha y hora caI despliega un calendario UtiIizar Ia ayuda No hay que tratar de memorizar todo!, existen muchos niveles de ayuda. Ejemplo: whatis comando -heIp man comando info comando Tambin se puede encontrar informacin en /usr/share/doc/ Se puede acceder a la documentacin de Gnu/Linux, en nternet o impresa. EI comando whatis y Ia opcin --heIp El comando whatis, despliega una descripcin corta de los comandos. Utiliza una base de datos que se actualizan cada noche, a menudo no estn disponibles inmediatamente despus de instalar $ whatis caI # muestra un caIendario caI (1) Linux Bsico LP001 Ver.1 1-44 La opcin --heIp , muestra un resumen del uso y una lista de argumentos, es utilizado por la mayora, pero no todos, los comandos. $ date --heIp Uso: date [OPTIONES]... [+FORMATO] o: date [-u|--utc|--universaI] [MMDDhhmm[[CC]YY][.ss]] Muestra la hora actual dado FORMATO, o establece la fecha del sistema. Un resumen de lectura de uso, es impreso por --heIp, el man de los comandos y otros Se utiliza para describir la sintaxis de un comando Argumentos en [ ] son opcionales Argumentos en MAYUSCULAS o <> son variables Texto seguido por ... representan una lista. x|y|z significa "x o y o z" -abc significa "cualquier combinacin de -a, -b o -c" Los comandos man e info El comando man, proporciona documentacin de los comandos, casi todos los comandos tienen una "pgina" man. Las paginas estn agrupadas en "captulos, son referidas en forma colectiva como el Manual de Linux man [<capituIo>] <comando> Navegando por las paginas man: Mientras estamos viendo una pagina man Navegamos con las teclas de fIechas, PgUp, PgDn, con /text buscamos coincidencias de text, n/N va a siguiente/previa coincidencia, q para salir. man -k paIabracIave (lista todas las pginas coincidentes) Usa la base de datos de whatis, la bsqueda en el Man. El comando info, tiene una profundidad semejante al man, pero a menudo es ms Ejecutar info sin argumentos lista todas las pginas, las pginas de info estn estructurados como un sitio web, cada pgina est dividida en "nodos" y los enlaces a los nodos estn precedidos por: * info [comando] Navegando por las paginas info: Mientras vemos una pagina info, navegamos con las teclas de fIecha, PgUp, PgDn; Tab nos mueve al siguiente enlace, Enter sigue el enlace seleccionado, n/p/u va al siguiente/previo/hasta_el_nodo, s text bsqueda para text (por defecto: ultima bsqueda), q salir de info Linux Bsico LP001 Ver.1 1-45 La documentacin Hay una extensa documentacin, tenemos en el directorio /usr/share/doc, los sub-directorios para la mayora de los paquetes instalados, ademas es la localizacin de documentos que no caben en otro lugar, tambin estn los archivos de configuracin por ejemplo. Tambin hay documentacin en formatos HTML/PDF/PS y detalles de la licencia. Documentos disponibIes en CD o sitio web de CentOS Gua de instalacin Gua de implementacin Gua de Virtualizacin Entrada y saIida de comandos estndar y pipes Entrada y saIida estndar Linux provee tres canales I/O a los programas Entrada estndar (STDIN) teclado por defecto Salida estndar (STDOUT) ventana de terminal por defecto Errores estndar (STDERR) - ventana de terminal por defecto Redirigir Ia entrada y saIida estndar STDOUT y STDERR pueden ser enviados a archivos, los operadores admitidos son: comando operador archivo > redirige STDOUT a un archivo 2> redirige STDERR a un archivo &> redirige todas las salidas a un archivo Los contenidos de los archivos son sobre escritos por defecto, con >> se agrega. El comando find genera una salida y errores, cuando se ejecuta como usuario no root: $ find /etc -name passwd Operadores pueden ser usados para almacenar la salida y errores: $ find /etc -name passwd > find.out $ find /etc -name passwd 2> /dev/nuII $ find /etc -name passwd > find.out 2> find.err Linux Bsico LP001 Ver.1 1-46 El comando find nos permite realizar una bsqueda de uno o varios archivos dentro de la jerarqua de directorios. Y no slo podemos buscar, adems podemos ejecutar acciones sobre lo encontrado por el comando find. Por otro lado, podemos realizar la bsqueda mediante varios criterios. Operadores mportantes de redireccin Operador Significa < archivo Toma como entrada estndar desde archivo. > archivo Escribe la salida estndar al archivo. >> archivo Agrega la salida estndar al archivo. >&2 Escribe la secuencia de salida estndar para la secuencia de error estndar. 2> archivo Escribe la secuencia de error estndar al archivo. 2>&1 Escribe la secuencia de error estndar a la secuencia de salida estndar. x | y Procesa y toma como entrada el resultado del proceso x. Direccionamiento de STDOUT a un programa (Piping) Pipe (el carcter |) puede conectar comandos: comando1 | comando2 Enva STDOUT del comando1 para STDIN del comando2 en ves de a la pantalla, STDERR no es transmitido a travs de pipe, se utiliza para combinar la funcionalidad de mltiples herramientas comando1 | comando2 | comando3... etc Ejemplos: Iess: Ver entrada de una pgina a la vez: $ Is -I /etc | Iess En la entrada se puede buscar con / maiI: enviar una entrada va email: $ echo "correo de prueba" | maiI -s "prueba" user@exampIe.com Ipr: enviar entrada a la impresora $ echo "prueba de impresin" | Ipr $ echo "prueba de impresin" | Ipr -P printer_name Combinando saIidas y errores Algunos operadores afectan tanto a STDOUT y STDERR &> Redirecciona todas las salidas: $ find /etc -name passwd &> find.aII 2>&1 Redirecciona STDERR a STDOUT tiles para el envo de todas las salidas a travs de una tubera $ find /etc -name passwd 2>&1 | Iess Linux Bsico LP001 Ver.1 1-47 () Combina STDOUTs de mltiples programas $ ( caI 2007 ; caI 2008 ) | Iess Direccionamiento de mltiples destinos (tee) $ comando1 | tee archivo | comando2 Almacena STDOUT del comando1 en archivo, a continuacin, enva al comando2 Uso: Soluciona problemas complejos, las tuberas permite la visualizacin simultnea, y registro de salida. Redireccinar STDIN desde un archivo. Redireccinar la entrada estndar con: <, algunos comandos puede aceptar los datos redirigido desde STDN a un archivo: $ tr 'A-Z' 'a-z' < .bash_profiIe Este comando cambia los caracteres en mayscula de .bash_profiIe a minsculas Equivalente a: $ cat .bash_profiIe | tr 'A-Z' 'a-z' El comando cat despliega por la salida estndar STDOUT el contenido de un archivo. Envo de mltiples lneas de STDIN Redireccinar varias lneas de teclado para STDIN con <<PALABRA Todo el texto hasta PALABRA es enviado a STDIN, a veces llamado como heretext $ maiI -s "Por favor IIamanos" joan@ejempIo.cI <<END >Hola Joan, >Por favor llamame cuando este aqu. Necesitamos >realizar un mantenimiento al servidor1. >Cuando llegues llamanos, >Enrique >END Scripting: para bucIes Realiza acciones en cada miembro de un conjunto de valores Ejemplo: for NAME in joe jane juIie do ADDRESS="$NAME@ejempIo.info" MESSAGE='Los proyectos terminan hoy!' Linux Bsico LP001 Ver.1 1-48 echo $MESSAGE | maiI -s Recordatorio $ADDRESS done El comando for asigna a la variable NAME el valor de lo que se indique despus de in que pueden ser una lista de valores, salida de comandos, listas de archivos. Scripting: para bucIes continuos Tambin se puede utilizar comandos de salida y listas de archivos: for num in $(seq 1 10) Asigna 1-10 a $num seq X Y imprime los nmeros X hasta Y for fiIe in *.txt Asigna nombre de archivos de texto a $fiIe Comandos para procesar texto Comandos para extraer, anaIizar y manipuIar texto Para ver contenido de archivos: Iess y cat cat: vuelca uno o mas archivos a STDOUT Mltiples archivos son concatenados a la vez Iess: ver un archivo o STDIN una pagina a la ves. Se puede usar comandos mientras visualizamos el archivo: /text busca text n/N salta a la siguiente/previa coincidencia v abre el archivo en un editor de texto Iess es el paginador usado por man Para extraer informacin de archivo: head y taiI head: Despliega las primeras 10 lineas de un archivo Use -n para cambiar el numero de lineas desplegadas taiI: Despliega las ultimas 10 lineas de un archivo Use -n para cambiar el numero de lineas desplegadas Linux Bsico LP001 Ver.1 1-49 Use -f para "seguir" en forma subsecuente las adiciones a el archivo Muy usado para el monitoreo de archivos de registro (log)! Para extraer por palabras claves: grep mprime lineas de un archivo o STDIN cuando coincide un patrn $ grep 'john' /etc/passwd $ date --heIp | grep year Use -i para bsquedas no sensibles a maysculas y minsculas Use -n para imprimir nmeros de linea de coincidencias Use -v para imprimir lineas que no contienen coincidencias Use -AX para incluir las X lineas despus de cada coincidencia Use -BX para incluir las X lineas antes de cada coincidencia Para extraer informacin por Columnas: cut Despliega columnas especificas de un archivo o datos de STDIN $ cut -d: -f 1 /etc/passwd $ grep root /etc/passwd | cut -d: -f7 Use -d para especificar la columna que delimita (por defecto es TAB) Use -f para especificar la columna para imprimir Use -c para cortar por caracteres $ cut -c2-5 /usr/share/dict/words Caracteres especiaIes Caracteres especiaIes para bsquedas compIejas. Expresiones reguIares ^ representa el inicio de linea $ representa el fin de linea Clases de caracteres como en bash: [abc], [^abc] [[:upper:]], [^[:upper:]] Usados por: grep, sed, Iess, otros Linux Bsico LP001 Ver.1 1-50 Comandos bsicos wc (word count) Contar palabras, lineas, bytes y caracteres Puede actuar sobre un archivo o STDIN $ wc story.txt 39 237 1901 story.txt Use -I para solo contar lineas Use -w para solo contar palabras Use -c para solo contar byte Use -m para solo contar caracteres (no desplegados) sort (ordenar) Ordena el texto y enva a STDOUT archivo original no es modificado $ sort [opciones] fiIe(s) Opciones comunes -r realiza un ordenamiento inverso (descendente) -n realiza un ordenamiento numrico -f ignora diferencias de maysculas o minsculas en cadena -u (nico) remueve lineas duplicadas en la salida -t c utiliza c como un separador de campo -k X ordena por campo X definido Puede ser utilizado en mltiples ocasiones EIiminando Iineas dupIicadas sort y uniq sort -u: elimina lineas duplicadas de la entrada uniq: elimina lineas duplicadas contiguas de la entrada Utilizar -c para contar el numero de ocurrencias Utilizar con sort para un mejor resultado: $ sort userIist.txt | uniq -c Comparando archivos (diff) Compara dos archivos buscando diferencias Linux Bsico LP001 Ver.1 1-51 $ diff foo.conf-broken foo.conf-works 5c5 < use_widgets = no --- > use_widgets = yes Denota una diferencia (cambio) en la linea 5 Utilizar gvimdiff para diff grfico, proporcionado por el paquete vim-X11 DupIicacin de cambios en archivos patch La salida de diff es almacenada en un archivo que es llamado "patchfiIe" Utilizar -u para "unificar" diff, lo mejor en patchfiles Cambios duplicados de patch en otros archivos (utilizar con cuidado!) Utilizar -b para automticamente respaldar archivos cambiados $ diff -u foo.conf-broken foo.conf-works > foo.patch $ patch -b foo.conf-broken foo.patch patch el archivo de revisin contiene un listado de diferencias producidas por el programa diferencias y aplica a esas diferencias de uno o ms archivos originales, produciendo versiones parcheadas. Normalmente, las versiones parcheadas, se colocan en lugar de los originales. Las copias de seguridad se puede hacer, ver la opcin -b o --backup. Los nombres de los archivos a reparar se toman generalmente del fichero de parche, pero si hay un solo archivo a reparar puede ser especificado en la lnea de comando como archivo original. Corrector ortogrfico con aspeII Comprobar ortografa de archivos interactivamente: $ aspeII check Ietter.txt De forma no interactiva lista de palabras escritas desde STDIN $ aspeII Iist < Ietter.txt $ aspeII Iist < Ietter.txt | wc -I Herramientas para manipular texto: tr y sed Alterar (traducir) Caracteres: tr Convierte caracteres en un conjunto de caracteres correspondientes en otro conjunto, solo lee los datos de STDIN $tr 'a-z' 'A-Z' < Iowercase.txt Linux Bsico LP001 Ver.1 1-52 Alterar cadenas de caracteres: sed (stream editor) Realiza la bsqueda/reemplazo operando en una secuencia de texto, normalmente no altera el archivo de origen Use -i.bak para respaldar y alterar el archivo fuente EjempIos de sed (entrecomillar bsqueda y reemplazar instrucciones! ) sed addresses sed 's/dog/cat/g' pets sed '1,50s/dog/cat/g' pets sed '/digby/,/duncan/s/dog/cat/g' pets Mltiples instrucciones sed sed -e 's/dog/cat/' -e 's/hi/Io/' pets sed -f myedits pets Linux Bsico LP001 Ver.1 1-53 UNIDAD 6 SheII BASH Linux Bsico LP001 Ver.1 1-54 Introduccin, historia y caractersticas de bash Introduccin: bash es un intreprete de Unix (intrprete de comandos de Unix) escrito para el proyecto GNU. Su nombre es un acrnimo de bourne-again shell (otro shell bourne) haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros shells importantes de Unix. Hacia 1978 el shell Bourne era el shell distribuido con el Unix Version 7. Stephen Bourne, por entonces investigador de los Laboratorios Bell, escribi el shell Bourne original. Brian Fox escribi el shell bash en 1987. En 1990. Chet Ramey se convirti en su principal desarrollador. Bash es el shell por defecto en la mayora de sistemas GNU/Linux, adems de Mac OS X Tiger, y puede ejecutarse en la mayora de los sistemas operativos tipo unix. Caractersticas: La sintaxis de rdenes de bash es un super conjunto de instrucciones basadas en la sintaxis del intrprete Bourne. La especificacin definitiva de la sintaxis de rdenes de bash, puede encontrarse en el bash Reference ManuaI distribuido por el proyecto GNU. La mayora de los shell scripts (guiones de rdenes) Bourne pueden ejecutarse por bash sin ningn cambio, con la excepcin de aquellos scripts de shell Bourne que hacen referencia a variables especiales de Bourne o que utilizan una orden interna de Bourne. La sintaxis de rdenes de bash incluye ideas tomadas desde el Korn SheII (ksh) y el C SheII (csh), como la edicin de la lnea de rdenes, el historial de rdenes, la pila de directorios, las variables $RANDOM y $PPID, y la sintaxis de substitucin de rdenes POSIX: $(...). Cuando se utiliza como un intrprete de rdenes interactivo, bash proporciona auto completado de nombres de programas, nombres de archivos, nombres de variables, etc, cuando el usuario pulsa la tecla TAB. La sintaxis de bash tiene muchas extensiones que no proporciona el intrprete Bourne. Probablemente el shell en un sistema Unix o Linux, sea el primer programa con el cual un usuario nteractua. La palabra "Shell" es una terminologa Unix que define la interfaz de usuario mediante el cual se puede enviar instrucciones al sistema operativo o bien recibir respuestas o resultados del mismo. Se dice que el shell cumple una doble funcin: Proteger al usuario de nteractuar directamente con el kernel (imagnese indicando al sistema que usted quiere borrar el contenido de un directorio completo sin poder utilizar una herramienta tan simple como el metacarcter *, para hacer referencia a todos los archivos contenidos en ese directorio, y tener que especificar archivo por archivo...) Proteger al kernel de errores de sintaxis mientras el usuario escribe las instrucciones, por lo que el shell decide realmente enviar aquellas ordenes que sean sintcticamente correctas al sistema operativo. A continuacin veremos algunas caractersticas bsicas, pero muy potentes del shell bash, quizs el ms popular de los shells modernos de Linux. Comodines Comodines globales de expansin: * - coincidencias de cero o ms caracteres ? - coincidencias cualquier carcter individual [0-9] - coincidencias de un rango de nmeros [abc] - coincidencias con cualquier de los caracteres en la lista [^abc] todas las coincidencias, excepto los caracteres en la lista Estn predefinidas las clases de caracteres que pueden ser utilizados Linux Bsico LP001 Ver.1 1-55 EI historiaI de comandos ngresando el comando history, el sistema devuelve la lista de comandos ejecutados hasta el momento por el usuario actualmente registrado, esto incluye tanto la sesin actual, como sesiones anteriores, por lo tanto podemos intentar encontrar el comando en la lista completa, mirando linea por linea o hacer una bsqueda un poco mas especfica, si es que recordamos algn fragmento de lo que necesitamos encontrar. Supongamos que recuerdo que utilice el comando "who"; podra invocar al historial para consultar todos aquellos comandos ejecutados que incluyeran la palabra "who": storage:~# history | grep who 502 who 503 who | cut -c1-8 | sort -u 504 who | cut -c1-8 | sort -u | wc -I Una vez encontrado el comando buscado, se puede invocar para ejecutarlo por el numero de indice de la siguiente forma: (!numero de comando) mauina!"# !$%& who ' cut (c)(* ' sort (u ' wc (l Simplemente el shell expande la expresin !numero de comando por la cadena literal que encuentre en ese ndice del archivo del historial y enva la ejecucin de la misma, obteniendo el mismo resultado que si se hubiera tipeado el comando completo. Tambin es posible invocar a un comando recordando directamente parte de su nombre, por ejemplo Ejecutar el ultimo comando que comience con " mysqI " storage!"# !mysl mysl (u user (p Utilizar las teclas de arriba y abajo para desplazarse a travs de los comandos anteriores Tipear CtrI-r para buscar por un comando en el historial de comandos r (reverse-i-search)`': Para recordar el ltimo argumento del comando anterior: Esc,. (la tecla de escape seguida de un periodo) AIt-. (mantenga presionada la tecla ALT mientras presiona el perodo) Expansin de comandos Tilde ( ~ ) Para referirse a su directorio home: $ cat ~/.bash_profiIe Para referirse a directorios home de otros usuarios: $ Is ~juIie/pubIic_htmI Expansin de comandos: $() o `` mprime la salida de un comando como argumento para otro: $ echo "EI nombre deI sistema es $(hostname)" El nombre del sistema es server1.example.com Llaves de expansion: { } Linux Bsico LP001 Ver.1 1-56 Abreviatura para la impresin de cadenas repetitivas $ echo fiIe{1,3,5} file1 file3 file5 $ rm -f fiIe{1,3,5} CtrI-a mueve al inicio de linea CtrI-e mueve al final de linea CtrI-u elimina al comienzo de linea CtrI-k borra al final de linea CtrI-arrow mueve a la izquierda o la derecha de la palabra TerminaIes Aplicaciones->Accesorios->Terminal Emulador grfico de terminal que soporta mltiples "pestaas" de shells CtrI-Shift-t crea una nueva pestaa CtrI-PgUp/PgDn cambia a la pestaa siguiente/anterior CtrI-Shift-c copia el texto seleccionado CtrI-Shift-v pega el texto en la salida estndar Configuracin deI sheII BASH VariabIes en bash A las variables se le asignan valores tiles para almacenar datos o la salida de un comando Se definen con VARIABLE=VALOR Se hace referencia con $VARIABLE $ HI="HoIa, y bienvenido a $(hostname)." $ echo $HI HoIa, y bienvenido a estationX. VariabIes IocaIes, de entorno, de configuracin e informacin, AIias Variables son locales a un solo shell por defecto, variables de entorno son heredadas por las shell hijas Se establece para exportar VARIABLE=VALOR, consultado por algunos programas para la configuracin. Linux Bsico LP001 Ver.1 1-57 Las variables de configuracin PS1: Aspecto del prompt de bash PATH: Directorios para buscar ejecutables en ellos EDITOR: Editor de texto por defecto HISTFILESIZE: Numero de comandos en .bash_history Variables de nformacin HOME: Directorio de trabajo de los usuarios EUID: UD efectivo del usuario aIias permite crear accesos directos a los comandos $ aIias dir='Is -IaF' Utilizar solo aIias para ver todo el conjunto de alias Utilizar aIias seguido por un nombre de alias para ver el valor del alias $ aIias dir aIias dir='Is -IaF' Expansin de variabIes y evitar Ia expansin, cmo funciona Ia expansin en bash Cmo se expande una Inea de comandos bash 1.- Divide la linea en palabras 2.- Expande alias 3.- Expande declaraciones en llaves ({}) 4.- Expande declaraciones de tilde (~) 5.- Expande variables ($) 6.- Sustitucin de comandos ($() y ``) 7.- Divide la linea en palabras nuevamente 8.- Expande comodines globales de archivos (*, ?, [abc], etc) 9.- Prepara direccionamiento de /O (<, >) 10.-Ejecuta el comando ! Impedir Ia Expansin Barra oblicua invertida ( \ ) hace el siguiente carcter literal $ echo EI costo: \$5.00 El costo: $5.00 Comillas impide la expansin Comillas simples (') inhibe toda expansin Comillas dobles (") inhibe toda expansin, excepto: $ (signo moneda) - expansin de variable ` (comillas invertidas) - substitucin de comandos Linux Bsico LP001 Ver.1 1-58 \ (barra oblicua invertida) - carcter de inhibicin individual ! (signo de exclamacin) - substitucin de historial Scripts de inicio y parada de bash Tareas de inicio Bash: profiIe Almacenados en /etc/profiIe (global) y ~/.bash_profiIe (usuario) Se ejecuta solo para registrarse en los entornos de trabajo Utilizado para: Configuracin de variables de entorno; la ejecucin de comandos (ej: script verificador-de-correo)
Tareas de inicio Bash: bashrc Almacenado en /etc/bashrc (global) y ~/.bashrc (usuario) Ejecutado por todas las shells Utilizado para: Configurar variables locales y definir alias Tareas de termino Almacenados en ~/.bash_Iogout (usuario) Se ejecuta cuando termina un registro de shell Utilizado para: Crear respaldos automticos, limpieza de archivos temporales Tipos de sheIIs, variabIes en sheII scripts Scripting: Toma de entrada con parmetros de posicin Los parmetros posicionales son variables especiales que contienen los argumentos de la lnea de comandos del script. Los parmetros disponible de posicin son $1,$2, $3, etc. . Estos son normalmente asignados para los nombre de variables mas significativas para mejorar la claridad $* contiene todos los argumentos de linea de comandos $# contiene el nmero de argumento de lnea de comando Scripting: Tomando Ia entrada con eI comando read Utilizar read para asignar valores de entrada a una o ms variables de shell: -p designa prompt para mostrar read lee de la entrada estndar y asigna una palabra para cada variable Cualquier palabra sobrante es asignada a la ultima variable read -p "Ingrese un nombre de archivo: " ARCHIVO read lee una lnea desde la entrada estndar, o desde el descriptor de fichero suministrado como argumento para la opcin -u. Linux Bsico LP001 Ver.1 1-59 UNIDAD 7 Configuracin y Administracin bsica deI sistema Linux Bsico LP001 Ver.1 1-60 Ajustar Fecha y hora GU: system-config-date Sistema->Administracin->Fecha y Hora Puede configurarse fecha/hora manualmente o usar NTP, servidores adicionales NTP pueden ser agregados, puede usarse hora local o UTC CL: date [MMDDhhmm[[CC]YY][.ss]] # date 02071345 $ febrero 7, 13:45 # date 030417002011.05 $ marzo 4, 17:00:05, 2011 Configuracin de Impresoras Las impresoras pueden ser locales o de red Las peticiones de impresin son enviadas a colas Los trabajos en colas son enviados a la impresora en el orden de llegada Los trabajos pueden ser cancelados antes o durante la impresin system-config-printer Sistema->Administracin->mpresoras Local (paralela o usb) Servidor de impresin Unix/Linux Servidor de impresin Windows Servidor de impresin Netware HP JetDirect La configuracin es almacenada en /etc/cups/printers.conf Comandos de impresin Ipr enva un trabajo a la cola para ser impreso Acepta ASCII, PostScript, PDF, otros Ipq ve el contenido de una cola Iprm remueve un trabajo desde la cola Los comandos de impresin System V como Ip, Ipstat y canceI tambin son soportados UtiIidades de impresin evince ver documentos PDF Ipstat -a lista las impresoras configuradas ps2pdf convierte PostScript a PDF Linux Bsico LP001 Ver.1 1-61 Configuracin de Ia red Configuraciones importantes de red: Configuracin IP , activacin de dispositivo Configuracin de DNS Pasarela por defecto (Gateway) Las interfaces de red son nombradas secuencialmente: eth0, eth1, etc Mltiples direcciones pueden ser asignadas a un dispositivo con alias Los alias son etiquetados como: eth0:1, eth0:2, etc. Los alias son tratados como interfaces separadas Vemos la configuracin de la interface con ifconfig [ethX] Habilitamos la interface con ifup ethX nhabilitamos la interface con ifdown ethX Configuracin grfica de Ia red system-config-network Sistema->Administracin->Red Activar/Desactivar interfaces Asignar direccin IP DHCP Modificar configuracin DNS Modificar direccin de pasarela (gateway) Network Configuration FiIes Ethernet Devices La configuracin de los dispositivos son almacenados en archivos de texto /etc/sysconfig/network-scripts/ifcfg-ethX Una completa lista de opciones hay en /usr/share/doc/initscripts-*/sysconfig.txt Configuracin Dinmica Configuracin Esttica DEVICE=ethX ONBOOT=yes BOOTPROTO=dhcp HWADDR=00:02:8A:A6:30:45 DEVICE=ethX ONBOOT=yes BOOTPROTO=static HWADDR=00:02:8A:A6:30:45 IPADDR=192.168.0.213 NETMASK=255.255.255.0 GATEWAY=192.168.0.6 Linux Bsico LP001 Ver.1 1-62 Archivos de configuracin de red Otras configuraciones gIobaIes de Red Configuraciones globales en /etc/sysconfig/network Muchos sern provedos por DHCP GATEWAY puede ser reemplazado en archivo ifcfg NETWORKING=yes HOSTNAME=servidor1.ejempIo.org GATEWAY=192.168.0.6 Archivos de configuracin de Red Configuracin DNS El Domain Name Service (Servicio de Nombres de Dominio) traduce nombres de maquinas en direcciones de red La direccin del servidor es especificado por dhcp o en /etc/resoIv.conf search ejempIo.org Iamer.info nameserver 192.168.0.213 nameserver 192.168.1.254 Qu es un proceso, demonio y tarea? Un proceso es un conjunto de instrucciones cargadas a la memoria Un ID de proceso numrico (PID) es usado para identificarlo UID, GID y contexto de SELinux determina el acceso al sistema de archivos Normalmente heredado del usuario que ejecuta Ver eI estado de un proceso Ver informacin de los procesos con ps Muestra los procesos del terminal actual por defecto -a incluye los procesos en todos los terminales -x incluye los procesos que no estn adjunto a un terminal -u imprime informacin de procesos del usuario -f imprime informacin completa de los procesos -o PROPERTY,... imprime informacin personalizada: pid, comm, %cpu, %mem, state, tty, euser, ruser Linux Bsico LP001 Ver.1 1-63 Buscando procesos Ms flexible: ps opciones | otros comandos ps axo comm,tty | grep ttyS0 Por patrones predefinidos: pgrep $ pgrep -U root $ pgrep -G estudiante Por exactamente el nombre del programa: pidof $ pidof bash pidof encuentra el D del proceso de un programa en ejecucin e imprime los id en la salida estndar. Enviar seaIes a un proceso SeaIes Lo ms fundamental comunicacin inter-procesos Enviada directamente a los procesos, no es requerida la interface del usuario Programas asocian acciones con cada seal Seales son especificado por nombre o numero cuando se enva: SeaI 15, TERM (por defecto) Termino limpio SeaI 9, KILL - Terminar inmediatamente SeaI 1, HUP Re-leer archivo de configuracin man 7 signaI muestra lista completa Terminar un proceso Por patrn: pkiII [-seaI] patrn Por nombre: kiIIaII [seaI] nomb ... Por PD: kiII [seaI] pid ... Modificar Ia prioridad de un proceso Programacin de prioridad La programacin de prioridad determina el acceso a la CPU Prioridad es afectado por un valor nice de proceso Los valores van desde -20 a 19 por defecto es 0 Linux Bsico LP001 Ver.1 1-64 Un bajo valor nice significa mayor prioridad de CPU Ver con ps -o com,nice AIterando Ia programacin de prioridad Los valores nice pueden ser alterados... Cuando se inicia un proceso: $ nice -n 5 comando Despus de iniciado: $ renice 5 PID Solo root puede disminuir el valor de nice Herramientas interactivas de gestin de procesos CL: top GU: gnome-system-monitor Capacidades Desplegar en tiempo real informacin de los procesos Permite ordenar, matar y re-nicing Ejecutar procesos en segundo pIano Ejecutar un proceso en background Anexar un smbolo de unin (&) a la linea de comandos: firefox & Suspender un proceso Temporalmente detiene la ejecucin de un programa Use CtrI-z o envie seal 17 (STOP) Ver Ia Iista de procesos en segundo pIano o suspendidos Administrar tareas (job) en background o suspendida Lista numero y nombre de tareas: jobs Continuar en background: bg [%jobnum] Continuar en primer plano: fg [%jobnum] Enviar una seal: kiII [-SEAL] [%jobnum] Linux Bsico LP001 Ver.1 1-65 Comandos compuestos Dos caminos para agrupar comandos: Compuesto: date; who | wc -I Ejecutar comandos back-to-back Subshell: (date; who | wc -I) >> /tmp/trace Todas las salidas son enviados a un solo STDOUT y STDERR Estado de saIida Procesos informan xito o fracaso con una salida de estado 0 para xito, 1-255 para fracaso $? Almacena la salida de el mas reciente comando exit [num] termina y establece el estado de num Ejemplo: $ ping -c1 -W1 station999 &> /dev/nuII $ echo $? 2 Ejecucin condicionaI de operadores Los comandos pueden ser ejecutados condicionalmente basados en el estado de salida && representa el condicional AND THEN || representa condicional OR ELSE Ejemplos: $ grep -q no_such_user /etc/passwd || echo 'Este usuario no existe' Este usuario no existe $ ping -c1 -W2 station1 &> /dev/nuII \ > && echo "estacin1 esta arriba" \ > || $(echo 'estacin1 esta inaIcanzabIe'; exit 1) estacin1 esta arriba La prueba de comandos Evala declaraciones booleanas para el uso en la ejecucin condicional Retorna 0 para verdadero Retorna 1 para falso Linux Bsico LP001 Ver.1 1-66 Ejemplos en formato largo: $ test "$A" = "$B" && echo "Cadenas son iguaIes" $ test "$A" -eq "$B" && echo "Enteros son iguaIes" Ejemplos en notacin abreviada: $ [ "$A" = "$B" ] && echo "Cadenas son iguaIes" $ [ "$A" -eq "$B" ] && echo "Enteros son iguaIes" Pruebas de archivos Pruebas de archivos: -f pruebas para ver si un archivo existe y es un fichero regular -d pruebas para ver si un archivo existe y es un directorio -x pruebas para ver si un archivo existe y es un ejecutable [ -f ~/Iib/functions ] && source ~/Iib/functions source lee y ejecuta comandos desde archivo en el entorno de la shell actual Scripting: DecIaraciones if Ejecutar instrucciones basadas en el estado de salida de un comando if ping -c1 -w2 estacion1 &> /dev/nuII; then echo 'estacin1 esta ARRIBA' eIif grep "estacin1" ~/mantenimiento.txt &> /dev/nuII; then echo 'estacin1 esta reaIizando tareas de mantenimiento' eIse echo 'estacin1 esta inesperadamente ABAJO!' exit 1 fi Linux Bsico LP001 Ver.1 1-67 PIanificar Ia ejecucin de un proceso en fecha y hora concreta o ejecucin peridica Para tareas a ejecutar: una sola vez usar at, en forma recurrente usar crontab Crear Listar DetaIIes Remover Editar at time at -I at -c jobnum at -d jobnum N/A crontab -e crontab -I N/A crontab -r crontab -e No-redireccionada la salida es enviado por correo al usuario root puede modificar tareas en otros usuarios EI formato deI fichero crontab Entradas consiste en cinco espacios - campos delimitados seguido de una lnea de comandos, una entrada por linea, no hay limite del largo de linea Los campos son minutos, horas, da del mes, mes, y da de la semana Lineas comentadas se inician con # Ver man 5 crontab para detalles InstaIacin deI sistema PIanificando una instaIacin Que hardware tiene el computador?, verificar compatibilidad de hardware Leer el archivo RELEASE-NOTES en el primer CD o en http://www.centos.org Donde se proporciona valiosa sntesis de caractersticas ReaIizando una instaIacin El instalador puede ser iniciado desde: CD-ROM o DVD-ROM, Dispositivo USB, Red (PXE) Soporta las siguientes fuentes de instalacin: Linux Bsico LP001 Ver.1 1-68 Administrar Servicios Que es un Servicio? nterface grfica para administrar servicios system-config-services nterface de linea de comando para administracin de servicios service chkconfig Administracin de paquetes El Software es provedo como paquetes RPM Fcil instalacin y des instalacin nformacin del Software es almacenado en una base de datos local Los paquetes son provedos por mltiples repositorios de CEntOS Administracin centralizada de mltiples sistemas Fcil recuperacin de errores de paquetes Repositorios de paquetes personalizados tambin se puede utilizar La herramienta YUM para Ia administracin de paquetes nterfaz de rpm, remplaza up2date Configuracin en /etc/yum.conf y /etc/yum.repos.d/ Utilizado para instalar, remover y listar software yum instaII nombre_paquete yum remove nombre_paquete yum update nombre_paquete yum Iist avaiIabIe yum Iist instaIIed Administracin grfica de paquetes pup ApIicaciones->Herramientas de Sistema->ActuaIizacin de Software Listar e instalar actualizaciones de software pirut ApIicaciones->Agregar/Remover Software Ver, instalar y remover otros paquetes Linux Bsico LP001 Ver.1 1-69 Asegurando eI sistema Principios bsicos de seguridad: Evitar correr servicios que no se necesitaran, limitar el acceso a los servicios que se ejecutan, evite el uso de los servicios que envan datos sin encriptar sobre la red como mensajera instantnea, pop, imap, y telnet SELinux Sistema de seguridad a nivel de Ncleo Todos los procesos y archivos tienen un contexto Una poltica SELinux dicta cmo los procesos y los archivos pueden nteractuar en funcin del contexto, reglas de polticas no pueden ser reemplazadas, polticas por defecto no se aplica a todos los servicios Administrando SELinux SELinux errores son registrado en el sistema de registro SELinux puede ser deshabilitado en una emergencia Deshabilitar SELinux no se recomienda! Sistema->Administracin->NiveI de Seguridad y Corta Fuego, Pestaa SELinux FiItrado de Paquetes El trafico de red es divido en paquetes Cada paquete tiene origen/destino de datos Los cortafuegos bloquean selectivamente paquetes Configuracin de CortaFuego y SELinux system-config-securityIeveI Sistema-> Administracin->NiveI de Seguridad y Cortafuego Selectivamente permitir conexiones entrante por puerto, especificar las interfaces a confiar todo el trfico, las respuestas a las preguntas de salida siempre se acepta Mas configuracin avanzada es posible con otras herramientas Linux Bsico LP001 Ver.1 1-70 UNIDAD 8 Administracin de usuarios, grupos y permisos Linux Bsico LP001 Ver.1 1-71 Usuarios y grupos Usuarios A cada usuario se asocia un nico nmero de ID de usuario (UID) UID 0 identifica a root Nombre de usuarios y UID son almacenados en /etc/passwd Un directorio de trabajo es asignado a los usuarios y un programa que es ejecutado cuando inician sesin (usualmente un shell) Usuarios no pueden leer, escribir o ejecutar los archivos de los dems sin permiso Grupos Los usuarios son asignados a un grupo, cada grupo se le asigna un nico numero ID de Grupo (gid) GID son almacenados en /etc/group Cada usuario tiene su propio grupo primario, puede ser agregado a otros grupos para accesos adicionales Todos los usuarios en un grupo pueden compartir archivos que pertenecen al grupo Seguridad de archivos de Linux A cada archivo se asocia un UID y un GID Cada proceso se ejecuta con un UID y uno o mas GID Usualmente determinado por quin ejecuta el proceso Tres categoras de acceso: Procesos que se ejecutan con el mismo UID de el archivo (usuario) Procesos que se ejecutan con el mismo GID de el archivo (grupo) Todos los dems procesos (otro) Prioridad de permisos Si coincide el UID, permisos de usuario son aplicados De otra manera, si coincide el GID, permisos de grupo son aplicados Si tampoco coincide, permisos de otros son aplicados Tipos de permisos Cuatro smbolos son usados cuando se despliegan los permisos: r: permiso para leer un archivo o listar el contenido de un directorio w: permiso para escribir en un archivo o crear y remover archivos de un directorio x: permiso para ejecutar un programa o cambiarse a un directorio y hacer un listado largo del directorio -: sin permiso (en el lugar de r, w, o x) Linux Bsico LP001 Ver.1 1-72 Ver Ios permisos de ficheros y directorios Los permisos de los archivos pueden ser vistos usando Is -I $ Is -I /bin/Iogin -rwxr-xr-x 1 root root 19080 Apr 1 18:26 /bin/login EL tipo de archivo y permisos estn representados por una cadena de 10 caracteres Interpretando Ios permisos: -rwxr-x--- 1 joeI pingux 2948 Oct 11 14:07 miarchivo Lectura, escritura y ejecucin para el propietario, joeI Lectura y ejecucin para los miembros del grupo pingux Sin permisos para todos los otros usuarios Cambiar permisos usando representaciones simbIicas y numricas Cambiando propietario de un archivo Solo root puede cambiar el propietario a un archivo Solo root o el propietario puede cambiar el grupo a los archivos El propietario es cambiado con chown: chown [-R] nombre_usuario archivo|directorio El grupo es cambiado con chgrp: chgrp [-R] nombre_grupo archivo|directorio Cambiando permisos Mtodo Simblico Para cambiar los premisos de acceso: chmod [-R] permisos archivo Donde los permisos pueden ser: u,g,o a para usuario, grupo, otros y todos + - para conceder o negar (= para asignar de acuerdo a un patrn) r, w x para lectura, escritura y ejecucin Ejemplos: ugo+r: Concede acceso de lectura para todos o-wx: Niega escritura y ejecucin para otros Cambiar permisos - Mtodo numrico Utiliza tres dgitos para definir numero para asignar permisos El primer dgito especifica los permisos del propietario El segundo dgito especifica los permisos de grupo Linux Bsico LP001 Ver.1 1-73 El tercer dgito representa permisos de los otros Los permisos se calculan sumando: 4 (para lectura) 2 (para escritura) 1 (para ejecucin) Ejemplo: chmod 640 miarchivo Conceptos avanzados sobre usuarios, grupos y permisos Identificadores numricos de usuarios y grupos Los nombres de usuario se mapean a nmeros de identificacin de usuario Los nombres de Grupo se mapean a nmeros de identificacin de grupo Los datos almacenados en el disco duro se almacena numricamente Los ficheros /etc/passwd, /etc/shadow, y /etc/group la informacin de Autentificacin es almacenada en archivos de texto plano: /etc/passwd /etc/shadow /etc/group Usuarios y grupos deI sistema Ejecucin de programas de esta manera limita la cantidad de daos de estos programas que por separado puede hacer para el sistema Los programas de servidor como el servidor web o servidores de impresin normalmente se ejecutan como usuarios sin privilegios, no como root Ejemplos: daemon, maiI, Ip, nobody Ejecucin de programas de esta manera limita la cantidad de dao que cualquier programa puede hacer al sistema Cambios en eI usuario Herramientas grficas system-config-users Linea de comandos useradd usermod userdeI [-r] Comandos para obtener informacin sobre usuarios y grupos Usuarios conectados: w ngresos recientes: Iast, Iastb Linux Bsico LP001 Ver.1 1-74 Permisos por defecto Los permisos por defecto para los directorios es 777 menos umask Los permisos por defecto para los archivos son los permisos por defecto para directorio sin permisos de ejecucin umask se establece con el comando umask. Para los usuarios el umask es 022, los archivos tendrn los permisos de 644, los directorios tendrn los permisos de 755. root umask es 022 Permisos especiaIes Permisos especiales para archivos ejecutables: suid: se ejecuta el comando con permisos del propietario del comando, no con los permisos del ejecutor del comando sgid: se ejecuta el comando como parte del grupo del comando y no como parte del grupo del ejecutor Permisos especiales para directorios: sticky bit: archivos en los directorios con el sticky bit slo pueden ser removidos por el propietario y root, independiente de los permisos de escritura del directorio sgid: los archivos creados en los directorios con el sgid se asigna como grupo el grupo del directorio Linux Bsico LP001 Ver.1 1-75 UNIDAD 9 ApIicaciones de acceso a Ia red Linux Bsico LP001 Ver.1 1-76 Comunicaciones cifradas con ssh y scp OpenSSH: Seguro sheII remoto Seguro reemplazo para viejas herramientas de acceso remoto Permite autenticado, acceso encriptado a sistemas remotos ssh [usuario@]maquina ssh [usuario@]maquina comando scp: Transferencia segura de archivos Seguro remplazo para rcp Otra capa por encima de ssh scp fuente destino Archivos remotos pueden ser especificados usando: [user@]host:/ruta/aI/archivo Usar -r para permitir recursividad Usar -p para preservar los tiempos y permisos Usar -C Para comprimir flujo de datos CIientes Xorg Todas las aplicaciones grficas son clientes X, se pueden conectar a servidores X remotos va tcp/ip Los datos no son encriptados pero pueden ser enviados por un tnel seguro sobre una conexin ssh ssh -X usuario@maquinaB xterm & xterm se mostrara en el servidor X de la maquinaA Los datos transmitidos se codifican a travs de la conexin ssh rsync: Eficiente sincronizacin de archivos Copia los archivos de manera eficiente y tambin de sistemas remotos Usa conexiones ssh segura para el transporte rsync *.conf wendy:/home/jose/varios/ Ms rpido que scp copia las diferencias en los archivos rsync -avc -rsh=ssh origen destino Autentificacin basada en cIave OpenSSH Opcional, autentificacin sin contraseas, pero aun seguro Utiliza dos claves generados por ssh-keygen: Linux Bsico LP001 Ver.1 1-77 Clave privada se mantiene en tu sistema Usualmente contrasea protegida (recomendado) Clave publica es copiada en el destino con ssh-copy-id ssh-copy-id [usuario@]maquina Un agente de autentificacin almacena las claves privadas descifradas Por lo tanto, la contrasea solo es necesario ser ingresada un ves Un agente es provedo automticamente en GNOME De lo contrario, ejecuta ssh-agent bash Las claves son agregadas al agente con ssh-add Herramientas de diagnstico de probIemas de Ia red ping traceroute host dig netstat gnome-nettooI (GUI) Conceptos fundamentaIes para Ia administracin de Linux nstalar un nuevo sistema Manejar usuarios y grupos Mantener el software al da Configurar la red Configurar servicios Mantenimientos de seguridad Casi todo lo dems! Linux Bsico LP001 Ver.1 1-78