You are on page 1of 216

CAP Extra:

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

Ejecucin de varios comandos


Introduccin
BASH Shell
Esta basado en variables, le permite para almacenar datos. Estos
datos pueden usarse para proporcionar informacin crtica del
sistema o para cambiar el comportamiento de la forma de trabajo (u
otros comandos).
PATH
Comandos:
env
export
unset
which
rbol de Directorios
El rbol

Estndar de Jerarqua del Sistema de


Archivos (Filesystem Hierarchy Standard
o FHS)

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.

Con todo, en configuraciones ms profesionales suele ser habitual


separar particiones con partes "diferenciadas" del sistema. Una
tcnica habitual es, por ejemplo (veremos ms opciones despus),
crear particiones diferentes para:
Almacn de datos

Cuando se habla de cmo se organizan los archivos y datos


en el gran rbol de directorios, es importante conocer la
taxonoma en cunto a qu tipo de informacin tiene que ser
leda y cul escrita. En particular, hay dos tipos de
diferencias:
Compartidos vs no-compartidos
Variable vs. esttico
Los archivos estticos incluyen
binarios, bibliotecas, documentacin y
todo lo que no cambia sin ayuda del
administrador de sistemas. Los
archivos variables son cualquier cosa
que puede cambiar, incluso sin ayuda
del administrador de sistemas.
FHS

El Estndar de Jerarqua del Sistema de


Archivos (FHS, de Filesystem Hierarchy Standard),
administrado inicialmente por el Free Standards Group y
ahora por la Linux Foundation, especifica los directorios
principales que deben estar presentes y describe sus
propsitos.
Al especificar un diseo estndar, el FHS simplifica el tema de la
localizacin de los archivos. Aunque la mayora de las
distribuciones de Linux respetan el FHS, probablemente ninguno
de ellos lo sigue exactamente. Por otro lado, la ltima versin oficial
no tiene en cuenta algunos desarrollos nuevos.
Directorios Principales
Linux FS
El tipo de particiones swap es de tipo Linux swap, y la correspondiente
a / suele ser de alguno de los sistemas de ficheros estndar, ya sea
ext2 (el tipo por defecto hasta los kernels 2.4), ext3 o el nuevo ext4,
que son mejoras del ext2 compatibles pero con journaling, lo que
permite tener un log de lo que va pasando al sistema de ficheros, para
recuperaciones ms rpidas en caso de error. Tambin pueden ser
habituales otros sistemas de archivos, como Reiser o XFS.
Respecto a los sistemas de ficheros soportados debemos destacar la
gran variedad de ellos; actualmente, podemos encontrar (entre otros):
Sistemas asociados a GNU/Linux, como el estndar ext2, ext3, o el nuevo ext4.
Compatibilidad con entornos no GNU/Linux: msdos, vfat, ntfs, acceso a los
diferentes sistemas de fat16, fat32 y ntfs. Tambin se disponen de compatibilidad a
otros entornos como Mac con hfs y hfsplus.
Sistemas asociados a soportes fsicos, caso de CD/DVD, como los iso9660 y udf.
Sistemas usados en diferentes Unix, que ofrecen generalmente mejor rendimiento
(a veces, a costa de mayor consumo de recursos, en CPU por ejemplo), como JFS2
(IBM), XFS (SGI), o ReiserFS.
Linux FS
Sistemas de ficheros en red (ms tradicionales): NFS, Samba (smbfs, cifs),
permiten acceder a sistemas de ficheros disponibles en otras mquinas de forma
transparente por red.
Sistemas distribuidos en red: como GFS o Coda.
Pseudosistemas de ficheros, como procfs (/proc) o sysfs (/sys).

En la mayora (excepto algn caso especial) de estos sistemas de


ficheros, GNU/Linux nos permitir crear particiones de estos tipos,
construir el sistema de ficheros del tipo requerido y montarlas como
parte integrante del rbol de directorios, ya sea de forma temporal o
permanente.
Gracias a las posibilidades de FUSE, se tiene un soporte ms o
menos completo de NTFS (mientras Microsoft no haga ms cambios
en la especificacin), en especial desde la aparicin del driver (basado
en FUSE) ntfs-3g y la combinacin con las utilidades ntfsprogs.
Linux
FS
$ cat /proc/filesystems
Disponibles
Sistema de archivos raz (/)
La particin raz debe contener todos los archivos esenciales
necesarios para iniciar el sistema y luego montar el resto de los
sistemas de archivos. Por lo tanto necesita utilidades, archivos de
configuracin, informacin del cargador de arranque y otros datos
esenciales del inicio. Debe estar habilitado para:
Iniciar el sistema.
Restaurar el sistema desde copias de seguridad de medios externos, tales como
cintas y otros medios extrables, o NAS, etc.
Recuperar y/o reparar el sistema; un administrador experimentado debe tener las
herramientas para diagnosticar y reconstruir un sistema daado.
De acuerdo con el FHS, ninguna aplicacin o paquete debera crear
nuevos subdirectorios en el directorio raz.
/bin
Contiene programas y scripts ejecutables necesarios tanto por
administradores de sistemas y usuarios sin privilegios, que son
necesarios cuando todava no se ha montado ningn otro sistema de
archivos, por ejemplo, al iniciar en modo monousuario o en modo de
recuperacin.
Tambin puede contener ejecutables que son utilizados
indirectamente por scripts.
No debe contener ningn subdirectorio.
Los comandos binarios que no son considerados esenciales lo
suficiente para ir en /bin van en /usr/bin. Solamente los programas
requeridos por los usuarios que no son root se colocan en esta
categora.
/bin
/boot
Los archivos esenciales para iniciar el sistema deben estar en el
directorio /boot y sus subdirectorios. Los dos archivos absolutamente
esenciales son:
vmlinuz: El kernel Linux comprimido.
initramfs: El sistema de archivos de RAM inicial (initrd), el cual se
monta antes de que el sistema real de archivos raz est disponible.

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.

System.map: La tabla de smbolos del kernel, la cual es muy til en la depuracin de


programas. Entrega las direcciones hexadecimales de todos los smbolos del kernel.

En Unix no hay /boot


/dev
Todas las distribuciones modernas de Linux (no embebidas) utilizan el
sistema udev, el cual crea nodos en /dev slo a medida en que se
necesita, lo que sucede cuando se encuentran dispositivos, ya sea al
inicio o al conectarlos al sistema.

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.

Las distribuciones a menudo agregan archivos de configuracin y directorios a /etc.


Por ejemplo, Red Hat aade un nmero directorios adicionales
incluyendo /etc/sysconfig, donde se alojan archivos y directorios de configuracin
del sistema.
Otros subdirectorios importantes incluyen /etc/skel, que contiene archivos de
plantilla usados para popular directorios de usuario recin creados.
Tambin /etc/init.d, que contiene scripts de inicio y detencin cuando se utiliza la
inicializacin de System V.
/home
Toda la configuracin personal, datos y programas ejecutables se
ponen en esta jerarqua de directorios. /home tambin puede contener
subdirectorios para varios grupos o asociaciones de usuarios,
como /home/estudiantes, /home/staff, /home/aliens, etc.

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.

sysfs se utiliza tanto para recopilar informacin sobre el sistema,


como tambin modificar su comportamiento mientras se ejecuta. En
ese sentido se parece a /proc, pero es ms nuevo y se ha adherido a
normas estrictas acerca de qu tipo de entradas que puede contener.
Por ejemplo, casi todos los seudoarchivos en /sys contienen slo
una lnea o valor; no existe ninguna de las entradas largas que se
pueden encontrar en /proc.
/tmp
Este directorio se utiliza para almacenar archivos
temporales, y puede ser accedido por cualquier usuario o
aplicacin. Sin embargo, no se puede esperar que los
archivos en /tmp estn ah por largo tiempo:
Algunas distribuciones corren tareas de cron automatizados, los que
generalmente eliminan los archivos de ms 10 das, a menos que los
scripts de purga hayan sido modificado para excluirlos. Esta es la poltica
de RHEL 6.
Algunas distribuciones eliminan el contenido de /tmp con cada reinicio del
sistema. Esta ha sido la poltica de Ubuntu.
Algunas distribuciones modernas utilizan un sistema de archivos virtual,
usando el directorio /tmp slo como un punto de montaje para un disco
ram utilizando el sistema de archivos tmpfs. Esta es la poltica por defecto
de los sistemas Fedora recientes. Cuando el sistema se reinicia, toda la
informacin se pierde; /tmp es de hecho temporal!
/tmp
En este ltimo caso, hay que evitar la creacin de archivos de gran
tamao en /tmp, debido a que en realidad va a ocupar espacio en
memoria en vez de disco, y es fcil daar o bloquear el sistema a
travs del agotamiento de la memoria.
Si bien es cierto que la gua para las aplicaciones es evitar poner
archivos de gran tamao en /tmp, hay un gran nmero de
aplicaciones que violan esta poltica. Incluso si fuera posible ponerlos
en otro lugar (tal vez mediante la especificacin de una variable de
entorno), muchos usuarios no saben cmo configurarlo, y por otro
lado, todos los usuarios tienen acceso a /tmp.
Esta poltica puede ser cancelada en los sistemas utilizando systemd, como
en Fedora, a travs del siguiente comando:

/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

Linux hace un uso amplio de sistemas de archivos


especiales para ciertas tareas. Estos son particularmente
tiles para acceder varias estructuras de datos y ajustes
de rendimiento del kernel, o para implementar funciones
especficas.
Linux implementa un Virtual File Sistem (VFS), como lo
hacen todos los sistemas operativos modernos. Cuando
una aplicacin necesita acceder a un archivo, sta
interacta con la capa de abstraccin del VFS, el cual
traduce todas las llamadas E/S en cdigo especfico
relacionado con el sistema de archivos real en particular.
Sistemas de Archivos
Especiales

Note que algunos de esos sistemas de archivos especiales no tienen punto de


montaje; esto significa que las aplicaciones de usuario no interactan con
ellos, pero el kernel lo hace, tomando ventaja de las capas y el cdigo
del VFS.
Inodo

Un inodo es una estructura de datos en el disco que


describe y almacena los atributos del archivo, incluyendo
su localizacin. Cada archivo est asociado con su propio
inodo. La informacin almacenada en el inodo incluye lo
siguiente:
Permisos
Usuario y grupo propietario
Tamao
Registros de tiempo (al nanosegundo)
Momento en el cual se realiz el ltimo acceso

Momento en el cual se realiz la ltima modificacin del


contenido
Momento en el cual se realiz la ltima modificacin del inodo
Almacenamiento de datos en un
inodo vs almacenamiento de
datos en un archivo de directorio
Los nombres de los archivos no se almacenan en el inodo
asociado al archivo, sino que lo hacen en el archivo de
directorio.
Archivos de directorios

Un archivo de directorio es un tipo de archivo en


particular, el cual es usado para asociar nombres
de archivo a inodos. Hay dos formar de asociar (o
enlazar) un nombre de archivo con un inodo:
Con enlaces duros, que apuntan a un inodo.
Con enlaces simblicos, los cuales apuntan a un nombre de archivo el
cual tiene un inodo asociado.
Cada asociacin de un contenido de los archivos de
directorio y un inodo es conocido como un enlace. Enlaces
adicionales pueden ser creados usando el comando ln.
Puntos de Montaje
Introduccin
Aparte del filesystem principal / y de sus posibles divisiones en
particiones extras (/usr /var /tmp /home), cabe tener en cuenta la
posibilidad de dejar puntos de montaje preparados para el montaje de
otros sistemas de ficheros, ya sea particiones de disco u otros
dispositivos de almacenamiento.
En las mquinas en que GNU/Linux comparte la particin con otros
sistemas operativos, mediante algn sistema de arranque (lilo o grub),
pueden existir varias particiones asignadas a los diferentes operativos.
Muchas veces es interesante compartir datos con estos sistemas, ya
sea para leer sus ficheros o modificarlos. A diferencia de otros
sistemas (que slo tienen en cuenta sus propios datos y sistemas de
ficheros, y en los cuales en algunas versiones no se soportan algunos
de sus propios sistemas de ficheros), GNU/Linux es capaz de tratar,
como hemos visto, con una cantidad enorme de sistemas de ficheros
de diferentes operativos y poder compartir la informacin.
Introduccin
Nuestro sistema GNU/Linux puede leer datos (o sea,
ficheros y directorios) de todos estos sistemas de ficheros
y escribir en la mayora de ellos.
En el caso de NTFS, hasta ciertos momentos existieron
problemas en la escritura, que estaba en forma
experimental en la mayora de drivers de kernel
aparecidos debido, principalmente, a las diferentes
versiones que van apareciendo del sistema de ficheros, ya
que existen dos versiones principales llamadas NTFS y
NTFS2, y algunas extensiones como los llamados
volmenes dinmicos, o los sistemas de ficheros cifrados.
Acceder con segn que opcin de drivers presentaba
ciertas incompatibilidades, que podran causar
corrupciones de datos o errores en el sistema de ficheros.
Tipos comunes de discos
Existe una gran variedad de tipos de discos duros; cada
uno est caracterizado por el tipo de bus de datos a
travs del cual se conecta, como tambin otros factores
como velocidad, capacidad y cun bien operan mltiples
unidades de forma simultnea.
IDE y EIDE (Entorno de desarrollo integrado e IDE mejorado)
SATA (Serial ATA) Este tipo fue diseado para reemplazar
a Parallel ATA (PATA)
SCSI (Interfaz de Sistema para Pequeas Computadoras), Estos
han sido el pilar de los servidores empresariales por dcadas.
Mientras que pueden tener una capacidad menor que los
discos SATA, tienen a ser mucho ms rpidos y a trabajar en
paralelo mucho mejor, de la forma en la que se requiere para
algunas configuraciones en RAID.
SCSI
Hay varias versiones de
SCSI: Fast, Wide, Ultra y UltraWide, lo cual torna un
poco confusas las cosas. Adems, hay muchos
controladores de dispositivo diferentes, dependiendo del
hardware especfico. Eso no sucede en SATA, ya que en
ese caso existen controladores estandarizados que
pueden adaptarse a una gran variedad de hardware.
Los discos SCSI van desde un rango pequeo (bus de 8
bits) a uno amplio (bus de 16 bits), con una tasa de
transferencia desde 5MB por segundo (un valor bajo,
correspondiente a dispositivos SCSI estndar) a cerca de
160MB por segundos (Ultra-Wide SCSI-3).
Otros

SAS, El Serial Attached SCSI es un protocolo serial punto


a punto nuevo, que viene a reemplazar a la interfaz SCSI.
Las tasas de transferencia son similar a SATA, pero el
rendimiento general es mejor.
USB, Los dispositivos de Bus Universal en Serie incluyen
memorias y discos duros externos USB. El sistema
operativo los ve como dispositivos SCSI.
En la misma categora estn las unidades SSD modernas
(dispositivos de estado slido), las cuales han bajado de precio, no
tienen partes movibles, usan menos energa que las unidades de
disco giratorio y tienen velocidades de transferencia ms rpidas.
Geometra del Disco

Actualmente los discos estn siendo fabricados con sectores ms


grandes que 512 bytes; estn disponibles en 4 KB. Mientras que
sectores de tamao ms grandes pueden conducir a velocidades de
transferencia mayores, el soporte del sistema operativo no est listo
todava para lidiar con tamaos grandes.
Particionamiento
SCSI y estndares relacionados como SATA, suportan
hasta 15 particiones en el disco. Las particiones 1-4 son
primarias o extendidas; las particiones 5-15 son lgicas.
Slo puede haber una particin extendida, pero esta
puede ser dividida en cuntas particiones lgicas se
necesiten, hasta que se alcance el nmero mximo de
particiones permitidas.
Hay diversas razones que justifican didivir los datos del
sistema en mltiples particiones, incluyendo:
Separacin
Datos compartidos (/home, /usr/local)
Seguridad
Tamao (/var) Un esquema comn de particionamiento
Rendimiento (discos SSD) contiene una particin /boot, una para el
Swap (hibernacin) sistema raz /, una particin de
intercambio y otra para el directorio /home.
Blkid y lsblk
$ sudo mkfs.ext4 /dev/sda9

blkid es una utilidad para localizar dispositivos de bloque y


entregar informacin acerca de sus atributos. Funciona
con la biblioteca libblkid. Puede tomar como argumento
un dispositivo en particular o una lista.
Blkid y lsblk
Una herramienta
relacionada
es lsblk, la cual
presenta los
resultados en un
formato de
rbol, como se
muestra abajo:
Dimensionando Particiones
Los sistemas Linux deberan tener un mnimo de dos
particiones:
/(root): utilizado para todo el sistema de archivos lgico.
Intercambio: se usa como una extensin de la memoria fsica;
pginas de memoria que no tienen un respaldo en archivo fsico,
pueden ser movidas al disco hasta que se necesiten nuevamente.
El sistema puede tener mltiples particiones o archivos de intercambio.
En un sistema de un slo disco, trate de ubicar la particin de
intercambio al centro del mismo; en sistemas de discos mltiples, trate
de repartir reas de intercambio en los discos.
Agregar ms y ms reas de intercambio no ayudar necesariamente,
ya que a partir de cierto punto se vuelve intil. En los casos en que
aparentemente falte memoria, es necesario agregar ms memoria
fsica o reevaluar la configuracin del sistema.
Ejemplos de este tema pueden ser encontrados
en https://help.ubuntu.com/community/SwapFaq y
en http://www.novell.com/support/kb/doc.php?id=7010157.
Editar tablas de particiones

Hay una serie de utilidades que pueden ser usadas para


modificar las tablas de particin:
fdisk Es un editor de tabla de particiones que tiene un men. Es
el ms estndar y uno de los editores ms flexibles.
sfdisk es un programa de edicin de particiones no interactivo, el
cual es til para hacer scripts. Use esta herramienta con mucho
cuidado!
parted es el programa de manipulacin de particiones del
proyecto GNU. Puede crear, eliminar, redimensionar y mover
particiones (incluyendo ciertos sistemas de archivos).
gparted es una interfaz grfica de parted, la cual es utilizada
ampliamente (RHE, no lo soporta).

fdisk -u=cylinders

fdisk estar incluido siempre en toda instalacin


de Linux, por lo cual es buena idea aprender a usarlo.
Usted debe ser root para ejecutar fdisk. Puede ser algo
complejo de usar y se recomienda hacerlo con
precaucin.
fdisk
$ sudo fdisk /dev/sdX

Los principales comando son:


m: Despliega el men.
p: Lista la tabla de particiones.
n: Crea una particin nueva.
d: Elimina una particin.
t: Cambia el tipo de particin.
w: Escribe la informacin nueva de la tabla de particiones y sale.
q: Sale sin realizar cambios.
kpartx
$ sudo partprobe -s
$ cat /proc/partitions
fdisk

Teniendo en cuenta que un


sector es de 512 bytes,
1024001 sectores sera
aproximadamente 500 MB
Creando Particiones
sfdisk

No slo puede este programa utilizarse para


automatizar la particin, es tambin capaz de realizar
copias de seguridad y restauracin de la tabla de
particiones actual.

Si el sistema contiene slo un disco de 500 GB, entonces la


salida del comando puede aparecer algo como lo siguiente, con
la ruta de acceso del dispositivo y su tamao:
Crear y Formatear
mkfs [-t fstype] [options] [device-file]

El nombre genrico para esas utilidades es mkfs. Sin


embargo es slo una interfaz para los programas del
sistema de archivos especfico:

Por tanto, los dos comandos de a continuacin son completamente equivalentes:


$ sudo mkfs -t ext4 /dev/sda10
$ sudo mkfs.ext4 /dev/sda10
Creando swap
Verificar y reparar
fsck [-t fstype] [options] [device-file]

El nombre genrico para esas herramientas es fsck. Sin


embargo esto es slo una interfaz para los programas
especficos de cada sistema de archivos:

Por tanto, los dos comandos de a continuacin son completamente equivalentes:


$ sudo fsck -t ext4 /dev/sda10
$ sudo fsck.ext4 /dev/sda10
Verificar y reparar
fsck

Es posible controlar si los errores encontrados deben


repararse uno a uno manualmente con la opcin -r, o
automticamente de la mejor forma posible usando la
opcin -a. Adicionalmente, cada tipo de sistema de
archivo puede tener sus propias opciones particulares
que pueden ser configuradas al momento de la
verificacin.

Usted puede forzar una verificacin de todos los sistemas montados en el prximo
arranque con los siguientes comandos:

$ sudo touch /forcefsck

$ sudo reboot
Montar y desmontar

El programa mount permite montar un sistema de


archivos en cualquier punto de la estructura de rbol;
por el contrario, umount permite desmontarlo.
El punto de montaje corresponde al directorio donde el
sistema de archivos est montado. Este debe existir con
anterioridad a que mount pueda usarlo. Si un directorio
preexistente es usado para tal efecto y contiene archivos
previamente al ser usado como punto de montaje, los
archivos se ocultarn al momento del montaje. Estos
archivos no son borrados y estarn visibles nuevamente
cuando el sistema de archivos es desmontado.
UUID

UUID Son las siglas en ingls del identificador


universalmente nico. Esto es un cdigo identificador
estndar que se utiliza en el proceso de construccin de
software.
mount /etc/fstab

$ sudo mount -t ext4 /dev/sdb4 /home

Habitualmente los sistemas de archivos son montados


utilizando el nodo de dispositivo (driver) sobre el que
reside. Sin embargo, tambin es posible montarlo
usando una etiqueta o un UUID. Por lo tanto, los
siguientes comandos son todos equivalentes:
$ sudo mount /dev/sda2 /home
$ sudo mount LABEL=home /home
$ sudo mount -L home /home
$ sudo mount UUID=26d58ee2-9d20-4dc7-b6ab-aa87c3cfb69a
/home
$ sudo mount -U 26d58ee2-9d20-4dc7-b6ab-aa87c3cfb69a
/home
mount /etc/fstab

El tipo de filesystem puede ser: msdos (fat),


vfat (fat32), ntfs (ntfs lectura), iso9660 (para
cdrom), ext2, ext3, xfs... (de los disponibles).

$mount -t filesystem-type device mount-point

Vamos a ver algunos casos:

mount -t iso9660 /dev/hdc /mnt/cdrom

mount -t iso9660 /dev/cdrom /mnt/cdrom


mount
mount tiene
muchas opciones:

Un ejemplo comn sera el siguiente:


$ sudo mount -o remount,ro /myfs

lo cual montara nuevamente un sistema de archivos con un atributo de slo lectura.


mount
Si estas particiones son ms o menos estables en el sistema (o sea,
no cambian frecuentemente) y las queremos utilizar, lo mejor ser
incluir los montajes para que se hagan en tiempo de ejecucin, al
iniciar el sistema, mediante la configuracin del fichero /etc/fstab

mount /mnt/cdrom
umount
$ umount [device-file | mount-point]

No se puede desmontar cuando esta en uso:


cd ..
Bajar procesos: puede usar fuser para encontrar qu usuarios
estn usando el sistema de archivos y detener sus procesos (sea
cuidadoso con esto, tal vez sea buena idea informar a los usuarios
antes de hacerlo). Tambin se puede usar lsof ("lista de archivos
abiertos") para ver qu archivos estn siendo utilizados y que
estn bloqueando el desmontado.

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

Durante el arranque del sistema se ejecuta el


comando mount -a. Esto monta todos los sistemas de
archivos listados en el archivo de
configuracin /etc/fstab.

Las herramientas mount y umount pueden usar la informacin que se


encuentra en /etc/fstab; en este caso podramos hacer lo siguiente:

$ sudo mount /usr/src


en vez de
$ sudo mount LABEL=src /usr/src
Listar montados
La lista de sistemas de archivos montados actualmente puede ser
vista ejecutando el siguiente comando:
Seguridad del sistemas de archivos

Cuando un sistema de archivos se monta, ya sea desde la consola


con un comando mount, o automticamente a travs de /etc/fstab,
hay varias opciones que se pueden especificar para incrementar la
seguridad:
nodev
No interprete caracteres o dispositivos especiales de bloque en el sistema de
archivos.
nosuid
Los bits set-user-identifier y set-group-identifier no tienen efecto. Vamos a
discutir en breve setuid y setgid.
noexec
Restringe la ejecucin directa de cualquier binario en el sistema de archivos
montado.
Seguridad del sistemas de archivos

ro
Monta el sistema de archivos en modo de solo lectura, como se
muestra a continuacin:

$ mount -o ro,noexec,nodev /dev/sda2 /mymountpt

o en /etc/fstab:

/dev/sda2 /mymountpt ext4 ro,noexec,nodev 0 0


Resumen de comandos

mkfs, es la herramienta general para


formatear sistemas de archivos.
fsck, es la herramienta general para verificar
y reparar sistemas de archivos.
lsoft, es una herramienta para listar los
archivos en uso
Herramientas de
Administracin
Introduccin
1) Webmin: es una herramienta de administracin
pensada desde interfaz web. Funciona con una serie de
plugins que se pueden aadir para cada servicio a
administrar y cuenta con formularios donde se especifican
los parmetros de configuracin de los servicios. Adems,
ofrece la posibilidad (si se activa) de permitir
administracin remota desde cualquier mquina con
navegador.
Introduccin
Webmin:
Webmin
Webmin
Webmin
Webmin
Introduccin
2) Otras en desarrollo, como cPanel, ISPConfig...
3) Herramientas grficas individuales de administracin,
cada distribucin las tiene.
Introduccin
Muchas de ellas son simples frontends (o cartulas) a las
herramientas bsicas de sistema, o bien estn adaptadas
a particularidades de la distribucin.
Cabe destacar, en especial en este apartado, la
distribucin Fedora (Red Hat y derivados), que intenta
disponer de distintas utilidades (ms o menos
minimalistas) para diferentes funciones de administracin.
Las podemos encontrar en el escritorio (en el men de
administracin), o en comandos como systemconfig-xxxxx
para diferentes funcionalidades como gestin de pantalla,
impresora, red, seguridad, usuarios, paquetes, etc.
Podemos ver en la figura algunas de ellas:
Otras herramientas
Los mltiples comandos de utilidad UNIX bsicos: grep,
awk, sed, find, diff, gzip, bzip2, cut, sort, df, du, cat, more,
file, which...
Los editores: vi, joe, emacs, nano
Lenguajes de tipo script
Vi
Con unos pocos comandos bsicos se puede ya trabajar en vi editando
y salvando un texto:
vi arch1 arranca en modo comando editando el archivo arch1
i inserta texto a la izquierda del cursor
a agrega texto a la derecha del cursor
ESC vuelve a modo comando
x borra el carcter bajo el cursor
dd borra una lnea
:w salva el archivo (graba en disco)
:q sale del editor (debe salvarse primero)
Vi CTRL-G, lnea donde estamos.
Arranque del Sistema
GNU/Linux
Niveles de Arranque

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

El resultado de la ejecucin de ls /proc muestra ms de un centenar de


directorios numerados. Hay un directorio de nmeros para cada proceso que
se ejecuta en el sistema, en el que el nombre del directorio coincide con el
PID (identificador de proceso) para el proceso en ejecucin.
Niveles de Arranque
Debido a que el proceso /sbin/init es siempre el primer proceso,
tiene un PID 1 y la informacin se pueden encontrar en el directorio
/proc/1 directorio.
Se puede ver tambin que hay una serie de archivos normales del
directorio /proc, como /proc/cmdline, /proc/modules y /proc/meminfo.
Estos archivos proporcionan informacin sobre el ncleo en
ejecucin:
El archivo /proc/cmdline, contiene toda la informacin que se ha pasado al
kernel como el kernel se inici primero.
El archivo /proc/meminfo contiene informacin sobre el uso de la memoria por el
kernel.
El archivo /proc/modules tiene una lista de los mdulos actualmente cargado en
el kernel para aadir funcionalidad extra.
Niveles de Arranque
Un primer punto importante en el anlisis del
comportamiento local del sistema es su funcionamiento
en los llamados niveles de ejecucin (o runlevels), que
determinan (en el nivel) el modo actual de trabajo del
sistema y los servicios que se proporcionan.
Un servicio es una funcionalidad proporcionada por la
mquina, normalmente basada en daemonds (o
procesos en segundo plano de ejecucin, que controlan
peticiones de red, actividad del hardware, u otros
programas que provean alguna tarea).
Niveles de Arranque
Si bien la mayora de los "archivos" debajo del directorio /proc no se
puede modificar, incluso por el usuario root, los "archivos" debajo
del directorio /proc/sys pueden ser modificados por el usuario root.
La modificacin de estos archivos cambiar el comportamiento del
kernel de Linux.
Niveles de Arranque
La modificacin directa de estos archivos causan slo cambios
temporales en el kernel. Para realizar cambios permanentes, las
entradas se pueden agregar al archivo /etc/sysctl.conf.
Niveles de Arranque
Por ejemplo, el /proc/ipv4/sys/net/ contiene un archivo denominado
icmp_echo_ignore_all.
Si ese archivo contiene un cero (0), como lo hace normalmente,
entonces el sistema responder a las solicitudes icmp. Si ese
archivo contiene un uno (1), entonces el sistema no responder a
las solicitudes icmp
Niveles de Arranque
Niveles de Arranque
Cuando un sistema GNU/Linux arranca, primero se carga el kernel
del sistema, despus se inicia el primer proceso, denominado init,
que es el responsable de ejecutar y activar el resto del sistema,
mediante la gestin de los niveles de ejecucin (o runlevels).
Niveles de Arranque
La activacin o parada de servicios se realiza mediante la utilizacin
de scripts.
La mayora de los servicios estndar, que suelen tener su
configuracin en el directorio /etc, suelen controlarse mediante los
scripts presentes en /etc/init.d/ . En este directorio suelen aparecer
scripts con nombres similares al servicio donde van destinados, y se
suelen aceptar parmetros de activacin o parada.
Se realiza:
/etc/init.d/servicio start
/etc/init.d/servicio stop
/etc/init.d/servicio restart
Niveles de Arranque
En el caso del modelo runlevel de SystemV, cuando el proceso init
arranca, utiliza un fichero de configuracin llamado /etc/inittab para
decidir el modo de ejecucin en el que va a entrar. En este fichero
se define el runlevel por defecto (initdefault) en arranque (por
instalacin en Fedora el 5, en Debian el 2) y una serie de servicios
de terminal por activar para atender la entrada del usuario.
Despus, el sistema, segn el runlevel escogido, consulta los
ficheros contenidos en /etc/rcn.d, donde n es el nmero asociado al
runlevel (nivel escogido), en el que se encuentra una lista de
servicios por activar o parar en caso de que arranquemos en el
runlevel o lo abandonemos. Dentro del directorio encontraremos
una serie de scripts o enlaces a los scripts que controlan el servicio.
Niveles de Arranque
Una serie de comandos de sistema sirven de ayuda
para manejar los niveles de ejecucin. Cabe mencionar:
Los scripts, que ya hemos visto, en /etc/init.d/ nos permiten arrancar,
parar o reiniciar servicios individuales.
telinit nos deja cambiar de nivel de ejecucin; slo tenemos que indicar
el nmero.
shutdown permite parar ('-h' de halt) o reiniciar el sistema ('-r' de
reboot). Puede darse un intervalo de tiempo para hacerse, o bien
realizarse inmediatamente. Para estas tareas tambin existen los
comandos halt y reboot.
wall permite enviar mensajes de advertencia a los usuarios del
sistema.
pidof permite averiguar el PID (process ID) asociado a un proceso.
systemctl,
Niveles de Arranque
Respecto a todo el modelo de arranque, las distribuciones
presentan algn pequeo cambio:
Fedora/Red Hat: el runlevel 4 no tiene un uso declarado. Los directorios
/etc/rcn.d existen como enlaces hacia subdirectorios de /etc/rc.d, donde estn
centralizados los scripts de arranque. Los directorios son, as: /etc/rc.d/ rcn.d;
pero como existen los enlaces, es transparente al usuario. El runlevel por defecto
es el 5 con arranque con X. Los comandos y ficheros relacionados con el
arranque del sistema estn en los paquetes de software sysvinit y initscripts.
Adems, Fedora proporciona unos scripts de utilidad para manejar servicios:
/sbin/service para parar o iniciar un servicio por el nombre y /sbin/chkconfig para
aadir enlaces a los ficheros S y K necesarios para un servicio, o la obtencin de
informacin sobre los servicios.
Debian dispone de comandos de gestin de los runlevels como update-rc.d, que
permite instalar o borrar servicios arrancndolos o parndolos en uno o ms
runlevels. Otro comando es invoke-rc.d, que permite las clsicas acciones de
arrancar, parar o reiniciar el servicio. El runlevel por defecto en Debian es el 2, el
X Window System no se gestiona desde /etc/inittab, sino que existe el gestor (por
ejemplo, gdm o kdm), como si fuera un servicio ms del runlevel 2
Niveles de Arranque
Upstart, un nuevo sistema
Upstart es un nuevo sistema de arranque basado en eventos, diseado para
sustituir al proceso comentado generado por el init del sistema de arranque
sysvinit. Uno de los principales problemas del daemon init de SystemV es que no
fue pensado para hardware moderno, que permite dispositivos removibles, o
dispositivos que puedan ser conectados/sustituidos en caliente (hotplug).
Este sistema fue diseado por la empresa Canonical, para incorporarse en
Ubuntu 6.10 (2006) y ha sido incorporado posteriormente a las diferentes
versiones de Ubuntu, y a Fedora (a partir de la versin 9) y openSUSE (11.3).
Debian mantiene el anterior sistema con ciertas modificaciones (initng, una
alternativa a Upstart) hasta las ltimas versiones, pero migrar progresivamente
al nuevo sistema (debido a los intentos, por ambas partes, por mantener el
mximo nivel de semejanza con Ubuntu y Debian).
Para examinar el sistema Upstart, podemos usar como herramienta bsica el
comando initctl
Niveles de Arranque
Upstart,
Por otra parte, distribuciones como Ubuntu ( la distribucin que
se desarroll Upstart) se puede cambiar mediante el
establecimiento de la default_runlevel variable ambiental en el
archivo /etc/init/rc-sysinit.conf.
Niveles de Arranque
Upstart,
Usando initctl usted puede ver, iniciar y detener procesos casi
del mismo modo que lo hace service. La sintaxis es como sigue:

Donde options puede tener los siguientes valores:


start: Inicia un proceso
stop: Detiene un proceso
restart Reinicia un proceso
reload Enva la seal HUP a un proceso
status Consulta el estado de un proceso
list: Lista los procesos conocidos
emit Emite un evento
Niveles de Arranque
Systemd
No utiliza run levels, si no targets.
Definido por: /etc/systemd/system/default.target
Niveles de Arranque
Systemd y target
Niveles de Arranque
Ver el nivel de ejecucin.
Niveles de Arranque
chkconfig
Niveles de Arranque
chkconfig

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:

Cuando el comando ps se ejecuta con una opcin de estilo BSD, una


columna adicional llamada STAT se muestra, que transmite el estado de los
procesos. Hay varios estados que un proceso puede estar en: D
(Uninterruptible Sleep), R (Running), S (interrumpible Sleep), T (Detenido) y
Z (Zombie).
Comando ps
Como usuario root, puede estar ms preocupado por los
procesos de otro usuario, que ms de sus propios
procesos. Debido a los diversos estilos de las opciones
que el comando ps apoya, hay diferentes formas de ver
los procesos de un usuario individual. El uso de la
opcin tradicional de UNIX, para ver los procesos de
usuario "administrador de sistemas", ejecute el siguiente
comando:
Comando ps
Desde el root controlamos a otro usuario.
Comando top
Una versin que nos da una lista actualizada a
intervalos, monitorizando dinmicamente los cambios. Y
nos permite ordenar el listado de procesos por
diferentes tems, como gasto de memoria, de uso CPU,
con propsito de obtener un ranking de los procesos que
acaparan los recursos. Muy til para dar indicios en
situaciones extremas de saturacin de uso de recursos,
de la posible fuente de problemas.
Por defecto, la salida del comando top est ordenada
por el % de tiempo de CPU que cada proceso est
utilizando en la actualidad, con los valores ms altos que
figuran en primer lugar.
Comando top

Los top, esto


significa procesos
que son "CPU hogs"
se enumeran en
primer lugar.
Comando top
Hay una extensa lista de comandos que se pueden ejecutar desde
el programa top ejecutando:

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

Otra razn para los administradores para mantener el


comando top en funcionamiento es la capacidad de
supervisar el uso de memoria en tiempo real. Tanto el
comando top y el comando free visualizan
estadsticas de forma general de la memoria que se est
utilizando.
El comando top tambin tiene la capacidad de mostrar
el porcentaje de memoria utilizada por cada proceso, por
lo que un proceso que consume una cantidad excesiva
de memoria puede ser rpidamente identificado.
Comando jobs

Lista los procesos actuales en ejecucin:


Comando free
Ejecutar el comando free sin ninguna opcin ofrece una captura de
la memoria utilizada en ese momento.
Si desea supervisar el uso de memoria en el tiempo con el comando
free, entonces se puede ejecutar con la opcin -s y especificar ese
nmero de segundos. Por ejemplo, la ejecucin de libre -s 10
actualizara la salida de cada diez segundos.
Con -m o las opciones -g pueden ser tiles para mostrar la salida,
ya sea en megabytes o gigabytes, respectivamente.
Comando free
Si la cantidad de memoria y de swap que est disponible
es muy bajo, el sistema comenzar a cancelar
automticamente los procesos. Esta es una razn por
qu es importante supervisar el uso de memoria del
sistema.
Un administrador que se da cuenta que el sistema
queda con poca memoria, puede utilizar top o kill para
finalizar los procesos de su propia eleccin, en lugar de
dejar que el sistema elija.
Comando kill

Nos permite eliminar procesos del sistema mediante el


envo de seales al proceso como, por ejemplo, la de
terminacin kill -9 PID (9 corresponde a SIGKILL),
donde indicamos el identificador del proceso. Resulta til
para procesos con comportamiento inestable o
programas interactivos que han dejado de responder.
Podemos ver una lista de las seales vlidas en el
sistema con man.
Comando kill
HUP Signal
En algunos casos, un usuario puede querer ejecutar un comando
que no va a salir de forma automtica cuando se enva un HUP
seal, por ejemplo al cerrar la sessin. Para tener un proceso de
ignorar una seal de colgar, se inicia el proceso con el comando
nohup.

La prxima vez que el usuario inicia sesin, la salida de la


secuencia de comandos, en su caso, estara contenida en el
archivo nohup.out en el directorio home del usuario.
Prioridad de Procesos
Cuando un proceso se ejecuta, debe tener acceso a la CPU para
realizar acciones. No todos los procesos tienen el mismo acceso a
la CPU. Por ejemplo, proceso del sistema suelen tener una mayor
prioridad al acceder a la CPU.
El ncleo de Linux ajusta dinmicamente la prioridad de los
procesos para tratar de hacer que el sistema operativo pareca
sensible para el usuario y eficiente en la realizacin de tareas. Un
usuario puede influir en la prioridad que se le asigna a un proceso
mediante el establecimiento de un valor de algo llamado la
amabilidad (niceness).

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:

Los nombres de los archivos


que aparecen en la tabla
pueden tener un sufijo
numrico o de fecha aadido
a ellos, por ejemplo: secure.0
o secure-20131103
Logs del Sistema
Logs del Sistema

Aunque la mayora de los archivos de registro contienen texto en su


contenido, que se pueden ver de forma segura con muchas
herramientas, otros archivos, como el directorio /var/log/btmp (log
de intentos fallidos) y /var/log/wtmp contienen archivos binarios.
Para los archivos que contienen datos binarios, normalmente hay
comandos disponibles que leer los archivos, interpretar su
contenido y, a continuacin el texto de salida. Por ejemplo, los
comandos lastb y last se pueden utilizar para ver los contenidos
/var/log/btmp y /var/log/wtmp respectivamente.
Varias utilidades para procesamiento combinado de logs, que
emiten resmenes (o alarmas) de lo sucedido en el sistema, como
por ejemplo: logwatch, logcheck(Debian), log_analysis (Debian).
Comando dmesg

El archivo /var/log/dmesg contiene los mensajes del


kernel que se produjeron durante el inicio del sistema. El
archivo /var/log/messages contendr mensajes del
kernel que se producen cuando el sistema est en
funcionamiento, pero esos mensajes se mezclan con
otros mensajes de los demonios o procesos.
Aunque el ncleo no tiene su propio archivo de registro
normalmente, uno puede configurarlo para ellos por lo
general mediante la modificacin o bien el
/etc/syslog.conf o el archivo /etc/rsyslog.conf. Adems,
el comando dmesg puede utilizarse para ver el bfer de
anillo de kernel, que llevar a cabo una gran cantidad de
mensajes que se generan por el ncleo.
Comando dmesg
Memoria

Respecto a la memoria del sistema, deberemos tener en


cuenta que disponemos de la memoria fsica de la
propia mquina y de la memoria virtual, que puede ser
direccionada por los procesos. Normalmente (a no ser
que estemos tratando con servidores empresariales), no
dispondremos de cantidades demasiado grandes, de
modo que la memoria fsica ser menor que el tamao
de memoria virtual necesario (4GB en sistemas de 32
bits). Esto obligar a utilizar una zona de intercambio
(swap) sobre disco, para implementar los procesos
asociados a memoria virtual.
Memoria

Esta zona de intercambio (swap) puede


implementarse como un fichero en el sistema de
archivos, pero es ms habitual encontrarla como
una particin de intercambio (llamada de swap),
creada durante la instalacin del sistema. En el
momento de particionar el disco, se declara
como de tipo Linux Swap.
Memoria

Para examinar la informacin sobre memoria, tenemos


varios mtodos y comandos tiles (adems de ps, top,
free):
Fichero /etc/fstab: aparece la particin swap (si existiese). Con
un comando fdisk podemos averiguar su tamao (o consultar a
/proc/swaps).
Comando vmstat: informa sobre el estado de la memoria virtual,
y el uso que se le da.
Algunos paquetes como dstat permiten recoger datos de los
diferentes parmetros (memoria, swap y otros) a intervalos de
tiempo (de forma parecida a top).
vmstat
Discos y filesystems

Cuando dispongamos de una particin y de un


determinado filesystem accesible, tendremos
que realizar un proceso de montaje para
integrarla en el sistema, ya sea explcitamente o
bien programada en arranque. En el proceso de
montaje, se conecta el sistema de archivos
asociado a la particin a un punto del rbol de
directorios.
Discos y filesystems
Para conocer los discos (o dispositivos de almacenamiento)
que tenemos en el sistema, podemos basarnos en la
informacin de arranque del sistema (comando dmesg o
/var/log/messages), donde se detectan los presentes, como
los /dev/hdx para los dispositivos IDE o los SCSI con
dispositivos /dev/sdx. ltimamente los discos SATA y
antiguos IDE son presentados como scsi, debido a una capa
de emulacin del kernel que trata a los discos como scsi.
Otros dispositivos, como discos duros conectados por USB,
discos flash (los de tipo pen drive), unidades removibles, CD-
ROM externos, suelen ser dispositivos con algn tipo de
emulacin scsi, por lo que tambin se vern como dispositivo
de este tipo.
Discos y filesystems
Para examinar la estructura de un dispositivo conocido o cambiar su
estructura particionando el disco, podemos utilizar el comando fdisk,
o cualquiera de sus variantes ms o menos interactivas (cfdisk,
sfdisk). Por ejemplo, al examinar un disco ejemplo /dev/sda, nos da
la siguiente informacin:

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.

size -> Los rotacuando el tamao


mximo de un fichero sea la cantidad que
se ponga, en formato size 4096k , size
256M.
Logrotate.conf
prerotate/postrotate -> antes o
despus de rotar, puede hacer
alguna accin como ejecutar un
script o unos comandos.

Al rotar los logs los iria renombrando aadiendo nmeros.


Actualizaciones
Hardware

Intel, AMD and Cyrix.


Hardware
Hardware
Hardware
Hardware
Keeping Your Linux Safe

La cosa ms fcil que usted puede hacer es utilizar una


buena, contrasea nica donde quiera que vaya,
especialmente en el equipo local. Una buena contrasea
es de al menos 10 caracteres de longitud y contiene una
mezcla de nmeros, (caso tanto superior e inferior) letras
y smbolos especiales. Use un paquete como KeePassX
para generar contraseas, y despus, slo necesita tener
una contrasea de acceso a su mquina y una contrasea
para abrir el archivo KeePassX.
Keeping Your Linux Safe
Hacer un punto de comprobacin de actualizaciones peridicamente.
Aqu, se muestra la configuracin de actualizacin de software de
Ubuntu, que est disponible en el men Configuracin.
Keeping Your Linux Safe
Tambin proteger el ordenador de aceptar conexiones entrantes. Un
firewall es un dispositivo que filtra el trfico de red y Linux tiene uno
incorporado. Si est usando Ubuntu, entonces el gufw es una interfaz
grfica para "firewall sin complicaciones" de Ubuntu.

Por detrs se
est utilizando
iptables
Keeping Your Linux Safe

Tambin proteger el ordenador de aceptar


conexiones entrantes. Un firewall es un dispositivo
que filtra el trfico de red y Linux tiene uno
incorporado. Si est usando Ubuntu, entonces el
gufw es una interfaz grfica para "firewall sin
complicaciones" de Ubuntu.
Permisos
Introduccin
Comandos
De usuario propietario:
chown
De grupo propietario:
chgrp, newgrp
Permisos
chmod

Estos comandos tambin permiten la opcin -R, que es recursiva si se trata de un


directorio.
Modificando permisos
chmod
El Mtodo Octal
chmod
chgrp y chown
chgrp
umask
Los permisos por defecto dados al crear un archivo son
lectura/escritura para el propietario, grupo y mundo
(0666). Para un directorio es lectura/escritura/ejecucin
para todos (0777). Sin embargo, si hace lo siguiente:

Notar que los permisos actuales cambiaron a 664 para el archivo


y 775 para el directorio. Han sido modificados por el umask actual, cuyo
propsito es mostrar qu permisos deberan ser denegados. El valor actual
se puede mostrar con:
umask
umask
Este valor se combina con los permisos de creacin de
archivos para obtener el resultado real, es decir:

Puede cambiar el umask en cualquier momento con un comando como el


siguiente:
bit de usuario bit de grupo

Permisos setuid y setdig


Normalmente un programa corre con los privilegios del usuario que
lo ejecut. Esto significa que sin importar quien es el dueo del
binario que est corriendo, el proceso de todas formas tiene
privilegios restringidos.
Ocasionalmente puede tener sentido que haya usuarios con
capacidades extendidas que no tienen generalmente, tales como la
habilidad para iniciar o detener una interfaz de red, o editar un
archivo del cual el superusuario es dueo.
Al configurar el bit setuid (set user ID) en un archivo ejecutable, se
modifica el comportamiento normal y se otorgan derechos de
acceso del dueo en vez del usuario que ejecuta el programa.
Adems es posible configurar el bit setgid, de tal forma que el
proceso se ejecute con los privilegios del grupo que es dueo del
binario, en vez del de quien lo est corriendo.
Esto es generalmente una mala idea
Permisos setuid y setdig
El permiso setuid se utiliza en archivos ejecutables donde los
usuarios que no son root, pero para ejecutar dichos archivos como
si fueran el usuario root. Ejemplo el comando passwd.
Permisos setuid y setdig

$ chmod u+s somefile $ chmod g+s somefile

$ chmod g+s somedir


Los archivos creados en este directorio pertenecen al grupo del dueo del directorio
(y no al grupo del usuario que lo crea).

Ojo: Tenga en cuenta que efectivamente no puede cambiar el setuid de un script


shell; de hecho, no suceder nada a menos que usted cambie el bit setuid en la
consola, lo cual podra ser un tremendo agujero de seguridad. Solo se puede
hacer en binarios ejecutables.
ACL de sistemas de archivos
Linux tiene una implementacin completa de ACLs POSIX (listas
de control de acceso), la cual extiende el modelo simple de usuario,
grupo, mundo, lectura, escritura y ejecucin.
Privilegios en particular pueden ser concedidos a usuarios
especficos o grupos de usuarios al acceder ciertos objetos o clases
de objetos. Es posible compartir archivos y directorios sin usar
permisos 777.
Mientras que el kernel Linux habilita el uso de ACLs, an debe ser
implementado en el sistema de archivos en particular. Todos los
sistemas de archivos principales usados en las distribuciones
modernas de Linux incorporan las extensionesACL, y es posible
usarlas con la opcin -acl al montar el sistema de archivos. Durante
la instalacin del sistema de archivos se crea un conjunto de ACLs
por defecto.
ACL de sistemas de archivos
Para ver las ACLs:

$ getfacl file|directory

Ejemplo:
$ getfacl file1

Para configurar ACLs:


$ setfacl options permissions file|directory

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.

Para eliminar una ACL:


$ setfacl -x u:isabelle /home/stephane/file1

Para establecer el valor predeterminado en un directorio:


$ setfacl -m d:u:isabelle:rx somedir
Prctico
Es posible usar ya sea el mtodo de dgitos octales o
simblico para especificar los permisos al usar chmod.
Elaboremos un poco ms en el mtodo simblico. Se
puede otorgar permisos directamente, agregar o quitar
permisos. La sintaxis es bastante obvia.
Cree un archivo llamado practico2.txt
Luego de ejecutar los siguientes comando que resultara:

$ chmod u=r,g=w,o=x practico2.txt


$ chmod u=+w,g=-w,o=+rw practico2.txt
$ chmod ug=rwx,o=-rw practico2.txt
Prctico
Trabaje con el archivo anterior.
Si ejecuta umask obtendr su valor actual: .
$ umask
0002
Intente modificar el umask, el archivo y vea los permisos resultantes,
explquelos, como en:

$ 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

Este curso esta alineado a Linux Professional Institute (LPI.org)


LPIC-1 101 y CompTIA Linux+TM Powered by LPI LX0-103

216

You might also like