Вы находитесь на странице: 1из 78

ndice de contenido

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

Вам также может понравиться