Curso Basico Linux

199
GNU/Linux Centos 5.1 Miguel Ángel Nieto <[email protected]> Irontec – Internet y Sistemas sobre GNU/Linux

Transcript of Curso Basico Linux

Page 1: Curso Basico Linux

GNU/Linux Centos 5.1

Miguel Ángel Nieto <[email protected]>Irontec – Internet y Sistemas sobre GNU/Linux

Page 2: Curso Basico Linux

Irontec – Curso básico Linux

2

Objetivos del curso

Dominar las distintas posibilidades de GNU/Linux dentro de la empresa.

Trabajar tanto desde el entorno de consola como desde el entorno de escritorio.

Administración básica de un sistema GNU/Linux basado en RedHat.

Y por encima de todo, aprender a buscar la información que necesitamos para solventar los posibles problemas.

Page 4: Curso Basico Linux

Irontec – Curso básico Linux

4

Introducción

● Programas informáticos● Tipos de Software

– Software privativo– Shareware– Freeware– Software libre

Page 5: Curso Basico Linux

Irontec – Curso básico Linux

5

¿Qué es eso del Software Libre?

1Introducción

Page 6: Curso Basico Linux

Irontec – Curso básico Linux

6

4 Libertades:● Libertad 0: Libertad para ejecutar el

programa para cualquier propósito.● Libertad 1: Libertad para estudiar y

adaptarlo a las necesidades.● Libertad 2: Libertad para redistribuir copias.● Libertad 3: Libertad para mejorar el programa

y publicarlo con esas modificaciones.

1Introducción

Page 7: Curso Basico Linux

Irontec – Curso básico Linux

7

Introducción

● Inicios del Software libre– Richard Stallman (1983 – Funda GNU Ver.7)– Linus Torvalds (1991 – Crea Linux)– 1992 – GNU/Linux (Ver. 7)

Page 8: Curso Basico Linux

Irontec – Curso básico Linux

8

Introducción1Conceptos Generales sobre GNU Linux (I)

➔ ¿Qué es GNU ?GNU is not UNIX, proyecto iniciado por Richard

Stallman (1983). Objetivo: Sistema totalmente libre. Apoyado en la licencia GPL. Kernel: HURD (fracaso).

➔ ¿Qué es Linux ? Kernel liberado por Linus Torvalds en 1991 con

licencia GPL. Arquitectura Mononuclear, multiplataforma (I386, AMD64, PowerPC, ...). Uso: Servidores, estaciones de trabajo, sistemas empotrados...

Page 9: Curso Basico Linux

Irontec – Curso básico Linux

9

Introducción1Conceptos Generales sobre GNU Linux (II)

➔ ¿Qué son Redhat, Debian, SuSE ... ?• Son “Distribuciones” de GNU Linux. • Diferentes formas de “empaquetar” el núcleo, las

herramientas GNU y el resto de software (libre o no).

• Gestionadas por:• empresas• grupos de personas. • organismos ...

Page 10: Curso Basico Linux

Irontec – Curso básico Linux

10

Introducción1Distribuciones GNU Linux (I)

➔ Debian: Proyecto fundado por Ian Murdock en 1993, proyecto con organización jerárquica totalmente horizontal. Objetivo principal: competir con las distribuciones comerciales para poder garantizar el exito de GNU Linux. 

➔ Redhat: Empresa fundada en 1994 por Marc Ewing, ofrece soporte técnico profesional y garantías de escalabilidad. Plataforma lider en el mercado.

Page 11: Curso Basico Linux

Irontec – Curso básico Linux

11

Introducción1Distribuciones GNU Linux (II)

➔ Mandrakesoft: Nacida en 1998, con objetivo principal: instalación y uso diario sencillos. Crecimiento espectacular en 2 años (3 a 100 empleados).

➔ SuSE: Proyecto de empresa aleman, iniciado en 1993. Primeras versiones basadas en Slackware. En la actualidad distribución totalmente propia. Ofrecen soporte profesional de calidad, similar al de RedHat.

Page 12: Curso Basico Linux

Irontec – Curso básico Linux

12

Introducción1Distribuciones GNU Linux (III)

➔ Slackware: Distribución desarrollada por Patrick Volkerding. Primera versión publicada en Abril de 1993. No ofrece soporte técnico profesional directo.

➔ Knoppix: Es el Sistema Live (ejecución desde CDRom sin instalación) más popular. Soporta prácticamente todos los dispositivos hardware del mercado. Muy popular como método de iniciación a GNU Linux.

Page 13: Curso Basico Linux

Irontec – Curso básico Linux

13

Introducción1Distribuciones GNU Linux (IV)

➔ Ubuntu: Distribución basada en Debian, centrada en el sistema de escritorio (aunque también dispone de versión servidor). Nueva versión cada 6 meses.

➔ CentOS: Distribución basada en el código fuente de Red Hat. Con cada nueva versión enterprise de RedHat, Centos descarga el código, lo compila y crea su propia versión. Es 100% compatible a nivel binario con RedHat.

Page 14: Curso Basico Linux

Irontec – Curso básico Linux

14

Introducción1Versiones

2.4.19 2.5.3

Versión

Sub Versión: Par indica estableImpar indica inestable

Release

●En la práctica, se denomina versión a todo el conjunto.

Page 15: Curso Basico Linux

Irontec – Curso básico Linux

15

Situación de GNU/Linux

1 Introducción

Page 16: Curso Basico Linux

Irontec – Curso básico Linux

16

Introducción1Situación real de GNU LinuxLas estadísticas no siempre son muy objetivas, pero se calculan las siguientes cifras:

➔ Servidores: Prácticamente todos los servidores potentes se ejecutan sobre un derivado de UNIX (GNU Linux, *BSD...).

➔ Equipos de escritorio: Existencia de numerosos gestores de ventanas (KDE, GNOME, ...) apariencia estética y usabilidad muy mejorada.

➔ Dispositivos empotrados: GNU Linux está presente en numerosos dispositivos Wifi (802.11b/g) (Cisco Linksys WRTG54G, SMC), en teléfonos celulares 

Page 17: Curso Basico Linux

Irontec – Curso básico Linux

17

Introducción1Situación real de GNU Linux en el panorama empresarial➔Soporte: La vía principal de ingreso en el mundo de GNU Linux es el soporte. Servicios sobre GNU Linux. El desarrollo no copa el mercado como en otros sistemas operativos (“La rueda ya está inventada”).➔Apoyo de grandes empresas: Entre otras IBM se ha posicionado en favor de GNU Linux, afrontando directamente demandas de SCO UNIX sobre posible violación de copyright de Linux.➔Postura de Microsoft:

2001:“Proyecto hecho por aficionados, no es serio”2004:“Es nuestra principal amenaza”

Bill Gates

Page 18: Curso Basico Linux

Irontec – Curso básico Linux

18

Introducción1Situación real de GNU Linux en el panorama empresarial: Desarrollo y sistemas

➔Desarrollo (web): La punta de la lanza reside en soluciones LAMP (Linux Apache MySQL, PHP):

➔ Pros: Rapidez, seguridad, integración con prácticamente todos los protocolos y comunidad de desarrolladores muy activa (numerosas librerías y código reutilizable).

➔ “Contras”: Integración con soluciones MS Windows

Page 19: Curso Basico Linux

Irontec – Curso básico Linux

19

Introducción1Situación real de GNU Linux en el panorama empresarial: Desarrollo y sistemas

➔Sistemas: Es el punto fuerte de GNU Linux: estabilidad, seguridad, escalabilidad e integración prácticamente total:

➔ Soluciones de seguridad (VPNs, Ids, Firewalls, ...)➔ Soluciones de tiempo real (sistemas de 

monitorización, ...)➔ Routing Avanzado (OSPF, BGP, VRRP, ....)➔ Servidores: DNS (Bind9), Web  (Apache), FTP 

(Proftpd), Netbios (Samba) .... 

Page 20: Curso Basico Linux

Irontec – Curso básico Linux

20

EJERCICIO

● Visitar los siguientes enlaces:

● http://www.kernel.org● http://gnu.org● http://freshmeat.net● http://www.centos.com

● http://es.wikipedia.org/wiki/Software_libre

Page 21: Curso Basico Linux

Irontec – Curso básico Linux

21

Instalación de CentOS

Instalación de CentOS

Page 22: Curso Basico Linux

Irontec – Curso básico Linux

22

Instalación de CentOS

● Se puede descargar CentOS desde su página web. http://www.centos.org

● Se puede descargar en distintos Cds o en un solo DVD.

● La última versión estable es 5.● Para instalarlo es necesario disponer de espacio en

el disco duro y que el ordenador pueda arrancar desde el lector de Cds.

● La instalación es del estilo siguiente-siguiente... finalizar :)

Page 23: Curso Basico Linux

Irontec – Curso básico Linux

23

Instalación de CentOS

● Comprobación del medio.

Page 24: Curso Basico Linux

Irontec – Curso básico Linux

24

Instalación de CentOS

● Selección de idioma.● Se aplicará tanto al entorno de consola como al

entorno de escritorio.

Page 25: Curso Basico Linux

Irontec – Curso básico Linux

25

Instalación de CentOS

● Selección de idioma del teclado.

Page 26: Curso Basico Linux

Irontec – Curso básico Linux

26

Instalación de CentOS

● Particionado del disco duro.● Es necesario que el disco duro esté vacío o que en

caso contrario tengamos una partición vacía en la que realizar la instalación.

Page 27: Curso Basico Linux

Irontec – Curso básico Linux

27

Instalación de CentOS

● Selección y creación de particiones.● Como mínimo debe existir / y swap.

● ¿Qué problemas tiene el uso exclusivo de /?

Page 28: Curso Basico Linux

Irontec – Curso básico Linux

28

Instalación de CentOS

● Sistemas de ficheros– VFAT– Ext2– Ext3– RaiserFS– XFS– y muchos otros...

Page 29: Curso Basico Linux

Irontec – Curso básico Linux

29

Sistemas de ficheros en Unix

– En un sistema Unix todo son archivos: memoria física, ratón, modems, teclado...

– Filosofía de diseño de grán éxito y potencia, aunque también peligrosa: un simple error de permisos puede permitir modificar todo un disco duro.

– Tipos de archivos:● ficheros planos● directorios● ficheros especiales (dispositivos)

– orientados a carácter– orientados a bloque

Page 30: Curso Basico Linux

Irontec – Curso básico Linux

30

Sistemas de ficheros en Unix

Desplazándose por el sistema de ficheros

Page 31: Curso Basico Linux

Irontec – Curso básico Linux

31

Sistemas de ficheros en Unix

Estructura de los Sistemas de Ficheros– Estándar de la Jerarquía de Ficheros (FHS)

● Se encarga de definir los directorios principales y sus contenidos en Linux y otros sistemas Unix.

● Mayor facilidad en el uso de distintos sistemas Unix.

Page 32: Curso Basico Linux

Irontec – Curso básico Linux

32

Instalación de CentOS

● Árbol típico de directorios de un sistema GNU/Linux (ls -p /)– bin/ – dev/ – home/ – lost+found/ – proc/ – sbin/ – usr/– boot/ – etc/ – lib/– mnt/ – root/ – tmp/ – var/

Page 33: Curso Basico Linux

Irontec – Curso básico Linux

33

Instalación de CentOS

● /sbin– Contiene los binarios esenciales para que

funcione el sistema.– Incluye los programas para la administracion,

configuracion del hardware y mantenimiento.– find, lilo, fdisk, init, ifconfig etc– /usr/sbin contiene los binarios para el

administrador pero no esenciales para el sistema.

– Este directorio es solo accesible por ROOT

Page 34: Curso Basico Linux

Irontec – Curso básico Linux

34

Instalación de CentOS

● /bin– Contiene los comandos imprescindibles para el

usuario– Accesibles para root como para los usuarios no

privilegiados– bash, csh, cp, mv, rm, cat, ls...– /usr/bin contiene los binarios para el usuario

pero que no son imprescindibles.

Page 35: Curso Basico Linux

Irontec – Curso básico Linux

35

Instalación de CentOS

● /boot – Contiene el kernel y lilo deja aquí las copias de seguridad del sistema de arranque

● /dev – TODO EN LINUX ES UN FICHERO– /dev/hda1 Particion 1 del disco duro 1 master– /dev/cdrom CDROM– ...

● /etc – Ficheros de configuración del sistema– /etc/X11/xorg.conf – Sistema X– /etc/resolv.conf– /etc/lilo.conf

Page 36: Curso Basico Linux

Irontec – Curso básico Linux

36

Instalación de CentOS

● /home – Directorios de los usuarios del sistema (Linux es multiusuario)– /home/username

● Archivos del usuario● Configuraciones específicas del usuario

● /lib – Librerías compartidas del sistemas● /lost+found – Directorio donde se dejan los

archivos que FSCK recuperara después de una caída del sistema. (Sistemas de ficheros sin Journaling)

Page 37: Curso Basico Linux

Irontec – Curso básico Linux

37

Instalación de CentOS

● /mnt – Punto de montaje genérico donde se montarán los dispositivos.

● /proc – Directorio especial que hace las funciones con interfaz con el nucleo

● /root – Es el directorio home de root● /tmp – Es un directorio temporal en el que

cualquier usuario puede escribir. Se borra despues de un reinicio

● /var – Directorio donde se guardan los datos variables como el correo, colas de impresion y logs...

Page 38: Curso Basico Linux

Irontec – Curso básico Linux

38

Instalación de CentOS

● /usr – Directorio donde se encuentran todos los programas– /usr/src/linux – Kernel de Linux– /usr/doc – Documentación de los programas

Page 39: Curso Basico Linux

Irontec – Curso básico Linux

39

Instalación de CentOS

● Grub es el gestor de arranque. Se encargará de arrancar CentOS y cualquier sistema operativo que detecte.

Page 40: Curso Basico Linux

Irontec – Curso básico Linux

40

Instalación de CentOS

● Configuración de la red Ethernet. Puede ser por DHCP o con IP fija.

Page 41: Curso Basico Linux

Irontec – Curso básico Linux

41

Instalación de CentOS

● Especificar contraseña para root. El usuario root es el Administrador de la máquina y tiene permiso para todo.

Page 42: Curso Basico Linux

Irontec – Curso básico Linux

42

Instalación de CentOS

● Ahora toca seleccionar que deseamos instalar en el sistema. Por defecto se instalará el escritorio Gnome.

Page 43: Curso Basico Linux

Irontec – Curso básico Linux

43

Instalación de CentOS

● Ya está, instalación de CentOS finalizada. Ya nos podemos autodenominar hackers.

Page 44: Curso Basico Linux

Irontec – Curso básico Linux

44

Configuración inicial

● Con el primer inicio del sistema accederemos a un asistente de configuración.

● Se desactivará el Cortafuegos y SELinux para evitar problemas durante el curso.

● Crearemos un usuario sin privilegios.

Page 45: Curso Basico Linux

Irontec – Curso básico Linux

45

EJERCICIO

● Navegar por el sistema de ficheros y comprobar que lo que vemos se ajusta o no al mapa.

● Comprobar la versión del núcleo y ver en la web si existe una versión nueva. ¿Se podrá actualizar?

Page 46: Curso Basico Linux

Irontec – Curso básico Linux

46

Comandos básicos

Comandos básicos

Page 47: Curso Basico Linux

Irontec – Curso básico Linux

47

Introducción a GNU/Linux

● Shells– Existen muchas shells: sh,csh,ksh,bash...– Entorno de trabajo:

● Case sensitive: sensible a mayúsculas (ECHO != echo).● Sintáxis: comando arg1 arg2... argn● Si un programa no está en el PATH: ./programa● Prompt:

– $: usuario normal– #: usuario administrador (root)

Page 48: Curso Basico Linux

Irontec – Curso básico Linux

48

Comandos básicos

Comandos para el manejo del sistema de ficheros– ls (lista contenido de directorios)– cd / pwd (cambia /muestra la ruta de directorio)– touch (crea fichero vacío o actualiza existente)– cp / mv / rm (copia / mueve/ elimina fichero)– mkdir / rmdir (crea / elimina directorio)– man / info (ayuda sobre comandos)– echo (muestra una línea de texto)– date / cal (muestra la hora del sistema)– file (muestra el tipo de fichero)– halt / reboot (apaga el sistema)– sleep (cuentra atrás)

Page 49: Curso Basico Linux

Irontec – Curso básico Linux

49

Comandos básicos

Comandos para el manejo del sistema de ficheros (II)

linux:~$ ls -lha /

linux:~$ pwd

linux:~$ cd ../../etc

linux:~$ touch /home/linux/fichero

linux:~$ date +%d/%m/%y

linux:~$ cp -a /var/log /backup/

linux:~$ mkdir -p /tmp/prueba/creacion/directorio

linux:~$ rm -rf /home/linux/carpeta/

Page 50: Curso Basico Linux

Irontec – Curso básico Linux

50

Comandos en GNU/Linux

Comandos para búsqueda de archivos

linux:~$ find / -name passwd

linux:~$ locate halt

linux:~$ whereis cat adduser

linux:~$ which grep

linux:~$ whereis cd

linux:~$ find ~/ -type f -atime +5 -exec rm {} \;

Page 51: Curso Basico Linux

Irontec – Curso básico Linux

51

EJERCICIO

● Ir a tmp. ● Crear un fichero llamado prueba. ● Renombrarlo a nominas. ● A continuación copiar nominas a nuestra home. ● Una vez hecho, buscamos en todo el disco duro los

ficheros con nombre nominas y los borramos.

Page 52: Curso Basico Linux

Irontec – Curso básico Linux

52

EJERCICIO

● Comprobar con file distintos ficheros del disco duro y comprobar los resultados que nos dá.

● Cambiar la fecha del sistema (buscar información en google). Vamos a adelantarnos al 2009.

● Programar un reinicio del sistema dentro de dos minutos.

Page 53: Curso Basico Linux

Irontec – Curso básico Linux

53

EJERCICIO

● Localizar el comando ifconfig e intentar ejecutarlo.● Ejecutar echo $PATH ¿Qué es esa información?● Ejecutarlo como usuario root. ¿Qué diferencias

encontramos?

Page 54: Curso Basico Linux

Irontec – Curso básico Linux

54

Sistemas de ficheros en Unix

● Rutas en el sistema de ficheros– Absolutas: desde el directorio raiz hasta el archivo

deseado.– Relativas: desde el directorio actual hasta el archivo

deseado.● Caracteres especiales

– *: sustituye una cantidad cualquiera de caracteres– ?: sustituye exactamente un carácter– []: sustituye un carácter de los indicados

● Expansión de comandos y archivos

Page 55: Curso Basico Linux

Irontec – Curso básico Linux

55

EJERCICIOS

● Ir a /home. ● Acceder a /home/consultec mediante ruta completa y

relativa.● Crear fichero nominas en nuestro home y hacer un ls

con * ? y []. Haciendolo de las tres formas, nos tiene que dar como resultado únicamente el fichero nóminas

● Buscar en el disco duro todos los ficheros que empiecen por n.

Page 56: Curso Basico Linux

Irontec – Curso básico Linux

56

Introducción a GNU/Linux

● Tuberías– Un proceso en un sistema UNIX-like tiene inicialmente

abiertos 3 canales:● 0: STDIN o entrada estándar● 1: STDOUT o salida estándar● 2: STDERR o salida de error

– Imaginémonos una refinería: ● Metes crudo por 0 (STDIN), consigues gasolina por 1

(STDOUT) y bastantes residuos por el “desagüe” 2 (STDERR).

Page 57: Curso Basico Linux

Irontec – Curso básico Linux

57

Introducción a GNU/Linux

Tuberías– Redirigiendo la salida de un comando:

● > : redirigir STDOUT a un fichero:ls > l istado.txt

● >>: redirigir STDOUT al final de un fichero (añadir):ls >> listados.txt

● 2>: redirigir STDERR a un fichero:ls 2> errores.txt

● 2>>: redirigir STDERR al final de un fichero:ls 2>> errores.txt

● 2>&1: redirigir STDOUT y STDERR a un fichero:ls > sal ida 2>&1

Page 58: Curso Basico Linux

Irontec – Curso básico Linux

58

EJERCICIO

● Añadir datos al fichero nomina mediante echo.Juan 1000 eurosPedro 980 eurosJose 800 euros

● Listarlo con cat y el cat enviarlo a otro fichero nuevo llamado copia.nominas.

● Comparar los ficheros con md5sum. Modificar uno y volverlo a comparar.

Page 59: Curso Basico Linux

Irontec – Curso básico Linux

59

EJERCICIO

● Usando STDIN, STDOUT utilizar cat para crear otro fichero llamado nominas2 con los siguientes datos:El isa 1200 eurosPepa 1400 eurosSara 200 euros

● ¡No se puede usar echo!

Page 60: Curso Basico Linux

Irontec – Curso básico Linux

60

Comandos en GNU/Linux

Comandos para paginar y visualizar archivos– cat (muestra el contenido de ficheros por pantalla)– more / less (pagina el contenido de ficheros)– head / tail (muetra las primeras / últimas líneas de un

fichero)– grep (busquedas basadas en expresiones regulares)

Page 61: Curso Basico Linux

Irontec – Curso básico Linux

61

Comandos en GNU/Linux

Comandos para paginar y visualizar archivos (II)

linux:~$ cat -n /etc/passwd

linux:~$ more /etc/fstab

linux:~$ less /etc/passwd

linux:~$ cat /etc/passwd /etc/group

linux:~$ tail -f /var/log/syslog

linux:~$ head -n 1 /etc/passwd

linux:~$ grep -ir consultec /etc/passwd

Page 62: Curso Basico Linux

Irontec – Curso básico Linux

62

EJERCICIO

● Mostrar la primera linea del fichero nominas.● Mostrar la última linea del fichero nominas.● Abrir dos consolas, en una un tail y con la otra añadir

lineas con echo.● ¿Para que nos puede servir el tail -f?● Hacer un tail del servicio httpd y acceder a nuestra web.

Page 63: Curso Basico Linux

Irontec – Curso básico Linux

63

Comandos en GNU/Linux

Otros comandos interesantes

linux:~$ df -h

linux:~$ du -sh /var/log

linux:~$ tar cvzf /var/log/backup.tgz /etc/ /home/

linux:~$ history

linux:~$ sort -r /etc/group

linux:~$ wc -l /etc/passwd

Page 64: Curso Basico Linux

Irontec – Curso básico Linux

64

EJERCICIO

● Contar el número de líneas que tiene el fichero de nominas.

● Comprimir el fichero de nominas y comprobar su tamaño.

● Descomprimirlo y volver a comprobar su tamaño.

Page 65: Curso Basico Linux

Irontec – Curso básico Linux

65

Introducción a GNU/Linux

Tuberías– Redirigiendo la entrada de un comando:

● <: redirigir el contenido de un fichero a STDIN:tr a A < fichero.txt

– | : es posible recoger la salida de un desagüe y conducirlo a la entrada de otro comando.

cat fichero.txt | tr a A

Page 66: Curso Basico Linux

Irontec – Curso básico Linux

66

EJERCICIO

● Usando los comandos ya vistos mostrar del fichero /etc/passwd únicamente los usuarios que comiencen por s.

Page 67: Curso Basico Linux

Irontec – Curso básico Linux

67

Comandos básicos

● El sistema es multitarea, podemos dejar multiples procesos corriendo en background.

● Con control+z llevamos el siguiente proceso a background.

● Con fb [número de proceso] lo traemos de nuevo al frente.

● Con bg listamos el último proceso enviado a background.

Page 68: Curso Basico Linux

Irontec – Curso básico Linux

68

EJERCICIO

● Ejecutar los siguientes tres comandos e ir enviandolos a background:sleep 70sleep 80sleep 90

● Una vez hecho, se debe volver a traer uno a uno al frente.

Page 69: Curso Basico Linux

Irontec – Curso básico Linux

69

Comandos básicos

● Es posible crear alias de comandos, de forma que sea más sencillo de recordar para nosotros.

● alias apagar=halt

Page 70: Curso Basico Linux

Irontec – Curso básico Linux

70

EJERCICIO

● Crear un alias de nombre lc que nos muestre los ficheros y directorios del lugar donde nos encontramos en colores distintivos y con todos sus datos (tamaño, propietarios, permisos...).

Page 71: Curso Basico Linux

Irontec – Curso básico Linux

71

Compresores

● Tar es un comando que únicamente empaqueta.● Gzip es un comando que comprime.● Uniendo tar+gzip podemos empaquetar una serie de

ficheros y comprimirlos.● Buscar en google como empaquetar y comprimir /home/

alumno● Una vez hecho, descomprimirlo en /tmp

Page 72: Curso Basico Linux

Irontec – Curso básico Linux

72

Administración de usuarios

Administración de usuarios

Page 73: Curso Basico Linux

Irontec – Curso básico Linux

73

Gestión de Usuarios y Grupos

Características de usuarios Unix– Los sistemas Unix son sistemas multiusuario. Cada usuario

tiene una serie de características propias y asociadas:● uid: identificativo de usuario (debe ser único)● gid: identificativo de grupo● home: carpeta de trabajo o personal● shell: interprete de comandos

– Comandos:● who/whoami/id (muestra información de usuarios)● su/sudo (cambia de usuario o privilegios)

Page 74: Curso Basico Linux

Irontec – Curso básico Linux

74

Gestión de Usuarios y Grupos

Gestión de Usuarios– adduser (crear usuarios)– usermod (modificar usuarios)– deluser (eliminar usuarios)

Gestión de Grupos– groupadd (añade grupo o usuario a grupo)– groupmod (modifica grupo)– delgroup (elimina grupo o usuario de grupo)

Page 75: Curso Basico Linux

Irontec – Curso básico Linux

75

Gestión de Usuarios y Grupos

Gestión de Usuarios

linux:~$ adduser alumno

linux:~$ groupadd curso

linux:~$ adduser –-home /home/alumno –-shell /bin/sh -–uid 5001 –-groups curso alumno

linux:~$ usermod –-shell /bin/bash alumno

linux:~$ usermod -G softwarelibre alumno– Esto añade a “alumno” al grupo “softwarelibre”

Page 76: Curso Basico Linux

Irontec – Curso básico Linux

76

Gestión de Usuarios y Grupos

Cambiando el propietario y grupo– Para cambiar el propietario o grupo puede hacerse a través

del nombre o del identificativo (uid o gid).● chown (cambiar el propietario y grupo)● chmod (cambiar los permisos)

Page 77: Curso Basico Linux

Irontec – Curso básico Linux

77

Gestión de Usuarios y Grupos

Cambiando el propietario y grupo

linux:~$ ls -l ~/documentos/linux.pdf-rw-rw-r-- 1 alumno alumno 2684 ene 2 21:09 linux.pdf

linux:~$ chown alumno:curso ~/documentos/linux.pdf

linux:~$ ls -l ~/documentos/linux.pdf-rw-rw-r-- 1 alumno curso 2684 ene 2 21:09 linux.pdf

linux:~$ id alumnouid=500(alumno) gid=500(curso) grupos=500(curso)

linux:~$ chown 500 ~/documentos/linux.pdf

linux:~$ ls -l ~/documentos/linux.pdf-rw-rw-r-- 1 alumno curso 2684 ene 2 21:09 linux.pdf

Page 78: Curso Basico Linux

Irontec – Curso básico Linux

78

Administración de permisos

Permisos de ficheros en sistemas Unix– Todos los archivos en Unix tienen permisos que indican

que y quien puede hacer o no hacer una acción con el archivo.

– Es la base de la seguridad de Unix.– 2 formas de notación:

● Modo alfabético● Modo octal

Page 79: Curso Basico Linux

Irontec – Curso básico Linux

79

Administración de permisos

Permisos de ficheros en sistemas Unix– Modo alfabético

Page 80: Curso Basico Linux

Irontec – Curso básico Linux

80

Administración de permisos

Permisos de ficheros en sistemas Unix– Modo octal

Page 81: Curso Basico Linux

Irontec – Curso básico Linux

81

Administración de permisos

Cambiando los permisos– Solo es posible alterar los permisos si el usuario que lo está

haciendo es el propietario del archivo.● chmod [ugoa][+-][rwx] archivo● u (propietario), g (grupo), o (resto), a (todos)● + / -: añadir / eliminar permisos● r (lectura), w (escritura), x (ejecución)● chmod [modo_octal] archivo

Page 82: Curso Basico Linux

Irontec – Curso básico Linux

82

EJERCICIO

● Crear como root un fichero /tmp/nominas y darle permisos de lectura solo a consultec, no a alumno. Iniciar sesión con alumno y comprobar si lo puede leer.

Page 83: Curso Basico Linux

Irontec – Curso básico Linux

83

EJERCICIO

● Con el usuario alumno crear una carpeta que solo la pueda ejecutar, leer y escribir el usuario alumno. Dentro de ella crear un fichero llamado prueba y comprobar si desde consultec se puede leer.

Page 84: Curso Basico Linux

Irontec – Curso básico Linux

84

EJERCICIO

● Con alumno crear un fichero llamado privado y darle permisos para que solo el pueda acceder al fichero. Luego intentar abrirlo con root.

Page 85: Curso Basico Linux

Irontec – Curso básico Linux

85

EJERCICIO

● Abrimos /etc/passwd y comprobarlos los cambios. Le quitamos la posibilidad de iniciar sesión a alumno. Luego probamos a iniciar sesión con el.

Page 86: Curso Basico Linux

Irontec – Curso básico Linux

86

EJERCICIO

● Borramos el usuario alumno y comprobamos a continuación los permisos del fichero prueba y su carpeta de tmp.

● Intentar crear ficheros por todo el disco duro, comprobando así donde tenemos permiso.

Page 87: Curso Basico Linux

Irontec – Curso básico Linux

87

Montaje de dispositivos

Montaje de dispositivos

Page 88: Curso Basico Linux

Irontec – Curso básico Linux

88

Montaje de dispositivos

● Diferencia Linux <-> Windows– En Windows los directorios se montan sobre unidades

físicas:C:\CarpetaD:\Drivers\vga

– En Linux los dispositivos se montan en directorios de la estructura de ficheros:

/home/usuario/media/cdrom

Page 89: Curso Basico Linux

Irontec – Curso básico Linux

89

Montaje de dispositivos

● Dispositivos y “devices” asociados– Disco duro IDE y CDROM: /dev/hdXY

● X: Número de disco/dispositivo_IDE (a, b, c...)● Y: Número de partición (1, 2, 3...)

/dev/hda/dev/hda1/dev/hdb3

– Disco duro SCSI, SATA y externos USB: /dev/sdXY/dev/sda/dev/sda1/dev/sdc4

Page 90: Curso Basico Linux

Irontec – Curso básico Linux

90

Montaje de dispositivos

● Particiones primarias y lógicas– Máximo 4 primarias:

/dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4

– Una de ellas se puede establecer como partición extendida:/dev/hda4

– Se pueden crear varias particiones lógicas en una extendida:

/dev/hda5 /dev/hda6 ...

– Linux puede arrancar desde una partición lógica, no así Windows que requiere una primaria.

Page 91: Curso Basico Linux

Irontec – Curso básico Linux

91

Montaje de dispositivos

● /etc/fstab# /etc/fstab: static file system information.## <file system> <mount point> <type> <options> <dump> <pass>proc /proc proc defaults 0 0

/dev/hda1 / ext3 defaults,errors=remount-ro 0 1/dev/hda3 /home ext3 defaults 0 2/dev/hda2 none swap sw 0 0

/dev/hdb1 /media/hdb1 ext3 defaults 0 1

/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0

– La opción “user” permite que un usuario normal (no root) monte la partición.

Page 92: Curso Basico Linux

Irontec – Curso básico Linux

92

Montaje de dispositivos

● mount– Para montar dispositivos manualmente.– Si el dispositivo existe en fstab:mount punto_de_montajeómount /dev/dispositivo

● Ej:mount /dev/hdc = mount /media/cdrom0

– Si el dispositivo no existe en fstab:mount -t TIPO_SIS_FICHEROS /dev/dispositivo punto_montaje

● Ej:mount -t iso9660 /dev/hdc /media/cdrom0mount -t ext3 /dev/hdb1 /media/disco_2mount -t vfat /dev/hda2 /mnt/windowsXP

Page 93: Curso Basico Linux

Irontec – Curso básico Linux

93

Montaje de dispositivos

● mount (II)– Notas:

● Una partición de tipo VFAT no dispone de permisos ni dueños/grupos así que no se puede usar el comando “chown” ni “chmod” para permitir a usuarios la escritura.– La partición por defecto es del usuario que la monta (la puede

montar cualquiera si tiene la opción “user”).– Se puede fijar el dueño de la partición con la opción “uid”, el

grupo con “gid” y los permisos con “umask” (ojo, “umask” es la máscara invertida).

– ¡¡ man mount !!

Page 94: Curso Basico Linux

Irontec – Curso básico Linux

94

Montaje de dispositivos

● umount– Desmonta un dispositivo:

umount /dev/dispositivoó

umount punto_de_montaje

– ¡ Sólo si el dispositivo no está usado por ningún proceso!● Si un usuario tiene una terminal en /media/cdrom no se podrá

desmontar el dispositivo.● Para comprobar qué procesos están usando un dispositivo:

lsof punto_de_montajeEj:

lsof /media/cdrom

Page 95: Curso Basico Linux

Irontec – Curso básico Linux

95

EJERCICIO

Vamos a crear una carpeta llamada montaje y un disco duro virtual de 5 megas. Primero vemos como podriamos particionarlo. Luego montaremos el disco duro en la carpeta y trabajaremos con el.

mkdir montajedd if=/dev/zero of=fichero bs=1 count=5120000mkfs.ext3 ficheromount -o loop fichero montaje

Page 96: Curso Basico Linux

Irontec – Curso básico Linux

96

EJERCICIO

● Nos metemos en la carpeta y creamos un fichero.● Abrimos otra consola y desmontamos la carpeta.● Configuramos el fstab para que automáticamente monte

el dispositivo al iniciar el sistema.

Page 97: Curso Basico Linux

Irontec – Curso básico Linux

97

Editor VI

● Es el editor que encontraremos en todo UNIX. Es necesario conocer el funcionamiento básico para poder editar ficheros.

● Tiene varios modos de funcionamiento, visual, comando y edición.

● Tiene muchísimas opciones...

http://www.infor.uva.es/~arturo/Asig/EstSO/manvi.pdf

Page 98: Curso Basico Linux

Irontec – Curso básico Linux

98

Enlaces duros y simbólicos

Enlaces duros y simbólicos

Page 99: Curso Basico Linux

Irontec – Curso básico Linux

99

Enlaces

● Duros: En ocasiones es necesario dar a un mismo archivo distintos nombres o, para mantener la integridad de los datos, se hace necesario que un mismo archivo que va a ser modificado por varias personas pueda estar representado por un nombre distinto con distintos permisos cada uno. Dada la representación que GNU/Linux le da a los archivos es posible que dos o más nombres apunten al mismo contenido en el disco rígido..

Page 100: Curso Basico Linux

Irontec – Curso básico Linux

100

Enlaces duros y simbólicos

● Simbólicos: A diferencia con los enlaces duros, estos enlaces solo dan otro nombre a un archivo pero no hacen un enlace al nivel de inodo. Se puede hacer una comparación con los "Accesos directos" de Windows95. La orden ln -s genera un enlace simbólico.

Page 101: Curso Basico Linux

Irontec – Curso básico Linux

101

Enlaces duros y simbólicos

Creación de un enlace duro

[punisher@shyris ~]$ touch hola

[punisher@shyris ~]$ ln hola adios

[punisher@shyris ~]$ ls -li hola adios

2747992 -rw-r--r-- 2 punisher users 0 jun 12 16:40 adios

2747992 -rw-r--r-- 2 punisher users 0 jun 12 16:40 hola

¿Que pasa si borramos el fichero original?

Page 102: Curso Basico Linux

Irontec – Curso básico Linux

102

Enlaces duros y simbólicos

Creación de un enlace simbólico

[punisher@shyris ~]$ ln -s adios hastaluego

[punisher@shyris ~]$ ls -li adios hastaluego

2747992 -rw-r--r-- 2 punisher users 0 jun 12 16:40 adios

2748015 lrwxrwxrwx 1 punisher users 5 jun 12 16:44 hastaluego -> adios

¿Que pasa si borramos el fichero original?

Page 103: Curso Basico Linux

Irontec – Curso básico Linux

103

Crontab

Crontab

Page 104: Curso Basico Linux

Irontec – Curso básico Linux

104

Tareas periódicas

cron– El demonio cron permite la ejecución programada de

procesos, scripts o simples comandos.– Cron mira cada minuto si tiene que lanzar algún proceso y

en caso afirmativo lo lanza. No se puede planificar una ejecución de forma más precisa.

– Cada usuario tiene su tabla de planificación (crontab) aunque también existen una tabla de planificación global del sistema (/etc/crontab) y una serie de directorios especiales.

Page 105: Curso Basico Linux

Irontec – Curso básico Linux

105

Tareas periódicas

cron– La sintaxis típica de los ficheros de cron consiste en 6

campos:* * * * * [user] comando parametros

minuto: 0-59. Número, rango, intervalo o lista (separada por comas).hora: 0-23.día del mes: 1-31.mes: 1-12 o nombres.día de la semana: 0-7 o nombres.usuario: sólo en ficheros comentados anteriormente.comando: el resto de la línea es el comando a ejecutar.

– Nota: También puede haber líneas al principio con declaración de variables y comentarios (#).

– Más info (man 5 crontab).

Page 106: Curso Basico Linux

Irontec – Curso básico Linux

106

Tareas periódicas

cron– Ejemplo de cron de un usuario (root):

PATH=$PATH:/usr/bin:/usr/local/bin

# los viernes cada 2 horas...* */2 * * 5 cd /root/scripts; ./generaEstadisticas.sh

# cada día por la noche20 3 * * * /root/scripts/backupDiario.sh

# rotación de backups cada mes0 1 1 * * cd /root/scripts; ./rotaBackups.sh

Page 107: Curso Basico Linux

Irontec – Curso básico Linux

107

Tareas periódicas

cron– Creación o edición del fichero de cron del usuario actual:

$ EDITOR=vi$ export EDITOR$ crontab -e(se edita...):wq (se guarda y se sale)

– Mostrar el contenido del cron de un usuario:

$ crontab [-u user] -l

Page 108: Curso Basico Linux

Irontec – Curso básico Linux

108

Tareas periódicas

cron– Directorios especiales:

/etc/cron.daily//etc/cron.hourly//etc/cron.monthly//etc/cron.weekly/

– Los ficheros ejecutables que metamos en esos directorios se ejecutarán en su momento por el usuario root. NO DEBEN SER FICHEROS DE CRON, sino scripts o programas.

Page 109: Curso Basico Linux

Irontec – Curso básico Linux

109

EJERCICIO

● Crear una tarea que se ejecute a las 13:45 los lunes una nueva linea al fichero /tmp/programado con el texto “hola”.

● Crear una tarea que se ejecute cada 3 minutos añadiendo el texto “adios” al mismo fichero.

● Crear una tarea que cada hora borre el fichero.● Lo abrimos con tail -f y vemos el progreso.

Page 110: Curso Basico Linux

Irontec – Curso básico Linux

110

Programación Básica en Shell

Programación Básicaen Shell (Bash)

Page 111: Curso Basico Linux

Irontec – Curso básico Linux

111

Shell Scripts

– Script = Guión– Tareas repetitivas se pueden agrupar en un guión y

ejecutarse automáticamente (Batch Processing).● Es sencillo ejecutar 4 comandos para crear un buzón de correo.● No lo es tanto para crear 20.000 buzones.● Es sencillo hacer un bucle que se repita 20.000 veces ;-)

Page 112: Curso Basico Linux

Irontec – Curso básico Linux

112

Shell Scripts

Nuestro primer shell script– Usamos un editor y creamos el fichero hola.sh:

#!/bin/shecho hola

– Con #! en la primera línea indicamos quién debería interpretar el resto de comandos (/bin/sh).

– Posteriormente escribimos los comandos separados por saltos de línea.

Page 113: Curso Basico Linux

Irontec – Curso básico Linux

113

Shell Scripts

Variables– Una variable tiene un nombre y un valor, y sirve para dotar

de dinamismo a nuestros scripts:

FECHA=”15/07/2004”echo “Hoy es $FECHA”

– FECHA es el nombre de la variable.– $FECHA es su valor.

– Para asignar un valor, se utiliza “=”. ¡¡¡SIN ESPACIOS!!!

Page 114: Curso Basico Linux

Irontec – Curso básico Linux

114

Shell Scripts

Variables de entorno– Al arrancar una shell, ya hay muchas variables definidas,

son las variables de entorno.● Podemos ver su valor con el comando “env”.

– Ámbito de una variable: ● Si se define una variable en una shell, sólo tiene valor en esa

shell, a no ser que se exporte a los programas “hijo”.● export USUARIO=”joaquin”● Si desde esa shell lanzamos un script u otro programa, la

variable USUARIO contendrá “joaquin”.

Page 115: Curso Basico Linux

Irontec – Curso básico Linux

115

Shell Scripts

Variables: interactividad– Es posible leer del usuario el valor de una variable,

dotando a nuestros scripts de interactividad.– cat hola.sh

#!/bin/shecho “Dime tu nombre:”read NOMBREecho “Hola $NOMBRE, encantado de conocerte”

Page 116: Curso Basico Linux

Irontec – Curso básico Linux

116

Shell Scripts

Variables: argumentos– Es posible pasar los parámetros o argumentos que

queramos y utilizarlos dentro del script.– cat nombre.sh

#!/bin/shecho “Nombre: $1”echo “Primer Apellido: $2”echo “Segundo Apellido: $3”

– ./nombre.sh Juan López Martínez– ./nombre.sh “Maria Dolores” Pradera Sánchez– $1, $2, $3... ${10}, ${11}: argumentos– $0 es el propio script.

Page 117: Curso Basico Linux

Irontec – Curso básico Linux

117

Shell Scripts

Variables: argumentos especiales– $#: número de argumentos que nos han pasado.– $*: todos los argumentos. “$*” = “$1 $2 $3...”– $@: todos los argumentos. “$@” = “$1” “$2” “$3”...– $_: comando anteriormente ejecutado.– $$: PID del propio proceso shell.

Page 118: Curso Basico Linux

Irontec – Curso básico Linux

118

Shell Scripts

Variables: sustitución de comandos– Es posible almacenar en una variable el resultado de la

ejecución de un comando.– Dos sintaxis:

● Acentos graves: compatibilidadLISTADO=`ls`

● Con $(): anidableLISTADO=$(ls)LISTADO=$(ls $(cat directorios.txt))

Page 119: Curso Basico Linux

Irontec – Curso básico Linux

119

Shell Scripts

expr: Permite realizar operaciones aritméticas.– Sintaxis: expr ARG1 OP ARG2

$ SUMA=`expr 7 + 5` (ojo espacios!)$ echo $SUMA12

$ expr 7 \> 5 (ojo escapar operadores!)$ expr \( 7 + 5 \) \* 2

Page 120: Curso Basico Linux

Irontec – Curso básico Linux

120

Shell Scripts

Control del flujo de ejecución– Condiciones: test

● test “$NOMBRE” == “Juan” (==, !=, >, <, >=, <=)● test $DINERO -eq 1000 (-eq, -ne, -gt, -lt, -ge, -le)● test -f /etc/passwd (-f, -d, -l, -r, -w, -x)

– Modifican el valor de $?● cero = verdadero● no cero = falso (¡¡AL REVÉS QUE EN C!!)

http://www.ss64.com/bash/test.html

Page 121: Curso Basico Linux

Irontec – Curso básico Linux

121

Shell Scripts

Control del flujo de ejecución– if: alternativa simple. Sintaxis:

if condición_1then comandoselif condición_2then comandoselse comandosfi

Page 122: Curso Basico Linux

Irontec – Curso básico Linux

122

Shell Scripts

Control del flujo de ejecución– if. Ejemplo:

if test “$NOMBRE” == “Juan”then echo “Hola Juanin, ¿qué tal?”elif test “$NOMBRE” == “Pedro”then echo “Pedreteee, ¡cuánto tiempo!”else echo “No te conozco”fi

Page 123: Curso Basico Linux

Irontec – Curso básico Linux

123

Shell Scripts

Control del flujo de ejecución– case: cómodo para evitar alternativas anidadas. Sintaxis:

case $VARIABLE in “VALOR1”) comandos ;; “VALOR2”) comandos ;; *) comandos;esac

Page 124: Curso Basico Linux

Irontec – Curso básico Linux

124

Shell Scripts

Control del flujo de ejecución– case. Ejemplo:

case $NOMBRE in “Juan”) echo “Hola Juanin, ¿qué tal?” ;; “Pedro”) “Pedreteee, ¡cuánto tiempo!” ;; *) echo “no te conozco”;esac

Page 125: Curso Basico Linux

Irontec – Curso básico Linux

125

Shell Scripts

Control del flujo de ejecución– while. Ejecución de 0 a N veces. Sintaxis:

while condicióndo comandosdone

Page 126: Curso Basico Linux

Irontec – Curso básico Linux

126

Shell Scripts

Control del flujo de ejecución– while. Ejemplo:

N=1while [ $N -lt 100 ]do echo “Repito esta frase, ya voy $N veces” N=$(expr $N + 1) sleep 1 # Esperamos 1 segundodone

Page 127: Curso Basico Linux

Irontec – Curso básico Linux

127

Shell Scripts

Control del flujo de ejecución– until. Ejecución de 0 a N veces. Idéntico a while con la

condición negada. Sintaxis:

until comandodo comandosdone

Page 128: Curso Basico Linux

Irontec – Curso básico Linux

128

Shell Scripts

Control del flujo de ejecución– until. Ejecución de 0 a N veces. Idéntico a while con la

condición negada. Sintaxis:

N=1until [ $N -ge 100 ]do echo “Repito esta frase, ya voy $N veces” N=$(expr $N + 1)done

Page 129: Curso Basico Linux

Irontec – Curso básico Linux

129

Shell Scripts

Control del flujo de ejecución– for: ejecución repetitiva asignando a una variable de

control valores de una lista. Sintaxis:

for VARIABLE in LISTAdo comandosdone

Page 130: Curso Basico Linux

Irontec – Curso básico Linux

130

Shell Scripts

Control del flujo de ejecución– for. Ejemplo:

for N in “Sopa” “Carne” “Pan de ajo”do echo “Hoy comemos $N”done

Page 131: Curso Basico Linux

Irontec – Curso básico Linux

131

Shell Scripts

Control del flujo de ejecución– for: la LISTA define la separación de cada elemento por el

valor de la variable IFS (que por defecto vale “ \t\n”). Ejemplo:

IFS=”:”echo “Directorios en el PATH...”for DIR in $PATHdo echo $DIRdone

Page 132: Curso Basico Linux

Irontec – Curso básico Linux

132

Shell Scripts

Control del flujo de ejecución– for. Ejemplos numéricos:

for N in 1 2 3 4 5 6 7 8 9 10do echo “N ahora vale $N”donefor N in $(seq 10)do echo “N ahora vale $N”done

Page 133: Curso Basico Linux

Irontec – Curso básico Linux

133

Shell Scripts

Control del flujo de ejecución– select: muestra las opciones especificadas en LISTA y

asigna a VARIABLE la opción escogida. Sintaxis:

select VARIABLE in LISTAdo comandosdone

Page 134: Curso Basico Linux

Irontec – Curso básico Linux

134

Shell Scripts

Control del flujo de ejecución– select: Ejemplo:

select OPCION in “Doner Kebab” “Pizza”do case $OPCION in “Doner Kebab”) echo “Mmmm...” break;; “Pizza”) echo “Slurppp!” break;; *) echo “No sé qué es eso” esacdone

IMPORTANTE: sin el break el select seguiría ejecutándose indefinidamente.

Page 135: Curso Basico Linux

Irontec – Curso básico Linux

135

Shell Scripts

function– Podemos modularizar los scripts agrupando tareas en

funciones.– Es necesario que una función esté definida ANTES de que sea

llamada.– Dentro de una función, $1, $2, $3, etc. serán los parámetros

pasados a la función, no al script en sí.

Page 136: Curso Basico Linux

Irontec – Curso básico Linux

136

Shell Scripts

function. Ejemplo:

#!/bin/shfunction suma{ echo $(expr $1 + $2)}suma 4 6suma 3 234

Page 137: Curso Basico Linux

Irontec – Curso básico Linux

137

Shell Scripts

source, . – Con source o con “.” podemos incluir el código de otro

script en el nuestro:

#!/bin/shsource funciones.sh # ahí se define sumasuma 1 3suma 12 12312

Page 138: Curso Basico Linux

Irontec – Curso básico Linux

138

EJERCICIO

● Crear un script que nos pida nombre de usuario y contraseña.

● Una vez tengamos los datos los añadimos al fichero /tmp/datos

● A continuación nos pregunta si deseamos continuar insertando datos. Si la respuesta es si, volvemos a empezar, si es no terminamos la aplicación.

Page 139: Curso Basico Linux

Irontec – Curso básico Linux

139

EJERCICIO

● Por cada fichero en /bin hacer un md5sum y archivar los datos en /tmp/seguridad.

● Programar una tarea para que lo haga todos los días a las 10 de la noche.

Page 140: Curso Basico Linux

Irontec – Curso básico Linux

140

EJERCICIO

● Crear una calculadora.● Si el usuario escribe 2 + 5, que le muestre el resultado

por pantalla.● Se debe salir del bucle cuando el resultado de una

operación sea 82.

Page 141: Curso Basico Linux

Irontec – Curso básico Linux

141

Redes

Redes

Page 142: Curso Basico Linux

Irontec – Curso básico Linux

142

Configuración de la red

– Las interfaces de red se configuran en el fichero:

[root@localhost network-scripts]# cat ifcfg-eth0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0BOOTPROTO=dhcpHWADDR=00:0C:29:3D:90:4FONBOOT=yes

[root@localhost network-scripts]# cat ifcfg-lo DEVICE=loIPADDR=127.0.0.1NETMASK=255.0.0.0NETWORK=127.0.0.0BROADCAST=127.255.255.255ONBOOT=yesNAME=loopback

Page 143: Curso Basico Linux

Irontec – Curso básico Linux

143

Configuración de la red

Configuración manual de la red– ifconfig: configura interfaces de red. Asigna IP, máscara,

gateway, etc.$ ifconfig eth0 192.168.0.12 netmask 255.255.255.0 up

– route: añade rutas estáticas. Ejemplo típico:$ route add default gw 192.168.0.1$ route add -net 10.10.0.0 netmask 255.255.255.0 gw 192.168.0.100$ route -n (muestra tabla de rutas)

– /etc/resolv.conf: indica los servidores DNS$ cat /etc/resolv.conf

nameserver 195.235.113.3

Page 144: Curso Basico Linux

Irontec – Curso básico Linux

144

Configuración de la red

– IP alias: crear un interfaz de red sobre otro.● Una misma red física puede albergar distintas redes con

distinto direccionamiento y rango.

$ ifconfig eth0:1 192.168.1.123 netmask 255.255.255.0

$ ifconfig eth0:1eth0:1

Link encap:Ethernet HWaddr 00:14:85:E8:D3:AFinet addr:192.168.1.123 Bcast:192.168.1.255Mask:255.255.255.UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:217 Base address:0xe800

Page 145: Curso Basico Linux

Irontec – Curso básico Linux

145

Configuración de la red

Configuración manual de la red– /etc/hosts: realiza una resolución directa de nombre a IP

sin realizar consulta DNS. Normalmente este fichero se mira antes de preguntar al servidor DNS (sólo para consulta de tipo A).

– Para asegurarnos que el sistema pregunte al DNS o al fichero '/etc/hosts' para resolver nombres de host hay que mirar el fichero '/etc/nsswitch.conf'

Page 146: Curso Basico Linux

Irontec – Curso básico Linux

146

Configuración de la red

Configuración automática de la red (DHCP)– Configuración para el arranque: en /etc/network/interfaces

definimos la interfaz como “inet dhcp”– Configuración manual:

● se utiliza un cliente dhcp como dhclient o pump

# dhclient eth0# pump -i eth0

Page 147: Curso Basico Linux

Irontec – Curso básico Linux

147

Comandos básicos de administración de red

ping: manda un mensaje ICMP – echo request.– Se utiliza normalmente para comprobar si un interfaz de

red remoto está levantado.

$ ping 212.55.8.132PING 212.55.8.132 (212.55.8.132) 56(84) bytes of data.bytes from 212.55.8.132: icmp_seq=1 ttl=242 time=166 ms

¡hay conectividad!

– Nota: Si no hay ping puede que el tráfico ICMP esté filtrado por algún firewall.

Page 148: Curso Basico Linux

Irontec – Curso básico Linux

148

Comandos básicos de administración de red

telnet: protocolo de terminal remoto– Se utiliza para conectarse a una máquina remota.

$ telnet IP puerto (default 23)

– NO es un protocolo seguro (SSH sí).– Se utiliza también para comprobar estado de servicios

remotos. Ejemplo:

$ telnet www.euskalnet.net 80Connected to eui3h.euskaltel.es.Escape character is '^]'.

¡el servidor web funciona!

Page 149: Curso Basico Linux

Irontec – Curso básico Linux

149

Comandos básicos de administración de red

netstat: muestra conexiones de red– Comando potente que permite mostrar casi toda la

información de la configuración TCP/IP de la máquina (man netstat).

– Ejemplos:

netstat -atup # muestra tambien procesosnetstat -a # muestra todas las conex.netstat -a | grep LISTENnetstat -a | grep ESTABLISHEDnetstat -nrv # muestra tabla de rutas

Page 150: Curso Basico Linux

Irontec – Curso básico Linux

150

Comandos avanzados administración de red

iptraf:

Page 151: Curso Basico Linux

Irontec – Curso básico Linux

151

Comandos avanzados administración de red

netcat (nc): “navaja suiza” de red● Capaz de funcionar como cliente, como servidor, etc.

telnet 127.0.0.1 80Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.

GET /<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html> <head>

...● Lo mismo con netcat (nc):

echo “GET /” | nc 127.0.0.1 80● Cliente/Servidor:

nc -l -p 5000cat fichero | nc 192.168.1.1 5000

Page 152: Curso Basico Linux

Irontec – Curso básico Linux

152

Comandos avanzados administración de red

nmap: “escaneador de red”● Permite comprobar que puertos están o no abiertos.● Nos dice el sistema operativo y la versión de los

servicios que estamos escaneando.[root@shyris punisher]# nmap -sS -O 127.0.0.1

Starting Nmap 4.65 ( http://nmap.org ) at 2008-06-13 08:40 CEST

Interesting ports on localhost.localdomain (127.0.0.1):

Not shown: 1713 closed ports

PORT STATE SERVICE

111/tcp open rpcbind

978/tcp open unknown

Device type: general purpose

Running: Linux 2.6.X

OS details: Linux 2.6.17 - 2.6.24

Uptime: 0.013 days (since Fri Jun 13 08:22:15 2008)

Network Distance: 0 hops

Page 153: Curso Basico Linux

Irontec – Curso básico Linux

153

Iptables

IPTABLES

Page 154: Curso Basico Linux

Irontec – Curso básico Linux

154

Iptables

● Cortafuegos Netfilter/Iptables– Remplaza a Ipchains desde el Kernel 2.3.– iptables: herramienta del espacio de usuario que permite:

● Reglas para filtrado de paquetes.● NAT.

– Firewall stateful (controla estados de conexiones).– Soporte IPv6.

Page 155: Curso Basico Linux

Irontec – Curso básico Linux

155

Iptables

● Tablas y cadenas

Page 156: Curso Basico Linux

Irontec – Curso básico Linux

156

Iptables

● Destino: nuestra máquina

Page 157: Curso Basico Linux

Irontec – Curso básico Linux

157

Iptables

● Origen: nuestra máquina

Page 158: Curso Basico Linux

Irontec – Curso básico Linux

158

Iptables

● Paquetes Reenviados (Forwarded)

Page 159: Curso Basico Linux

Irontec – Curso básico Linux

159

Iptables

● Tabla mangle– Para modificar paquetes:

● TOS (Type of Service)● TTL (Time To Live)● MARK (marcar un paquete) -> iproute2, QoS

– ¡ No usar esta tabla para para DNAT, SNAT o Masquerading !

Page 160: Curso Basico Linux

Irontec – Curso básico Linux

160

Iptables

● Tabla nat– Sólo para hacer NAT (Network Address Translation).– DNAT:

● Cambiar la IP destino.● Ej: Redirigir entrantes a una DMZ con IP's locales.

– SNAT:● Cambiar la IP origen a una definida (estática)● Para dar salida a equipos LAN con IP's locales.

– Masquerade:● Igual que SNAT con más carga de procesador.● Cada vez chequea la IP saliente que debe asignarle.

– Ej: Router Linux con IP pública dinámica.

Page 161: Curso Basico Linux

Irontec – Curso básico Linux

161

Iptables

● Tabla filter– Filtrado de paquetes.– ¡ Se puede hacer filtrado en otras tablas, pero no es

recomendable !– Acciones como:

● Aceptar un paquete (ACCEPT).● Desecharlo (DROP).

Page 162: Curso Basico Linux

Irontec – Curso básico Linux

162

Iptables

● Estado de los paquetes– NEW: paquete nuevo.– ESTABLISHED: comunicación ya establecida.– RELATED: relaionada a otra comunicación ESTABLISHED.

● Para protocolos como FTP que incluyen puerto de transmisión de datos dentro de datos de aplicación.– Hace falta un módulo para Netfiler: ip_conntrack_ftp.

– --state● Para comparar el estado de un paquete.

– El estado de conexiones se aplica sobre:● TCP, UDP o ICMP.

– UPD y ICMP gracias al módulo ip_conntrack.

Page 163: Curso Basico Linux

Irontec – Curso básico Linux

163

Iptables

● Estado de los paquetes (II)– Ejemplo:

● Nuestra máquina envía un paquete a otra máquina:– Estado de la comunicación: NEW.– Cadena OUTPUT.

● La máquina destino nos responde con otro paquete.– Estado de la comunicación: ESTABLISHED.– Cadena PREROUTING.

Page 164: Curso Basico Linux

Irontec – Curso básico Linux

164

Iptables

● Listar reglas actuales– iptables -L -v– iptables-save

● Lista las reglas en un formato válido para iptables-restore.– iptables-save > fichero-reglas (salva las reglas a fichero)– iptables-restore < fichero-reglas (carga reglas desde fichero)

Page 165: Curso Basico Linux

Irontec – Curso básico Linux

165

Iptables

● Comando iptables– Sintaxis para añadir una regla:iptables [-t tabla] comando [comparación] [objetivo/salto]

– Los scripts de iptables constan de muchas líneas similares.

Page 166: Curso Basico Linux

Irontec – Curso básico Linux

166

Iptables

● Comandos-A : Añade la regla al final de la cadena.

iptables -A INPUT (añade una regla al final de la cadena INPUT)

-D : Borrar una regla (hay que ponerla entera).-R : Reemplaza una regla.-I : Inserta una regla en la posición indicada.-L : Lista todas las reglas (de la cadena especificada).-F : (Flush) Elimina todas las reglas (de la cadena especificada).

Page 167: Curso Basico Linux

Irontec – Curso básico Linux

167

Iptables

● Comparaciones– Comparaciones genéricas:-p, --protocol : Para comprobar si es TCP, UDP o ICMP.

iptables -A INPUT -p tcp-s, --src : Comparación de IP origen.

iptables -A INPUT -s 192.168.1.10iptables -A INPUT -s 192.168.1.0/24iptables -A INPUT -s ! 192.168.1.0/24 (invertir)

-d, --dst : Comparación de IP destino.iptables -A INPUT -d 192.168.0.1iptables -A INPUT -d 192.168.0.0/16

-i, --in-interface : Interfaz origen.● Sólo válida en INPUT, FORWARD y PREROUTING.

iptables -A INPUT -i eth0iptables -A INPUT -i eth+ (por cualquier eth)

-o, --out-interface : Interfaz de salida.● Sólo válida en OUTPUT, FORWARD y POSTROUTING.

iptables -A FORWARD -o eth0

Page 168: Curso Basico Linux

Irontec – Curso básico Linux

168

Iptables

● Comparaciones implícitas– Comparaciones que se cargan implícitamente:

● TCP● UDP● ICMP

– Estas comparaciones se cargan con la opción -p:iptables -p TCP (o UDP, ICMP)

Page 169: Curso Basico Linux

Irontec – Curso básico Linux

169

Iptables

● Comparaciones implícitas TCP– -p tcp--sport : Puerto origen.

iptables -A INPUT -p tcp --sport 1003iptables -A INPUT -p tcp --sport 100:200 (rango)iptables -A INPUT -p tcp --sport ! 22 (invertir)

--dport : Puerto destino (ídem)--tcp-flags : Flags TCP:

● SYN, FIN, ACK, ACK SYNiptables -A INPUT -p tcp --tcp-flags SYNiptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN

Page 170: Curso Basico Linux

Irontec – Curso básico Linux

170

Iptables

● Comparaciones implícitas UDP– -p upd--sport : Igual que en TCP.--dport : Igual que en TCP.

Page 171: Curso Basico Linux

Irontec – Curso básico Linux

171

Iptables

● Comparaciones implícitas ICMP– -p icmp--icmp-type : Tipo de ICMP.

iptables -A INPUT -p icmp --icmp-type 8● Se puede ver un listado con:

iptables -p icmp --help

Page 172: Curso Basico Linux

Irontec – Curso básico Linux

172

Iptables

● Comparaciones explícitas– Se deben cargan explícitamente con opción -m (--match).--state ESTADO : Verifica el estado de la conexión.

● NEW, INVALID, ESTABLISHED, RELATEDiptables -A INPUT -m state --state RELATED,ESTABLISHED

--limit VALOR : Limitar el nº de paquetes por tiempo.iptables -A INPUT -m limit --limit 3/hour

--mac-source : MAC origen.iptables -A INPUT -m mac --mac-source 00:00:00:00:11:22

--mark : Comprobar paquetes marcados anteriormente.iptables -t mangle -A INPUT -m mark --mark 1

● Más comparaciones:– TOS, TTL, multiport...

Page 173: Curso Basico Linux

Irontec – Curso básico Linux

173

Iptables

● Objetivos/Saltos– Acción que se ejecuta sobre el paquete.

-j ACCIÓN● Salto: Mandar el paquete a otra cadena:

-j cadena– Podemos crear cadenas propias:

iptables -N cadena_tcpiptables -A INPUT -p tcp -j cadena_tcp

Page 174: Curso Basico Linux

Irontec – Curso básico Linux

174

Iptables

● ObjetivosACCEPT : Aceptamos el paquete.

● ¡ El paquete deja de compararse en la cadena actual y en las cadenas de la tabla actual !

● ¡ El paquete podría ser filtrado en otra tabla !

DROP : Deseacha un paquete.

REJECT : Rechaza un paquete (envía un ICMP informativo al origen).

LOG : Loguea el paquete en ssylog.

DNAT : Cambiamos la IP destino.● Sólo en cadenas PREROUTING y OUTPUT de la tabla nat.

iptables -t nat -A PREROUTING -p tcp -d 85.80.23.54 --dport 80 -j DNAT --to-destination 192.168.168.10:80

Page 175: Curso Basico Linux

Irontec – Curso básico Linux

175

Iptables

● Objetivos (II)SNAT : Cambiamos la IP origen.

● Sólo en la cadena POSTROUTING de la tabla nat.iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 90.90.90.90:1024-3200

MASQUERADE : Cambiamos la IP origen (detecta la IP)● Sólo en la cadena POSTROUTING de la tabla nat.

iptables -t nat -A POSTROUTING -p tcp -o eth0 -j MASQUERADE –-to-ports 1024-3200

REDIRECT : Redirigir paquetes hacia la máquina.● Sólo en cadenas PREROUTING y POSTROUTING de tabla nat.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT –-to-ports 8080

● Util para proxy transparente.● Otros objetivos:

– RETURN, QUEUE, MIRROR, MARK, TOS, TTL, ULOG

Page 176: Curso Basico Linux

Irontec – Curso básico Linux

176

Iptables

● Política por defecto– Dos filosofías:

● 1ª: “Todo abierto y cerrar aquello que no queramos”● 2ª: “Todo cerrado y abrir aquello que queramos”● ¡ Mucho más segura la 2ª !

– Política por defecto en cada cadena (sólo se cumple si el paquete no coincide con ninguna regla):

iptables -P cadena política

– Denegamos acceso a la máquina y otras máquinas:iptables -P INPUT DROPiptables -P FORWARD DROP

– Permitimos acceso total al exterior desde nuestra propia máquina:iptables -P OUTPUT ACCEPT

Page 177: Curso Basico Linux

Irontec – Curso básico Linux

177

Iptables

● Política por defecto (II)– ¡ OJO con el interfaz “lo” !

● “lo” es el interfaz de localhost.● Si ponemos:

iptables -P INPUT DROP¡ Estamos bloqueando los accesos por red en localhost !

● Solución: Añadir:iptables -A INPUT -p ALL -i lo -j ACCEPT

Page 178: Curso Basico Linux

Irontec – Curso básico Linux

178

Iptables

● sysctl– Para habilitar el rutado:

#> echo “1” > /proc/sys/net/ipv4/ip_forward● Más elegante:

#> sysctl -w net.ipv4.ip_forward=1● Para dejarlo definitivo (activo en el arranque):

Fichero /etc/sysctl.conf:net/ipv4/ip_forward=1

Page 179: Curso Basico Linux

Irontec – Curso básico Linux

179

Iptables

● Notas a recordad– ¡ No bloquear todos los ICMP ! ¿¿por qué??

● Supone cargarse la mitad del protocolo de internet.

– No olvidarse del interfaz “lo”.– Cargar módulos necesarios para nuestras reglas.

● ¡ Imprescindible el módulo ip_tables !

Page 180: Curso Basico Linux

Irontec – Curso básico Linux

180

Iptables

● Ejemplo– Aspectos comunes de los scripts:

● Borrado de las reglas aplicadas actualmente (flush)● Aplicación de políticas por defecto para INPUT, OUPUT,

FORWARD● Listado de reglas iptables.

Page 181: Curso Basico Linux

Irontec – Curso básico Linux

181

Iptables

● Ejemplo (II)#!/bin/sh## SCRIPT de IPTABLES## Red local: eth0 - 192.168.0.0/24## Internet: eth1 – IP dinámica

# Borrar reglas:iptables −Fiptables −t nat −F

# Política por defecto:iptables −P INPUT DROPiptables −P OUTPUT ACCEPTiptables −P FORWARD DROPiptables −t nat −P PREROUTING ACCEPTiptables −t nat −P POSTROUTING ACCEPT

# Permito acceso local:iptables -A INPUT -p ALL -i lo -j ACCEPT

Page 182: Curso Basico Linux

Irontec – Curso básico Linux

182

Iptables

● Ejemplo (III)# Masquerading para red local con IP pública dinámica:iptables −t nat −A POSTROUTING −s 192.168.0.0/24 -o eth1 −j MASQUERADE

# Dejo pasar los paquetes ICMP:iptables −A INPUT −p ICMP −j ACCEPT

# Acepto paquetes de conexiones ya establecidas:iptables −A INPUT −p TCP −m state −−state RELATED,ESTABLISHED −j ACCEPT

# Permitir SSH a la máquina:iptables −A INPUT −p TCP −−dport 22 −m state −−state NEW −j ACCEPT

# Redirigir HTTP a una máquina local:iptables −t nat −A PREROUTING −i eth1 −p tcp −−dport 80 −j DNAT −−to 192.168.0.2:80

Page 183: Curso Basico Linux

Irontec – Curso básico Linux

183

Iptables

● Más info:– http://iptables-tutorial.frozentux.net/spanish/chunkyhtml

● Tutorial completo de Iptables en castellano.

Page 184: Curso Basico Linux

Irontec – Curso básico Linux

184

Paquetes de software

Paquetes de software

Page 185: Curso Basico Linux

Irontec – Curso básico Linux

185

Paquetes de software

● Un paquete es un fichero que contiene un programa, scripts de instalación y ficheros de configuración.

● Es posible instalar, eliminar programas y actualizar el sistema completo con un solo comando, yum.

● También es posible instalar paquetes a mano sin yum, pero tendremos que resolver el problema de dependencias manualmente.

Page 186: Curso Basico Linux

Irontec – Curso básico Linux

186

Paquetes de software

● Instalar: yum install nombrepaquete● Eliminar: yum remove/erase nombrepaquete● Actualizar paquetes: yum update● Actualizar sistema: yum upgrade● Buscar paquete: yum search textodebusqueda● Mostrar info de paquete: yum info

nombrepaquete

Page 187: Curso Basico Linux

Irontec – Curso básico Linux

187

Paquetes de software

● ¿Qué es un repositorio?El repositorio es un almacén de paquetes. Los repositorios pueden estar en internet, en un medio extraíble como un CD, en el disco duro...

● Se configuran en /etc/yum.repos.d[kbs-CentOS-Extras]

name=CentOS.Karan.Org-EL$releasever - Stable

gpgcheck=1

gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt

enabled=1

baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/

Page 188: Curso Basico Linux

Irontec – Curso básico Linux

188

Paquetes de software

También es posible instalar paquetes a mano sin usar YUM, mediante rpm. Las dependencias las tenemos que gestionar notrosos.

[root@localhost alumno]# rpm -i pidgin-2.0.2-3.el5.i386.rpm

warning: pidgin-2.0.2-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897

error: Failed dependencies:

libgtkspell.so.0 is needed by pidgin-2.0.2-3.el5.i386

libpurple.so.0 is needed by pidgin-2.0.2-3.el5.i386

Page 189: Curso Basico Linux

Irontec – Curso básico Linux

189

Paquetes de software

● Algunas opciones de rpm.● Instalar: rpm -i nombrepaquete● Borrar: rpm -e nombrepaquete● Ver paquetes instalados: rpm -qa● Actualizar paquete: rpm -Uvh

Page 190: Curso Basico Linux

Irontec – Curso básico Linux

190

Servicios y Niveles de Ejecución

Servicios y Nivelesde Ejecución

Page 191: Curso Basico Linux

Irontec – Curso básico Linux

191

Proceso de arranque

– La BIOS busca un dispositivo de inicio (disco duro, CD-ROM,..) y pasa el control al MBR (512 bytes).

– Se carga el gestor de arranque (instalado en MBR).– Se carga el kernel.– Se monta el sistema de ficheros raiz (/).– Se inicia el init (el abuelo de todos los procesos).– Se lee el archivo /etc/inittab.– Se ejecutan los scripts indicados por el nivel de ejecución

de arranque.

Page 192: Curso Basico Linux

Irontec – Curso básico Linux

192

Gestores de arranque

Grub– Grub (Grand Unified Bootloader) es un gestor de arranque

capaz de arrancar diferentes sistemas operativos en diferentes particiones y discos duros.

– Normalmente se instala en el MBR (master boot record) del disco duro principal.

– El archivo de configuración en Debian GNU/Linux es: /boot/grub/menu.lst

– No es necesario ejecutar ningún comando para que se tengan en cuenta los cambios realizados.

Page 193: Curso Basico Linux

Irontec – Curso básico Linux

193

Gestores de arranque

Grub– Grub no es capaz de distinguir entre dispositivos IDE, SCSI

u otros.– Sintaxis:

● Dispositivos– (dispositivo[particion][,letra_particion])

(hd0) # disco maestro IDE primario(fd0) # disquetera(hd0,1) # partición 2 del maestro IDE 0

● Ficheros– Es necesario indicar la ruta completa

(hd0,0)/boot/grub/menu.lst

Page 194: Curso Basico Linux

Irontec – Curso básico Linux

194

Gestores de arranque

Grub– Datos de interes del archivo menu.lst:

default 0timeout 3

title Ubuntu, kernel 2.6.12-10-386root (hd0,1)kernel /boot/vmlinuz-2.6.12-10-386 root=/dev/hda2 ro quiet splashinitrd /boot/initrd.img-2.6.12-10-386savedefaultboot

title Microsoft Windowsroot (hd0,2)savedefaultmakeactivechainloader +1

Page 195: Curso Basico Linux

Irontec – Curso básico Linux

195

Niveles de Ejecución

En los sistemas Unix hay 7 (0...6) niveles de ejecución– nivel 0: estado de parada (halt)– nivel 1: monousuario– nivel 2, 3 y 5: multiusuario– nivel 4: no tiene un uso específico– nivel 6: estado de reinicio (reboot)

Page 196: Curso Basico Linux

Irontec – Curso básico Linux

196

Niveles de Ejecución

Init– Es el primer proceso que se crea (PID=1).– Se configura mediante /etc/inittab.

● Sintaxisid:nivel:accion:proceso

– id: nombre de la línea– nivel: nivel o niveles en los que la línea debe procesarse– accion

wait (espera), once (solo 1 vez), respawn (rearranca una vez finalizado), off (ignora la línea)

– proceso: path del proceso a ejecutar

Page 197: Curso Basico Linux

Irontec – Curso básico Linux

197

Niveles de Ejecución

Init● Valores típicos del archivo /etc/inittab:

id:2:initdefault

l0:0:wait:/etc/init.d/rc 0l1:1:wait:/etc/init.d/rc 1l2:2:wait:/etc/init.d/rc 2l3:3:wait:/etc/init.d/rc 3

1:2345:respawn:/sbin/getty 38400 tty12:23:respawn:/sbin/getty 38400 tty2

z6:6:respawn:/sbin/sulogin

# CTRL-ALT-DEL!ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Page 198: Curso Basico Linux

Irontec – Curso básico Linux

198

Arranque del sistema

– Cuando la máquina se inicia en un nivel de ejecución N se ejecutan todos los scripts que empiecen por 'S' o 'K' contenidos en /etc/rcN.d/ con las siguientes particularidades.● Si el nombre del script comienza por S se le pasa como parámetro 'start'.

● Si el nombre del script comienza por K se le pasa como parámetro 'stop'.

– Normalmente todos estos ficheros de /etc/rcN.d son enlaces a scripts localizados en /etc/init.d/

Page 199: Curso Basico Linux

Irontec – Curso básico Linux

199

Configurando servicios en arranque y parada

chkconfig– Herramienta para configurar automágicamente los enlaces

a los scripts de init tipo System V que están en /etc/rcN.d/[S|K]NNnombre y que apuntan a los scripts /etc/init.d/nombre.

– Ejemplos

# chkconfig --list# chkconfig --level 345 sendmail off