GNU / Linux - Grado, Máster y Doctorado en Madrid...

58
1 1 GNU / Linux Introducción a GNU / Linux 2 Un poco de historia l 1991: Linus Torvalds creó Linux basándose en Minix, una pequeña implementación de UNIX para PC, escrito totalmente en C. l Linus anunció la primera versión oficial de Linux, la 0.02 el 5 de Octubre de 1991 Constaba básicamente del Kernel, el shell bash y el compilador gcc. l En verdad Linux es el Kernel o núcleo, y al resto de aplicaciones que corren sobre ese kernel (formando usualmente una distribución) debería llamársele GNU / Linux.

Transcript of GNU / Linux - Grado, Máster y Doctorado en Madrid...

Page 1: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

1

1

GNU / Linux

Introducción a GNU / Linux

2

Un poco de historial 1991: Linus Torvalds creó Linux basándose en

Minix, una pequeña implementación de UNIX para PC, escrito totalmente en C.

l Linus anunció la primera versión oficial de Linux, la 0.02 el 5 de Octubre de 1991

– Constaba básicamente del Kernel, el shell bash y el compilador gcc.

l En verdad Linux es el Kernel o núcleo, y al resto de aplicaciones que corren sobre ese kernel (formando usualmente una distribución) debería llamársele GNU / Linux.

Page 2: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

2

3

Qué es GNU / Linux

l Richard Stallman: Software libre (free)

– “...es como si te vendieran un coche con el capósellado para que no pudieses ver el motor”

l Proyecto GNU realizado por la FSF (Free Software Foundation

l Promovieron la licencia GPL (General Public Licence), por la que los usuarios recibirían siempre el código fuente (Open Source) y el derecho a modificarlo (haciendo públicas las modificaciones), realizar las copias que deseen y redistribuirlo (bajo la licencia GPL)

4

Distribuciones de GNU / Linux

l Debian: versión Sarge, Woody, Potato y Buzz.

l Red Hat (Fedora): versión 9.0

l Mandrake: versión 9.2

l S.U.S.E.

l Slackware

l EsWare

l Metadistros

Page 3: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

3

5

GNU / Linux: cara y cruz

l La cara:– Multitarea total

– Multiusuario– Estabilidad

– Código fuente abierto

– Multitud de aplicaciones GNU

– Inmune a la mayoría de virus (normalmente creados para Windows)

– Gratis o de bajo coste.

6

GNU / Linux: cara y cruz

l La cruz:– Entorno árido (pero poco a poco va mejorando)

– Soporte de hardware: los fabricantes de hd no suelen crear drivers para Linux, y tampoco facilitan las especificaciones de dicho hd para crearlos.

– Faltan aplicaciones necesarias (que sí están para Windows)

– Se necesitan ciertos conocimientos para administrar profundamente el sistema y no tener miedo a experimentar

Page 4: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

4

7

Debian

l Debian bien en tres versiones o sabores:– Stable o estable (Debian 3.1r1 Sarge, antes Woody

3.0r0 y Potato): conveniente para un servidor

– Testing o de prueba (Sarge): conveniente para una estación de trabajo. Sería como una versión beta.

– Unstable o inestable (Sid): versión en desarrollo (versión alfa)

l El paso de inestable a prueba se realiza congelando la versión cuando alcanza un cierto grado de madurez.

8

Debian

l Los paquetes de Debian se dividen en :– Versión/main: son los paquetes que están hechos de

acuerdo a las directivas del software libre de Debian (DFSG)

– Versión/contrib: paquetes cuya distrinbución estárestringida (shareware)

– Versión/non-free (paquetes de libre distribución pero que dependen de otros que no lo son

l Todos se encuentran en www.debian.org

Page 5: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

5

9

Debian

l Los paquetes de Debian a su vez pueden ser:– Paquetes binarios, que contienen ejecutables, archivos

de configuración, páginas man/info, información sobre derechos de autor,... Tienen extensión .deb (.rpm)

– Paquetes fuente, que contiene el código fuente original. Tienen extensión tar.gz

10

GNU / Linux

Ubuntu

Page 6: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

6

11

Ubuntul Live CD e instalable

l El siguiente software están disponibles en la version Breezy basada en Debian(http://www.debian.org/):– Linux-Kernel 2.6.x

– Gnome como entorno gráfico estandard con Nautilus.

– X Multimedia System (xmms) como decodificador MP3, Xine para MPEG-video y divX.

12

Ubuntu

– Programas de conexión a Internet teléfonico y ADSL

– Firefox y Mozilla Thunderbird

– Programa de manejo Gráfico GNU (GIMP)

– Utilidades para la recuperación de datos y de sistema, incluso de otros Sistemas.

– Herramientas de análisis de seguridad para administradores de redes.

– OpenOffice(TM), la versión libre GPL de la Suite StarOffice(TM) de SUN.

Page 7: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

7

13

Ubuntu

– Varios lenguajes de programación, herramientas de desarrollo y librerías para desarrolladores.

– En total más de programas instalados 900 con unos 2000 programas, utilidades, y juegos.

14

Ubuntu

l ¿Cuáles son los requirimientos mínimos del sistema?– Intel-compatible CPU (i486 o superior),

– 16 MB de RAM para modo texto, y 128 MB para modo gráfico con Gnome

– unidad de CD-ROM , o una unidad de disco y un CD-ROM (IDE/ATAPI o SCSI) normal,

– tarjeta SVGA-compatible,– ratones Serie o PS/2 o IMPS/2-compatible o USB.

Page 8: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

8

15

GNU / Linux

Instalación

16

Recomendaciones para la instalación

l Tipos de particiones: primarias, extendida y lógicas.– Particiones de arranque y del sistema

l Particiones en Linux: puntos de montaje

l Particiones separadas del disco duro

– / (/+/boot/+/bin+/sbin/+/tmp+/var). En servidores separar /var (proxy-squid)

– /home (depende de los usuarios del sistema) +100 Mb

– /usr (2 Gb con X): depende de las aplicaciones instaladas.

Page 9: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

9

17

Recomendaciones para la instalación

l Partición swap:– Mínimo 64 MB (128 MB) con KDE/GNOME

– Regla: 2 veces la RAM (pero no más de 256 MB)

l Gestor de arranque LILO y compatibilidad con Windows– MBR

– Primer sector de la partición del sistema

– Disquete

18

Postinstalación

l Actualización del sistema (apt-get update)

l Servicios o demonios que arrancan al iniciar el sistema: (ver init.d y rc5.d)

l Montaje de las particiones Windows y Linux a las que quiero acceder (ver archivo fstab)

l Instalación de paquetes opcionales: Webmin (ver capítulo de instalación de paquetes)

l Configuración e instalación de algunos módulos necesarios, por ejemplo soporte NTFS (ver capítulo del Kernel)

Page 10: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

10

19

GNU / Linux

Lo que todo linuxero debe saber

20

Acciones básicas

l Arrancar el sistema

l Hacer login– En el shell (startX)

– Desde las X: xdm, gdm

l Cambiar entre consolas: [Alt-F1] o [Ctrl-Alt-F1]– Consolas o terminales: tty1 (teletypes)– También [Alt - ->]

l Hacer logout: [Ctrl-Alt-Supr], logout.

l Apagar el sistema: Shutdown, init0, halt.

Page 11: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

11

21

Acciones básicas

l Ejecutar un comando:– $ hostname

– $ hostname -opción– $ hostname --help (opciones estilo GNU)

l Cambiar la password: $ passwd

22

Acciones básicas

l ¿Quién hay en el sistema? – $ who: muestra quién hay en el sistema

– $ whoami: muestra quién soy yo en el sistema (username)

– $ w: muestra quién hay en el sistema y qué estan haciendo

– $ last: muestra los últimos login de los usuarios (last usuario, para un usuario)

Page 12: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

12

23

Buscar ayuda

l Páginas man: – $ man w

l Documentación en Linux– En /usr/docs o en /usr/share/doc

– Howto´s y mini Howto´s

– Proyecto LTDP

– Proyecto Lucas

24

Buscar ayuda

l La orden apropos: Busca la herramienta o programa que podemos usar para realizar una cierta acción– $ apropos sort, apropos audio, apropos console

– Otra forma es usar las páginas man. Com -k busca en las cabeceras de las páginas de ayuda: man -k sort

l ¿Para qué sirve un programa determinado? – $ whatis who

– Opción help: $ whoami –help l (probar también -h o -?)

Page 13: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

13

25

GNU / Linux

El shell I (acciones básicas)

26

El shell

l Interfaz de comandos

l Tipos de shell: bash, csh, ksh, sh.

l Prompt: $(usuario) , #(root)

l Dejar que el shell complete la orden: Tab– $ ls /mn [Tab]

l Histórico de órdenes: ?

– Búsqueda en el histórico de órdenes: [Ctrl+r] y la orden

Page 14: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

14

27

Teclas especiales en el terminal

l Tab: completa y sugiere un comando incompleto

l Cursores: navegar por el historial

l Shift+Av. página o Re. Página, muestra pantallas en el terminal que no se ven

l Ctrl-l: limpia la pantalla

l Ctrl-r: Busca comandos en el historial

28

GNU / Linux

Sistemas de ficheros IOrdenes básicas de manipulación de ficheros

Page 15: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

15

29

Sistema de ficheros

l Estructura jerárquica del sistema de ficheros en UNIX

l Linux trata todo (directorios, dispositivos, puertos,...) como ficheros

l Tipos de ficheros– Ficheros

– Directorios– Enlaces (links)

– Ficheros de bloque

30

Sistema de ficherosl Descripción del árbol de directorios

– /: raíz

– /home: homedirs de los usuarios

– /root: homedir de root

– /mnt: montaje de las particiones– /usr: aplicaciones instaladas

– /bin: ficheros ejecutables (path)

– /sbin: ficheros ejecutables de administación (path)

Page 16: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

16

31

Sistema de ficherosl Descripción del árbol de directorios

– /etc: ficheros de configuración

– /dev: dispositivos

– /boot: arranque del sistema

– /proc: registro de configuración– /tmp: ficheros temporales

– /var: aloja los registros (logs) del sistema y algunos cachés (proxu squid)

32

Comandos sobre el árbol de directoriosl cd (Change directory)

– Rutas relativas y absolutas: tree

– pwd y directorio home (sólo cd)

l ls (-a, -l, -x, --color)

l mkdir (make directory) – -p crea directorios padre si no existen

l Para crear un archivo debo usar un editor como Vi o Emacs

Page 17: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

17

33

Comandos sobre el árbol de directoriosl rm (-i, -f, -r) y rmdir

l cp (-r para copiar directorio y todo su contenido)

l mv -rf (también renombra)

l Uso de comodines: * , ? [i,o]

34

GNU/LINUX

Edición de archivos con Vi

Page 18: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

18

35

Edición con Vi

l Dos modos:– Modo orden: Esc

– Modo edición: a(anexar) / i (insertar)

l Modo orden: algunas órdenes importantes.– x: borrar un carácter

– dd: borrar una línea

– / cadena: buscar una cadena. n para buscar siguiente y N para buscar anterior

– Desplazamiento: cursores, 0 para ir al principio de línea y $ para ir al final.

36

Edición con Vi

l Seleccionar: pulso v y me despalzo hasta el final de la selección (?+cursores o ?+$)

l Copiar: y

l Cortar=eliminar (d,dd o x)

l Pegar: p

Page 19: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

19

37

Edición con Vi

l Trabajar con varios ficheros (buffers)– $ vi file1 file2

– Cambio de uno a otro, estando en modo orden escribo :bn, donde n es el número de bufer (empezando a numerarse por 1)

– Nota: si cambio algo en un archivo debo guardar los cambios (:w) para pasar al otro bufer.

l En cualquier caso consultar man vi para otras acciones.

38

GNU / Linux

Sistemas de ficheros II: acciones avanzadas

Page 20: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

20

39

Enlaces a ficheros

l Hard links: – Mismo sistema de ficheros y mismo inodo

– Si borro el fichero borro el enlace

l Links simbólicos:– Pueden estar en diferentes máquinas incluso

– Diferente inodo

– Si borro el enlace no borro el fichero

l Orden ln (-s)

l La orden find (-exec)

40

Compartiendo ficherosl Grupos de usuarios: un usuario pertenece al

menos a un grupo (el login group)– $ groups grupo

– $ groups usuario

l Cuando creo un fichero por defecto yo soy el propietario y pertenece a su vez a mi login group

l Determinar el propietario de un fichero: $ ls -l

l Para cambiar el propietario o el grupo – $ chown usuario fichero

– $ chgroup grupo fichero

Page 21: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

21

41

Permisos sobre ficheros

l Ver los permisos: $ ls -l

l Cambiar permisos: $ chmod– Letras: r,w,x / u, g, o, a

– Numéricos: 777

l Hacer un fichero privado (eliminando el grupo y otros: $ chmod go= fichero

l Hacer un fichero ejecutable: +x

l Permisos por defecto: $ umask 022

l Bit s y bit g.

42

Encontrar un fichero

l Para encontrar unfichero que tenga en su nomnre la palabra audio:– $ locate audio o $ locate *audio

– $ locate /. encuentra todos los fichero ocultos del sistema

– NOTA: no distingue mayúsculas

Page 22: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

22

43

Encontrar un fichero

l La orden find– $ find /home -name Desktop

– $ find /home -iname desktop (no distingue mayúsculas)

– $ find /home -name 'D*'

– $ find /home -name '*.tex'

44

Encontrar un fichero

l Otros ejemplos:– $ find ~ -size +100k (ficheros mayores de 100k)

– $ find ~ -empty (ficheros vacíos)– # find ~ -user root (ficheros propiedad de root)

l Ejecutar comandos con los ficheros encontrados– $ find ~ -empty -exec rm -f {} \;– -ok es igual pero pide confirmación

l Redireccionar errores: – $ find / -name 'et*' >~/file 2>/dev/null

Page 23: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

23

45

Encontrar un fichero

l Cómo saber el número de ficheros en un directorio:– $ ls -a |wc -l

l Cómo saber el número de ficheros en un árbol:– Nº de ficheros y directorios:$ find /usr/share | wc -l

– Nº de ficheros: $ find /usr/share \! -type d | wc -l (\! -type d para excluir la lista de directorios y no contarlos)

– Nº de directorios: $ find /usr/share \! -type f | wc -l (\! -type f para excluir la lista de ficheros y no contarlos)

46

Encontrar un fichero

l Localizar una orden:– $ which cd

– Consejo: mirar siempre en /bin, /sbin, /usr/bin, /usr/sbin,... en general en el PATH

l Ver el tipo de un fichero– $ type fichero

– $ file fichero

Page 24: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

24

47

Filtros

l La orden grep

l La orden sort

l La orden cut

48

Ver el contenido de un fichero

l cat– Puede crear ficheros: cat > file

– Puede agregar algo a un fichero sin abrirlo:cat>>file.existe

l more

l less

l echo

Page 25: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

25

49

Tratamiento de ficheros

l La orden split: fracciona un archivo en partes.– $ split b2m prueba.bmp prueba.bmp. (prueba de 3M)

l Crea prueba.bmp.aa (2M) prueba.bmp.ab (1M)

– Para juntarlos: l cat prueba.bmp.* > prueba.bmpl Rm prueba.bmp.*

50

Comparar ficheros

l La orden cmp: compara dos ficheros y ve si son iguales– $ cmp file1 file2

l La orden diff y sdiff también comparan pero dan más información– $ sdiff file1 file2 | less

Page 26: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

26

51

Compresión de ficheros

l La orden gzip:– $ gzip file1, y obtendremos file1.gz, borrando file1

– $ gzip -r directorio (comprime los archivos de dentro)

– $ gunzip file1.gz para descomprimir (también extensión z, Z, zip,..)

l Otros compresores:– bzip2

– zip

– Compress

52

Empaquetar en un fichero

l La orden tar:– $ tar -cvf file.tar file

– $ tar -czvf file.tar.gz file (tar+gzip)

– $ tar -xzvf file.tar.gz (descomprime y desempaqueta)

Page 27: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

27

53

Sistema de ficheros y particiones

l La orden mount / umount– $ mount -t fat /dev/hda1 /mnt/windows

– $ umount /dev/cdrom

l El fichero /etc/fstab– Estructura

– Opciones:l Userl Autol ro

54

Sistema de ficheros y particiones

l La orden df: informa del tamaño de los sistemas de ficheros y su uso– $ df -h (h, human readable)

l La orden du: muestra lo que ocupa cada fichero del directorio donde me encuentre– $ du -hm (megas) o -k(kb)

– $ du -sm /usr/local (muestra un resumen, sólo la última línea, es decir, lo que ocupa todo el directorio).

Page 28: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

28

55

Disquetes

l Formatear un disquete– $ mke2fs /dev/fd0

l Formatear con formato fat: – $ umount /floppy; mkfs -t fat /dev/fd0

– $ mformat /dev/fd0

56

GNU / Linux

El shell II (acciones avanzadas)

Page 29: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

29

57

El shell

l Ejecutar una lista de comandos– $ clear ; ls

l Tuberías (pipes) – $ who | w -l

– $ man | less

58

El shelll Redireccionamiento de entrada y de salida

– Entradas y salidas estándar y otras entradas y salidas

l Redireccionar la entrada a un fichero

– $ apropos < Keywords, donde Keywords es un fichero con palabras clave (órdenes)

l Redireccionar la salida a un fichero– $ ls / > ~/filedir

l Anexar la salida a un fichero existente– $ ls /etc >> ~/filedir

l Redireccionar errores: 2>/dev/null

Page 30: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

30

59

El shell

l Redireccionar los mensajes de error a un fichero – $ ls / 2> ~file.error

l Redireccionar la salida de un comando y tomarlo como entrada de otro es al fin y al cabo una tubería

60

Histórico de órdenes

l Para ver el histórico de órdenes:– $ history

– $ history | grep apropos– $ !3, ejecuta la 3ª orden de éste histórico

l Guardado en ~/.bash_history

Page 31: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

31

61

Personalizar el shell

l Cambiar el prompt del shell:– $ PS1=' tus deseos son órdenes: ', con comillas

porque contiene espacios

– '\w ' indica el directorio actual

– '\u ' el usuario actual– '\h ' el nombre el equipo

l $ echo $PS1

62

Personalizar el shell

l Crear alias– $ alias bye=”exit”

– $ alias ap=”apropos shell bash”

l Variable PATH: – $ echo $PATH

l Se guardan en:– ~/.bashrc (o /etc/bashrc) para todos los shell excepto

el login shell

– ~/.bash_profile para el login shell

Page 32: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

32

63

Personalizar el shell

l Si los quiero unificar poner esta línea en el ~/.bash_profile– If [ -f ~/.bashrc ]; then . ~/.bashrc; fi

l El archivo /etc/profile: cuando hago login cargo todo lo que esté en este fichero. Es válido para cualquier usuario del sistema, mientras que .bash_profile es distinto para cada usuario.

64

Variables del shell

l Puedo definir variables para cualquier shell que arranque (ejecutando bash). Para ello debo exportarla.– $ export (vería todas las variables exportadas)

l Exportar variables:– $ BAR=bar; FOO=foo

– $ export BAR– $ echo $BAR $FOO

– $ bash; $ echo $BAR $FOO

Page 33: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

33

65

Variables del shell

l En teoría debería poner set FOO=foo (unset)

l Otra forma sería declararlas y exportarlas en el .bash_profile, y estarían dispuestas para un login posterior.

l Puedo crear a su vez alias de órdenes:– $ alias 'lh = ls -lh'

– $ alias

– $ unalias lh

66

GNU / Linux

Administración de los recursos del sistema

Page 34: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

34

67

Gestión de procesos

l Orden ps: – Información (-w): PID, terminal, estado del proceso

(S en pausa, R en ejecución y Z zombie)

– $ ps -w [-e , -a, -u]

l La orden top: Muestra valores actualizándose instantáneamente.

68

Gestión de trabajos

l Trabajos: listado de trabajos ejecutándose– $ jobs

– A cada trabajo se le asigna un número n como identificador.

l Un trabajo (proceso) puede ejecutarse en modo foreground (primer plano) o backgroung (segundo plano)– Background: $ ps -a &

Page 35: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

35

69

Gestión de trabajosl Suspender un trabajo: [Ctrl-z]

l Para pasar un trabajo de foreground a background (y viceversa):– Primero suspenderlo

– Luego escribir $ bg %n (fg para foreground)

l Parar un trabajo foreground antes de que acabe: [Ctrl-c]– $ cat [enter]

l [Ctrl-c]

l Parar un trabajo backround antes de que acabe:

– $ kill %n

70

GNU / Linux

Administración de usuarios

Page 36: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

36

71

passwd y group

l La información de los usuarios se guarda en /etc/passwd.

– Cada línea de /etc/passwd contiene un nombre de usuario, password, UID, GID, nombre completo, directorio particular y shell por defecto.

l La información de los grupos se guarda en /etc/group.– Cada línea de /etc/group contiene un nombre de

grupo, password de grupo, GID y usuarios que lo componen.

72

Ficheros shadow

l Permite almacenar las contraseñas cifradas en un fichero de sólo lectura al que sólo se puede acceder como root.

l Son /etc/shadow y /etc/gshadow para passwd y group respectivamente.

Page 37: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

37

73

Ordenes para la administración de usuarios y gruposl useradd usuario groupadd grupo

l usermod usuario groupmod grupomodificación u/g

l userdel usuario groupdel grupo

l passwd username gpasswd groupname

l pwconv grpconv convierte passwd a shadow

l pwunconv grpunconv revierte shadow a passwd

l Change user modifica vigencia de la password

74

Entorno de usuario y variables de entorno del sistemal Scripts de configuración

– La configuración de bash en el arranque se toma de /etc/profile y /etc/bashrc.

– Las órdenes en /etc/profile se ejecutan durante el login.

– Las órdenes en /etc/bashrc se ejecutan cuando se invoca a bash.

– Los cambios en estos archivos afectan a todos los usuarios del sistema.

Page 38: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

38

75

Entorno de usuario y variables de entorno del sistemal Directorios particulares (home directories)

– Se crean copiando el contenido de /etc/skel,y nos daría el home por defecto.

– El administrador puede añadir o borrar ficheros de este directorio.

76

GNU / Linux

X Window

Page 39: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

39

77

X window

l Arquitectura cliente-servidor X

l Gestores de ventanas:– Fvwm95, twm, sawfish, icewm, Enlightment ...

l Entornos de escritorio:– KDE

– GNOME

78

X window

l Cambiar la resolución: [Ctrl]-[Alt]-[+ / -]

l Ejecutar un programa al iniciar sesión: – ~/.xsession

l Configurar las X: Xconfigurator y utilidades gráficas

l En debian: dpkg-reconfigure xserver-xfree86

Page 40: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

40

79

GNU / Linux

Administración básica: instalación de paquetes rpm y código fuente

80

Ejecutables estáticos y dinámicos

l Ejecutables estáticos (linjkados estáticamente) contienen todas las funciones necesarias para ejecutarse, y no dependen de ninguna librería externa

l Ejecutables dinámicos: necesitan librerías externas compartidas para ejecutarse.

l Para ver si es dinámico: $ ldd /sbin/sln (ln estático)– Comparar el tamaño con el ln dinámico: $ ls

/usr/sbin/ln

Page 41: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

41

81

Ejecutables estáticos y dinámicos

l Para ver de qué librerías depende:– $ ldd bin/ln

l ¿Quién tiene la fución de cargar éstas fuciones? La librería ld.linux.so.2 llamada el cargador dinámico (dinamyc loader)

l ¿Cómo encuentra las librerías necesarias el cargador dinámico? – $ cat /etc/ld.linux.so.2, y veo los directorios en los que

busca

82

Ejecutables estáticos y dinámicos

l Podría incluir rutas de directorios con librerías antiguas que quizá me gustaría que explorase el cargador dinámico.

l Pero cualquier cambio hecho en ld.so.conf debe refrescarse con la orden ldconfig, que actualiza un fichero llamado ld.so.cache.

l Para ver todas las librerías compartidas:– $ ldconfig -p | less

Page 42: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

42

83

Instalación de aplicaciones desde las fuentesl Descargar el fichero con las fuentes: file.tar.gz

l Descomprimirlo en un directorio temporal:– $ tar zxf file.tar.gz

l Creación del Makefile:– $ ./configure

– Normalmente se instalan en /usr/local (con los binarios en /usr/local/bin) Si quiero instalar las fuentes en otro sitio usar el modificador –preffix=ruta

– En cualquier caso probar ./configure –help

84

Instalación de aplicaciones desde las fuentesl Compilar las fuentes para crear un ejecutable:

– $ make (a veces make all)

l Instalar las fuentes:– $ make install

l En cualquier caso leer el fichero README o INSTALL si lo hubiere

l Pueden venir escritos en perl (*.PL) En esta caso puede usarse perl Makefile.PL

Page 43: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

43

85

Instalación de paquetes de aplicaciones l La aplicación viene empaquetada como:

– Rpm (Red Hat, Mandrake)

– Deb (Debian)– Tgz (Slackware)

– Pkg (Solaris)

l Se pueden convertir entre cualquiera de estos formatos usando el programa alien– $ alien f.rpm (y generaría un f.deb)

86

Instalación de paquetes de aplicaciones l Instalar un paquete rpm

– $ rpm -ihv paq.rpm

l Actualizar un paquete rpm: -U– si no está instalada una versión anterior lo instala

l Eliminar un paquete rpm: -e– Forzar para eliminar dependencias con otros

paquetes:-f

– Instalar ignorando dependencias: --nodep (por ejemplo puedo actualizar algo cuyo paquete antiguo no pueda eliminar)

Page 44: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

44

87

Antes de la instalación

l Consultar si está instalado un paquete rpm: – $ rpm -q nfs (-í da más información)

l Mostrar dependencias esperadas antes de instalar:– -R (-qpR)

l Verificar la integridad del paquete que me he bajado de internet: --checksig

l Consultar información del paquete rpm ya instalado:– -qp

88

Después de la instalación

l Consultar información del paquete rpm:– Consultar la base de datos entera de paquetes:-qa

– -d (sólo documentación asociada)– -c (sólo archivos de configuración asocidos)

l Actualizar un paquete rpm: -U– Si no está instalada una versión anterior lo instala

l Eliminar un paquete rpm: -e

– Forzar para eliminar dependencias con otros paquetes:-f

Page 45: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

45

89

Dependencias en la instalación (Mandrake) l Parte de una base de datos de paquetes, que pueden ser

un CDROM, discos duros, ftp, sitios web,...

l Mismo concepto que apt-get (Debian)

l Para añadir fuentes de rpm´s:

– # urpmi.addmedia dirección

– # urpmi.addmedia mycd removable://mnt/cdrom/

– # urpmi.removemedia elimina fuentes

– # urpmi.update -a actualiza la base de datos.

– # urpmi.update –auto-select, instala las actualizaciones

90

Dependencias en la instalación (Mandrake) l Archivos de configuración urpmi:

– /var/lib/urpmi/list.*: lista de los paquetes conocidos para urpmi. Cada fichero es una fuente

– /var/lib/urpmi/synthesis.hdlist.*:contiene los grafos de dependencias entre los rpm´s

– /var/lib/urpmi/cfg: localización de las fuentes (direcciones)

– /var/cache/urpmi/: directorio donde se almacena temporalmente todos los rpm´s de fuentes remotas

Page 46: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

46

91

Dependencias en la instalación (Mandrake) l Para solventar el problema de las dependencias se

usa una herramienta llamada urpmi:

– # urpmi vim, instalará el paquete vim y todos aquellos de los que dependa

– # urpmi doocbook, si por ejemplo no sé cómo se llama el paquete para hacer Docbooks escribo eso y me lo dirá

– # urpme vim, elimina los paquetes instalados.– # urpmq vim, busca paquetes instalados

92

Instalar paquetes en Debian l Instalación de tareas (conjunto de paquetes)

sencilla: usaremos tasksel– # deselect update

– # tasksel

l Comando apt: Archivos donde se especifican las fuentes de los paquetes:– /etc/apt/sources.list y /etc/apt/apt.conf (en especial la

línea donde dice default release testing)l Si la cambio puedo usar paquetes de otras versiones.

– #apt-get update (actualiza después de la instalación según sources.list)

Page 47: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

47

93

Instalar paquetes en Debian l Comandos apt:

– # apt-cache searh texto: busca información de paquetes que tengan que ver con textol # apt-cache searh web editor

– # apt-cache show mozilla: muestra información del paquete mozilla

– # apt-get install paquete: instala el paquete *.deb desde una ubicación de internet (sources.list)

– # apt-get update: actualiza el paquete *.deb

– # apt-get upgrade: actualiza todos los paquetes instalados.

94

Instalar paquetes en Debian – # apt-get -fix-broken -show-upgrade dist-upgrade:

actualiza toda la distribución (sin cambiarla de status) y resuelve las dependencias posibles

– # apt-get -u install paquete1 paquete2 instala p1 y desinstala p2

– # apt-get -u install paquete:instala el paquete y sus dependencias

– # apt-get remove paquete: desinstala el paquete

– # apt-get remove –purge paquete: desinstala el paquete y sus archivos de configuración

– # apt-get install paquete: instala el paquete *.deb

Page 48: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

48

95

Instalar paquetes en Debian l Comando dpkg:

– # dpkg --install paquete.deb (la más práctica)– # dpkg --remove paquete

– # dpkg --purge paquete (incluidos archivos de configuración)

96

Equivalencia urpmi-apt

APT URPMIapt-get install urpmi

apt-get upgrade urpmi apt-get update urpmi.updateapt-get remove urpme

apt-cache search urpmf

Page 49: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

49

97

GNU/LINUX

El proceso de arranque en Linux

98

El gestor de arranque LILO

l Programa que carga un kernel de Linux (u otro SO) en memoria y lo arranca.

l Tiene dos partes:– El boot loader: programa que intenta buscar y cargar

un kernel. Reside en el sector de arranque del disco duro (MBR) o en el primer sector de la partición primaria y es arrancado por la BIOS.

– La orden /sbin/lilo : actualiza el LILO según su fichero de configuración /etc/lilo.conf

Page 50: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

50

99

El fichero /etc/lilo.confl Parámetros más importantes:

– Boot: el nombre de la partición desde la que arranca.

– Image: El archivo específico del Kernel.

– Label: etiqueta para cada imagen

– Map: directorio donde está el fichero map.

– Prompt: petición de parámetros de entrada al usuario durante el arranque (runlevel, parámetros del Kernel..)

– Read-only: el sistema de ficheros raíz se montará como de sólo lectura.

– Root: siguiendo a la imagen especifíca la partición que debe ser montada como raíz.

– Timeout: tiempo de elección del SO a arrancar.

100

El fichero /etc/lilo.conf

l Se puede modificar el arranque desde el prompt de LILO :– LILO: linux root=/dev/hda9

– Estos parámetros introducidos afectan al Kernel pero no a los módulos

– Para ello editar /etc/conf.modules l Por ejemplo IRQ de la tarjeta de sonido

Page 51: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

51

101

El proceso de arranque del sistema

l Durante el arranque se da información que incluye:– Identificación del Kernel

– Información de la memoria y la CPU

– Hardware detectado (ratón, discos, puertos,...)

l Se puede consultar con la orden dmesg.

l Otros mensajes en /var/log/messages

102

El proceso de arranque del sistema

l Arranque del Kernel

l Montaje del sistema de ficheros raíz

l Arranque del proceso init (PID 1)

l Montaje del resto de sistemas de ficheros (fstab)

l Inicialización de los terminales

l Activación del nivel de ejecución o runlevel: demonios.

Page 52: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

52

103

Runlevels (Niveles de ejecución)

l Determina qué servicios (daemons) se van a arrancar durante el arranque del SO

l Tenemos 6 posibles niveles:– Runlevel 0: Parada del sistema

– Runlevel 1: Modo mantenimiento (monousuario):

– Runlevel 2: Multiusuario sin red (NFS)

– Runlevel 3: Multiusuario

– Runlevel 4: Reservado

– Runlevel 5: Arranque con GUI login (X Window)

– Runlevel 6: Reinicio del sistema

104

Modificación del runlevel en ejecución

l Para entrar en un nivel:

– En el prompt de LILO: linux 1, siendo linux la etiqueta de la imagen del kernel

– Directamente en el shell: init 1

Page 53: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

53

105

El directoro /etc/init.dl Es el directorio usado para mantener los scripts de

arranque de los servicios del sistema– Son scripts no binarios

– Reciben diferentes argumentos (start, stop, status, restart,...)

l rc.sysinit: se ejecuta al arrancar el SO y se encarga por ejemplo de montar los sistemas de ficheros.

l rc.local: invocado por rc.sysinit, contiene parámetros del arranque.

l rc: script usado para cambiar entre runlevels

106

El directorio /etc/rc.dl El directorio /etc/rc.d/init.d contiene scripts

individuales de inincio/parada de cada servicio del sistema (por ejemplo httpd, demonio del Apache)

– Por ejemplo para reiniciar Apache: /etc/rc.dinit.d httpd restart.

l Además contiene los directorios rc.# con linkspuntando a estos scripts, donde # va del 0 al 6 según el nivel de ejecución en el que estemos.

l Cuando el proceso init entra en el nivel n, examina todos los links en el directorio rc.n

Page 54: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

54

107

El directorio /etc/rc.dl Estos links simbólicos se denotan de la siguiente

forma:

– [K|S] [nn] [init.d_name]lPrefijos K y S: significan Kill y Start

respectivamente, y definen si ese servicio debe estar arrancado o no. l[nn]: Determina el orden en el que los

servicios deben arrancarse o pararse. l[init.d_name] nombre del script al que

apunta. Sólo para poder identificarlos.

108

El fichero /etc/inittab

l Define el runlevel por defecto, especificado en una línea:– id:n:initdefault, donde n es el runlevel por defecto.

l Para conocer cuál es nuestro nivel de ejecución escribimos #runlevel, devolviendo N 5. Por ejemplo, 3 5 significa que ha pasado de un nivel 3 al 5.

Page 55: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

55

109

GNU / LINUX

Trabajo básico en red

110

Acceso remoto con ssh

l ¿Qué es telnet?

l Ssh: telnet seguro (puerto 22)– $ ssh -l usuario nombre_del_equipo

l Transferencia de ficheros: sftp– $ sftp usuario@nombre_del_equipo

– Comandos get, put, mget, mput, ls cd, !, exit.

l Cuidado con el fichero .ssh el homedir.

Page 56: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

56

111

Navegación en Internet

l Configuración: KPPP

l Winmodems (www.linmodems.org)

l Navegadores:– Mozilla

– Navegador Web Konqueror

– Galeon (Gnome)

– Lynx (modo texto)

112

Otros servicios de red

l Servidor Web Apache

l Servidor de nombres DNS

l Routers

l Proxy (squid)

l Correo (Sendmail, Postfix, Procmail)

l Bases de datos (Mysql, Oracle)

l Terminal Server (LTSP)

Page 57: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

57

113

GNU / LINUX

El kernel de Linux: compilación

114

Compilación del nucleo

l Primero bajarse las fuentes del kernel

l Ordenes para la compilación del núcleo:– # cd /usr/src/linux/linux-2.6.x

– # make xconfig (make menuconfig, make config) (Configura el kernel)

– # make dep (genera información de dependencias)

– # make bzimage (compila la imagen binaria del kernel en el directorio /usr/src/linux/arch/i386/boot)

Page 58: GNU / Linux - Grado, Máster y Doctorado en Madrid ...cmalagon/seguridad_informatica/linux/intro... · Vi o Emacs. 17 33 Comandos sobre el árbol de directorios l rm (-i, -f, -r)

58

115

Compilación del nucleo

l Compilación e instalación de módulos (en usr/lib/linux2.4)– # make modules

– # make modules_install

l Compilación e instalación de módulos en un kernel que se está ejecutando:– # insmod

– # modconf (en Debian, con posible interfaz Gnome)

116

Y para terminar...