2. Índice
1.Introducción
2.Distribuciones
3.Arquitectura
Kernel
Entorno gráfico
Sistemas de ficheros
4.Administración
Gestión paquetes
Gestión de usuarios
Servicios
Logs del sistema y las aplicaciones
Tareas periódicas
Control de accesos
Comandos/ficheros de administración
2
3. 1 Introducción
GNU + Linux
Software libre
Multiplataforma, multiproceso, multiusuario,
multitarea.
Uso: escritorio, servidor, supercomputadoras
(top500), sistemas embebidos, etc.
Apoyo multinacionales: IBM, Sun
Microsystems, HP, Novell, etc.
En la administración pública:
http://en.wikipedia.org/wiki/Linux_adoption
3
5. 1 Introducción
Proyecto GNU
• GNU is Not Unix
• Objetivo: Sistema operativo
completo libre
• Iniciado en 1983 por
Richard Stallman
• Libertades: ejecución, copia,
modificación y distribución
• Licencia General Pública de GNU (GPL)
o Copyleft
o Variantes: Gnu Free Documentation License (GFDL),
Lesser GPL (LGPL)
• En 1985 la Free Software Fundation (FSF)
5
o Para soportar el proyecto GNU
6. 1 Introducción
Linux
• El proyecto GNU:
o Editor de textos (Emacs), Compilador (GCC), librerías y
utilidades UNIX
o Faltaba kernel. GNU/Hurd aún en desarrollo ...
• Primera versión del kernel Linux en 1991
• Por Linus Torvalds
• Licencia GPL
• Núcleo monolítico híbrido
o Módulos
• Arquitectura discutida por
Tanenbaum
o Minix vs Linux
6
7. 1 Introducción
Linux (cont)
• Actualmente kernel más
portado:
o PCs, PDAs, Router, Consolas,
MainFrames
• Versiones x.y.z,
actualmente 2.6
o Par: estable
o Impar: desarrollo
• Mascota: pingüino Tux
7
8. 1 Introducción
Hurd
• Kernel GNU bajo licencia GPL
• Compatible POSIX
• Arquitectura microkernel
o Actualmente sólo sobre GNU Mach
(CMU)
o Múltiples servidores simultáneos
• Siglas
o Hird of Unix-Replacing Daemons (Hurd)
o Hurd of Interfaces Representing Depth (Hird)
o “Manada de Ñúes”
• Otros sistemas UNIX que corren sobre Mach
o NEXTSTEP, Mac OS X, MkLinux, etc.
8
o Microkernel y (un único) servidor UNIX
9. 1 Introducción
Hurd (cont)
• Servidores (Debian)
o auth, crash, exec, ext2fs, fifo, firmlink, ftpfs, fwd,
hostmux, ifsock, init,
isofs, magic, new-fifo, nfs, null, pfinet, pflocal, proc,
storeio, symlink, term, ufs, usermux.
• Limitaciones
o Partición máx 2 GB
o Drivers correspondientes a la versión 2.0 del kernel
Linux
o RAM máx 768 MB
o No soporte audio, USB, PPP, DHCP, etc.
9
10. 1 Introducción
GNU + Kernel
• GNU/Linux (“Linux”)
• GNU/Hurd
• GNU/kFreeBSD
Otros SSOO libres
• FreeBSD
• OpenBSD
• etc.
10
11. 2 Distribuciones
Diferentes organizaciones ofrecen sus
distribuciones
“Sabores” de GNU/Linux
Conjunto de aplicaciones
Diferencias:
• Sistema de paquetes (deb, rpm, tarballs, etc.)
• Política de funcionamiento
• Facilidades de administración
11
12. 2 Distribuciones
Según el sistema de paquetes
• Basadas en rpm: RedHat, Fedora, SuSE,
Mandrake, YDL, etc.
• Basadas en deb: Debian, K/Ubuntu, Knoppix, etc.
• Basadas en fuentes: Slackware, SLAX, Gentoo,
etc.
Live CD/DVD
• Ejecución desde el CD/DVD sin instalar en el HD
• Permiten instalarlo posteriormente
12
13. 2 Distribuciones
Debian
• Creada en 1993, actualmente versión 5.0
• Filosofía software libre
• Comunidad de desarrolladores y usuarios
• Independiente a empresas
• Tres ramas de desarrollo
o stable
o testing
o unstable
• Sistema APT
13
14. 2 Distribuciones
RedHat
• Creada en 1994, actualmente RHEL 5.5
• Distribución comercial Red Hat
• En 2003 separación en:
o Red Hat Enterprise Linux (RHEL)
Ediciones de servidor y de estación de trabajo
o Fedora Core (FC)
Comunidad Fedora
• Fedora
o Fedora Core: hasta FC6 (2006)
o Fedora: fusión repositorios Core y Extras
o Actualmente Fedora 14
14
15. 2 Distribuciones
Ubuntu
• Creada en 2004 (actual Maverick Meerkat 10.10)
• Basada en Debian GNU/Linux
o Demasiada burocracia
o Actualidad vs estabilidad
o Desarrolladores en ambos proyectos
• Patrocinada por Canonical Ltd.
• Facilidad de uso y de instalación
o Eslogan: “Linux for Human Beings”
• Lanzamientos regulares:
o Cada 6 meses y LTS cada 2 años
• Ubuntu (GNOME), Kubuntu (KDE), Xubuntu (XFCE),
etc. 15
16. 2 Distribuciones
Ubuntu
• Mark
Shuttleworth
16
17. 3 Arquitectura
Kernel
• Núcleo monolítico híbrido (módulos)
o Ring 0: kernel, acceso HW
o Ring 3: modo usuario, sin privilegios
• Arquitectura discutida por Tanenbaum
o Minix vs Linux
http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html
• Versiones X.Y.Z
o Estable
o Desarrollo
• GUI fuera del kernel
17
20. 3 Arquitectura
Kernel
• Posibilidades de kernel
o Stock kernel
o Custom Kernel
• Recompilar kernel
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux2.6.X.tar.bz2
Descomprimir en /usr/src/linux
# make menuconfig (o make xconfig)
# make
# make install
# make modules_install
20
24. 3 Arquitectura
Entorno gráfico
• Servidor X
o Se encarga de dibujar en
pantalla
o Puede estar en un equipo
diferente
o Xfree86, X.org, etc.
• Gestor de ventanas
o Simplifica la utilización de ventanas
o Kwin, Metacity, Beryl/Compiz, etc.
• Escritorio
o Organiza gráficamente funcionalidades
o KDE, GNOME, XFCE, etc.
24
25. 3 Arquitectura
Organización en directorios
/ proc/ home/
bin/, sbin/ etc/ root/
boot/ usr/ ...
dev/ var/
mnt/ tmp/
“Todo es un fichero”
• /dev/
Concepto de montaje
25
26. 3 Arquitectura
Formatos binarios soportados
• Inicialmente a.out (assembler output)
• Actualmente ELF (Extensible Linking Format)
o Ejecutables, objeto, librerías dinámicas, core dumps,
etc.
• binfmt_misc
o Capacidad del kernel Linux
o Permite formatos binarios arbitrarios pasándolos a
aplicaciones usuario
o Java -> Máquina virtual Java
o Ejecutables Win16/32 -> Wine
o Ejecutables .NET -> Mono
26
27. 3 Arquitectura: Sistemas de ficheros
Ext (extended file system) – 1992
• Sistema de ficheros inicial de linux
• Creado para solventar limitaciones de minix
o Tamaño de partición 2GB
o Nombre de ficheros de 255 caracteres
Ext2 – 1993
• Soluciona limitaciones de ext
o Nuevas funcionalidades
o Tamaño de partición de 4 TB
o Nombres de fichero de 255 caracteres
• Extensible. Añadidos posteriores:
o Atributos extendidos
o ACLs de POSIX 27
28. 3 Arquitectura: Sistemas de ficheros
Ext3 – 2001
• Añadidos
o Journalling
o Mayor direccionamiento
o Crecimiento dinámico del sistema de ficheros
• Compatible con ext2 (sin los añadidos)
o Convertir un ext2 a un ext3:
# tune2fs j /dev/hdaX
• Desventajas
o Defragmentación
No extent
o Funcionalidades
Solo puede ser reparado en modo RO
28
29. 3 Arquitectura: Sistemas de ficheros
Ext4 – 2006
• Tamaños de 260 bytes
• Añade extent para evitar defragmentación
• Compatible con ext3 (si no se usa extent)
ReiserFS (Reiser3) – 2001
• Características similares a ext3
• Mejor rendimiento con fichero pequeños
• Reiser4 más eficiente, reimplementación desde 0
Soporta muchos más:
• adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs,
hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs,
reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs,
xiafs, etc. 29
30. 4 Administración
Forma gráfica vs consola
• Remoto
• Similar entre distribuciones
• Automatización
Desde consola
• Ficheros de configuración en /etc
• Ficheros de log en /var/log
• Usuario vs root: su y sudo
• Programación en shell: redireccionamientos,
tuberías, estructuras de programación,
comandos del sistema.
30
31. 4 Administración: Gestión de paquetes
Concepto paquete software
• Ficheros
o Código ejecutable
o Datos: imágenes, sonidos, DB, etc.
• Metainformación
o Nombre, descripción, versión, autor, dependencias,
tamaño, etc.
Sistema de paquetes
• Diferentes opciones: RPM, DEB, TARBALL,
EBUILD, etc.
• Simplifica gestión del sistema
o Instalación, eliminación, actualización, dependencias,
etc. 31
32. 4 Administración: Gestión de paquetes
RPM (Red Hat Package Manager)
• Desarrollado por Red Hat
• Utilizado: Red Hat, Fedore, SuSE, etc.
• Ficheros:
<name>-<version>-<release>.<arch>.rpm
• Base de datos en: /var/lib/rpm
• Interfaz de bajo nivel: comando rpm
# rpm i fichero.rpm # rpm e paquete
$ rpm qa
• Interfaces de más alto nivel:
o up2date, yum, YaST, APT
32
33. 4 Administración: Gestión de paquetes
DPKG (Debian PacKaGe)
• Desarrollado por Debian
• Utilizado: Debian, Knoppix, Ubuntu, etc.
• Ficheros:
<name>_<version-release>_<arch>.deb
• Base de datos en: /var/lib/dpkg
• Además de meta-info, tb incluyen scripts
• Interfaz de bajo nivel: comando dpkg
# dpkg i fichero.deb # dpkg r paquete
# dpkg r –purge paquete # dpkgreconfigure paquete
$ dpkg l $ dpkg L
• Interfaces de más alto nivel:
o APT, aptitude, synaptic, adept, etc. 33
35. 4 Administración: Gestión de paquetes
TARBALL
• Formato tradicional de UNIX, extensión *.tar.gz
• Normalmente las fuentes
• Más difícil de mantener: instalación,
dependencias, eliminación, actualización, etc.
• Consultar ficheros README, INSTALL
• Por defecto:
$ ./configure
$ make
# make install
# make uninstall
• DEB, RPM, etc. suelen partir de un TARBALL
35
37. 4 Administración: Gestión de usuarios
Comandos
• Usuarios
# useradd # userdel
# adduser # deluser
# usermod # chage
$ passwd # passwd
• Grupos
# groupadd # groupdel
# addgroup # delgroup
# groupmod # adduser usuario grupo
• Propietarios y permisos
o chmod (RWX, UGO)
o chown (usuario.grupo) 37
38. 4 Administración: Servicios
Proceso de arranque
• BIOS (Basic Input/Output System)
o Permitir arrancar programas desde diferentes medios
o Funciones básicas de manejo del hardware
• MBR
o Primeros 512 bytes, código ejecutable
• Gestor de arranque
o Permite elegir entre diferentes SSOO y paso params
o Ej: LILO, GRUB, etc.
• Kernel
o Detecta HW, carga controladores, monta unidades,
etc.
o Ejecuta INIT 38
39. 4 Administración: Servicios
Proceso de arranque
• INIT
o Primer proceso tras el kernel, modo usuario
o Arranca terminales
o Ejecuta todos los programas asociados a un runlevel
o /etc/inittab
• RUNLEVEL
o Número que identifica un grupo de programas
o Cuando se entra en ese runlevel: se ejecutan los
programas
o Cuando se sale del runlevel: se detienen los programas
o Comandos: runlevel, telinit
o Runlevels habituales
0: Halt 1: Single user 39
25: Multiusuario 6: Reboot
40. 4 Administración: Servicios
Servicios en UNIX System V
• Demonios: funcionan en segundo plano
• Normalmente scripts para iniciar/parar/recargar/etc
/etc/init.d/demonio start|stop|restart|reload
• Por cada runlevel, enlaces simbólicos a los scripts
deseados
/etc/rcX.d/S11demonio > /etc/init.d/demonio
• Los enlaces simbólicos se ejecutan por orden
alfabético
o El número del principio determinará el orden de ejecución
• Actualmente otras alternativas
o Arrancan procesos de forma asíncrona
o Ej.: Upstart, Initng, etc.
40
41. 4 Administración: Servicios
Upstart
• Desarrollado por Canonical
• Incluido desde Ubuntu 6.10 (2006)
o Adoptado en Debian, Maemo, ChromeOS, etc.
• Sistema asíncrono
o Servicios y eventos
• Jobs en /etc/init/
o Ficheros *.conf
o Sección script/exec, pre-start, post-stop
o start on y stop on
• Control de trabajos (initctl)
o start/stop/restart/reload job
o initctl list
41
43. 4 Administración: Logs
Se guardan en /var/log
• Sistema
o syslog, daemon.log, mail.log, kern.log, Xorg.0.log, etc.
• Aplicaciones
o apache/error.log, apache/access.log
Visualización
• Consola
o tail, more, less, etc.
• Gráfica
o KSystemLog, etc.
Utilidades
• syslog
• dmesg 43
45. 4 Administración: Logs
syslog
• Comportamiento como en BSD
• Logs del sistema, del kernel y de las aplicaciones
• Se puede almacenar en local o en un equipo remoto
• Agrupados en servicios (mail, kern, auth, etc.) y
prioridades (info, warning, err, debug, etc.)
• Configuración en /etc/syslog.conf:
*.* /var/log/syslog
mail.err /var/log/mail.err
kern.* @hostname
• Se guarda un histórico comprimido:
syslog, syslog.1.gz, syslog.2.gz, ..., syslog.6.gz
dmesg
• Muestra el ring buffer del kernel 45
47. 4 Administración: Control de Accesos
Múltiples opciones
• A nivel de aplicación
o Configuración del servidor
o TCP Wrapper
• A nivel de kernel
o Firewall con iptables
TCP Wrapper
• A través de tcpd (inetd) o usando libwrap
• /etc/hosts.allow y /etc/host.deny
in.fingerd: ALL EXCEPT LOCAL
sshd: 192.168.2.5
• Páginas manual: hosts_access y hosts_options
47
48. 4 Administración: Control de Accesos
Configuración del servidor (ej. apache)
<Directory ...>
Order allow, deny
Allow from all
</Directory>
Firewall con iptables
# iptables --list
# iptables --policy INPUT DROP
# iptables --table filter --append INPUT -p icmp -j ACCEPT
48
49. 4 Administración: Comandos de Administrador
Ejecución como root:
• su vs sudo
Gestión de usuarios:
• useradd, userdel, usermod, chage, groupadd, groupdel, groups, etc.
Cambio permisos:
• chmod, chown, chattr, etc.
Configuración de red:
• ifconfig, iwconfig, iwlist, route, netstat, iptables, etc.
Gestión paquetes:
• dpkg, tasksel, rpm, apt-get, aptitude, etc.
Gestión discos/sistemas de ficheros:
• fdisk, mkfs, mount, umount, setquota, quota, etc.
Listado dispositivos:
• lspci, lsusb, udevinfo, etc.
49
51. Licencia
Reconocimiento (Attribution): En
cualquier explotación de la obra autorizada
por la licencia hará falta reconocer la
autoría.
Compartir Igual (Share alike): La
explotación autorizada incluye la creación
de obras derivadas siempre que mantengan
la misma licencia al ser divulgadas.
51