Professional Documents
Culture Documents
Administracin Local de
Linux
Docente: Ing. Marco A. Arenas P.
Gestin: 2/2016
Contenido Mnimo
1. Introduccin
2. Sistema de Archivos
3. Monitoreo.
4. Actualizaciones
5. Permisos
Introduccin
Introduccin
Una de las primeras tareas con la que tendr que
enfrentarse el administrador ser la gestin de los
recursos locales presentes en la mquina.
Introduccin
Manejo adecuado de comandos:
Repaso. Ubuntu One
Introduccin
Manejo adecuado de comandos:
Repaso.
Introduccin
Use de la lnea de comandos para obtener ayuda
man (man -f)
info
/usr/share/doc
locate
apropos (man -k)
whatis (man -f)
whereis
comando --help
Introduccin
Tipos de archivos:
Introduccin
Colores
Introduccin
Tamao para humanos:
Introduccin
Empaquetamiento y compresin:
tar
Opciones de tar
gzip, bzip2
zip, unzip
Introduccin
Tuberias y redireccionamiento
find
grep
less
head, tail
sort
cut
wc
Fuente: http://www2.iib.uam.es/bioinfo/curso/perl/so/archivos.htm
Particionamiento
En cada mquina con un sistema GNU/Linux podemos ver sistemas
de ficheros de diferentes tipos. Para empezar, es habitual encontrarse
con los propios sistemas de ficheros Linux creados en distintas
particiones de los discos.
config: Es el archivo de configuracin utilizado al compilar el kernel. Est presente slo para
referencia y porque puede ser de utilidad al depurar programas.
udev maneja
la generacin
dinmica de
nodos de
dispositivo y
evolucion de
tal forma que
reemplaz
mecanismos
como devfs y
hotplug.
/dev (nodo de dispositivos)
Los dispositivos orientados a caracteres y bloques tienen entradas de
sistemas de archivos asociados a ellos; por otro lado, los dispositivos
de red en Linux no los poseen. Estos nodos de dispositivo pueden
ser usados por programas para comunicarse con los dispositivos,
usando llamadas al sistema E/S normal como
open(), close(), read() y write(). Por otra parte, los dispositivos de red
funcionan a travs de la transmisin y recepcin de paquetes, los
cuales deben construirse a partir de la decodificacin de flujos de
datos, o ser reensamblados cuando son recibidos.
Un controlador de dispositivo puede administrar mltiples nodos de
dispositivo, los cuales estn localizados normalmente en el directorio
/dev
/dev (nodo de dispositivos)
/etc
Este directorio contiene los archivos de configuracin de la mquina
local y algunos scripts de inicio; aqu no debera haber ningn
programa ejecutable binario.
En otros sistemas operativos tipo UNIX, existe el concepto del rbol de directorios /home, pero puede
ser sutilmente diferente. Por ejemplo, en Solaris los directorios de usuarios se crean en /export/home y
luego la utilidad automount los montar en /home. Esto se debe a la situacin habitual en que el
directorio de los usuarios puede estar en cualquier lugar en una red corporativa, probablemente en un
servidor NFS, en donde el directorio de cada usuario se montar automticamente cuando est en uso.
Linux tambin tiene la utilidad automount, pero muchos usuarios no estn conscientes de ellos, y en
sistemas personales probablemente el concepto de puntos de montaje NFS no aplicar.
/media
Este directorio se usa normalmente para montar sistemas de archivos en
medios extrables. Estos incluyen CDs, DVDs, unidades USB y
disquetes del paleoltico.
Los sistemas Linux modernos montan estos medios de forma dinmica
durante la insercin, momento en el cual udev crea directorios
bajo /media y luego monta los sistemas de archivos extrables all, con
los nombres que se establecen a travs de las reglas
de udev especificadas en los archivos de configuracin. Al desmontar y
extraer los medios, los directorios que fueron usados como puntos de
montaje en /media desaparecern.
Si el medio extrable tiene ms de una particin y sistema de archivos,
aparecer ms de una entrada en /media. En muchas distribuciones
de Linux el administrador de archivos (como Nautilus) se abrir cuando
el medio es montado.
Nota: En algunas distribuciones ms recientes (incluyendo SUSE y RHEL 7) los medios
extrables se montarn en /run/media/[nombre de usuario]/...
/mnt
Se dispone de este directorio para que el administrador del sistema
pueda montar temporalmente un sistema de archivos en caso de
necesitarlo. Se usa comnmente para sistemas de archivos en red,
incluyendo:
NFS
Samba
CIFS
AFS
En trminos generales, este directorio no debe ser utilizado por
programas de instalacin. Una mejor alternativa es otro directorio
temporal que no est siendo usado.
/opt
Este directorio est diseado para paquetes de software que
desean mantener la totalidad o gran parte de sus archivos
en un lugar aislado en vez de dispersarse por todo el
sistema en los directorios compartidos con otros programas.
Por ejemplo, si dolphy_app fuera el nombre de un paquete en /opt, todos
sus archivos deben residir en directorios bajo/opt/dolphy_app,
incluyendo /opt/dolphy_app/bin para binarios y /opt/dolphy_app /man para
las pginas man.
En Linux, el directorio /opt es utilizado a menudo por
proveedores de aplicaciones.
Por ejemplo, en RHEL 7 los nicos paquetes se encuentran en esta
categora estn en /opt/skype y /opt/google, en donde este ltimo tiene
subdirectorios para chrome, earth y talkplugin.
, , ,
Los directorios /opt/bin /opt/doc /opt/include /opt/info , /opt/lib y /opt/man estn
reservados para uso del administrador del sistema local.
/proc
Este directorio es el punto de montaje para un seudosistema de
archivos, donde toda la informacin reside slo en memoria, no
en disco. Tal como /dev, el directorio /proc est vaco en un
sistema que no est corriendo.
Las entradas en /proc a menudo se denominan archivos
virtuales y tienen cualidades interesantes. Mientras que la
mayora tienen cero bytes de tamao, cuando se visualiza su
contenido es posible comprobar que pueden tener una gran
cantidad de informacin.
/sys
Este directorio es el punto de montaje para el seudosistema de
archivos sysfs, donde toda la informacin reside slo en memoria,
no en disco. Al igual que /dev y /proc, el directorio /sys est vaco en
un sistema detenido.
/usr
El directorio /usr puede ser visto como una jerarqua secundaria. Se
utiliza para los archivos que no son necesarios para el inicio del
sistema.
Los paquetes de software no deberan crear subdirectorios
directamente bajo /usr. Podran existir algunos enlaces simblicos a
otros lugares por razones de compatibilidad.
Este directorio tiene usualmente datos de slo lectura. Contiene
binarios que no son necesarios en modo monousuario. Contiene el
directorio /usr/local, donde es posible almacenar binarios locales.
Las pginas man se encuentran en/usr/share/man.
/usr
/var
Este directorio contiene archivos de datos variables (o voltiles) que
cambian frecuentemente durante el funcionamiento del sistema.
Estos incluyen:
Archivos de registro.
Directorios y archivos de spool para imprimir, colas de correo, etc.
Archivos de datos administrativos.
Archivos transitorios y temporales, como contenido del cach.
/var/log es donde se encuentran la mayora de los archivos del
registro del sistema. El directorio /var/spool es donde se almacenan
los archivos locales para procesos como correo, impresin y trabajos
de cron a la espera de ser liberados de la cola.
/var
/run
Un nuevo rbol de directorio montado en /run ha estado en uso desde
hace varios aos por las principales distribuciones de Linux, y pese a
que ha sido propuesto para el FHS, no ha sido aceptado formalmente.
Sin embargo es bueno saber acerca de su existencia.
El propsito de /run es almacenar archivos transitorios: aquellos que
contienen informacin del tiempo de ejecucin (runtime), los cuales
probablemente sean escritos tempranamente en el inicio del sistema, y
que no requieren ser preservados al reiniciar.
Generalmente /run se implementa como un punto de montaje vaco,
con un disco ram tmpfs (tal como /dev/shm) montado en tiempo de
ejecucin. Por lo tanto, este es un seudosistema de archivos existente
slo en memoria.
Algunos directorios existentes, tal como /var/run y /var/lock, sern
enlaces simblicos a los directorios bajo /run. Otros, dependiendo de
cada distribucin, pueden apuntar a directorios bajo /run.
Ejercicio 2.1
Tamaos de los directorios de Linux por defecto.
Use la herramienta du para calcular el tamao total de cada uno de los
directorios de primer nivel de su sistema.
Ejecute el comando du para tener una idea de cmo obtener y mostrar la
informacin de forma eficiente:
$ du --help
Logical Volume Manager
Los archivos y sus nombres son una abstraccin de la
capa fsica de E/S. Escribir en el disco de
forma directa(ignorando la capa del sistema de archivos)
es muy peligroso y se realiza slo por programas de bajo
nivel del sistema operativo, nunca por una aplicacin de
usuario.
Los sistemas de archivos locales generalmente residen en
una particin de disco, la cual puede ser una particin
fsica en un disco o una particin lgica controlada por
un Logical Volume Manager (LVM). Los sistemas de
archivos tambin pueden estar en la red, de tal forma que
el encapsulado fsico queda totalmente oculto al sistema
local.
Sistemas de Archivos
Especiales
fdisk -u=cylinders
Usted puede forzar una verificacin de todos los sistemas montados en el prximo
arranque con los siguientes comandos:
$ sudo reboot
Montar y desmontar
mount /mnt/cdrom
umount
$ umount [device-file | mount-point]
umount /mnt/cdrom
eject /dev/cdrom
Montar en el arranque
Cada registro en el archivo contiene campos separados por espacios en blanco, listando lo siguiente:
Dispositivo de nodo, etiqueta o UUID. Para sistemas de archivos que no tienen un nodo de dispositivo,
como tmpfs, proc y sysfs.
Punto de montaje, Tipo de sistema de archivos, Una lista de opciones separadas por coma, frecuencia
de dump (o un cero), usado por el comando dump -w, fsck pass, nmero de verificacin (o 0, lo cual
significa que no se comprueba el estado en el arranque).
Montar en el arranque
ro
Monta el sistema de archivos en modo de solo lectura, como se
muestra a continuacin:
o en /etc/fstab:
Niveles de Arranque
El kernel se carga al arrancar el sistema y es el encargado de
gestionar todos los aspectos del sistema en funcionamiento.
El kernel proporciona acceso a la informacin sobre la ejecucin
de los procesos a travs de un sistema de archivos seudo que es
visible bajo el directorio /proc. Los dispositivos de hardware
estn disponibles a travs de ficheros especiales en el directorio
/dev, mientras que la informacin sobre esos dispositivos se
puede encontrar en otro seudo sistema de archivos bajo el
directorio /sys.
El directorio /proc no slo contiene informacin sobre los
procesos en ejecucin, como su nombre lo sugiere (proceso),
pero tambin contiene informacin sobre el hardware del
sistema y la configuracin actual del ncleo.
Niveles de Arranque
systemctl
Niveles de Arranque
systemctl
Niveles de Arranque
systemctl
Niveles de Arranque
Equivalente a chkconfig en Debian
Monitoreo
Introduccin
A continuacin aprenderemos cmo obtener
una visin general del estado actual del sistema
por medio de los diferentes procedimientos y
comandos de que se dispone para evaluar las
diversas partes del sistema; de este modo
podremos tomar decisiones de administracin si
detectamos algn fallo o deficiencia de
rendimiento, o la falta de algn recurso.
Introduccin
El comando uptime
Informa la cantidad de recursos utilizados, pero se
est dividiendo por 100. As 1.00 es en realidad el
100% del tiempo de CPU que se utilice (2.00 es 200%
y as sucesivamente), .
Observando el proceso de booteo
Cuando el sistema arranca, suelen aparecer los datos
de deteccin de las caractersticas de la mquina,
deteccin de dispositivos, arranque de servicios de
sistema, etc., y se mencionan los problemas aparecidos.
En la mayora de las distribuciones, esto puede verse en
la consola del sistema directamente durante el proceso
de arranque. Sin embargo, o la velocidad de los
mensajes o algunas modernas distribuciones que los
ocultan tras cartulas grficas pueden impedir seguir los
mensajes correctamente, con lo que necesitaremos una
serie de herramientas para este proceso.
Observando el proceso de booteo
Bsicamente, podemos utilizar:
Comando dmesg: da los mensajes del ltimo arranque del kernel.
Fichero /var/log/messages: log general del sistema, que contiene
los mensajes generados por el kernel y otros daemons (puede
haber multitud de archivos diferentes de log, normalmente en
/var/log, y dependiendo de la configuracin del servicio syslog).
Comando uptime: indica cunto tiempo hace que el sistema est
activo.
Sistema /proc: pseudosistema de ficheros (procfs) que utiliza el
kernel para almacenar la informacin de procesos y de sistema.
Sistema /sys: pseudosistema de ficheros (sysfs) que apareci con
la rama 2.6.x del kernel, con objetivo de proporcionar una forma
ms coherente de acceder a la informacin de los dispositivos y
sus controladores (drivers).
Kernel: directorio /proc
El kernel, durante su arranque, pone en funcionamiento un
pseudosistema de dicheros llamado /proc, donde vuelca la
informacin que recopila de la mquina, as como muchos de sus
datos internos, durante la ejecucin. El directorio /proc est
implementado sobre memoria y no se guarda en disco. Los datos
contenidos son tanto de naturaleza esttica como dinmica (varan
durante la ejecucin).
Una de las caractersticas interesantes es que en el directorio /proc
podremos encontrar las imgenes de los procesos en ejecucin,
junto con la informacin que el kernel maneja acerca de ellos. Cada
proceso del sistema se puede encontrar en el directorio
/proc/<pidproceso>, donde hay un directorio con ficheros que
representan su estado.
Kernel: directorio /proc
Kernel: directorio /proc
A partir de la rama 2.6 del kernel, se ha iniciado una
transicin progresiva de procfs (/proc) a sysfs (/sys) con
el objetivo de mover toda aquella informacin que no
est relacionada con procesos, en especial dispositivos
y sus controladores (mdulos del kernel) hacia el
sistema /sys.
Kernel: /sys
El sistema Sys se encarga de hacer disponible la informacin de
dispositivos y controladores, informacin de la cual dispone el
kernel, al espacio de usuario, de manera que otras API o
aplicaciones puedan acceder de una forma flexible a la informacin
de los dispositivos (o sus controladores). Suele ser utilizada por
capas como HAL y el servicio udev para la monitorizacin y
configuracin dinmica de los dispositivos.
Dentro del concepto de sys existe una estructura de datos en rbol
de los dispositivos y controladores (digamos el modelo conceptual
fijo), y despus se accede a l por medio del sistema de ficheros
sysfs (cuya estructura puede cambiar entre versiones).
Jerarqua de Procesos
Cuando el kernel termina de cargar durante el procedimiento de
arranque, se inicia el proceso padres /sbin/init y le asigna un ID de
proceso (PID) de 1. Este proceso comienza entonces otros
procesos del sistema y cada proceso se le asigna un PID en orden
secuencial.
A medida que el proceso /sbin/init inicia otros procesos, que a su
vez pueden poner en marcha otros procesos, y sigue. Cuando uno
proceso se inicia otro proceso, el proceso que lleva a cabo la puesta
en marcha se llama el proceso primario y el proceso que se inicia se
llama el proceso hijo. Al ver los procesos, el PID de los padres ser
etiquetado PPID.
Jerarqua de Procesos
Cuando el sistema ha estado funcionando durante
mucho tiempo, con el tiempo alcanzarn el valor mximo
PID, que se puede ver y se configura a travs de
/proc/archivo/sys/kernel/pid_max file. Una vez que el
ms grande PID ha sido utilizado, el sistema se "roll
over" y reanudar mediante la asignacin de valores de
PID que estn disponibles en la parte inferior del rango.
Podemos "mapear" los procesos en una familia de rbol
de padres e hijos. Si desea ver el rbol, el comando
pstree mostrar que:
Jerarqua de Procesos
Procesos
Los procesos que se encuentren en ejecucin en un
determinado momento sern, en general, de diferente
naturaleza. Podemos encontrar:
Procesos de sistema, ya sean procesos asociados al funcionamiento
local de la mquina, kernel, o bien procesos asociados al control de
diferentes servicios (denominados daemons). La mayora de estos
procesos de sistema aparecern asociados al usuario root (aunque se
suelen migrar a pseudousuarios especializados para servicio), aunque
no estemos presentes en ese momento como usuarios.
Procesos del usuario administrador: en caso de actuar como root,
nuestros procesos interactivos o aplicaciones lanzadas tambin
aparecern como procesos asociados al usuario root.
Procesos de usuarios del sistema: asociados a la ejecucin de sus
aplicaciones, ya sea tareas interactivas en modo texto o en modo
grfico.
Comando ps
Otra forma de ver los procesos es con el comando ps. Por defecto,
el comando ps slo mostrar los procesos actuales que se ejecutan
en el shell actual, para el usuario:
Comando ps
Al igual que el comando pstree, si ejecuta ps con la opcin --forest,
se mostrar las lneas que indican la relacin entre padres e hijos:
Comando ps
Para poder ver todos los procesos en el sistema puede ejecutar el
comando ps -aux o el comando ps -ef:
Comando ps
Combine comandos para ubicar procesos:
Si un proceso comienza a
dominar, o "salir corriendo" con
el sistema, entonces ser por
defecto aparecer en la parte
superior de la lista presentada
por el comando superior.
Prioridades -20 to 19
Comando top
Otra ventaja del comando top es que es capaz de darle una
representacin global de la carga del sistema se encuentra
actualmente y la tendencia en el tiempo. Los promedios de carga
que se muestran en la primera lnea de salida del comando superior
indican lo ocupado que el sistema ha sido durante los ltimos uno,
cinco y quince minutos. Esta informacin tambin se puede ver
mediante la ejecucin del comando uptime o directamente mediante
la visualizacin de los contenidos del archivo / proc / loadavg:
Nmero de procesos
El promedio de carga durante los actualmente en ejecucin de
intervalos pasados uno, cinco y cdigo en la CPU (1) y el
quince minutos. nmero total de procesos (254).
Comando top
Cuanto ms alto sea el valor de la amabilidad, menor es la prioridad que se asigna a un proceso
Prioridad de Procesos
El comando nice, nos ayuda a modificar las prioridades:
Herramientas grficas
Herramientas como:
gnome-system-monitor
sysguard.
Logs del Sistema
A medida que el kernel y varios procesos (daemons de servicios) se
ejecutan en el sistema, producen resultados que describen la forma
en que se estn ejecutando. Algunas de estas salidas se muestra
en la ventana de terminal en la que se ejecuta el proceso, pero
algunos de estos datos no se enva a la pantalla, en cambio se
escribe en varios archivos. Esto se llama "log data" o "log
messages". Archivos muy importantes para la auditoria.
Estos logging daemons pueden variar de una distribucin a otra.
Por ejemplo, en algunas distribuciones, los demonios que se
ejecutan en segundo plano para realizar el registro se llaman como
syslogd y klogd. En otras distribuciones, un solo demonio como
rsyslogd en Red Hat y CentOS o systemd-journald en el Fedora
puede servir a esta funcin de registro.
Logs del Sistema
Independientemente del nombre del demonio, los archivos de registro
casi siempre se colocan en la estructura del directorio /var/log.
Aunque algunos de los nombres de los archivos pueden variar, aqu
estn algunos de los archivos ms comunes que se encuentran en
este directorio:
Tambin se puede
obtener informacin
de todas las
particiones
presentes en el
sistema consultado
el fichero
/proc/partitions.
Discos y filesystems
De los discos y particiones de que dispongamos, algunos se
encontrarn montados en nuestro sistema de ficheros, o estarn
preparados para montarse bajo demanda o bien montarse en el
momento en que se disponga de medio (en el caso de dispositivos
extrables).
Fichero /etc/fstab
Comando mount: nos informa de los filesystems montados en ese momento (ya
sean dispositivos reales o filesystems virtuales, como /proc). Podemos obtener
esta informacin tambin desde el fichero /etc/mtab.
Comando df -k: nos informa de los filesystems de almacenamiento, y nos
permite verificar el espacio usado y disponible.
Cuidado con temporales antiguos. Los directorios /tmp y /var/tmp suelen
acumular muchos archivos generados por diferentes usuarios o aplicaciones.
Algunos sistemas o distribuciones ya toman medidas de limpieza, como limpiar
/tmp en cada arranque del sistema (estos directorios tienen permisos de escritura
para que todos los usuarios del sistema).
Discos y filesystems
Logs: evitar su crecimiento excesivo, ya que segn la configuracin
del sistema (por ejemplo, de Syslogd) la informacin generada de
mensajes puede ser muy grande. Habr que limpiar peridicamente al
llegar a determinados tamaos, y en todo caso, si necesitamos la
informacin para posteriores anlisis, podemos realizar backups en
medios extrables. Este proceso puede automatizarse mediante uso
de scripts cron, o bien por medio de herramientas especializadas
como logrotate.
Hay otros puntos del sistema que suelen crecer mucho, como pueden
ser:
Ficheros core de los usuarios: podemos eliminarlos peridicamente o eliminar su
generacin.
El sistema de correo electrnico: almacena todos los correos enviados y recibidos;
podemos pedir a los usuarios que hagan limpieza peridica, o bien poner sistemas
de cuotas.
Las cachs de los navegadores u otras aplicaciones: tambin suelen tener tamaos
grandes, otra limpieza que habr que hacer peridicamente.
Discos y filesystems
Herramienta Logrotate
Contiene tareas de cron que hace circular rotar los archivos de log.
Utiliza el archivos de configuracin /etc/logrotate.conf y los archivos de
configuracin en el directorio /etc/logrotate.d/
Logrotate.conf
weekly -> Por defecto se rotar
cada semana, otras opciones son
daily y monthly.
rotate 4 -> Cuanto tiempo se
conservan los antiguos, por defecto
son cuatro semanas, algunos
ficheros pueden ser muy
importantes y que los conservemos
todos.
create -> Para que se cree un
fichero al rotar, en donde se
guardar la informacin otra vez.
Por detrs se
est utilizando
iptables
Keeping Your Linux Safe
$ getfacl file|directory
Ejemplo:
$ getfacl file1
Ejemplos:
$ setfacl -m u:markitux:rx /home/stephane/file1
$ setfacl -x u:markitux /home/stephane/file
ACL de sistemas de archivos
Tenga en cuenta que los archivos nuevos heredan
la ACL predeterminada (si ha sido configurada) desde el directorio
en el cual residen. Note tambin que mv y cp -p mantienen
las ACLs.
$ umask 0022
ls l practico2.txt
$ umask 0666
ls -l
Expresiones regulares
Introduccin
Las expresiones regulares son patrones que slo ciertos
comandos son capaces de interpretar. Son similares a los
comodines, pero tienen ms variedad y poder. Como
globos, las expresiones regulares se pueden ampliar para
que coincida con ciertas secuencias de caracteres de
texto.
Las expresiones regulares tienen dos formas comunes:
bsico y ampliado. La mayora de los comandos que
utilizan expresiones regulares pueden interpretar las
expresiones regulares bsicas. Sin embargo, las
expresiones regulares extendidas no estn disponibles
para todos los comandos y una opcin de comando
normalmente se requiere para que funcionen
correctamente.
Patrones extendido vs bsicos
Patrones extendido vs bsicos
La siguiente tabla resume las expresiones regulares
extendidas, las cuales deben ser utilizados ya sea con el
comando egrep o grep -E:
Ejemplos
Al inicio
Al final
Ejemplos
Ejemplos
[0123456789]
niega
Ejemplos
Ejemplos
Ejemplos
Prctico
Explique:
Ing. Marco Antonio. Arenas Porcel
Email:marcoap@usfx.edu.bo
:markituxfor@gmail.com
216