Tema 2
Linux
1
1ª Evaluación
Tema 2. Administración de Linux
• Usuarios y grupos
• Gestión de ficheros y directorios
• Empaquetado y compresión
• Interconexión de equipos
• Scripts en bash
Instalación
Instalación
Fedora
• Descargar e instalar
CentOS
• Descargar e instalar
3
Gestión de la red
Red Hat
4
Red Hat
/etc/sysconfig/network-scripts/ifcfg-adaptador
[Link]
networkscripts-interfaces
• Estática (ejemplo)
DEVICE=adaptador
BOOTPROTO=none
ONBOOT=yes
NETMASK=[Link]
IPADDR=[Link]
USERCTL=no
DNS[1,2]=ip_del_servidor_dns_1_o_2
GATEWAY=ip_del_router
• Dinámica (ejemplo)
DEVICE=adaptador
BOOTPROTO=dhcp
ONBOOT=yes
5
Usuarios y grupos
Gestión de Usuarios y Grupos
Introducción
Usuarios y Grupos
• Base de la seguridad en Unix
• Existen usuarios y grupos incorporados para tareas específicas
• Todos los usuarios pertenecen, al menos, a un grupo (grupo
principal)
• Además del principal pueden pertenecer a tantos grupos como se
desee (grupos secundarios)
• Solo root puede gestionarlos (directamente o por medio de sudo)
root
• Superusuario
• No se ve afectado por ninguna restricción
• En algunos sistemas, como ubuntu, está bloqueado por defecto
7
Grupos
Administración de grupos
• /etc/group
• estructura:
• nombre:x:GID:lista_usuarios
(lista_usuarios: lista de usuarios que tienen este grupo como grupo secundario)
creación
# groupadd nombre_grupo
borrado
# groupdel nombre_grupo
• En algunos sistemas los comandos pueden cambiar su nombre. p.e.
addgroup.
8
Usuarios
Administración de usuarios
• Pareja formada por nombre público y contraseña
• /etc/passwd
• estructura:
• nombre:x:UID:GID:comentario:HOME:Shell
• x: antiguo campo de la contraseña
• Shell: si no es válido, no se puede hacer login (p.e. /bin/false)
• /etc/shadow
• Solo root puede leerlo.
• estructura:
• usuario:contraseña:último:cambio:expira_clave:aviso:expira_cuenta
• contraseña encriptada. Suele incorporar algún carácter que indique que el usuario
está bloqueado
• último: días que han pasado desde el último cambio (contando desde [Link].1970)
• cambio: días que han de pasar para poder cambiarla
• expira_clave: días que faltan para que expire
• aviso: días en que se avisará al usuario antes de que expire la contraseña
• expira_cuenta: dias para que expire la cuenta una vez expirada la clave.
9
Usuarios
creación
# useradd [opciones] nombre_usuario
• opciones:
• -g GRUPO grupo principal
• -d DIRECTORIO directorio HOME
• -m crea directorio HOME (si existe el directorio contenedor)
• -s SHELL shell asignado (con nombre completo)
• -G GRUPO... grupos secundarios
• -c COMENTARIO
• -u UID
• Valores por defecto:
• Dependientes del sistema. En suse 9.3 se pueden ver (y fijar) en /etc/default/useradd
• el UID será el siguiente al mayor existente (como mínimo el indicado en el default)
• si se crea HOME se copia la estructura de ficheros y directorios que se indique en el
default
• En algunos sistemas el comando pueden cambiar su nombre. p.e.
adduser
10
Usuarios
modificación de propiedades
# usermod [opciones] usuario
• opciones:
• las mismas que useradd
borrado
# userdel nombre_usuario
• El borrado de usuario no elimina sus ficheros. Si se quieren eliminar se hará con una búsqueda por usuario. Ojo si se
borra entes el usuario que los ficheros, en ese caso los ficheros pertenecerán al usuario borrado pero no aparecerá su
nombre sino su UID.
11
Contraseñas
Administración de contraseñas
# passwd [opciones] [usuario]
• solo root puede especificar usuario
• opciones:
• -e: fuerza el cambio de contraseña en el siguiente login
• -l: bloquea usuario (ver los cambios en /etc/shadow)
• -u: desbloquea usuario
• -d: borra la contraseña (en algunos sistemas permite el login sin contraseña, en
otros, no)
• -S: muestra información de la contraseña
• -Sa: muestra información de las contraseñas de todos los usuarios (no en todas las
versiones)
• Asignación de contraseñas en shell-scripts
• (echo contraseña; echo contraseña) | passwd usuario
12
Administración manual
Administración manual
Modificando directamente, con un editor, los
ficheros de configuración:
• Eliminar grupos (/etc/group) o usuarios (/etc/passwd y /etc/shadow)
• Crear grupos (/etc/group)
• Crear usuarios (/etc/passwd y luego comando passwd)
(Cuando se crean usuarios de forma manual hay que crear, también de forma
manual, su directorio HOME)
• Modificar características de grupos (/etc/group) y usuarios (/etc/passwd)
• Bloquear usuarios (/etc/shadow)
• Modificar características de la contraseña (/etc/shadow)
13
Sistemas de
Ficheros
Introducción
Introducción
Preparación del dispositivo (discos duros y
similares)
1. Especificar tipo de particionado (inicializar el disco)
• MBR (Master Boot Record):
• 4 Particiones: Primaria(s) + Extendida
• Máximo: 2 TiB (discos con sector de 512 bytes)
• GPT (GUID Partition Table) GUID=Global Unique Identifier
• 128 Particiones
• Máximo: 8ZiB (discos con sector de 512 bytes)
2. Crear Particiones
• Al menos una
3. Crear Sistema de Ficheros
• Atención a la compatibilidad
4. Montar
15
Introducción
Sistema de ficheros. Generalidades
• Espacio del disco utilizado para el almacenamiento de ficheros.
• Cada partición (o unidad lógica) puede tener un sistema de ficheros
diferente
• Un fichero no puede expandirse a través de varios sistemas de ficheros.
• Hay que evitar que se llene un Sistema de Ficheros, especialmente el
que contiene el Sistema Operativo.
• Generalmente, el tamaño de la partición no puede modificarse después
de su creación (aunque existen utilidades que permiten hacerlo)
16
Introducción
Sistema de ficheros. Ficheros de dispositivo
• Cada dispositivo (y cada partición o unidad lógica) tiene un fichero asociado
denominado nodo de dispositivo
• Al realizar un listado largo del directorio /dev en lugar del tamaño aparecen dos columnas:
• número mayor: indica el tipo de dispositivo
• número menor: indica el dispositivo dentro del tipo
• El número mayor y el número menor le sirven al sistema para encontrar el driver adecuado
dentro del kernel
• La denominación del nodo de dispositivo es diferente según el sistema
• Suse, Ubuntu, CentOS y otros:
• Dispositivos IDE:
• /dev/hdn[m]
• n: a, b, c...
• m: 1,2,3,4 (particiones) o 5,6.... (unidades lógicas)
• Dispositivos SCSI, SATA y USB:
• /dev/sdn[m]
• CD / DVD
• /dev/cdrom :generalmente una copia o un enlace de uno de los siguientes:
• /dev/sr0 (si es SCSI)
• /dev/hdn (si es IDE)
17
Introducción
• busybox, ¿mandriva?:
• Dispositivos ide:
• /dev/ide/hostn/busm/targetx/luny/disc
• /dev/ide/hostn/busm/targetx/luny/partz
• n, m, x, y: 0, 1...
• z: 1,2....
• Dispositivos scsi:
• /dev/scsi/hostn/busm/targetx/luny/disc
• /dev/scsi/hostn/busm/targetx/luny/partz
• n, m, x, y: 0, 1...
• z: 1,2....
• solaris
• Diferencia entre tipos bloque y carácter (raw)
• /dev/disks/....
• /dev/rdisks/....
18
Introducción
/dev/disk/by-...
• Identifican de forma inequivoca a los dispositivos o particiones
• Enlaces simbólicos a /dev/... que se generan dinámicamente en el
arranque
• Es recomendable utilizarlos en los ficheros de configuración (p.e.
/etc/fstab)
• by-id
• Por identificador y numero de serie del dispositivo
• by-uuid
• Por identificador único (Universal Unique Identifier)
• Ojo: Se crea al crear el sistema de ficheros
• by-partuuid
• Por identificador único (Universal Unique Identifier)
• Para particiones en Discos GPT
• Ojo: Se crea al crear la partición
• by-path
• Camino que recorre hasta el dispositivo desde la controladora
• Ojo. Cambia si se concta el dispositivo a otro puerto 19
Elementos
Elementos de los Sistemas de Ficheros
Bloque de Carga (boot sector) bc sb i i i i i
• Información sobre la partición. i i i i i i i
• Opcionalmente: Gestor de arranque
i i i i i i i
Superbloque
• Información sobre el sistema de ficheros:
• Tamaño, nombre, número de bloques reservado para
inodos, lista de inodos libres, bloques libres, …
D a t o s
Tabla de inodos
• Un inodo por cada fichero o directorio
• El inodo 2 apunta al directorio raíz
• Cada inodo contiene:
• Tipo de fichero, Permisos, Número de enlaces duros, Propietarios (usuario y grupo),
Tamaño, Fechas de creación, acceso y última modificación
• Tabla de punteros al área de datos
Área de Datos
• Si es un directorio, por cada elemento que esté en él se guarda:
• Número de inodo
• Nombre
20
Información del Sistema de ficheros
Información del Sistema de Ficheros
Espacio disponible
• df [opciones]
• Muestra la utilización de los sistemas de ficheros en bloques de 1K
• opciones:
• h: Human Readable en potencias de 2 (H en potencias de 10)
• i: muestra el uso de la tabla de inodos
• du [opciones] [lista]
• Muestra, en KB el espacio utilizado por los ficheros y directorios (el espacio utilizado
cuenta todos los bloques ocupados realmente y no el tamaño del fichero)
• Opciones
• h: Human Readable en potencias de 2 (H en potencias de 10)
• c: muestra el total
• m: utiliza Megabytes (no con -h)
21
Acceso a elementos
Acceso a un fichero (/home/usuario2/fichero)
1. Acceso al inodo 2 (directorio /)
2. Se busca el elemento home y
se obtiene el ínodo en el que
está
3. Se accede a él
4. Se busca el elemento usuario2
y se obtiene el ínodo en el que
está
5. Se accede a él
6. Se busca el elemento fichero y
se obtiene el ínodo en el que
está
7. Se accede a él
22
Acceso a los Datos
Acceso a los Datos
Tabla de punteros
• En cada ínodo hay 13 punteros para indicar en que bloque del área de
datos se encuentra la información del fichero.
• Los 10 primeros punteros apuntan directamente a bloques de datos.
• El puntero 11 se utiliza para indireccionamiento simple.
• El puntero 12 se utiliza para indireccionamiento doble.
• El puntero 13 se utiliza para indireccionamiento triple.
• En los indireccionamientos el número de punteros que hay en la zona
de datos es variable dependiendo del sistema de ficheros utilizado y el
tamaño del bloque.
23
Acceso a Datos
Directo
24
Acceso a Datos
Indireccionamiento Simple
25
Acceso a Datos
Indireccionamiento Doble
26
Acceso a Datos
Indireccionamiento Triple
27
Manejo de discos duros
Particionado
fdisk
• Sintaxis
$ fdisk [opciones] dispositivo
• Si se lanza sin opciones es interactivo
• Opciones más importantes:
• m: ayuda
• o: crear tabla de particiones DOS
• g: crear tabla de particiones GPT
• p: lista de particiones
• d: borrar partición
• n: crear partición
• a: cambia estado de arrancable (ojo, pueden activarse mas de una o ninguna)
• x: entrar a modo experto
• q: salir sin grabar
• w: salir grabando
28
Manejo de discos duros
cfdisk
• Sintaxis
$ cfdisk [dispositivo]
• por defecto abre /dev/hda o /dev/sda si no existe el primero
29
Manejo de los Sistemas de Ficheros
Creación
mkfs
• Sintaxis
$ mkfs [-V] [-t tipo] nodo
$ mkfs [-V] [-t tipo] punto_de_montaje
• Opciones:
• -V: verbose
• -t tipo: tipo de sistema de ficheros (ver man)
Programas para creación de sistemas de ficheros
específicos
• [Link]
• mke2fs (ext2 y ext3)
• mkreiserfs (reiser)
• Ver man de mkfs y de cada uno de ellos
30
Manejo de los Sistemas de Ficheros
Chequeo
• No deben chequearse sistemas montados
Herramienta genérica: fsck
• Sintaxis:
$ fsck [opciones] nodo
$ fsck [opciones] punto_de_montaje
• Opciones:
• -V: verbose
• -A: recorre /etc/fstab
• -R: no chequear root cuando se usa -A
• -C: muestra barra de estado del chequeo
Herramientas específicas
• Ver man
• fsck.ext2; fsck.ext3; e2fsck
• reiserfcsk
31
Introducción
Montaje
Condiciones
• En Unix, para utilizar un Sistema de Ficheros son necesarios:
• Un nodo de dispositivo
• Fichero bajo /dev que apunta a la zona del kernel en la que se encuentra el driver
del dispositivo
• Cada Sistema Operativo utiliza métodos diferentes para crear el nodo (p.e.
mknod). Generalmente se creará de forma automática al crear la partición.
• Un punto de montaje
• Directorio existente en el árbol.
• Si existe algún contenido en ese directorio no será accesible mientras el Sistema
de Ficheros se encuentre montado en él.
32
Montaje
Montaje
mount
• Sintaxis
$ mount
$ mount [-r] [-o opciones] [-t tipo[,opciones]] nodo punto_de_montaje
• En la primera forma muestra los dispositivos montados
• En la segunda forma monta el dispositivo en el directorio indicado
• Opciones:
• -r: montar el dispositivo de solo lectura
• -o opciones: opciones varias (ver man)
• -t: especificar tipo de sistema de ficheros. Si no se especifica intenta hacerlo de forma
automática (no todos los sistemas) (ver man y /etc/filesystems)
umount
• Sintaxis
$ umount punto_de_montaje
• No se puede desmontar un sistema de ficheros si nos encontramos en
él. 33
Montaje
Montaje automático
/etc/fstab
• Es un fichero de texto estructurado en campos separados por espacios
o tabulaciones. El significado de cada uno de ellos es el siguiente:
• 1: nodo de dispositivo (o recurso de red //equipo/recurso)
• 2: punto de montaje
• 3: tipo de sistema de ficheros (ver man)
• 4: opciones (separadas por comas):
• Dependen del tipo de sistema de ficheros
• Ver man de fstab y de mount
• 5: si se hará un backup o no (0=no)
• 6: orden de chequeo en boot (0=no chequea)
• En el arranque (o al ejecutar mount -a) se montarán los sistemas de
ficheros especificados en este fichero (que tengan la opción auto)
• Los sistemas de ficheros que tengan la opción noauto podrán montarse
escribiendo solo mount nodo_de_dispositivo
• La opción defaults para ext4 equivale a
rw,suid,dev,exec,auto,nouser,async
34
Montaje
Acceso a NTFS
Paquetes
• Hay que instalar el paquete ntfs-3g que se encuentra en el repositorio
epel
# yum install epel-release
# yum install ntfs-3g
Uso
• Como cualquier sistema de ficheros local
• el comando mount llamará automaticamente a [Link]
35
Montaje
Acceso a recursos CIFS
Paquetes
• Hay que instalar el paquete cifs-utils
# yum install cifs-utils
Uso
• Hay que especificar:
• Tipo de sistema de ficheros (o utilizar [Link])
• Credenciales
• Identificación UNC del recurso
• //equipo/recurso
• opciones para credenciales
• username=usuario,password=contraseña
o bien
• credentials=fichero_de_credenciales
• fichero de credenciales
• username=usuario
• password=contraseña
• domain=dominio (opcional) 36
Montaje
Automount
Paquetes
• Hay que instalar el paquete autofs
# yum install autofs
Uso
• fichero maestro: /etc/[Link]
directorio_puntos_montaje fich_conf --timeout=xx
... (tantas lineas como sea necesario)
• directorio_puntos_montaje
• Lugar en el que se crearán los puntos de montaje especificados en el
fichero de configuración
• fich_conf
• nombre completo
• --timeout=xx
• tiempo, en segundos, para que se desmonte si no se usa
37
Montaje
ficheros de configuración
• Hay que instalar el paquete autofs
# yum install autofs
Lineas con estos campos (ejemplo para CIFS)
nombre_directorio (* si es igual que el recurso)
-fstype=cifs,
credentials=fich_de_credenciales
file_mode=0644,dir_mode=0700, (permisos con los que se crean)
uid=usuario,gid=grupo (propietarios del punto de montaje)
sec=ntlm, (por defecto, teóricamente)
vers=[1.0|2.0] (depende de la vers. de windows)
://equipo/recurso
• Notas
• Las opciones son las que soporte el sistema de ficheros
• & se sustituye por el nombre del directorio a montar
• Pueden utilizarse las variables del sistema ${USER} o ${UID}
• Si el recurso está oculto, el $ final hay que acotarlo (\$)
38
Montaje
servicio
• Hay que instalar el paquete autofs
# systemctl enable autofs
# systemctl start autofs
• el estado se controla con
# journalctl -xe
• para que aparezcan en /var/log/messages:
• modificar /etc/sysconfig/autofs
OPTIONS="--debug"
39
Empaquetado y
compresión
Compresión
Compresión
gzip
• Ayuda:
$ gzip -h
• Compresión:
$ gzip [-v] fichero
• Sustituye el fichero original por otro con extensión .gz
• Extracción:
$ gzip -d[v] fichero
• Sustituye el fichero comprimido por otro sin comprimir
• El fichero necesita tener la extensión .gz
• No es necesario especificarla para la extracción
• Listado:
$ gzip -l[v] fichero
• Muestra el listado de ficheros comprimidos
41
Compresión
bzip
• Ayuda:
$ bzip2 --help
• Compresión:
$ bzip2 [-v] fichero
• Sustituye el fichero original por otro con extensión .bz2
• Extracción:
$ bzip2 -d[v] fichero
• Sustituye el fichero comprimido por otro sin comprimir
• No es necesario que el fichero tenga la extensión .bz2 pero si no tiene esta (o .bz) el
fichero extraído tomará el nombre del fichero comprimido mas la extensión .out
• Es necesario especificar el nombre incluida la extensión para la extracción.
42
Empaquetado
Empaquetado
tar
• Sintaxis:
$ tar opciones [fichero ...]
• Concepto:
• Empaquetar/Desempaquetar ficheros y directorios en un solo fichero
• Por defecto no implica compresión
• Aunque no necesita extensión suele utilizarse .tar
• Empaquetado:
$ tar c[v]f [Link] lista
• lista puede contener tanto ficheros como directorios. * no incluye los ocultos
• Si hay algún directorio se empaquetará todo el contenido de este, incluidos subdirectorios
• Dependiendo del sistema puede que no se guarden los directorios vacíos.
• Algunos directorios no se guardarán con tar (como /dev/)
• En lugar de un [Link] puede utilizarse un dispositivo tipo carácter
• Ojo con el tamaño del fichero que se genera, especialmente si se quiere copiar en un
dispositivo y se escribe mal el nombre
• El nombre que se utiliza en la lista (sea completo o relativo) es el que se guarda en el fichero
empaquetado por tanto, si se guarda con nombre completo solo se podrá desempaquetar en su
ubicación original (existen herramientas para evitar este comportamiento)
• Dependiendo de la distribución, al usar nombres completos elimina el / inicial (por lo que los
convierte a relativos) a no ser que se le indique que no lo haga con una opción (-P)
43
Empaquetado
tar (continuación)
• Desempaquetado:
$ tar x[v]f [Link] [lista]
• Si no se indica lista se desempaquetarán todos los elemento contenidos en el
[Link]
• Si se ha utilizado un nombre relativo para el empaquetado hay que situarse en el
directorio adecuado antes de proceder al desempaquetado
• Listado:
$ tar t[v]f [Link] [lista]
• Si no se indica lista se listarán todos los elemento contenidos en el [Link]
44
Empaquetado
tar (con compresión)
• En algunos sistemas unix el comando tar incorpora opciones que dan
soporte a los ficheros comprimidos
• En estos casos se puede crear el paquete empaquetado y comprimido
directamente.
• Soporte para gzip
• Opción z
• Soporte para bzip
• Opción j
• Ejemplos
$ tar xvzf [Link]
$ tar cvzf [Link] lista
45
Interconexión de
equipos
Interconexión
ssh
Servicio
• Instalar el paquete
yum install openssh-server
• Abrir el puerto del cortafuegos
• No es necesario salvo que se cambie el puerto por defecto. Suele estar
abierto
• Activar el servicio
systemclt enable sshd
systemclt start sshd
47
Interconexión
Cliente Linux
• Utilizar el cliente integrado
ssh [opciones] equipo
• Opciones
• -l usuario
• si no se utiliza se intenta la conexión con el mismo nombre
de usuario que el equipo cliente
• -X
• Para poder ejecutar aplicaciones gráficas
48
Interconexión
Cliente Windows
• Cliente más utilizadol: putty
[Link]
• Puede descargarse un instalador pero en más habitual utilizar la
versión portable (alternative downloads: [Link])
• Configuraciones importantes
• protocolo y puerto
• IP
• Otras configuraciones
• Terminal -> keyboard -> features
• activar "Disable application keypad mode" si se tienen problemas
con el tecaldo numérico en algunas aplicaciones (como el vi)
• Windows -> Translation
• Seleccionar la codificación adecuada
• Connection -> ssh -> X11
• Activar "Enable X11 forwarding" para ejecutar aplicaciones gráficas
• Requiere un servidor X11 en windows como xming o VcXsrv 49