Vous êtes sur la page 1sur 39

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

Diciembre 2010

Cuaderno de Prcticas

Diplomado Sistemas GNU


Fundacin Cdigo Libre Dominicano Versin 1.0

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

Copyright
Esta documentacin es regida por los reglamentos de la GNU Free Documentation License y la GNU General Public License v3, sintase libre de copiar, modificar, aprender, distribuir y redistribuir esta documentacin; haga uso de su derecho como si fuere su deber.

Prefacio
Este cuaderno de practica esta diseado para hacer que estudiante obtenga el conocimiento necesario, que va desde un domino bsico, fundamental y administrativo del Sistema Operativo GNU/Linux para servidores hasta un nivel avanzado, si ste es completado en su totalidad. Este cuaderno es una iniciativa para poder ensear a los candidatos a poder dominar completamente estos sistemas, en particular usamos CentOS o Fedora. Cualquier sugerencia, correccin, duda, aclaracin y/o comentario sobre este cuaderno de trabajo, sintase libre se enviar un correo a: info@codigolibre.org

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

Capitulo 1
PRACTICA GNU/BASICO COMPLETO
1) Entremos a una seccin del modo consola Utilizando la combinacin de las teclas CTRL + ATL + F1, CTRL + ATL + F2 , CTRL + ATL + F3, CTRL + ATL + F4, etc 2) 3 formas terminamos una seccin en la consola : Con CTRL+D, exit, logout 3) Creamos un directorio para guardar nuestro trabajo: mkdir su-nombre 4) Nos cambiamos a este recien creado directorio: cd su-nombre 5) Crear un archivo con tres nombres de frutas uno debajo del otro y salimos con control ^D : cat > frutas (peras, manzanas, pia) 6) Creamos un archivo desde la salida de un comnado: ls -l /usr/share/man > listado.txt 7) Despleguemos el contenido del archivo frutas: cat frutas 8) Hacemos una copia del archivo frutas: cp frutas copia.txt 9) Copia de un archivo que no esta en nuestro directorio : cp /etc/passwd usuarios.txt 10) Renombramos el archivo copia.txt a vegetales: mv copia.txt vegetales.letras 11) Borramos un archivo: rm -i vegetales.letras 12) Creamos otro directorio vacio de nombre directorio: mkdir directorio 13) Movamos un archivo al directorio asi: mv listado.txt directorio/ 14) Completar nombres de archivos y comandos usando <tab>: ifc<tab><tab>o<tab>config , ls -l /u<tab>/sh<tab>man/ 15) Veamos un listado de los comandos que hemos escrito: history 16) Ejecutemos el ltimo comando: !! 17) Ejecutemos el comando numero 67 en el history: !67 18) Repetir comandos con teclas cursoras: <^> 19) Listemos el contenido de un directorio: ls /var/log 20) Una ruta relativa, es la que parte desde un punto y no empieza con /: cd ../Desktop/ 21) Una ruta absoluta es la que parte desde barra, para saber donde estamos: pwd 22) Crearemos otro directorio de nombre AA: mkdir AA 23) Borremos este directorio vaci recien creado : rm AA .- Nos da un errror, se borra con rmdir o rm -r 24) Cambimonos a otro directorio: cd /lib/modules/ 25) Regresemos donde nos encontrabamos antes de efectuar el CD: cd 26) Vamonos al directorio padre: cd .. 27) Los archivos o directorios ocultos se crean con un punto delante: a) mkdir .invisible b) touch .oculto 28) Listemos los archivos ocultos en el directorio HOME: ls -a /home/$USER 29) Tres formas de cambiarnos a nuestro directorio home: cd, cd ~ , cd /home/nombre-usuario 30) Encontremos archivos sin saber en que directorio se encuentran: locate passwd 31) Para usar locate debe como ROOT actualizar la base de datos del sistema: updatedb 32) Listar la informacion de permisos, propiedad, tamoo, y fecha de los los archivos: a) ls -l archivo b) stat archivo 33) Obtengamos informacin acerca de los comandos : a) man man b) man touch 34) Navegar por el man y finalmente salir: a) /buscar-palabra b) <space> c) Enter d) q 35) Solo listar las opciones de un comando : uname --help 36) Despleguemos donde estn las documentacin del sistema: ls /usr/share/doc/<tab><tab> 37) Algunos meta caracteres especiales que el shell interpreta: * ? [ ] [!] . 38) Ejemplos del uso de los metacaracteres: a) echo /usr/local/* b) ls -l /etc/*.conf c) ls -d /etc/rc[136]?d 39) Los corchetes [ ] para arreglos: ls /etc/[af]* 40) [^ ] Estamos indicando que debe concordar los caracteres que no se encuentran en el rango dado: ls -d /etc/rc[136]?d 41) El ; Para separar comandos en una linea del shell: cd /usr/share/man; sleep 1; ls -l ; sleep 2; clear; sleep 1; echo ACABO! 42) El uso de () para agrupar comandos como en aritmetica y dar prioridad: ls -l $(ls -d /etc/rc[136]*) 43) Cuidado con metacaracteres que hace este comando: ls -l /etc/.* > leerlo.txt 44) Espacios produce resultados no deseados: a) touch antonio perpinan b) touch antonio perpinan c) touch antonio\ perpinan 45) Usemos # Para sealar comentarios y permanescan en el history de comandos: ls -l /boot # es un comentario 46) Redireccionar la salida de un comando a un archivo: ls -ld /proc/[0-9]* > salida.txt 47) Ahora la salida de un archivo sera la entrada de un comando: wc -l < salida.txt 48) Ahora la salida de un comando sera la entrada del otro con TUBERIA(pipe): a) ls -l /dev/ | nl b) ls -l /bin | wc -l 49) Aadamos el contenido de un archivo a otro sin sobrescribirlo: cat /etc/passwd >> salida.txt 50) Enviemos la salida estandar y la de error de un comando a dos archivos: find /var >buenas.txt 2> malas.txt 51) Mezclemos la salida estndar de un comando con la entrada estndar de otro: cat /etc/X11/xorg.conf | wc 52) Declaramos una variable llamada ABIERTOS cuyo valor es solucion: ABIERTOS=solucion 53) Mira el valor de esa variable: echo $ABIERTOS

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


54) Mirar todas las variables del shell: a) set b) env c) echo $<tab><tab> 55) Exportar una variable al ambiente de todas las aplicaciones futuras del shell actual: export PAGER=more 56) La variable que contiene como valor las rutas para el shell buscar los ejecutables o comandos: echo $PATH 57) Restablesca la variable PAGER a como estaba pasando por nada: a) export PAGER= b) export PAGER=less 58) Si desea ver los directorios de PATH como lista: echo $PATH | tr : \n 59) Encuentra archivos en el directorio /var/ de mas de 1000 kilobytes: find /var/ -type f -size +1000k 2>/dev/null 60) Encuentra archivos en su home de permisos lectura,escritura para el dueno y solo lect para los demas : find ~ -perm 644 61) Encuentra un archivo de nombre *.txt en tu directorio actual y brralo con la opcin exec: find . -name *.txt -exec rm \{\} \; 62) Encuentra archivos que no han sido acezados en los ltimos 10 das : find ~ -atime +10 63) Encuentra archivos que hayan sido modificados hace 15 das: find ~ -mtime -15 64) Encuentre archivos creados en los ltimos 5 das: find ~ -ctime +5 65) Revise el record de quienes han ingresado al sistema: last 66) Revise el contenido de un archivo con sus lneas enumeradas: a) cat /etc/passwd |nl b) nl /etc/passwd c) cat -n /etc/passwd 67) Cuente por palabra, caracteres y lneas la salida del archivo fstab: wc -cwl /etc/fstab 68) Para ver el texto compaginado de un archivo o salida que exceda la pantalla: a) ls -lR /etc | less b) ls -lR /var | more 69) Para hacer lo anterior debera crear un archivo largo con el comando dmesg asi: dmesg > largo.txt 70) Ahora podemos paginar o editar el archivo creado anteriormente asi: a) more largo b) less largo c) nano largo 71) Sortear la salida de un comando por el segundo campo de formato numerico: a) ls -l /var | sort -n -k2 b) agregar -u 72) Ordene por meses la salida de un comando: ls -l /var | sort -M -k6 73) Desplegue las 23 ltimas lneas del dmesg: dmesg | tail -23 74) Despliegue las 30 primeras lneas de la salida anterior: dmesg | head -30 75) Corte de las salida ls -l /var los caracteres dew cada linea del 11 hasta el 30: ls -l /var | cut -c11-30 76) Corte la columna 2 de passwd tomando como separador de columnas los dos puntos: cat /etc/passwd | cut -d":" -f6-7 77) Seleccione los nombres de los usuarios que han ingresado al sistema: last | cut -d" " -f1 | sort -u 78) Despliegue las columnas una y cinco del archivo /etc/passwd: cut -d: -f1,5 /etc/passwd 79) Mostrar el valor octal y su equivalente en ASCII del archivo /etc/group, y mustrame las primeras 17: od -c /etc/group | head -17 92) A ls -l /var coloquele un titulo y doble espacio y paginelo en pantalla: ls -l /var | pr -d -h "HOLA COMO ESTAS" | less 93) Ubique el comando ls en su sistema de archivos: a) which ls b) whereis ls 94) Copie a ls de anterior a su carpeta de trabajo actual y llamelo listar.exe: cp /bin/ls listar.exe 95) Liste el tamano de listar: du -h listar.exe: du -h listar.exe 95) Cree una carpeta de nombre AA y divida en 10 pedazos a listar.exe: a) mkdir AA b) split -b 12k listar.exe AA/ped_ 96) Encontremos el resultado y comprobemos cuanto pesa cada uno: du -sch AA/* 97) Juntemos nuevamente los archivos divididos y probemos que aun funciona: a) cat AA/* > juntos.exe b) ./juntos.exe /etc 98) Reporte las diferencias de dos archivos ignorando mayscula o minscula: diff -i listar.exe juntos.exe 99) Mustre lista de los logins y logouts, con los ms recientes de ltimo: last | tac 100) Cambie todas las letras minsculas a maysculas de ls -l /var: ls -l /var | tr [a-z] [A-Z] 101) Elimine las repetidas oo de la salida ls -l /var : a) ls -l /var | tr -s o b) ls -l /var | tr -d o 102) Elimine en el archivo anterior todas las ocurrencias de p : ls -l /var | tr -d p 103) Cambie a root por Linux en la salida ls -l /var: a) ls -l /var | sed -e 's/root/Linux/g' b) cambie g por 1 y 2 104) Que tipo de archivo es el /etc/passwd: file /etc/passwd 105) Mire la fecha en que se creo el archivo juntos.exe: ls -l juntos.exe 106) Cmbiele los atributos de la fecha al archivo anterior a julio 26 del 2003, 5:59pm: touch -t 200308191759 juntos.exe 107) Liste la fecha del sistema actual: date 108) Establecer la fecha al 26 de Jul del 2006 a las 18:00:00: # date -s "2 OCT 2006 18:00:00" 109) Diga la fecha en forma entendible con nombre de da y mes: date +Hoy es %A el %d de %h %Y 110) Imprima la fecha en formato de m/d/a: date +%D 111) Redireccione el error estndar a un archivo: find /var -size +10M 2>errores.txt 112) Imprime el contenido de cada archivo encontrado en pantalla: find /etc/ -name passwd | xargs cat 113) Muestre todos los usuarios del sistema y tambin gurdelo en un archivo: last | tee listado.user 114) Encuentra la palabra config en los archivos en /boot: ls -l /boot | grep config 115) Encuentra el archivo que contiene la palabra bash: grep -l bash /etc/passwd /etc/group 116) Imprima las lneas que igualan el patrn dado y sus nmeros de lneas en pantalla:grep -n nologin /etc/passwd 117) Cuenta todas las lneas en el archivo anterior que concuerdan con el patrn: grep -c nologin /etc/passwd 118) Inicie el proceso man man y envelo background con ctrl + z: a) man find b) ctrl+z 119) Ejecute en background top: top & 120) Mire los procesos suspendidos y los que estn corriendo en el background: jobs 121) Active el comando man find el cual detuvo y salga de el con q: fg %x ( x numero genero arriba con jobs) 122) Traiga el comando top al primer plano: fg %y

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


123) Con jobs aparecern algunos con signos de +/ indica el trabajo activo mas reciente y el otro el trabajo previo: a) fg (el activo) 124) Monitorea los procesos de tu terminal actual: ps 125) Monitorea los procesos de otra Terminal: ps -t ttyX (X el numero de la otra consola) 126) Mustrame los procesos con sus procesos hijos o dependientes de ellos: pstree 127) Mustrame los procesos activos dinmicamente: a) top b) htop 128) El proceso padre de todos los procesos es: El proceso INIT 129) En la tty2 ejecuta el comando top y luego cmbiate a la tty3: a) top b) Ctrl+Alt+tty3 130) Mira los procesos de la tty2 con sus PID o nmeros con los que son reconocidos por el shell: ps -t tty2 131) Encuentre el pid del proceso top y mndele una seal de muerte con kill: kill -9 #pid 132) Ahora corre de nuevo el proceso y mndamele una seales: kill -l 133) Ejecuta cat y presiona enter luego mata el proceso con CTRL + C 134) Cree un link o enlace simblico a un archivo y lo observamos con ls: ln -s listado.txt enlace.txt 135) Cree un link duro a un archivo: ln listado.txt duro.txt 136) Observe el inodo y cuanto ocupan en disco: ls -li enlace.txt duro.txt b) du listado.txt enlace.txt duro.txt 137) Cambiamos nombre listado.txt, observamos que paso con el enlace: a) mv listado.txt cambiado.txt b) cat enlace.txt 138) Ahora observe el contenido de los dos enlace enlace duro y diga lo que observa: a) cat enlace.txt b) cat duro 139) Cree un directorio y copie todos los link o enlace que creamos al directorio 140) Vemos cual es el dueo y el grupo al cual pertenece el archivo salida.txt: ls -l salida.txt 141) Cambiarle el dueo y el grupo (solo root puede esto): chown antonio:admin salida.txt 142) Si solo desea cambiar el grupo a estudiantes al mismo archivo fuera: chgrp estudiantes carlos.txt 143) Veamos los permisos que tiene con: a) ls -l * b) stat salida.txt 144) Cambiamos permisos a todos archivos en AA el grupo pueda leer, escribir, ejecuta, los otros solo leer: chmod -R g+rwx,o=r AA 145) Permisos a lectura y escritura dueo/grupo y solo lectura a otros: a) chmod 664 salida.txt b) chmod ug=rw,o=r salida.txt 146) Controlar permisos por defecto de los usuarios: umask 147) Cambiar el umask y observar el cambio en la creacion de archivos nuevo y directorios: umask 0022 148) El comando bsico para crear, borrar o cambiar particiones en un disco ademas listar las particiones: # fdisk -l 149) Crea un sistema de archivo ext3 en la particin /dev/sda2: # mkfs -t ext3 /dev/sda2 150) Montamos una memoria USB con: # mount /dev/sda1 /mnt 151) Desmontmosla: a) # umount /mnt b) #umount /dev/sda1 152) Observe los sistemas de archivo montados y sus puntos de montaje: cat /etc/fstab b) cat /etc/mtab c) mount 153) Mostramos un resumen del espacio libre en una particin de manera legible: df -h 154) Muestre informacin sobre el uso de los inodes en los sistemas de archivos montados: df -i 155) Revisamos manualmente si hay problemas en el sistema de archivos y que no se reparen: #fsck -n /dev/sda1 156) Muestre el nombre del sistema (solo el nombre del kernel): a) uname -a b) uname --help 157) Encuentre pginas man acerca de bash: whatis bash 158) Busque las lneas que empiezan con root en /etc/passwd: grep ^root /etc/passwd 159) Busca lneas que igualan por lo menos una de esta tres palabras root,sys, admin: grep -i '\(root\|sys\|admin\)' /etc/passwd 160) Busque cadena sys en passwd e imprima la lneas y su nmero: grep -n nologin /etc/passwd 161) Imprime la primera y la tercera columna de una salida: ls -l /var | awk '{print $1 $3}' 162) Imprima de /etc/passwd archivo dividido por dos puntos (:) lsa columnas 1 y 4: awk -F":" '{print $1,$4}' /etc/passwd 163)Lo mismo que arriba pero de la salida ls -l /var: ls -l /var | awk -F":" '{print $1,$4}' 164) Imprima la fecha en varias filas: date | awk '{print $1; print $2; print $3; print $6; }' 165)Reemplace root con Administrador en /etc/passwd y guarde en user.txt: sed -e s/root/Administrador/g /etc/passwd > user.txt 166) Generamos un archivo a doble espacio: ls -l /var | pr -d > espacio.2 167)Elimine las lneas vacas del archivo anterior: a) sed '/^[ ]*$/d' > espacio.1 168) Para aadir un texto al comienzo de todas las lneas podemos hacer: sed 's/^/Texto al Comienzo:/g' espacio.1 > espacio.nuevo

Practica de AWK...
La funcin bsica de awk es buscar lneas en ficheros (u otras unidades de texto) que contienen ciertos patrones. Cuando en una lnea se encuentra un patrn, awk realiza las acciones especificadas para dicho patrn sobre dicha lnea. Awk sigue realizando el procesamiento de las lneas de entrada de esta forma hasta que se llega al final del fichero. Operaremos sobre la salida de "ls -l /var" # Ejemplo simple de imprimir la linea que contiene el patron gdm ls -l /var/ | awk '/gdm/ {print $0 }' # Imprimir lineas que contienen diferente patrones como gdm y crash ls -l /var/ | awk '/crash/ {print $0 } /gdm/ {print $0}'

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# Sumar las entradas del campo 5 donde el campo 6 es igual a Sep ls -l /var/ | awk '$6 == "Sep" { sum += $5 } END { print sum }' # Imprimir campos de una salida ls -l /var | awk '{print $2,$1,$5}' # Imprimir los campos 1 y 2 y la suma de los campos 5 mas el 2 ls -l /var/ | awk '{print $1,$2,($5+$2)}' # Deseamos comparar el valor de un campo e imprimir una seleccion de campos ls -l /var | awk '$2 > 12 {print $1,$2,$9}' # Si el campo que desamos comparar es un string entonce lo hacemos asi ls -l /var | awk '$4=="named" {print $1,$2,$9}' # Si deseamos imprimir como con grep basado en una busqueda de una cadena lo hacemos asi ls -l /var | awk '/named/{print $1,$3,$9}' # Si deseamos comparar el patron en un campo particular e imprimir ls -l /var | awk '$4~/gdm/{print $3,$1,$9}' # Si deseas negar la existencia por el campo ls -l /var | awk '$4!~/gdm/{print $3,$1,$9}' # Si deseas imprimir desde que aparesca un patron hasta que aparesca otro ls -l /var | awk '/crash/,/mail/ {print $3,$1,$9}' # Si deseamos imprimr mensajes basado en resultados es asi ls -l /var | awk 'BEGIN{print"Cabezal del Reporte"} $4=="gdm"{print $0} END{print"Final del Reporte"}' # Si necesitamos hacer simple aritmetica desde las columnas este es un buen ejemplo ls -l /var | awk '{d=($2-($2-1));s=($2+$5);print d/sqrt(s),d*d/s }' # este es un ejemlo mas de aritmetica aplicada a la salida de un ls -l ls -l /var | awk '{d=($2*2);s=($2+$5);print d/sqrt(s),d*d/s "el valor de d es " d " y el valor de s es " s}' # Podemos crear variables de nombre asi ls -l /var/ | awk '{variable=9; print $variable # Si deseamos imprimir el ultimo campo, este se llama NF ls -l /var/ | awk '{print $1,$NF }' # La variable de la linea actual es NR y asi podemos enumerar las lineas de un archivo ls -l /var/ | awk '{print NR,$0 }' #En caso de que el archivo este separado por digamos : podemos usar el separador de campo -F cat /etc/passwd | awk -F: '{print $1,$3 }' # Podemos cambiar el valor de un campo asi ls -l /var | awk '{$4="HOLA"; print $0}' # Podemos usar un for para enumerar hasta el ultimo campo y efectuar cierta tareas ls -l /var | awk '{for(i=1;i<=NF;i++) print $i }' # Si deseamos una salida mas completa podemos usar printf como en C y C++ ls -l /var | awk '{printf("%12s %05d %8s %15d\n",$1,$2,$3,$2+$5); }' # Este es otro ejemplo de como podemos imprimir usando printf para dar formato ls -l /var | awk '{for(i=NF;i > 0;i--) printf("%4s" "%4s"," ",$i); printf("\n"); }' # Contar palabras en dos campos de una salida ls -l /var/ | awk '{print $4, $9 }' |awk '{for(i=1;i <=NF;i++) array[$i]++ } END{for(word in array) print word, array[word] }'

Practica de SED, el editor de Streams...


La utilera sed (stream editor) es un editor en lnea de comando cuyo resultado ser escrito en la salida estndar. Operaremos sobre la salida de "ls -l /var" # doble espacio ls -l /var | nl |sed G # Triple espacio entre lineas ls -l /var | nl | sed 'G;G' # Para eliminar el doble espacio ls -l /var | nl | sed 'G' | sed 'n;d' ENUMERAR: # para enumerar las lineas con sed ls -l /var/ | sed = | sed 'N;s/\n/\t/'

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# enumerar las lineas y alinear a la derecha ls -l /var | sed = | sed 'N; s/^/ /;s/ *\(.\{1,\}\)\n/\1 /' # Enumerar lineas de archivo, pero solo imprimir el numero de las que no esten vacias sed '/./=' lineas.txt | sed '/./N; s/\n/ /' # contar lineas al igual que wc -l ls -l /var | sed -n '$=' CONVERSION Y SUBSTITUCION DE TEXTO: # Agregar un punto al final de cada oracion ls -l /var/ | sed 's/$/./' # Si necesitamos eliminar espacios en blanco o tabs del principio de cada linea ls -l /var | sed 's/^[ \t]*/\t/' # Eliminar los espacios en blanco y tabs al final de las lineas ls -l /var | sed 's/[ \t]*$//' # Eliminar ambos espacios en blanco antes y despues de las lineas ls -l /var | sed 's/^[ \t]*//;s/[ \t]*$//' # insertar 5 espacios en blanco al principio de cada lineas ls -l /var/ | sed 's/^/ /' # alinear todo el texto a la derecha de anchura 79 columnas ls -l /var/ | sed -e :a -e 's/^.\{1,80\}$/ &/;ta' # centralizar todo el texto entre 77 columnas ls -l /var | sed -e :a -e 's/^.\{1,77\}$/ & /;ta' # substituir encontrar y reemplazar ls -l /var/ | sed 's/root/admin/' # reemplaza a root por admin primera instancia ls -l /var/ | sed 's/root/admin/2' # segunda instancia solamente ls -l /var/ | sed 's/root/admin/g' # todas las instancias # substituir a root por admin solamente en las lineas que contengan "Sep" ls -l /var/ | sed '/Sep/s/root/admin/g' # substituir a root por admin excepto en las lineas que contengan "Sep" ls -l /var/ | sed '/Sep/!s/root/admin/g' # invertir el orden al igual que "tac" ls -l /var | sed '1!G;h;$!d' # invertir el orden de los caracteres al igual que "rev" ls -l /var | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' # Eliminar las nuevas lineas y colocarlas juntas como "paste" ls -l /var/ | sed 'N;s/\n/ /' IMPRESION DE LINEAS SELECCIONADAS: # Imprimir las primeras 10 lineas como "head ls -l /var | sed 10q # imprimir la primera linea parecido a "head -1" ls -l /var | sed q # Imprimir las ultimas 10 lineas parecido a "tail" ls -l /var/ | sed -e :a -e '$q;N;3,$D;ba' # imprimir la ultima linea parecido a "tail -1" ls -l /var/|sed '$!d' # imprime las lineas que igualan la expresion regular parecido a "grep" ls -l /var/ | sed -n '/gdm/p' ls -l /var/ | sed '/gdm/!d' # Imprimir las lineas que no contienen la expresion regular igual que "grep -v" ls -l /var/ | sed -n '/gdm/!p' ls -l /var | sed '/regexp/d' # imprimir la linea antes y depues de la que contiene la expresion regular con su numero igual a "grep -A1 -B1") ls -l /var | sed -n -e '/gdm/{=;x;1!p;g;$!N;p;D;}' -e h # Buscar lineas que contengan las expresiones 1;2;3 en cualquier orden ls -l /var | sed '/gdm/!d;/root/!d' # Buscar lineas que contengan o una expresion o la otra...parecido a "egrep" ls -l /var/ | sed -e '/gdm/b' -e '/www/b' -e d

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# imprimir lineas con mas de 47 caracteres ls -l /var | sed -n '/^.\{47\}/p' # imprimir lineas con menos de 47 caracteres ls -l /var | sed -n '/^.\{47\}/!p' ls -l /var/ | sed '/^.\{47\}/d' # Imprimir parte de un archivo empezando por cadena de caracter hasta el final ls -l /var/ | sed -n '/gdm/,$p' # imprimir parte de un archivo basado en los numeros de lineas(de la linea 8-12) ls -l /var/ | sed -n '8,12p' ls -l /var | sed '8,12!d' # Imprimir la linea numero 12 ls -l /var | sed -n '12p' ls -l /var | sed '12!d' ls -l /var | sed '12q;d' # Imprimir parte de un archivo entre dos palabras clave ls -l /var/ | sed -n '/gdm/,/www/p' ELIMINACION DE LINEAS SELECCIONADAS: # Imprimir el archivo excepcionando entre las cadenas clave ls -l /var/ | sed '/gdm/,/tmp/d' # Eliminar lineas duplicadas desde un archivo ya sorteado parecido a "sort -u". cat otro.txt | sort | sed '$!N; /^\(.*\)\n\1$/!P; D' # Eliminar las lineas en blanco como grep "." " ls -l /var | sed '/^$/d' # Elimina lineas en blanco consecutivas exceptuando la primera; sed '/./,/^$/!d' sed '/^$/N;/\n$/D' CASOS ESPECIALES: Copiar un conjunto de archivos comprimido por la tuberia y descomprimido en el receptor (tar -cvf - $(ls /etc/passwd)) | (ssh localhost 'cd /home/antonio/PRACTICA/; tar -xf -') # Podemos crear un script que nos comprima todos los .txt en nuestro equipo asi, luego deberemos ejecutar el script: ls *.txt | sed "s/^\(.*\)\.txt/zip \1 \1.txt/" > script.sh

Practica de GREP como Filtro


Todas las preacticas son sobre un archivo que debera crear con el nombre de ejercicios.txt en la misma carpeta que esta operando, con el siguiente contenido; a aba aabb aabbb aaabbb aa baa abab ababa bababa ab bbb baaa abba bbaabb ba aaaa baba bbaab bbabaa aaa aaba

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


bbbb bbba bbbabb 1. grep -E 'ba$' ejer1.txt 2. grep -E '^a[[:alnum:]]*b$' ejer1.txt 3. grep -E '^a+$' ejer1.txt 4. grep -E '^ba+$' ejer1.txt 5. grep -E 'ab|ba' ejer1.txt 6. grep -E 'a{4,}|b{4,}' ejer1.txt 7. grep -E '^(ab|ba)+$' ejer1.txt 8. grep -E '^(aa|bb)+$' ejer1.txt 9. grep -E '^a+$|^b+$' ejer1.txt 10. grep -E '^a+b+$' ejer1.txt 11. grep -E '(aba)|(bab)' ejer1.txt 12. grep -E '(ba){2}' ejer1.txt

TRUCOS DEL VIM


Trabajar con Archivos Comandos Vim :e nombre-archivo :w nombre-archivo :q :q! :wq :x Accion Abre un nuevo archivo. Guarda archivo actual con el nombre-archivo. Sale de Vim. Si no ha salvado rehusa salir. Sale sin salvar cambios. Escribe el archivo y luego sale. Igual a :wq pero que sale solo si no hay cambios

Navegar en el archivo Estos comandos trabajan en modo comando y modo visual. Comandos Vim Accion j o cursor arriva Mueve linea arriva k o cursor abajo Mueve una linea abajo l o cursor derecha Mueve un caracter a la derecha h o cursor izquierda Mueve un caracter a la izquierda. e Va al final de la palabra. E Va al final del espacio en blanco. b Va Al principio de la palabra. B Va al principio del espacio en blanco. 0 Va al principio de la linea. ^ Va al primer caracter que no es un espacio. $ Va al final de la linea. H Va a la primera linea de la pantalla. M Va al medio de la pantalla L Va a la ultima linea de la pantalla. :n Va a la linea numero n. Insertar y sobre escribir texto. Comando Vim i I a A o O C r R Tecla ESC Accion Inserta antes del cursor. Inserta al inicio de la linea actual. Agrega despues del cursor. Agrega al final de la linea actual. Abre una linea nuena debajo e inserta. Abre una nueva linea en sima e inserta. Cambia el resto de la linea actual. Sobre escribe un caracter. Entra en modo reemplazo de caracteres. Sale modo de insertar y va a modo de comando.

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Elinar texto Comando Vim x X dd o :d Entrar al modo visual Comando Vim v V Tecla ESC Accion Elimina el caracter. Elimina caracter antes del cursor. Elimina la linea actual. Accion Inicia modo visual. Use teclas cursoras para delimitar. Resalta linea actual. Sale del modo visual y retorna a modo comando.

Editar bloques de text Los comandos de Vim Funcionan en el texto ya resaltados en el modo visual(V). Comando Vim Accion ~ Cambia los caracteres a mayuscula. > (V) Resalta a la derecha. < (V) Resalta a la izquierda. c (V) Cambia el texto resaltado. y (V) Copia el texto resaltado. d (V) Corta el texto ressaltado. yy o :y o Y Copia la linea actual. dd o :d Borra la linea actual. p Pega el Texto cortado. P Pega antes del cursor. Hacer y deshacer Comando Vim u U Ctrl + r Buscar Comando Vim /patron n N Accion Desacer Desacer todos los cambios en la linea actual. Rehacer Accion Busca archivo por patron. Busca la proxima ocurrencia. Busca la proxima ocurrencia en direccion opuesta. Accion Remplaza foo por bar. Trabaja en la linea actual. Trabaja en la linea numero. Trabaja en archivo completo. Remplaza toda las ocurrencias en la linea. Ignora la capitalizacion. No ignora la capitalizacion. Confirma cada substitucion. Remplaza cada ocurrencia de foo por bar en la linea 452. Remplaza toda ocurrencia de foo por bar pero en la linea actual. Remplaza cada ocurrencia de foo por bar en el archivo completo. Igual que arriva pero ignora la capitalizacion. Comfirma cada substitucion. En cada linea del archivo remplaza a foo por bar confirmando.

Remplazar Comando Vim :rs/foo/bar/a Donde (r) Puede ser: nada numero % Donde (a) Puede ser: g i I c Ejemplos :452s/foo/bar/ :s/foo/bar/g :%s/foo/bar/g :%s/foo/bar/gi :%s/foo/bar/gc :%s/foo/bar/c

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

10

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Practica EMACS 1. ctr-v pantalla adelante 2. alt-v o ESC-v pantalla atras 3. ctr -l centralizar 4. ctr -p una linea hacia arriba 5. ctr- n una linea hacia abajo 6. ctr -b posicion a la izquierda 7. ctr -f caracter hacia adelante 8. alt -b una palabra hacia atras 9. alt -f una palabra hacia adelate 10. ctr -e al final de la linea 11. ctr -a al principio de la linea 12. alt -e desplaza hasta proximo sentencia 13. alt -a desplaza la sentencia anterior 14. ctr -u 8 <comando> numero de veces que quiere repetir un comando 15. ctr -u 8 <palabra> numero de veces que quiere repetir una palabra 16. ctr -g para abortar un comando 17. ctr -x 1 para desplegar una ventana 18. ctr -d borra el caracter depues del cursor 19. alt -d borra una palabra despues del cursor 20. ctr -k borra todo a la derecha del cursor 21. alt -k borra todo a la izquierda del cursor 22. ctr spc y ctr -w borra un rango de caracteres 23. ctr -y pegar lo ultimo que cortaste 24. alt -y pegar uno por uno lo que cortaste 25. ctr -x u deshacer 26. ctr -x ctr -f buscar un archivo 27. ctr -x ctr-s salvar el buffer actual a un archivo 28. ctr -x ctr-w salvar el buffer actual a un archivo con nombre nuevo 29. ctr -x ctr -f <archivo> devuelve al archivo 30. ctr -x ctr -b lista los bufer (archivo) 31. ctr -x 1 para cerrar bufer (archivo) 32. ctr -x b <archivo> abre el archivo 33. ctr -x s salvar bufer 34. ctr -z suspender EMACS volver al shell 35. ctr -x ctr -c salir del EMACS 36. alt -x reemplazar 37. alt -x <repl> s <enter> cambia cadena de texto interactivamente 38. alt -x tab <letra> completa archivo de la letra anterior 39. alt -x <sql> tab completar los de sql disponible 40. ctr -s buscar una palabra 41. ctr -r buscar una palabra 42. ctr -<#> divide la pantalla en numero de veces senalado 43. ctr -x o desplaza a la pantalla siguiente 44. ctr+alt los comando funcionan en la pantalla hacia abajo 45. ctr -h ayuda 46. ctr -h c <comando> ayuda breve sobre el comando 47. ctr -h f te describe la funcion 48. ctr -h k <comando> te da la descripcion o funcion de ese comando 49. ctr -h a <palabra> descripcion de todos los comando que se refieran a este 50. Alt -x sql-mode Entrar al modo de sql estableciendo el sintaxis 51. Alt -x sql-oracle Crea conexion a servidor de Oracle 52. Alt -~ o <elegir funcion> Para usar el menu, por ejemplo para poner sintaxis on +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

11

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

PRACTICA GNU/FUNDAMENTOS COMPLETO


Capitulo 1
Practica #1 Historia 1. Que es GNU/Linux? es la denominacin defendida por Richard Stallman y otros para el sistema operativo que utiliza el kernel Linux en conjunto con las aplicaciones de sistema creadas por el proyecto GNU. Comnmente este sistema operativo es denominado como Linux, aunque segn Stallman esta denominacin no es correcta. 2. Historia de UNIX. Unix (o UNIX) es un sistema operativo portable, multitarea y multiusuario; desarrollado en principio por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy. Hoy da, la palabra UNIX se utiliza para denotar diferentes conceptos dependiendo del contexto en que es usada. Esto suele dar lugar a confusiones:UNIX - familia: desde el punto de vista tcnico, UNIX se refiere a una familia de sistemas operativos que comparten unos criterios de diseo e interoperabilidad en comn. Esta familia incluye ms de 100 sistemas operativos desarrollados a lo largo de 20 aos. No obstante, es importante sealar que esta definicin no implica necesariamente que dichos sistemas operativos compartan cdigo o cualquier propiedad intelectual. 3. Estructura de GNU/Linux. El Sistema Operativo GNU/Linux tiene una estructura de jerarquas con permisos entre usuarios que permite tener privacidad y diferenciar nuestros archivos de los ajenos. Esta regla no es cumplida por el ROOT (sper-usuario) que es el encargado de tareas administrativas, soluciones de problemas, etc. Es decir, el sper-usuario nunca es detenido por nada, y todo lo puede hacer. Los usuarios comunes tienen este poder, pero solo dentro de su home. 4. Genealoga de GNU/Linux. FOTO 5. Movimiento del Software Libre y Licencia GPL El Movimiento de software libre comenz en 1983 cuando Richard Stallman anunci el proyecto GNU. La meta del movimiento es dar libertad a los usuarios de ordenadores reemplazando software con trminos de licencia restrictivos por software libre. La mayora de los miembros del movimiento de software libre creen que todo el software debera venir acompaado con las libertades declaradas en la definicin de software libre. Muchos sostienen que es inmoral prohibir o impedir a las personas que haga efectivas esas libertades y que estas son necesarias para crear una sociedad decente donde los usuarios puedan ayudarse mutuamente y tomar el control sobre el uso de un ordenador.

Prctica #Captulo 2
Objetivo: El alumno accesar el BIOS para obtener informacin critica sobre el ordenador, pre-instalacin. Herramientas a usar en estas prcticas: mkswap, dd, swapon, y swapoff, du, df, free, cfdisk y fstab Introduccin : Todos los ordenadores comparten la caracterstica en comn de tener un BIOS. Un BIOS no es mas que el sistema bsico de entrada/salida Basic Input-Output System. es un cdigo de interfaz que localiza y carga el sistema operativo en la RAM. sta proporciona la comunicacin de bajo-nivel, operacin y configuracin con el hardware del sistema, que como mnimo maneja el teclado y proporciona salida bsica durante el arranque. La BIOS usualmente est escrita en lenguaje ensamblador. Ejemplo: 1. En un ordenador HP al pulsar la tecla DEL tenemos acceso al BIOS. 2.- Para identificar la memoria RAM de nuestro ordenador despus de haber accesado el setup, buscamos la paleta de opciones avanzadas (advanced), luego pulsamos ENTER en procesos, memoria y cache (Processor, Memory and Cache). 3. Se repetir el mismo proceso para identificar el procesador. 4. Para identificar los discos duros de nuestro ordenador una ves en el setup, buscamos la paleta avanzado (advanced) la opcin configuracin de dispositivos IDE (IDE device configuration).

Prctica #1 El BIOS
Lo primero que debemos hacer es identificar la memoria, procesos, y discos de nuestro ordenador. Para esto usualmente con solo presionar la tecla de DEL (puede variar dependiendo el ordenador) al encender el ordenador tendremos acceso a el BIOS. Entrar al BIOS, configuracin y identificacin de perifricos. En esta prctica debemos entrar al BIOS de un equipo y efectuar preguntas al alumno para que identifique entre algunas cosas: 1. Discos.- Tamao, Orden y Nombre, etc 2. Orden de Arranque 3. Activa o no el password del BIOS 4. Memoria usada en el vdeo 5. Identificar Reloj del Procesador y Monto de RAM

Prctica #2 ISOS Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org 12

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Crear y quemar un iso mkisofs/wodim(cdrecord) a) $ mkisofs -J -o datos.iso /home/nombre-usuario/Carpeta/ Esto crea una imagen de ISO-9660 con el nombre 'datos.iso' del directorio '/home/nombre-usuario/Carpeta' b) $ dd if=/dev/cdrom of=archivo.iso Esto crea una imagen de ISO-9660 con el nombre 'archivo.iso' del CD que insertemos en el drive cdrom. c) $ wodim -V speed=4 dev=0,4,0 -data /home/usuario1/archivo.iso Graba el fichero 'archivo.iso' ubicado en '/home/usuario1/' en el dispositivo 'dev=0,4,0'

Prctica #3 Practica Particionar con FDISk


Particionar luego dar formato a una memoria o disco a) Primero puedo ver las particiones actuales: $ fdisk -l /dev/sda b) Luego para particionar con fdisk El fdisk se inicia digitando como root fdisk dispositivo en la linea de comandos. El dispositivo puede ser algo como /dev/hda o /dev/sda. Los comandos bsicos del fdisk son: p imprimir la tala de particin n crea una nueva particin d Elimina una particin q sale sin guardar los cambios w escribe los cambios a la tabla y luego sale c) A continuacin de ejemplo practicamos con un memory stick sobre el dispositivo sda creamos varias particiones: # fdisk /dev/sda d) Luego procedemos a dar formato en una de dos maneras del tipo vfat: # mkfs.vfat /dev/sda1 # mkfs -t vfat /dev/sda1 Prctica #4 Particionado y montaje con Gparted Objetivos: Una ves que conocemos la configuracin bsica de nuestro ordenador debemos decidir como dividiremos nuestro disco, y cuantos sistemas operativos queremos instalar en nuestro disco duro. Introduccin: Es posible particionar el disco duro de diferentes maneras, en el ejemplo dado a continuacin es utilizando Gparted desde un sistema ya instalado. El mismo ejemplo aplica para particionar desde una Instalacin. Abrimos desde el men inicio>Herramientas del sistema>Gparted (necesaria contrasea de root). Prctica #6 Practica de swap 1. Crear swap desde un archivo Objetivos: Una ves tenemos nuestro sistema funcionando, podramos experimentar cierta carencia de memoria a pesar de haber configurado nuestra memoria swap en la instalacin, otra posible situacin es que cambiemos el monto de memoria RAM. Para esto podemos fcilmente asignarle mas memoria virtual SWAP desde un archivo. El comando dd: La sintaxis bsica del comando es la siguiente: dd if=origen of=destino donde if significa "input file", es decir, lo que deseas copiar y of significa "output file", o sea, el archivo destino (donde se van a copiar los datos); origen y destino pueden ser dispositivos (lectora de CD, diskette, etc.), archivos, etc. Nos cambiamos a root : $ su root Nos dirigimos al directorio /root: # cd /root comprobamos cuanto swap teneomos inicialmente: # grep SwapTotal /proc/meminfo Creamos una archivo de 50 Mega aprox: # dd if=/dev/zero of=/root/swaptemp bs=1k count=50000 Cambiamos los permisos a restringidospara no ser borrado por usuarios sin querer: # chmod 600 swaptemp Convertimos el archivo en tipo swap: # mkswap swaptemp Lo cargamos como un espacio de swap: # swapon swaptemp Comprobamos que se carg: # grep SwapTotal /proc/meminfo 2. Crear swap desde una particin a. Primero usando cfdisk elegimos una particin que podemos usar como swap: # cfdisk /dev/sda b. Seguimos los pasos para elegir la particin y utilizamos una particin de tipo swap 82 desde el men. c. Luego digitamos una entrada en el /etc/fstab similar a esta: /dev/sda5 none swap sw 0 Prctica #7 Identificacin del hardware Inventario de hardware con las herramientas lspci y en grfico hal.

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

13

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Esto es muy simple solo ejecutamos los comandos: lspci lspci -v Podemos agragar estas explicaciones con comandos como: lsusb lspci lspcmcia lshal lspci -vv lshw

Prctica #8 Conectividad Herramientas a usar ifconfig, route, /etc/resolv.conf, y grficamente network-admin. Establecer la Direccin de ip a. Si es Esttica, para establecer una direccin IP esttica y su mascara y en encenderla, simplemente ejecuamos la siguiente sentencia: # ifconfig eth0 150.1.1.31 netmask 255.255.255.0 up b. Establecer la Pasarela: # route add default gw 10.0.0.1 c. Establecer los DNS: Debemos escribir al archivo /etc/resolv.conf e incluirle la siguiente linea: nameserver 10.0.0.254 nameserver 196.3.81.5 d. Nos lee la informacin de la interfaz de red (IP, mscara, etc.) para confirmar los cambios que deseamos efectuar # ifconfig eth0 e. Para detener el servicio de red 'eth0': # ifdown eth0 d. Para arranca el servicio de red 'eth0' # ifup eth0 2. Si es Dinmica: Para requerir una direccin desde un servidor dhcp que este en la red.: # dhclient eth0 1. Establecer la Mascara # ifconfig eth0 150.1.1.31 netmask 255.255.255.0

Capitulo 3 - INSTALACIN
1. Instalar UBUNTU 2. Instalar Fedora 3. Instalar CentOS

Captulo 4
1. El X
A. Identificacin de la arquitectura del X Server : 1. Servidor X 2. Protocolo X 3. Xlib B. Administradores de ventanas : 1. Gnome, kde, wmaker (temas, fondos , etc.) C. Administrador de pantalla (gdm, kdm, xdm) 4. Toolkit y Widget

Prctica #1 Editar el archivo configuracin gdm.conf : Realmente editamos a custom.conf para refleccionar los cambios /etc/gdm/custom.conf: Cambiar el autologin y el login temporizado para permitir que un usuario ingrese automticamente y probarlo. En el editor (VI o nano) buscar la linea que dicen o editarlo desde cero:
AutomaticLoginEnable=true AutomaticLogin=nombre_usuario TimedLoginEnable=true TimedLogin=nombre_usuario TimedLoginDelay=30... el tiempo

2. En el grfico existia una aplicacion que aun esta en Centos ya no en Fedora pero aun asi nos genera el archivo custom.conf: gdmsetup Cambiamos el tema de ingreso y permitimos la entrada remota. Prctica #2 Habilitar XDMCP y peticiones TCP en GDM Objetivos: Manejar desde un PC varios equipo ejecutando XDMCP via TCP como transporte. Es necesario tener GDM, por defecto GNU/Linux, como login grfico. Una vez logeados como root, editamos (con tu editor favorito) el fichero "/etc/gdm/custom.conf", y buscamos la etiqueta "[xdmcp]", encontraremos algo as: Enable=false y ponemos Enable=true Habilitar el TCP lo hacemos as en la siguiente linea: DisallowTCP=true y ponemos DisallowTCP=false Prctica #3 Habilitar xdmcp en tsclient Fedora Para habilitar el xdmcp en el cliente del terminal server (tsclient/rdesktop en ubuntu). Por defecto el programa terminal server client trae el xdmcp deshabilitado. Para corregir esto simplemente instalamos el xnest: # yum install xnest Si an no has habilitado el xdmcp, en Gnome y Fedora podemos: 1. Men System -> Administration -> Login window (tambin podemos ejecutar gdmsetup). 2. En la pestaa Remote cambiamos el Style a same as local. Esto solo afecta la ventana que le desplega al usuario al in tentar ingresar a nuestro sistema. 3. Deber reiniciar el GDM lo que tambin matara su sesin de X. # kill -HUP `cat /var/run/gdm.pid`

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

14

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Si prefiere o no tienes disponible a gdmsetup puedes editar el archivo a mano as: 1. Edite a custom.conf (asegurese que no exista ninguna configuracin de conflicto en el custom.conf el cual es de mayor jerarqua) 2. Descomente RemoteGreeter en la seccin daemon: #RemoteGreeter=/usr/lib/gdm/gdmlogin ..- el comentario # debe ser eliminado 3. Bajo la seccion xdmcp, cambie a Enable a true asi: Enable=false ..- cambie el false por true... Enable=true 4. Deber reiniciar el GDM lo que tambin matara su sesin de X: # kill -HUP `cat /var/run/gdm.pid` Prctica #4 Configurar el Xorg Primeramente para buscar ayuda sobre el archivo de configuracin ejecutamos: man 5 xorg.conf Podemos generar un xorg.conf que lo mas probable funcione en caso de que se nos dae asi: # Xorg -configure Nota: Fijese que no imprima ningn error antes de continuar. Este proceso generar un archivo de configuracin en la capeta en la cual usted se encuentra de nombre: /root/xorg.conf.new Ahora podemos probarlo as: # X -config /root/xorg.conf.new Si todo esta bien deberemos copiarlo y reemplazar el que tenemos ahora as: # cp /root/xorg.conf.new /etc/X11/xorg.conf Prctica #5 Cambiar la Resolucin del Xorg Agregamos Modes lines y la profundidad por defecto a nuestro servidor de X para que sean digamos de 24 bits a 1024x768 por defecto. Vamos a la seccin Screen del /etc/X11/xorg.conf
Section "Screen" Identifier "Default Screen" Device "S3 Inc. ProSavage KN133 [Twister K]" Monitor "Generic Monitor" DefaultDepth 24 # Skipping some text to improve readability SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection

Reiniciamos el GDM con: # /etc/init.d/gdm restart Prctica #6 Exportar el Display Para exportar aplicaciones del X y enviarlas a otro host va el IP: # export DISPLAY 10.0.0.126:0.0 Enva las aplicaciones ejecutadas en el host local hacia el host con el IP 10.0.0.126 y se desplegar el display 0 y el monitor 0 del host local en el remoto. Para traer un escritorio desde otra mquina que esta exportando: X -query 10.0.0.126 :1 Desplegar en el Servidor X local en el display 1 el display exportado por el host con IP 10.0.0.126. Prctica #7 Usar VNC Si encendemos el vncserver ya sea manualmente o a travs del grfico va el centro de control de Gnome y el utilitario Escritorio Remoto (vino-preferences), alli podemos elegir las opciones de control y si debemos ser contactados antes de permitir el acceso. # vncserver Luego para conectarnos ejecutamos: $ xvncviewer 192.168.1.2 Abrimos una conexin con el host de IP '192.168.1.2' a partir del visor VNC Prctica #8 Usar el programa xhost y xauth xhost: usando este programa puede dar permiso a cualquier usuario en una mquina dada a escribir grficos en su pantalla. Ejemplo: usted est sentado frente a una mquina llamada host1. Para permitir el acceso a cualquier programa en el host2 a su pantalla en host1 debera escribir el siguiente comando, esto habra que escribirlo en un shell en el host1: # xhost +host2 xauth: es una autentificacin basada en cookies y mucho ms sofisticada. Con xauth se puede dar acceso a los usuarios de forma individual. Es mucho ms seguro que xhost. La autentificacin usa una cookie alojada en el fichero .Xauthority en el directorio personal de los usuarios. Si la mquina remota tiene una cookie vlida en este fichero entonces se garantizar el acceso. Para copiar la cookie desde la mquina frente a la que est sentado (host1) al host desde donde quiere lanzar el programa (host2) puede usar uno de los siguientes mtodos: 1) xauth extract - host1:0.0 | ssh host2 /usr/X11R6/bin/xauth merge 2) scp ~/.Xauthority host2:/ Prctica #9 Usar el terminal server client Nos dirigimos al menu: Aplicaciones -> Internet -> Cliente Terminal Server Prctica #10 ssh -x para usar recursos grficos remotamente Si deseamos usar una aplicacin grfica desde un host en nuestro host local: # ssh -X usuario@10.0.0.126

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

15

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Luego podemos simplemente ejecutar desde el shell que se nos oferta cualquier aplicacin del host remoto en el host local, ej. gimp. Prctica #11 Mas Xs Remotas a) Para ingresos remotos desde el administrador de ingreso o GDM en el caso de GNOME a entornos grficos servidos por hosts remotos. Escenarios En un edificio hay que dar soporte a los usuarios de todos los departamentos distribuidos en 8 planta por tal motivo hemos configurado un servidor X para conectarnos a las maquinas remotamente y proveerles el servicio sin necesidad de hacer presencia fsica en los diferentes departamento. En el servidor X tenemos que configurar gdmsetup o desde el archivo custom.conf
1. 2. 3. Activar entrada accesible Desactivar la denegacin de TCP al servidor Xserver Activar XDMCP

Tenemos que asegurarnos que tengamos corriendo el puerto 6000 o TCP X11. Para eso hacemos un nmap la maquina donde nos vamos a conectar y nos aseguramos que nuestro server tambin lo tenga corriendo: nmap 192.168.1.126 Luego para traer el escritorio desde la PC ejecutamos la sentencia: X -query 10.0.0.126 :1 Tenemos que exportar la variable del display de la mquina remota. export DISPLAY:10.0.0.126:0.0 Para volver a restaurar el display de nuestra maquina usamos el comando export DISPLAY=:0.0 Prctica #12 Usar el Xnest Xnest es parte del paquete de xorg-X11-xnest, y su funcin es tener un cliente X dentro de una ventana. Para saber mas sobre xnest leer el man de Xnest. Tambin es recomendada este tutorial de LinuxJournal donde habla de posibles funciones de como experimentar con nuevos desktop dentro del escritorio. Lo primero que hay que entender es la diferencia entre servidor y los puertos. Tambin es importante entender como trabaja X. El X original corre en el puerto 0, y nuevos X se debern correr en :1 :2 ... etc. La instruccin seria: # xnest :1 Cuando tenemos esto solo nos da una ventana en azul o negro, sin nada mas, si queremos correr algo sencillo (y que no coma recursos) podemos ejecutar una terminal. Como no podemos correr nada desde la X en ese momento correremos los comandos desde el display 0 osea desde nuestro escritorio actual. Corremos una terminal y ejecutamos el comando: # xclock -display :1 Inclusive podemos pasar algunos parmetros como: # xclock -foreground "Red" -geometry +450+250 -display :1 Este es un pequeo programa pero tambin podemos correr cosas mas elaboradas como una desktop de KDE. Para hacer esto simplemente debemos tener un terminal para arrancar el Escritorio KDE: # xterm -display :1 & Luego en el terminal ejecutamos: startkde &

CAPITULO 5
1. Documentacin y correccin de fallos Prctica #2 PS : # ps Procesos activos por una terminal del usuario actual, aportando identificador del proceso, terminal asociada, porcentaje de tiempo de procesador ocupado y nombre del proceso. Existen otros comandos como htop y ksysguard que es grafico pero lo hacemos con ps por tradicion y por su versatilidad en el terminal. Busca en todos los procesos activos del sistema los que contengan el trmino 'bash' : # ps -A | grep bash Todos los procesos activos del sistema, con informacin asociada (% de CPU, % de memoria, etc.): # ps -auwx Procesos activos por una terminal del usuario actual, con informacin asociada: # ps -u Procesos activos del sistema jerarquizados en forma de rbol: # pstree Para ver los procesos que est utilizando un usuario utilizas: # ps -u nombre_usuario Para ver todos los procesos que se ejecutan en el sistema utilizas: # ps -aux Prctica #2 Comando TOP y HTOP Ahora bien, el comando ps nos muestra una radiografa de los procesos en el momento, pero no nos muestra los cambios que se van teniendo. Para esto contamos con el comando top y mejorado aun mas htop. Prctica #3 Comando kill Elimina el proceso con PID '100' de forma inmediata, sin espera (seal nmero 9): # kill -9 100 Muestra todas las seales disponibles en el sistema con el comando 'kill': # kill -l Elimina el proceso con PID '100' (al no especificar el nmero de seal, se emplea por defecto la 15): # kill 100 Aplica la configuracin del fichero inetd.conf, sin detener el proceso inetd: # killall -HUP inetd Restaura (reinicia) el utilitario top: # killall top Elimina todos los procesos con nombre 'httpd': # killall httpd

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

16

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Prctica #4 Arranque con livecd A. Arrancar un sistema con grub daado 1. Debe reiniciar 2. crear carpeta donde montara: mkdir montar 3. Montar la barra del sistema que deseas cambiar: mount /dev/sda1 montar/ 4. Montar los sistemas de archivos de proceso y dev: mount -t proc none /montar/proc; mount -o bind /dev /mount/dev 5. chroot a carpeta monto a barra / : a) chroot montar b) /bin/bash 6. Puedo por ejemplo instalar lo que necesite: yum install grub aplicaciones 7. Puedo editar archivo de configuracin de /boot/grub/menu.lst 8. Puedo por ejemplo Reinstalar grub: # grub-install 9. Finalmente Reinicio equipo B) Arrancar con livecd para prctica de chroot y reparar un Xorg 1. Arrancar desde el cd cambiando el BIOS 2. Crear directorio donde montaremos: mkdir montar 3. Montamos la barra dentro de este recin creado directorio: mount /dev/sda1 montar 4. chroot a montar: chroot montar 5. Copio el archivo de configuracin del livecd al del disco: cp /etc/X11/xorg.conf montar/etc/X11/xorg.conf 6. Desmontamos el chroot : exit 7. Reiniciamos el equipo y retiramos el livecd.

Prctica #5 Recuperar un sistema de ficheros daado


El sexto campo del fstab, (fs_passno), lo usa el programa fsck para determinar el orden en el cual se van a revisar los sistemas de ficheros cuando el sistema arranca. El sistema de ficheros raz debera llevar fs_passno igual a 1, y otros sistemas de ficheros deberan llevar fs_passno igual o superior a 2. Sistemas de ficheros en un mismo disco sern chequeados secuencialmente y si tienen el mismo valor de (fs_passno) el orden ser el orden de los registros en '/etc/fstab', pero sistemas de ficheros en diferentes discos con el mismo valor para fs_passno, sern chequeados al mismo tiempo para utilizar el paralelismo disponible en el equipo. Si fs_passno (sexto campo) no est presente o tiene un valor de 0, fsck asumir que ese sistema de ficheros no necesita ser chequeado. En caso de que la particin con el sistema de ficheros raz no termine satisfactoriamente no se prosigue con el montaje de otros sistemas de ficheros sino que el sistema solicitar la contrasea de root para ejecutar fsck manualmente. Si esto le ocurre alguna vez y no es usted un experto limtese a chequear la particin con la opcin -y que en lugar de preguntar cosas quizs incompresibles para usted asumir contestacin afirmativa por defecto, ya que es la contestacin menos comprometida en estos casos. Una vez finalizado el chequeo deber hacer 'shutdown -r now' para rearrancar. # fsck -fy /dev/hda3 # shutdown -r now No es posible chequear un sistema de ficheros si este est montado con opciones de lectura/escritura. Si se llegara a forzar tal posibilidad de alguna manera, la destruccin de todo el sistema de ficheros sera inevitable pero afortunadamente fsck se da cuenta de ello y no lo intentar chequear si se da tal circunstancia. Para desmontar y remontar puede ejecutar: #mount -n -o remount,ro /dev/hda4 Para forzar que fsck revise la particin use la opcin -f. Es decir : # fsck -fy /dev/hda3 El fsck es un interfaz a varios comandos especficos del tipo fsck.tipofs. Por ejemplo fsck.ext3. El comando mount sin argumentos le informa los tipos de ficheros que actualmente estn montados. La informacin clave de un sistema de ficheros se sita en el superbloque. Esta estructura est duplicada por motivos de seguridad. Si alguna vez obtiene un error indicando que no se puede montar el sistema de ficheros debido a que el superbloque est daado intente hacer lo siguiente sin olvidar la opcin -S. Tambin debe ir seguida de un cheque de todo el sistema de ficheros. # mke2fs -S /dev/... # e2fsck -fy /dev... Esta operacin no garantiza la recuperacin de sus sistema de ficheros La informacin del superbloque puede ser obtenida mediante: # dumpe2fs /dev/hda4 Le permitir saber cual es el mximo nmero de veces que se puede montar su sistema de ficheros antes de estimar necesario un chequeo y cuantas veces ha sido montado desde el ltimo chequeo y en que fecha tuvo lugar. Tambin puede ver donde se almacenan sus superbloques. Prctica #6 Recuperar un disco duro daado Puede ocurrir que un sistema se vuelva inestable y solicite con frecuencia el chequeo de alguna particin. Puede que a pesar de que aparentemente el fsck solucione el problema este reaparezca nuevamente con mucha frecuencia, o incluso a cada nuevo arranque. Una

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

17

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


particin de swap daada provocar cuelgues del sistema de forma ms o menos aleatoria. Si algn programa o librera dinmica compartida esta daada puede que el sistema no pueda arrancar normalmente y deba arrancar desde un sistema de rescate. En cualquier caso en este tipo de situaciones puede que los elementos destinados a reparar su sistema estn igualmente daados y por ello lo mejor es arrancar desde un disco de rescate y hacer un chequeo a todas las particiones incluidas las particiones de swap. Use badblocks desde algn disco externo ya que quizas el del disco este siendo afectado por el problema mismo. Los primeros CDs de las distribuciones suelen ofrecer la opcin de arrancar en modo rescue. Los Live-Cds son la mejor opcion. El utilitario badblocks es independiente del tipo de sistema de ficheros que use la particin. Puede ser ext3, reiserfs, linuxswap, umsdos, vfat, etc. La opcin -o de badblocks produce una salida que puede ser usada por e2fsck o por mke2fs ambos con la opcin -l. Estos programas tambin admiten la opcin -c para hacer que e2fsck o mke2fs usen a su vez badblocks. Realmente es muy sencillo y conveniente sin embargo le recomendamos lo siguiente. Pase badblocks a todos los sistemas de ficheros presentes en el disco afectado uno a uno y anote o guarde lo resultados. (Por ejemplo redirigiendo salida a un disco sano). Pase e2fsck con la opcin -c en las particiones daadas. De esta forma los sectores defectuosos ya no se usarn. Formatee primero a bajo nivel usando alguna utilidad de la BIOS u otra proporcionada por el fabricante del disco duro. Formatee usando para revisar los bloques defectuosos # mkfs -c /dev/hda4 Particiones y fsck Si has modificado una particin tienes que modificar el /etc/fstab. Desde la consola con: # fdisk -l le dar la informacin sobre sus particiones. Para editarlo escribes gedit /etc/fstab y saldr el archivo para que lo modifiques. Si te sigue saliendo es que tienes bloques malos. Entoces desmonta la particin: # umount /dev/hda4 Luego: # fsck -c -y /dev/hda4 Eso arreglar los problemas de disco. Este comando dependiendo del tamao del disco suele tardar un rato. Prctica #7 Gestor de arranque (grub) A.-Editar men de arranque, agregar imagen de kernel Cuando grub se inicia podemos intervenir usando primero: 1. La tecla ESC 2. luego dirigirnos a la entrada del men deseada 3. Luego presionamos la e para editar 4. Procedemos a editar, ej. al final cambiar al splash o quiet o ro o el titulo 5. Despus de ENTER para que lo reconozca proceder a presionar b para boot 6. Si deseamos que sea permanente necesitamos montar el disco como anterior. B.- Agregarle contrasea de texto a grub 1. Si deseamos que nadie pueda ingresar a grub sin una contrasea, iniciamos normalmente el sistema. 2. Abrimos el archivo /boot/grub/menu.lst 3. Nos dirigimos a la linea que dice password topsecrete 4. Colocamos la contrasea que deseamos, para la practica la dejamos como esta. 5. Luego reiniciamos y ya esta, grub nos pedir una contrasea al intervenirlo. C.- Agregarle contrasea encriptada a grub 1. Si deseamos que nadie pueda ingresar a grub sin una contrasea encriptada, iniciamos normalmente el sistema. 2. Abrimos el archivo /boot/grub/menu.lst 3. Nos dirigimos a la linea que dice password --md5 4. Vamos a la linea de comandos y digitamos:
grub-md5-crypt ... luego enter password: codigolibre Retype password: codigolibre $1$OaYzq1$hQNJqxuGB/oM7.etvNtbM.

5. Copiamos este hash encriptado a nuestro archivo menu.list y ponemos: password - -md5 $1$OaYzq1$hQNJqxuGB/oM7.etvNtbM. 6. Luego reiniciamos y ya esta, grub nos pedir una contrasea al intervenirlo. 7. Recuerde que la contrasea no es el hash sino dominicana D.- Eliminar single user 1. Desde grub podemos eliminar las entradas de single o recovery. 2. Ponerle contrasea a grub para que no puedan pasarle el parmetro single

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

18

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

CAPITULO 6
Sistemas de archivos Estudiar el contenido completo de BARRA (/) y todas sus carpetas: bin/ boot/ dev/ etc/ home/ lib/ lost+found/ media/ mnt/ opt/ proc/ root/ sbin/ selinux/ srv/ sys/ tmp/ usr/ var/ Prctica #1 Usuarios y Grupos El archivo de usuario, /etc/passwd, es un archivo de texto plano, donde cada lnea es una entrada distinta cuyos campos se separan con el caracter :. El primero de estos campos es el nombre del usuario, el segundo el password de forma encriptada, a travs de un proceso irreversible. Si en el campo de password aparece simplemente un caracter x o * propiamente tal, entonces el sistema utiliza passwords shadow, medida de seguridad para almacenar los passwords en otro archivo de nombre /etc/shadow, accesible solamente por el superusuario (root) y los programas de autenticacin propios del sistema. A continuacin examinaremos con mayor exactitud la estructura de estos dos archivos: /etc/passwd (lnea de ejemplo): root:x:0:0:Administrador del Sistema:/root:/bin/bash ^ ^^^ ^ ^ ^ | || | | | |<- Shell por defecto del usuario | || | | |<- Directorio home del usuario | || | |<- Campo opcional y utilizado solamente con fines informativos. | | | |<- GID, identificador numrico nico del grupo primario del usuario | | |- UID, identificador numrico nico del usuario | |<- Password encriptado del usuario |<- Nombre de usuario /etc/shadow (lnea de ejemplo): root:$1$zjxtZLtl$UHNQhadJEfRdsSL386N1HO.:11181:0::::: ^ ^ ^ ^ | | | |<- Das antes de que el password pueda ser cambiado | | |<- Das desde el 1o de Enero de 1970 en que el password fue cambiado | |<- Password encriptado |<- Nombre de usuario Calculo para buscar el da que fue cambiado ese password del cambio del password $ expr 13359 \* 24 \* 60 \* 60 1154217600 $ date -d "1970-01-01 1154217600 sec" Sun Jul 30 00:30:00 AST 2006 $ date -s "1970-01-01 1154217600 sec" Los campos adicionales son opcionales, generalmente dejados en blanco y representan los das antes que el password expire en que el usuario es advertido; das despus de que el password ha expirado en que la cuenta es deshabilitada; das desde el 1 de Enero de 1970 en que la cuenta fue deshabilitada y un campo reservado, respectivamente. Los grupos, por otra parte, se definen en un archivo llamado group, tambin en /etc. Su composicin se detalla a continuacin: /etc/group (lnea de ejemplo): daemon::2:root,bin,daemon ^ ^^ ^ | | | |- Lista de usuarios pertenecientes al grupo, separados por comas | | |- ID numrico nico del grupo | |- Password encriptado del grupo (generalmente no se utiliza) |- Nombre del grupo A pesar de que todos estos archivos se manipulan a travs de comandos especiales (passwd, chfn, chgrp, adduser, addgroup, etc.), al ser de texto plano pueden ser manejados con un simple editor de texto. Tanto en el archivo de password como de grupos debe existir por lo menos una entrada esencial para el funcionamiento del sistema: la del usuario root. /etc/shadow: /etc/passwd: /etc/skel: /etc/profile: .bash_profile .bashrc Contiene las contrasenas encriptadas de los usuarios entre otra informacion . Es el archivo que almacena cada usuario en el sistema Usado por useradd para configurar usuarios por defecto Es utilizado por el sistema como fichero de configuracion de bash. Es leido y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Leido cuando el usuario arranca un subshell, escribiendo por ejemplo bash en la linea de comandos.

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

19

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


.bash_logout Leido por Bash, cuando salimos del sistema.

Practica 2 Cuenta root En sistemas operativos del tipo Unix, root es el nombre convencional de la cuenta de usuario que posee todos los derechos en todos los modos (mono o multi usuario). root es tambin llamado superusuario. Normalmente esta es la cuenta de administrador. El usuario root puede hacer muchas cosas que un usuario comn no, tales como cambiar el dueo de archivos y enlazar a puertos de numeracin pequea. No es recomendable utilizar el usuario root para una simple sesin de uso habitual, ya que pone en riesgo el sistema al garantizar acceso privilegiado a cada programa en ejecucin. Es preferible utilizar una cuenta de usuario normal y utilizar el comando su para acceder a los privilegios de root de ser necesario. Comando su Este comando se utiliza para cambiar de cuenta de usuario, tambin nos permite ejecutar una sentencia con permiso de administrador sin la necesidad de ser root. $su -c ifconfig: $su: $whoami: $pwd: $exit : $su - : $pwd: Ejecuta ifconfig con permiso de root, sin antes haber entrado ala cuenta root. Cambiate a la cuenta root sin cargar su variable de entorno. Una vez haya ejecutado la sentencia anterior, verifica quien eres. Ahora verifica en que lugar esta. salir del usuario root. Cambiate a la cuenta root ahora cargar su variable de entorno. Nuevamente verifica en que lugar esta.

Comando sudo sudo es una herramienta del sistema que permite a los usuarios especificados en el archivo de configuracin /etc/sudoers, la ejecucin de comandos con los privilegios de root, al que denominaremos "usuario privilegiado", de acuerdo a como se haya especificado en el mencionado archivo de configuracin. En /etc/sudoers, se especifica quien est autorizado a hacer que con los privilegios de quien. $sudo -V: Muestra la version de sudo. $sudo -e /etc/fstab: En el siguiente ejemplo, se utiliza el editor nano para editar el archivo /etc/fstab con permiso de root. $sudo -l: Muestra una relacin de los comandos que el usuario puede ejecutar. $sudo su usuario: Para cambiarnos a otro usuario ejecutamos la siguiente sintaxis. $sudo -u 0 ifconfig: Si queremos ejecutar un comando con los permisos de otro usuario por su UID $sudo su: Cambimonos al usuario root sin especificar el nombre del usuario. Practica de Usuarios y Grupos (Crear y Modificar) # useradd user1: Crea un usuario llamado user1 de modo simple. # grep -i user1 /etc/passwd: Comprueba que el usuario se ha creado. # passwd user1: Asignale un password al usuario # usermod -l prueba user1: Cambia el login del usuario a prueba. # chage -l prueba: Comprueba la fecha de espiracin del usuario. #usermod -c "usuario de prueba" prueba: Ponle un comentario al usuario que diga, usuario de prueba. # userdel -r prueba: Elimina el usuario y su directorio home. # useradd -e 2011-02-14 -d /opt -c "usuario de prueba" user0: Crea usuario toda opciones en una sola linea asignndole un directorio home user0. /etc/group: Archivo de los grupos al igual que passwd. # groupadd group1: Grea un grupo identificado como group1. # grep -i group1 /etc/group: Comprueba que se haya realizado con xito. # gpasswd group1: Ponle un password al grupo que acabas de crear. # groupmod -g 655 group1: Cambia el GID del grupo. # grep -i group1 /etc/group: Verifica el GID del grupo. # groupdel group1: Borra el grupo creado.

Administrar Usuarios desde el CLI


Practica simple de manejo de usuarios 1.- Para agregarusuarios y manipularlo es simple, en esta practica observaremos algunos de estos ejemplos # useradd miguel -s /bin/bash -c "Usuario de Prueba" # grep miguel /etc/passwd: miguel:x:501:502:Usuario de Prueba:/home/miguel:/bin/bash 2.- Si observamos en el archivo passwd, dice tener una contrasea, ya que tiene una x, lo que significa que esta encriptada, pero cuando vamos al archivo /etc/shadow vemos que tiene dos !! que significa que no tiene un password asignado.

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

20

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# grep miguel /etc/shadow : miguel:!!:13870:0:99999:7::: Si comparamos con un usuario normal vemos que si tienen una contrasena: # grep antonio /etc/shadow: antonio:$1$XLgO0.X1$EB2ht73mz9XsXhUX5lQr8/:13846:0:99999:7::: # passwd miguel : Para cambiar o asignarle el password al usuario. # passwd -d miguel : borrar la contrasea de un usuario no tenga password # grep miguel /etc/shadow miguel::13870:0:99999:7::: # usermod -e 2007-07-26 miguel: Si necesita expirar una cuenta para que no se tenga acceso pero no borrarla # su antonio: Nos cambiamos de root a antonio $ su miguel: Your account has expired; please contact your system administrator # chage -M 5 -W 3 miguel: Para expirar una cuenta dentro de 3 dias y avisar desde cinco dias antes: # login: miguel : Warning: your password will expire in 3 days # usermod -G shutdown miguel: Para agregar un usuario estudiante al grupo shutdown # chage -d 0 estudiante Caducar contrasena de estudiante: 3.- Para prohibir que un usuario efectue su, podemos obligar que solos los del grupo wheel puedan ejecutar el comando su. Esto se logra con pam y el archivo de configuracion en /etc/pam.d/su, solo tenemos que quitar el simbolo de comentario en la linea que dice lo siguiente y agregar al usuario al grupo wheel, pero pruebe primero sin agregarlo: auth required pam_wheel.so use_uid Prctica #2 Permisos de Archivos Los permisos de archivos son definidos para usuarios, grupos y otros. Usuario sera el nombre bajo el cual se ingresa al sistema (ej. root). Mas all, los usuarios pueden ser organizados dentro de grupos para una mejor administracin y control. Cada usuario pertenece por lo menos a un grupo por defecto. Otros incluye a cualquiera que las categoras anteriores excluyen. A continuacin se muestra un ejemplo de la salida del comando ls -l: drwxr-x--2 jperez fcld 4096 Dec 28 04:09 tmp -rw-r--r-1 jperez fcld 969 Dec 21 02:32 lala -rwxr-xr-x 1 jperez fcld 345 Sep 1 04:12 archivo La informacin relevante en la primera columna es el tipo de archivo seguido por los permisos del mismo. En la segunda columna aparece la cantidad de subdirectorios existentes bajo el indicado (1 si es archivo). La tercera y cuarta columnas muestran el propietario del archivo y el grupo al cual el archivo pertenece, respectivamente. Los contenidos de las dems columnas son obvios. Para nuestro ejemplo la primera entrada es tmp. El primer caracter en la primera columna es d, lo que significa que tmp es un directorio. Las otras entradas son archivos simples, tal como lo indica el smbolo -. Ahora analizaremos en mayor profundidad la primera columna: d rwx r-x - - ^ ^ ^ ^ | | | |- Otros | | |- Grupo | |- Usuario propietario del archivo |- Tipo de archivo Seguido del tipo de archivo, los prximos nueve caracteres definen los permisos. Estos permisos estn dados en grupos de a tres cada uno. Los primeros 3 caracteres son los permisos para el el usuario propietario. Los prximos tres son permisos para el grupo, y los ltimos tres definen los permisos de acceso para todos los dems. A su vez, existen tres posibles atributos para los permisos de archivos: r - Lectura. Indica si el archivo puede ser ledo; en caso de ser un directorio indica que sus contenidos pueden ser listados. w- Escritura. Indica si el archivo puede ser escrito o modificado. Para directorios posible hacer cambios al contenido. Si no existe el permiso de escritura, entonces no ser posible borrar, renombrar o crear un archivo. x- Ejecucin. Define si el archivo puede ser ejecutado. En caso de tratarse de un directorio, este atributo decide si es que el usuario tiene el permiso para entrar al mismo, buscar dentro o ejecutar programas desde ese directorio. Tomemos como ejemplo los permisos de tmp, que son drwxr-x---. El propietario de este directorio es el usuario jperez y el grupo al cual pertenece el directorio es fcld. Esta serie de permisos permite acceso completo de lectura, escritura y ejecucin al directorio al usuario jperez. Los permisos del grupo son r-x: no hay permiso de escritura dado por lo que los miembros del grupo fcld pueden entrar y listar los contenidos del directorio, no pueden crear nuevos archivos o subdirectorios dentro. Adems del propietario y del grupo, nadie ms tiene ningn tipo de acceso al directorio porque sus atributos para otros estn vacos (---). Prctica #3 Modificacin de Atributos Para cambiar los permisos se utiliza el programa chmod (CHange MODe, cambiar modo). Es necesario ser el usuario propietario del archivo, o root. Los permisos pueden ser definidos para los usuarios propietarios (u), grupos (g) y 'otros' (o). Un ejemplo de chmod se

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

21

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


muestra a continuacin: $ chmod u-x,g+w,o+rw archivo Este comando elimina el permiso de ejecucin para el usuario, coloca el bit de acceso a escritura para el grupo y le da a todos los dems acceso de lectura y escritura. Los permisos para este archivo antes de ejecutar el comando eran -rwxr-xr--; despues del comando son: -rw-rwxrw-. Primero se escoge utilizar u, g u o seguido por un signo + para agregar un permiso, - para quitarlo y = para limpiar cualquier permiso previamente asignado y solamente dejar lo que sea especificado. Tambin es posible utilizar a para dar permiso a todos los usuarios. Utilicemos los permisos de -rwxrwxrwx para archivo y trabajemos en ellos: $ chmod g-wx archivo Al hacer esto estamos quitando los permisos de escritura y ejecucin para los miembros del grupo al cual pertenece el archivo. Sus permisos seran ahora entonces: -rwxr--rwx. Como vimos anteriormente, tambin es posible especificar permisos para usuarios, grupos y otros en el mismo comando, pero separados por comas: $ chmod g+wx,o-rwx archivo A los miembros del grupo se les ha dado acceso de escritura y ejecucion pero todo acceso ha sido removido para los usuarios que no son miembros de ese grupo. Los permisos del archivo son ahora entonces -rwxrwx---. chmod a+x archivo Le da acceso de ejecucin a todos. Los permisos ahora son -rwxrwx--x. Especificar a aqui no es esencial, simplemente podramos haber dicho +x, a (All) se asume por defecto. Por lo tanto el comando chmod +x archivo es equivalente a lo indicado arriba. chmod go-rx archivo Si los mismos bits de permiso se utilizan para asignar/quitar a usuarios, grupos u otros entonces se pueden indicar juntos como se indica. Los permisos son ahora entonces: -rwx-w---chmod ug=rwx archivo : Coloca permisos del archivo a exactamente lo que se ha especificado: ahora, los premisos: -rwxrwx--chmod o=g archivo: Permisos del archivo para 'otros' ahora son igual a los permisos para el grupo estn asignados: -rwxrwxrwx Existe otra manera en que se pueden especificar los permisos de archivos: los bits r, w y x tienen asignados un numero, proveniente de la notacion binaria que se utiliza para almacenarlos como bits propiamente tal: r=4 w=2 x=1 Ahora es posible utilizar nmeros, que son la suma de los distintos bits de permisos. Por ejemplo, rwx seria 4+3+1 = 7. rx seria 4+1 = 5. Por lo tanto el comando chmod ahora se convierte en: chmod xyz archivo donde x, y y z son nmeros que representan los permisos del usuario, grupo y otros, respectivamente. Cada numero es la suma de los permisos a colocar y se calculan como se indico anteriormente. chmod 644 archivo: 6 = 4 + 2 = rw, 4 = r, 4 = r Como podemos ver, los permisos para archivo se han colocado como -rw-r--r--. Esta manera es mas simple y rpida de asignar permisos; puede ser un poco mas tediosa al comienzo pero con la practica se logra la costumbre. A continuacin se explican los distintos permisos como una referencia: 0 - --- 1 - --x 2 - -w- 3 - -wx 4 r-- 5 r-x 6 rw7 - rwx Prctica #4 Modificacin de Propietario y Grupo Adems de los permisos del archivo, tambin es posible modificar al propietario y grupo del mismo. En este caso se utiliza el programa chown (CHange OWNer, cambiar propietario) y su sintaxis es mucho mas simple. Al igual que en el caso anterior, es necesario ser el usuario propietario o root para poder hacer esto: a) $ chown nuevo-usuario archivo b) $ chown novato archivo En estos ejemplos se cambia al usuario propietario del archivo archivo por los usuarios nuevo-usuario y novato, respectivamente. Para cambiar el grupo, se utiliza el comando chgrp: $ chgrp nuevo-grupo archivo Esto coloca al grupo nuevo-grupo como el perteneciente al archivo archivo. Tambin es posible cambiar simultneamente el usuario propietario y el grupo de un archivo a travs del comando chown, separndolos por punto: $ chown jperez.fcld archivo Lo que asigna a jperez como propietario del archivo archivo, adems de hacer este perteneciente al grupo fcld. $mkdir dir1: Crea un directorio llamado dir1 $stat dir1: Verifica el propietario de este directorio # chown root dir1: Cambia el propietario del directorio a root. $ls -ld dir1: Verifica que todo a salido con xito. $chown -R estudiantes dir1: Cambiemos el propietario de forma recursiva del directorio principal $touch dir1/dir2/test.txt: Dentro del sub-directorio, crea un archivo llamado test.txt $chown -R root:root dir1/dir2/test.txt: Cambia el propietario y el grupo del archivo test.txt a root. $stat dir1/dir2/test.txt: Comprueba se a realizado todo bien. $touch test2.txt: Crea un archivo llamado test2.txt. $stat test2.txt: Verifica el grupo a que pertenece el archivo test2.txt. $grep -i audio /etc/group: Verifica que el grupo audio exista. $chgrp audio test2.txt: Cambia el grupo del archivo al grupo audio. stat test2.txt: Verifica que todo a salido con xito. $touch arch1 arch2 arch3: Crea varios archivos dentro del directorio dir2. $stat dir1/dir2/arch*: Verifica su estadstica para ver a que grupo pertenecen los archivos creados. $chgrp audio /dir1/dir2/*: Cambia el grupo de cada unos de estos archivos. Prctica #5 Configuraciones de Umask El comando umask puede usarse para determinar el modo por defecto de creacin de ficheros en tu sistema. Normalmente, las

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

22

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


configuraciones de umask incluyen 022, 027 y 077 (que es el ms restrictivo). Normalmente el umask se pone en /etc/profile, as se aplica a todos los usuarios en el sistema. La mscara de creacin de archivos puede calcularse restando el valor deseado de 777. En otras palabras, un umask de 777 supondra que los ficheros nuevos creados no contendran permiso de lectura, escritura o ejecucin para nadie. Una mscara de 666 causara que los ficheros nuevos creados tengan una mscara de 111. Por ejemplo, puedes tener una lnea que se parezca a sta: # Establecer la mascara por defecto umask: umask 033 Asegrate de poner el umask de root en 077, lo que discapacitar el permiso de lectura, escritura y ejecucin para otros usuarios, a menos que se cambie explcitamente usando chmod. En este caso, los directorios recin creados tendran permisos 744, obtenido restando 033 de 777. Los ficheros nuevos creados usando el umask 033 tendran permisos de 644.

MODULO - ADMINISTRACION Capitulo 2 1. Defina el modelo de versiones del kernel de GNU/Linux, ej. 2.6.23-25. 1. Identificar el kernel actual desde la pagina http://www.kernel.org Prctica #1 Compilar el Kernel Administradores deberan poder administrar un kernel y sus mdulos cargables. Archivos, trminos y utilidades necesarias uname: # comando para desplegar entre otras cosas la version del kernel actual opciones -s, -p, etc /lib/modules/2.6.34.7-63.fc13.i686.PAE/kernel/ # Donde encontramos los modulos del kernel /lib/modules/2.6.34.7-63.fc13.i686.PAE/kernel/drivers/ # Donde se encuentran los modulos que cargamos /lib/modules/kernel-version/modules.dep # dependencias de modulos una con otra se genera con depmod -a /etc/modules.conf # Fue ya eliminado en el futuro /etc/modprobe.conf # Sera ya eliminado en el futuro y reemplazado por la carpeta /etc/modprobe.d # Carpeta de archivos de configuracion de los modulos /etc/modprobe.d/blacklist.conf # Ejemplo de archivo para evitar que un modulo sea cargado automaticamente depmod # Genera archivo de interdependencia de los modulos y el system map que esta en /boot insmod # Comando para insertar modulos en tiempo real rmmod # Comando para remover modulos en tiempo real lsmod # Comando para listar los modulos cargados en memoria modinfo # Comando para desplegar informacion de un modulo modprobe # Como insmod y rmmod es para insertar y remover modulos pero no tenemos que conocer el directorio que se encuentra modprobe -lt sound # Lista modulos disponibles puede ser net, wireless, video, etc El kernel El kernel (ncleo) es el corazn del sistema operativo. El es solamente una parte comparativamente pequea del sistema GNU/Linux total. Los kernels pueden ser monolticos, teniendo todas las funcionalidades dentro del mismo, o como modular teniendo mucho de la funcionalidad actuando separadamente como mdulos. Aunque Linux soporta mdulos del kernel, se dice que es monoltico a causa de que no est compilado sobre un microkernel. Algunos ejemplos de ncleos listos para usar en produccin: 1. Linux, desarrollado por Torvalds y colaboradores de todo el mundo. 2. Mach, un microkernel usado por sistemas operativos de Apple. 3. El HURD, el kernel del proyecto GNU Algunos componentes importantes de un kernel: 1. Soporte de memoria virtual 2. Multitarea 3. Intercambio de contexto 4. Drivers de dispositivo 5. Mdulos del kernel Prctica #3 Reconfiguracin, construccin e instalacin del kernel y sus mdulos Cuando instalamos una distribucin GNU/Linux, generalmente, esta viene con los paquetes precompilados y configurados para que puedan funcionar en la mayora de los ordenadores. Esto tiene algunas ventajas, como la fcil instalacin, pero tambin tiene sus inconvenientes. La finalidad de compilar nuestro propio Kernel es depurarlo de drivers y soportes genricos, e instalar nicamente lo necesario para que nuestro ordenador funcione. Qu conseguimos? Un Kernel ms pequeo y configurado para nuestro equipo (CPU, Drivers, Arquitecturaetc), consiguiendo as que nuestro sistema operativo sea ms rpido.: cd /usr/src/linux-2.6.XX.X Deberemos configurar nuestro kernel, recordando siempre que nuestro objetivo es hacer el kernel lo ms pequeo posible. Para realizar esta tarea, podramos ejecutar el comando make config, pero sera una tarea larga y muy complicada. Pero disponemos de interfaces que

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

23

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


nos ayudan en esta configuracin del Kernel. Si usamos Gnome, usaremos el comando make gconfig, si usamos KDE, make xconfig y si queremos usar la terminal, make menuconfig. Los tres mtodos son similares. Podremos seleccionar Y (yes), N (no) o M (module). Teniendo en cuenta que Y incluir la opcin en el kernel, N, no y M, lo har pero en un mdulo, cargndolo slo cuando lo requiramos y no en el inicio. Para una buena configuracin quitaremos todas las opciones genricas y seleccionaremos las que se ajusten con nuestro hardware. Para ayudarnos podemos usar los siguientes comandos. /sbin/lsmod : Muestra los controladores que estamos usando less /proc/cpuinfo : Muestra los detalles de nuestro procesador /sbin/lspci : Permite determinar los dispositivos PCI que hay en el sistema /sbin/lsusb: De manera similar a lspci, determina los dispositivos USB Algunas opciones que debemos marcar obligatoriamente son: la carga modular, que har el kernel ms ligero y SMP (Symmetric MultiProcessing), si nuestra mquina cuenta con ms de un procesador. Una vez que ya comprendemos esto, ya podemos ejecutar el comando make (en mi caso make gconfig,pero no quiere decir que tengas que realizarlo de esta manera) make xconfig : Para configurar Cuando terminemos de configurar todo guardaremos los cambios y cerramos. Ahora compilaremos el kernel, tarea que llevar bastante tiempo, con el comando: make Cuando finalice, tendremos que instalar los mdulos. Esta tarea tambin tardar unos cuantos minutos. make modules_install Y por ltimo, instalar el ncleo con el siguiente comando. make install El anterior comando instalar el ncleo en /boot, crear el archivo system.map correspondiente, crear la imagen initrd y aadir la entrada en /boot/grub/grub.conf sin borrar las dems entradas antiguas. Ahora llega el momento de probar si funciona. Reiniciamos y seleccionamos en el menu de Grub la nueva entrada (tenga en cuenta que no ser elegida por defecto). Si todo funciona bien puede hacer que arranque por defecto con este Kernel en Sistema Administracin Gestor de arranque Prctica #5 Utilitarios de Mdulos lsmod : Despliega la informacin referente a los mdulos que estn habilitados por el "kernel". depmod: Genera un archivo que contiene las dependencias de los mdulos que son cargados para el Kernel. insmod: Carga el modulo que se especifica en la linea, para que el kernel sea capaz de utilizarlo.(ejemplo: insmod ip_alias.o ) rmmod: Quitar un modulo modprobe: igual que insmod pero mas seguro ya que primero se asesora si todo estar bien despus de insertado el mdulo. Prctica #6 Modificar parmetros del kernel tiempo real... /proc Una de las funcionalidades avanzadas de /proc/ es, como decamos, la posibilidad de modificar algunos de los parmetros internos del ncleo sin tener que recompilarlo y reiniciar el sistema. Esta seccin presenta un pequeo resumen de cmo realizarlo. Como cualquier programa en ejecucin, el ncleo de Linux posee internamente un conjunto de variables globales (o parmetros) que reflejan y/o condicionan su funcionamiento. Algunos de estas variables, como por ejemplo los procesos que se estn ejecutando, la ocupacin de la memoria o los sistemas de archivos montados, pueden ser consultados por el usuario mediante la lectura de los archivos correspondientes del directorio /proc/, tal como veamos en la seccin anterior. Pero /proc/ permite tambin la modificacin en lnea de algunas de esas variables, sin necesidad de reiniciar el sistema, de forma que podemos ajustar el comportamiento del ncleo dinmicamente. Para ello se dispone del directorio /proc/sys/. El directorio /proc/sys/ contiene un subrbol de directorios y archivos en el que se organizan muchos parmetros del ncleo, subdivididos por categoras (es decir, por subdirectorios). Los archivos pueden tener permisos slo de lectura o bien permitir su modificacin, aunque slo al administrador (root). Estas dos posibilidades indican, respectivamente, archivos que muestran informacin sobre parmetros y otros que permiten adems, la modificacin de estos parmetros. En este ltimo caso, si sobreescribimos el contenido del archivo, estaremos cambiando el parmetro correspondiente del ncleo. Por ejemplo: # cat /proc/sys/kernel/hostname : nombre-host # echo otro-nombre > /proc/sys/kernel/hostname # cat /proc/sys/kernel/hostname : otro-nombre /proc/sys/dev/: Este directorio proporciona los parmetros de configuracin de algunos dispositivos fsicos conectados al sistema, como por ejemplo unidades de cdrom. Por ejemplo:

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

24

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# ls -l /proc/sys/dev/cdrom/
-rw-r--r-- 1 root -rw-r--r-- 1 root -rw-r--r-- 1 root -rw-r--r-- 1 root -r--r--r-- 1 root -rw-r--r-- 1 root root root root root root root 0 0 0 0 0 0 Dec Dec Dec Dec Dec Dec 9 15:37 autoclose 9 15:37 autoeject 9 15:37 check_media 9 15:37 debug 9 15:37 info 9 15:37 lock

$ cat /proc/sys/dev/cdrom/info
CD-ROM information, Id: cdrom.c 3.20 2003/12/17 drive name: sr0 drive speed: 24 drive # of slots: 1 Can close tray: 1 Can open tray: 1 Can lock tray: 1 Can change speed: 1 Can select disk: 0

Mediante la modificacin de archivos como autoclose o autoeject (que pueden contener 0 o 1) podemos controlar la activacin o desactivacin de esas caractersticas de la unidad de cd. /proc/sys/fs/: Este directorio contiene numerosos parmetros concernientes a los sistemas de archivos montados en el sistema, incluyendo cuotas, manejadores de archivo, inodos, etc: $ ls -l /proc/sys/fs/
total 0 -rw-r--r--r--r--r-drwxr-xr-x -r--r--r--rw-r--r-1 1 2 1 1 root root root root root root root root root root 0 0 0 0 0 Dec Dec Dec Dec Dec 9 15:40 aio-max-nr 9 15:40 aio-nr 9 13:56 binfmt_misc 9 15:40 dentry-state 9 15:40 file-max

Por ejemplo, si quisiramos incrementar la cantidad de manejadores de fichero (es decir, el nmero mximo de ficheros que pueden ser abiertos simultneamente), deberamos incrementar la cantidad que aparece en file-max. /proc/sys/kernel/: El contenido de este directorio incluye aspectos de configuracin y parmetros que afectan directamente el funcionamiento del ncleo, como por ejemplo el comportamiento de [Ctl+Alt+Supr] para reiniciar el sistema, el nombre del ordenador (ver ejemplo arriba), el nmero mximo de hilos de ejecucin que el ncleo puede ejecutar, etc. /proc/sys/net/: Este directorio permite ver y controlar el funcionamiento de muchos aspectos del ncleo relacionados con la red, incluyendo los diferentes protocolos queimplementa Linux (ethernet, ipx, ipv4, ipv6, etc). Por ejemplo, para permitir la retransmisin de paquetes entre dos tarjetas de red conectadas al ordenador, haramos lo siguiente: # echo 1 > /proc/sys/net/ipv4/ip_forward Otros ejemplos podrian ser: # cat /proc/sys/net/ipv4/tcp_syncookies # echo 1 > /proc/sys/net/ipv4/tcp_syncookies /proc/sys/vm/: Este subdirectorio permite la configuracin del subsistema de memoria virtual del ncleo, como por ejemplo el funcionamiento del servicio (o "demonio") de intercambio (kswapd), la cantidad de memoria que se dedicar a buffers del ncleo, el nmero mximo de reas de memoria que pueden tener los procesos, etc. Prctica #7 El mandato sysctl Como alternativa a escribir directamente el valor (o los valores) en los archivos de /proc/sys/, Linux dispone de un mandato denominado sysctl, que puede ser utilizado para leer y modificar todos los parmetros del kernel que se ubican en ese directorio. Por ejemplo, para modificar el nombre de la mquina, como veamos arriba, podramos ejecutar lo siguiente: # cat /proc/sys/kernel/hostname : nombre-host # sysctl -w kernel.hostname=otro-nombre : kernel.hostname = otro-nombre # cat /proc/sys/kernel/hostname : otronombre Ya que para cambiar un valor se emplea: /sbin/sysctl -w kernel.hostname=nombre-deseas El comando sysctl nos permite parametrizar parmetros del ncleo. No hace falta decir que son aquellos con los que fue compilado el ncleo. Toda la configuracin se hace a travs del fichero /etc/sysctl.conf: Prctica #8 La Orden stty El nombre stty probablemente signifique set tty, pero la orden stty tambin puede ser empleada para mostrar la configuracin de un terminal. Quizs an ms que setserial, la orden stty proporciona un desconcertante nmero de caractersticas configurables. Cubriremos

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

25

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


las ms importantes en breve. Puede usted encontrar descrito el resto en la pgina de manual de stty. La orden stty se utiliza principalmente para configurar parmetros del terminal, tales como qu caracteres sern mostrados, o qu tecla deber generar una seal de parada. Explicamos anteriormente que los dispositivos serie son dispositivos tty, y por tanto la orden stty es igualmente aplicable a ellos. La orden stty puede ser usada para mostrar los parmetros de configuracin de un dispositivo tty. Para mostrar todos los parmetros activos de un dispositivo tty se hace: $ssty -a -F /dev/tty1 ... desde el terminal uno.. El comando stty espara establecer y reportar las opciones de entrada y salida I/O del terminal. Usado sin parmetros nos reporta la terminal actual:
$ stty -a speed 38400 baud; rows 46; columns 197; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

En los siguiente ejemplos establecemos los caracateres de borrar, fin de archivo, caracter de interrupcin y caracter de suspensin. stty erase ^h : Establece el caracter de borrar como ^h. Normalmente es la tecla Backspace. stty eof ^d : Establece el caracter de fin de archivo a ^d. stty intr ^c : Establece el caracter de interrupcin a ^c. Le permite detener los procesos ejecutandose en el primer plano de su terminal. stty susp ^z: Establece el caracter de suspender a ^z. Le permite suspender los procesos ejecutndose en el primer plano de su terminal.

Capitulo 3
Prctica #1 Los RPMS (La administracin de paquetes con RPM)
El Administrador de paquetes Red Hat (RPM) es un sistema de empaquetado abierto que trabaja en Red Hat Linux adems de otros sistemas Linux y UNIX que est a la disposicin de cualquiera. Red Hat, Inc. fomenta el uso de RPM por parte de otros vendedores para sus propios productos. RPM se puede distribuir bajo los trminos de GPL. RPM facilita las actualizaciones de sistema para el usuario final. Es posible instalar, desinstalar y actualizar paquetes RPM por medio de comandos breves. RPM mantiene una base de datos de los paquetes instalados y de sus ficheros, y usted puede hacer consultas y verificaciones poderosas en su sistema. Si prefiere una interfaz grfica, puede utilizar GnomeRPM para ejecutar muchos comandos RPM. RPM permite al desarrollador tomar el cdigo fuente del software y empaquetarlo en paquetes binarios y de fuente para los usuarios finales. Este proceso es bastante sencillo y se controla desde un nico fichero y parches opcionales creados por usted mismo. Esta clara delineacin de fuentes originarias y sus parches y las instrucciones de construccin facilitan el mantenimiento del paquete al ir apareciendo nuevas versiones del software. El comando rpm tiene varias opciones: rpm -q <nombre_paquete> Me dice si este paquete ya esta instalado o no. rpm -qa Me dice todos los paquetes que estn instalados. rpm -i <nombre_paquete> Instala el paquete. rpm -e <nombre_paquete> Desinstala un paquete. Los paquetes RPM normalmente tienen nombres de fichero como paquete-x.x.x.rpm. El nombre de fichero incluye el nombre de paquete (paquete), versin (x), lanzamiento (x) y arquitectura (x). La instalacin de un paquete es tan simple como teclear el siguiente comando en el intrprete de comandos de shell: # rpm -i paquete-.x.x.rpm paquete #################################### Tal vez usted haya borrado algunos ficheros accidentalmente, pero no est seguro de lo que ha eliminado. Si desea verificar su sistema entero y ver lo que podra hacer falta, podra intentarlo con el siguiente comando: rpm -Va Tal vez alguna vez ver un fichero que no reconoce. Para saber a qu paquete pertenece, tecleara: rpm -qf /usr/X11R6/bin/ghostview Responde: gv-3.5.8-10 Desea encontrar ms informacin sobre un determinado programa? Puede intentar el siguiente comando para localizar la documentacin

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

26

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


que acompaaba el paquete al cual pertenece ese programa:
$ rpm -qdf /usr/bin/md5sum /usr/share/doc/coreutils-8.4/ABOUT-NLS /usr/share/doc/coreutils-8.4/COPYING /usr/share/doc/coreutils-8.4/ChangeLog.bz2 /usr/share/doc/coreutils-8.4/NEWS /usr/share/doc/coreutils-8.4/README /usr/share/doc/coreutils-8.4/THANKS /usr/share/doc/coreutils-8.4/TODO /usr/share/doc/coreutils-8.4/fileutils/ChangeLog-1997.bz2

Podra encontrar un RPM nuevo y no saber para qu sirve. Para encontrar informacin sobre l, use el siguiente comando:
rpm -qip /var/cache/yum/i386/13/updates/packages/wine-wow-1.3.7-2.fc13.i686.rpm Name : wine-wow Relocations: (not relocatable)

Practica de Instalacin y Mantenimiento de Paquetes con YUM


yum install paquete Instala la ltima versin del paquete indicado. yum -y install paquete Instala la ltima versin sin pedir confirmacin. yum -y install paquete1 paquete2 Instala la ltima versin de los paquetes. yum -y install paquete.arch Instala paquete indicado arquitectura, ej:mysql.i386. yum -y update Actualiza todos los paquetes en el sistema. yum -y update --exclude=sendmail Actualiza todos los paquetes, excepto sendmail. yum -y update httpd Actualiza solo el paquete indicado. yum -y update opera firefox Actualiza los paquetes indicados. yum -y update --enablerepo=centosplus Habilta el repos 'centosplus'. yum -y install --enablerepo=fedoraplus Habilta el repos 'centosplus'. yum -y upgrade Actualiza los paquetes. yum check-update Muestra una lista actualizables sin instalarlos. yum info paquete Descripcin completa del paquete indicado. yum info recent Informacin resumida de ltimos instalados o actualizados. yum info available Muestra informacin resumida de los paquetes disponibles. yum list Lista los paquetes disponibles para instalacin o ya instalados. yum list {regex}: Buscar con una expresion regular como *?.[],etc yum list perl*: Buscar con una expresion regular como *?.[],etc yum list samba: Buscar un paquete por su nombre yum list | grep mysql Filtra los paquetes disponibles o instalados de mysql. yum list installed httpd: Para saber si el paquete httpd esta instalado rpm -qa: Para listar todos los paquetes instalados rpm -qa | grep httpd*: Para saber si el paquete httpd esta instalado yum list installed Lista de todos los paquetes instalados en el sistema. yum list available Lista todos los paquetes disponibles para ser instalados. yum list all: Desplegar la lista de todos los pquetes disponibles yum list updates Lista los paquetes disponibles para ser actualizados. yum remove telnet Remueve el paquete indicado. yum -y remove telnet vncserver Remueve los paquetes, sin pedir confirmacin. yum search paquete Busca el 'paquete' en la base de datos de paquetes. yum clean headers Elimina archivos encabezados que yum usa las dependencias. yum clean packages Elimina paquetees que al usar 'update' o 'install' el paquete que descarga no se elimina. yum clean all Limpia archivos de encabezados y paquetes, como utilizar las dos opciones previas. yum repolist Lista los repositorios que se tengan de yum. yum grouplist: Desplegar grupos de paquetes disponibles yum groupinstall "Development Tools": Instalar todos los paquetes por defecto de un grupo yum groupupdate "Development Tools": Actualizar todos los paquetes de un grupo yum groupremove "Development Tools": Eliminar todos los paquetes de un grupo yum install mysql.i386: Instalar un paquete de una arquitectura particular # yum list extras: Listar todos los pquetess no oficiales de RHN # yum whatprovides /etc/passwd: Listar que paquetes provee cierto archivo # yum whatprovides {depend-1} {depe-2} Listar paquetes que satisfacen cierta dependencias man yum: Paginas man del yum

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

27

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

Capitulo 4
Prctica #1 Los Procesos
Todos los procesos en Unix se identifican por un nmero llamado Identificador de Proceso (PID). El PID es la forma habitual de referirse a un proceso cuando se ejecuta un comando para el control de procesos . Slo los propietarios de un proceso y el administrador (root) puede realizar operaciones sobre el mismo

Comandos para el control de procesos ps: Muestra los procesos en el sistema. pstree o ptree: Muestra la jerarqua de procesos del sistema top y htop: Muestra en tiempo real el uso de CPU de los procesos pmap PID: Muestra la utilizacin de memoria de un proceso fuser fichero: Muestra los procesos que acceden un fichero. Muestra una letra indicando como accede al fichero:
c Directorio actual e Ejecucin f Fichero abierto r Directorio raiz m Biblioteca compartida

fuser -n tcp 22: Para listar todos los procesos conectados al puerto 22 nice -prioridad comando: Ejecuta un comando con una prioridad diferente renice -prioridad PID: Cambia la prioridad de un proceso kill -Seal PID: Enva una seal a un proceso. Parmetros: kill -l : Muestra todas las seales killall -Seal comando: Igual que kill pero enva la seal a todos los procesos correspondientes al nombrado comando free: Muestra la memoria libre en el sistema lsof: para listar archivos abiertos por los procesos Sin pasar ninguna opcin el comando lsof listara todos los archivos abiertos de todos los procesos actuales. Para listar los archivos abiertos por el usuario estudiante', o el usuario de ID numero ID 1000 use la opcin u. Para listar los archivos usados por el proceso numero 456, el proceso 123, o el proceso 789, usted deber usar el bandern p. Poniendo todo esto en practica un comando se ve de esta manera: lsof -p 456,123,789 -u 1000,estudiante Para listar todos los archivos abiertos en el dispositivo /dev/hd4, quedara as: lsof /dev/hd4 Para listar los procesos que utilizan el archivo /ruta/de/archivo, use: lsof /etc/passwd Ptools es un conjunto de herramientas de administracin de procesos que permiten el seguimiento y la depuracin de los procesos con facilidad. A partir de esta revisin, este conjunto de herramientas consta de los siguientes comandos: pmap: El comando pmap imprime la informacin del espacio de direcciones de un proceso. pgrep: El comando pgrep busca los procesos que tienen atributos que se ajustan a los criterios de seleccin especificados por los argumentos. Pkill: El comando pkill mata los procesos encontrados se le puede enciar la seal como opcion. Ptree: El comando ptree imprime el rbol de proceso de todos los procesos que coinciden con los argumentos especificados.

Practica 2 Los Runlevels


El trmino runlevel o nivel de ejecucin se refiere al modo de operacin en los sistemas operativos que implementan el estilo de sistema de arranque de iniciacin tipo UNIX System V. # Porcin del fichero /etc/inittab # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # init 0: Apagar el sistema # init 1: Bajar a monousuario modo seguro # init 2: reservado para el Administrador # init 3: Baja a multiusuario con soporte de red sin X11 (GRAFICO).

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

28

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# init 5: Baja a multiusuario con soporte de red con X11 (GRAFICO). # init 6: Reiniciar El comando chkconfig puede ser usado para activar y desactivar servicios. chkconfig list: Ver el listado de los servicios del sistema. chkconfig --level 235 sshd on: Subamos el sshd los niveles 2,3 y 5. chkconfig --list sshd: Verifiquemos que lo anterior sea realizado con xito. chkconfig --level 235 sshd on: Bajemos el sshd los niveles 2,3 y 5. chkconfig --list sshd: Verifiquemos que lo anterior sea realizado con xito.

Captulo 6
Prctica #1 Permisos de Archivos y Directorios
Se asume que p1 p2 p5 p4 y p5 son archivos 1- Explique chmod u+x p1 p2 p3 2- Explique chmod 751 p3 3- Explique chmod a-w p1 Permisos
0 1 2 3 4 5 6 7 = = = = = = = = --- = sin acceso --x = ejecucin -w- = escritura -wx = escritura y ejecucin r-- = lectura r-x = lectura y ejecucin rw- = lectura y escritura rwx = lectura, escritura y ejecucin

4- Explique chmod 010 p4 5- Explique chmod o+rx p2 6- Explique chmod 623 p5

La sintaxis para usar chmod con texto: chmod [ugo][+-][rwx] [nombre_archivo] Donde [u=user, g=group y o=other]; [+/- activa o desactiva los atributos siguientes] [r=read, w=write, x=execute] $ touch prueba.txt : $ls -l prueba.txt : $stat prueba.txt: $chmod 444 prueba.txt: $cat > prueba.txt: $chmod u+w prueba.txt: $cat > prueba.txt:
#! /bin/bash clear N=0 while [ $N -lt 10 ] do sleep 1 let N=N+1 echo $N done exit0

Crea un archivo vacio Verifica los los permisos del archivo. Verifica los permisos del mismo archivo. Cambia los permisos a solo pueda ser ledo no modificable ni ejecutable por el usuario grupo o otros. Trata de modificar el archivo. Agregale permiso de escritura al usuario en el archivo. Ahora modifica el archivo prueba.txt.

$cat prueba.txt: $chmod u-r prueba.txt: $cat > prueba.txt: $./prueba.txt: $chmod +x prueba.txt: $./prueba.txt:

Una vez este modificado el archivo prueba.txt visualiza su contenido. Quita el permiso de lectura al archivo prueba.txt. Verifica a ver si puedes visualizar el contenido del archivo. Ejecuta el archivo con ./ Debido a que el resultado anterior el cual fue negativo , ahora asignale permiso de ejecucion. Ejecuta nuevamente el archivo con ./

Prctica #1 El Demonio Cron Crond es un demonio del sistema que ejecuta peridicamente tareas programadas segn una combinacin de la hora, da del mes, mes, da de la semana y semana. La consulta de las tareas se realiza cada minuto. El principal fichero de configuracin del servicio cron es /etc/crontab, en el que las rdenes se especifican mediante lneas con el siguiente formato: minuto hora da mes da_semana comando No se tienen en cuenta las lneas en blanco y las lneas que comiencen por # se consideran comentarios, y se

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

29

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


ignorarn. El significado de los anteriores campos es el siguiente:
minuto: hora: da: mes: da_semana: comando: minuto dentro de una hora (0-59) hora dentro de un da (0-23) da dentro del mes (1-31) mes dentro del ao (1-12) da de la semana (0-6, siendo el domingo el 0) comando a ejecutar.

Un asterisco * en alguno de los campos se entender como todos los valores posibles. Por lo tanto, un * en el campo mes se entender como que el comando se ejecuta todos los meses en el momento indicado en el resto de campos. 0 * * * * sync: ejecutar el comando sync el primer minuto de cada hora. 0 23 10 * * sync: ejecutar el comando sync todos los das 10 de cada mes a las 11:00 de la noche. Esto ejecutar el comando sync cada hora un el primer minuto. # crontab -l:Para obtener una lista de las entradas actuales del comando crontab, utilice la opcin -l. Un guin (-) entre los nmeros enteros indica un intervalo de nmeros enteros. Por ejemplo, 1-4 significa los nmeros enteros 1, 2, 3 y 4. Una lista de valores separados por comas (,) especifica una lista. Por ejemplo, 3, 4, 6, 8 indica esos cuatro nmeros enteros. El valor de un nmero entero se puede omitir dentro de un intervalo si se indica a continuacin del intervalo lo siguiente /<nmero entero>. Por ejemplo, 0-59/3 puede usarse para definir cualquier minuto excepto el tercero del campo minuto. Los valores que se omiten tambin pueden utilizarse junto con un asterisco. Por ejemplo, el valor */3 puede usarse en el campo de mes para omitir el tercer mes. Los usuarios diferentes del superusuario pueden configurar las tareas cron con la utilidad crontab. La sintaxis de dicho comando es la siguiente: crontab [-u usuario] fichero crontab [-u usuario] [{-l -r -e}] -l: Lista las tareas programadas -r: Borra todas las tareas programadas -e: Edita el fichero de tareas programadas. Todos los crontabs definidos por el usuario se almacenan en el directorio /var/spool/cron y se ejecutan utilizando los nombres de los usuarios que los han creado. Para crear un crontab como un usuario distinto de root, se inicia la sesin como ese usuario y se ejecuta el comando crontab e para modificar el crontab del usuario. El fichero usa el mismo formato que /etc/crontab. Tambin puede especificarse la orden peridica a ejecutar en un fichero. Los ficheros /etc/cron.allow y /etc/cron.deny se usan para restringir el acceso al servicio cron. El formato de los dos ficheros de acceso es un nombre de usuario en cada lnea. No est permitido espacio en blanco en ninguno de los ficheros. Si existe el fichero cron.allow, tan slo se permitir a los usuarios presentes en la lista utilizar cron y el fichero cron.deny se ignorar. Si cron.allow no existe, los usuarios listados en cron.deny no pueden usar cron. El usuario root puede utilizar siempre cron. Prctica #2 El Demonio At Mientras que cron se usa para programar tareas, el comando at se emplea para programar una nica tarea en un tiempo especfico. Para poder utilizar el comando at debe estar el paquete RPM at instalado y el demonio atd en funcionamiento. La sintaxis del comando at es la siguiente: at [-f fichero] [opciones] fecha El argumento fecha puede ajustarse a cualquiera de los siguientes formatos: HH:MM Por ejemplo, 04:00 especifica 4:00 AM. nombre-mes, da y ao Por ejemplo, May 15 2004. El ao es opcional. MMDDYY, MM/DD/YY, o MM.DD.YY Por ejemplo, 011504 para el da 15 de Enero del ao 2004. A continuacin se muestran algunos ejemplos del uso del servicio at: $ at 15:50 Feb 14 > mail castano s REUNION < /dev/null > CTRL-D job 6 at 200402-14 15:50 $ atq job 6 at 2004-02-14 15:50 $ atrm 6 Aqu tenemos otro ejemplo de un comando at: [root@localhost root]# at 1700 7.7 warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh at> echo "Acurdate del cumpleaos de tu hermano!" > ~/recordatorio.txt at> <CTRL+D>

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

30

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


job 1 at 2002-07-07 17:00

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

31

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

PRACTICA GNU/REDES COMPLETO


Capitulo 1 Modelo OSI
Capa 7: La capa de aplicacin Capa 6: La capa de presentacin Capa 5: La capa de sesin Capa 4: La capa de transporte Capa 3: La capa de red Capa 2: La capa de enlace de datos Capa 1: La capa fsica

Funciones de cada capa


Cada capa individual del modelo OSI tiene un conjunto de funciones que debe realizar para que los paquetes de datos puedan viajar en la red desde el origen hasta el destino. A continuacin, presentamos una breve descripcin de cada capa del modelo de referencia OSI tal como aparece en la figura. Capa 7: La capa de aplicacin La capa de aplicacin es la capa del modelo OSI ms cercana al usuario; suministra servicios de red a las aplicaciones del usuario. Difiere de las dems capas debido a que no proporciona servicios a ninguna otra capa OSI, sino solamente a aplicaciones que se encuentran fuera del modelo OSI. Algunos ejemplos de aplicaciones son los programas de hojas de clculo, de procesamiento de texto y los de las terminales bancarias. La capa de aplicacin establece la disponibilidad de los potenciales socios de comunicacin, sincroniza y establece acuerdos sobre los procedimientos de recuperacin de errores y control de la integridad de los datos. Si desea recordar a la Capa 7 en la menor cantidad de palabras posible, piense en los navegadores de Web. Capa 6: La capa de presentacin La capa de presentacin garantiza que la informacin que enva la capa de aplicacin de un sistema pueda ser leda por la capa de aplicacin de otro. De ser necesario, la capa de presentacin traduce entre varios formatos de datos utilizando un formato comn. Si desea recordar la Capa 6 en la menor cantidad de palabras posible, piense en un formato de datos comn. Capa 5: La capa de sesin Como su nombre lo implica, la capa de sesin establece, administra y finaliza las sesiones entre dos hosts que se estn comunicando. La capa de sesin proporciona sus servicios a la capa de presentacin. Tambin sincroniza el dilogo entre las capas de presentacin de los dos hosts y administra su intercambio de datos. Adems de regular la sesin, la capa de sesin ofrece disposiciones para una eficiente transferencia de datos, clase de servicio y un registro de excepciones acerca de los problemas de la capa de sesin, presentacin y aplicacin. Si desea recordar la Capa 5 en la menor cantidad de palabras posible, piense en dilogos y conversaciones. Capa 4: La capa de transporte La capa de transporte segmenta los datos originados en el host emisor y los reensambla en una corriente de datos dentro del sistema del host receptor. El lmite entre la capa de transporte y la capa de sesin puede imaginarse como el lmite entre los protocolos de aplicacin y los protocolos de flujo de datos. Mientras que las capas de aplicacin, presentacin y sesin estn relacionadas con asuntos de aplicaciones, las cuatro capas inferiores se encargan del transporte de datos. La capa de transporte intenta suministrar un servicio de transporte de datos que asla las capas superiores de los detalles de implementacin del transporte. Especficamente, temas como la confiabilidad del transporte entre dos hosts es responsabilidad de la capa de transporte. Al proporcionar un servicio de comunicaciones, la capa de transporte establece, mantiene y termina adecuadamente los circuitos virtuales. Al proporcionar un servicio confiable, se utilizan dispositivos de deteccin y recuperacin de errores de transporte. Si desea recordar a la Capa 4 en la menor cantidad de palabras posible, piense en calidad de servicio y confiabilidad. Capa 3: La capa de red La capa de red es una capa compleja que proporciona conectividad y seleccin de ruta entre dos sistemas de hosts que pueden estar ubicados en redes geogrficamente distintas. Si desea recordar la Capa 3 en la menor cantidad de palabras posible, piense en seleccin de ruta, direccionamiento y enrutamiento. Capa 2: La capa de enlace de datos La capa de enlace de datos proporciona trnsito de datos confiable a travs de un enlace fsico. Al hacerlo, la capa de enlace de datos se ocupa del direccionamiento fsico (comparado con el lgico) , la topologa de red, el acceso a la red, la notificacin de errores, entrega ordenada de tramas y control de flujo. Si desea recordar la Capa 2 en la menor cantidad de palabras posible, piense en tramas y control de acceso al medio. Capa 1: La capa fsica La capa fsica define las especificaciones elctricas, mecnicas, de procedimiento y funcionales para activar, mantener y desactivar el enlace fsico entre sistemas finales. Las caractersticas tales como niveles de voltaje, temporizacin de cambios de voltaje, velocidad de datos fsicos, distancias de transmisin mximas, conectores fsicos y otros atributos similares son definidos por las especificaciones de la capa fsica. Si desea recordar la Capa 1 en la menor cantidad de palabras posible, piense en seales y medios.

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

32

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

El modelo de referencia TCP/IP


A medida que obtenga ms informacin acerca de las capas, tenga en cuenta el propsito original de Internet; esto le ayudar a entender por qu motivo ciertas cosas son como son. El modelo TCP/IP tiene cuatro capas: la capa de aplicacin, la capa de transporte, la capa de Internety la capa de acceso de red. Es importante observar que algunas de las capas del modelo TCP/IP poseen el mismo nombre que las capas del modelo OSI. No confunda las capas de los dos modelos, porque la capa de aplicacin tiene diferentes funciones en cada modelo. Capa de aplicacin: Los diseadores de TCP/IP sintieron que los protocolos de nivel superior deberan incluir los detalles de las capas de sesin y presentacin. Simplemente crearon una capa de aplicacin que maneja protocolos de alto nivel, aspectos de representacin, codificacin y control de dilogo. El modelo TCP/IP combina todos los aspectos relacionados con las aplicaciones en una sola capa y garantiza que estos datos estn correctamente empaquetados para la siguiente capa. Capa de transporte: La capa de transporte se refiere a los aspectos de calidad del servicio con respecto a la confiabilidad, el control de flujo y la correccin de errores. Uno de sus protocolos, el protocolo para el control de la transmisin (TCP), ofrece maneras flexibles y de alta calidad para crear comunicaciones de red confiables, sin problemas de flujo y con un nivel de error bajo. TCP es un protocolo orientado a la conexin. Mantiene un dilogo entre el origen y el destino mientras empaqueta la informacin de la capa de aplicacin en unidades denominadas segmentos. Orientado a la conexin no significa que el circuito exista entre los computadores que se estn comunicando (esto sera una conmutacin de circuito). Significa que los segmentos de Capa 4 viajan de un lado a otro entre dos hosts para comprobar que la conexin exista lgicamente para un determinado perodo. Esto se conoce como conmutacin de paquetes. Capa de Internet El propsito de la capa de Internet es enviar paquetes origen desde cualquier red en la internetwork y que estos paquetes lleguen a su destino independientemente de la ruta y de las redes que recorrieron para llegar hasta all. El protocolo especfico que rige esta capa se denomina Protocolo Internet (IP). En esta capa se produce la determinacin de la mejor ruta y la conmutacin de paquetes. Esto se puede comparar con el sistema postal. Cuando enva una carta por correo, usted no sabe cmo llega a destino (existen varias rutas posibles); lo que le interesa es que la carta llegue. Capa de acceso de Red: El nombre de esta capa es muy amplio y se presta a confusin. Tambin se denomina capa de host a red. Es la capa que se ocupa de todos los aspectos que requiere un paquete IP para realizar realmente un enlace fsico y luego realizar otro enlace fsico. Esta capa incluye los detalles de tecnologa LAN y WAN y todos los detalles de las capas fsica y de enlace de datos del modelo OSI. Comparacin entre el modelo OSI y el modelo TCP/IP Similitudes Ambos se dividen en capas Ambos tienen capas de aplicacin, aunque incluyen servicios muy distintos Ambos tienen capas de transporte y de red similares Se supone que la tecnologa es de conmutacin por paquetes (no de conmutacin por circuito) Los profesionales de networking deben conocer ambos Diferencias 1. TCP/IP combina las funciones de la capa de presentacin y de sesin en la capa de aplicacin 2. TCP/IP combina la capas de enlace de datos y la capa fsica del modelo OSI en una sola capa 3. TCP/IP parece ser ms simple porque tiene menos capas 4. Los protocolos TCP/IP son los estndares en torno a los cuales se desarroll la Internet, de modo que la credibilidad del modelo TCP/IP se debe en gran parte a sus protocolos. En comparacin, las redes tpicas no se desarrollan normalmente a partir del protocolo OSI, aunque el modelo OSI se usa como gua.

Capitulo 2
Prctica #1 Prcticas Preliminares
Comando ifconfig : ifconfig permite conocer y cambiar la configuracin de la red, ya sean tarjetas NICs, Modems, Wireless, etc. * Para cambiar la configuracin de las tarjetas de red: ifconfig eth0 213.186.xx.xx netmask 255.255.255.0 broadcast 213.186.xx.255 * Como los valores que acabamos de dar son estndar, puede simplemente teclear: ifconfig eth0 213.186.xx.xx (la mscara de red y el broadcast propuestos corresponden a una direccin de clase C) * Al reinicio de la mquina, ya que este cambio se perder. Hay que modificar el fichero: /etc/sysconfig/network-script/ifcfg-eth0 * Puede utilizar linuxconf para simplificar la tarea. * Tambin se puede desactivar una tarjeta de red : ifconfig eth0 down * Y por su puesto reactivarla: ifconfig eth0 up Uso avanzado de ifconfig Configurar una interfaz de red virtual Las interfaces de red virtuales nos sirven para tener varias direcciones IP utilizando una misma tarjeta de red, y as ofrecer servicios en cada una estas direcciones. Esto puede hacerse usando una tcnica llamada "IP Aliasing", un standard en las versiones 2.2x, 2.4.x y 2.6.x del kernel. Tambin puedes configurarlo como mdulo en el kernel (ip_alias). Cmo hacemos que funcione?, es muy

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

33

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


sencillo. Despes determinar las otras direcciones IP que necesitas configurar. Para este ejemplo utilizaremos una red local. En ste caso, la IP maestra de mi mquina es 172.16.16.1, y las direcciones IP virtuales son 172.16.16.20, 172.16.16.55, y 172.16.16.201. (Todas estas driecciones IP son privadas.). Basicamente, hay un pequeo truco para subir las nuevas direcciones IP -- usar un adaptador de red distinto.
# # # # /sbin/ifconfig /sbin/ifconfig /sbin/ifconfig /sbin/ifconfig eth0 172.16.16.1 eth0:0 172.16.16.20 eth0:1 172.16.16.55 eth0:2 172.16.16.201

Tu mquina ahora estar recibiendo peticiones para las cuatro IPs. Esto se logra creando dispositivos de red virtuales para manejar las peticiones. Ahora, esta es la forma manual de hacer las cosas, y para que nada sea omitido, siempre es sensato agregar routes.
# # # # # /sbin/route /sbin/route /sbin/route /sbin/route /sbin/route add add add add add -net 172.16.0.0 dev eth0 -host 172.16.16.1 dev eth0 -host 172.16.16.20 dev eth0:0 -host 172.16.16.55 dev eth0:1 -host 172.16.16.201 dev eth0:2

Tambien debes agregar tu gateway predeterminada de forma usual: # /sbin/route add default gw 172.16.16.39 Esto tambin puede hacerse en los archivos de configuracin. En Debian, por ejemplo, se hara agregando una nueva interfaz en /etc/network/interfaces por cada una de las Ips que quieres crear un alias.: iface eth0:0 inet static address 172.16.16.20 netmask 255.255.248.0 network 172.16.0.0 broadcast 172.16.23.255 Alternativamente, en sistemas Red Hat, se hace editando el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:0 (o cualquiera de los dispsitivos en el que quieras crear un alias):
DEVICE=eth0:0 BOOTPROTO=static IPADDR=172.16.16.20 NETMASK=255.255.248.0 ONBOOT=yes

iwconfig para las Wireless


iwconfig : a secas no dir las interfaces que tenemos. iwconfig [interface] [opcin] iwconfig wlan2: Nos dar informacin de como esta configurada la tarjeta inalmbrica (nombre de red, canal, nivel de seal, velocidad, potencia, encriptacin de wep, punto de acceso. Si es FF:FF:FF:FF:FF:FF es que no esta asociado a ninguno Nos dir la versin que utilizamos de las wireless extensions y la recomendada para nuestro interface inalmbrico. [opcin] essid Nombre_red: ejemplo: iwconfig wlan0 essid "Wireless 1" Nos servir para configurar nuestra red con el nombre que queramos o a la que queramos asociarnos. Nombre de red mode monitor: ejemplo: iwconfig wlan0 mode monitor Para sniffear trafico de redes externas. mode managed: ejemplo iwconfig wlan0 mode managed Lo que venia siendo en windows modo infraestructura mediante puntos de acceso y/o router mode ad-hoc: ejemplo iwconfig wlan0 mode ad-hoc Para conectar varios pcs sin puntos de acceso. channel numero_canal: ejemplo iwconfig wlan0 channel 6 Fijamos el canal elegido para nuestra tarjeta. Podemos tambin utilizar la frecuencia. freq ValorGhz: ejemplo iwconfig wlan0 freq 2.412G Fijamos el valor de frecuencia para nuestra tarjeta. Podemos tambin utilizar el canal . Tenemos para: canal 1= 2.412G canal 2= 2.417G canal 3= 2.422G canal 4= 2.427G canal 5= 2.432G canal 6= 2.437G canal 7= 2.442G canal 8= 2.447G canal 9= 2.452G canal 10= 2.457G canal 11= 2.462G canal 12= 2.467G canal 13= 2.472G canal 14= 2.484G rate valorvelocidad: ejemplo iwconfig wlan0 rate 11M Fijamos la velocidad en las comunicaciones para 802.11b. Podemos tambin utilizar 54M. O ponerlo en modo automtico. iwconfig wlan0 rate auto Para que la tarjeta elija la velocidad adecuada,

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

34

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


incluso iwconfig wlan0 rate 54M auto frag valorfragmentacion: ejemplo iwconfig wlan0 frag 4096 power period : ejemplo iwconfig wlan0 power period 60 Tiempo actividad la tarjeta cuando no se utiliza alguna conexin a red. Por lo tanto en modo monitor la captura de datos caera a la hora. Estas opciones puede realizarse e manera conjunta. Ejemplo: iwconfig wlan0 essid "Wireless_casa" channel 6 rate auto iwlist [interface) [opcin] Acordamos de que puedes obtener todas los argumentos posibles para este y casi todo los comandos mediante iwlist --help Igual que antes interface=wlan0, eth0 la que tengamos y salga con el iwconfig o el ifconfig. [opcin] scan: ejemplo iwlist wlan0 scan Nos mostrara informacin de todas las redes inalmbricas que nuestra tarjeta detecta. frequency: ejemplo iwlist wlan0 frequency Nos mostrara los diferentes valores de frecuencia y su correspondencia Comando route Este comando permite ver, aadir y eliminar las rutas declaradas en el la mquina. Para indicar a la mquina dnde encontrar las direcciones que no son las direcciones de la red local debe indicar la pasarela (o gateway) hacia la cual debe enviar todos los paquetes. Para ver las rutas indicar route -n (tambin netstat -nr). La opcin -n permite no visualizar la resolucin de los nombres. Para aadir una ruta por defecto: route add default gateway 192.168.0.1 (La paserela hacia la que enva todos los paquetes que no son para la red local). Para aadir una ruta hacia una mquina, indicar route add -host 195.98.246.28 gateway 192.168.0.1 (Indicar el netmask si no es una mscara correspondiente a la clase de su direccin) Para aadir una ruta hacia una red indicar route add -net 195.98.246.0 netmask 255.255.0.0 gateway 192.168.0.1 Para suprimir una de estas rutas reemplazar add por del.El gateway o pasarela corresponde la mayora de las veces a su router.

Para obtener la ruta que acaba de aadir cada vez que reinicie, situe el comando en el fichero /etc/rc.d/rc.local por ejemplo.

Comando arp ARP es el Address Resolution Protocol que se describe en el RFC 826 (http://www.faqs.org/rfcs/rfc826.html). ARP lo usa una mquina en red para averiguar la localizacin/direccin hardware de otra mquina en la misma red local. Las mquinas en Internet se conocen generalmente por sus nombres que se corresponden a direcciones IP. As es como una mquina en la red foo.com es capaz de comunicarse con otras mquinas que estn en la red bar.net. Una direccin IP, sin embargo, no puede decirte la localizacin fsica de una mquina. Aqu es donde entra ARP. Comando Traceroute La orden traceroute permite registrar la ruta seguida por un datagrama hasta un destino determinado. Su funcionamiento se basa en mensajes ICMP y en la variacin del parmetro TTL de las cabeceras IP. Averige el camino para alcanzar la mquina www.codigolibre.org, # traceroute -n www.codigolibre.org Comando ping Realiza una captura de los paquetes ICMP generados tras la ejecucin de la orden: # ping -c 4 www.codigolibre.org # ping 10.0.0.255 -b # ping -l 1500 localhost # ping -s 65500 localhost Aplica un filtro que te permita capturar nicamente los paquetes que contengan mensajes del protocolo ICMP Detn la captura cuando terminen los cuatro intentos y observa cuntos mensajes ICMP se producen, prestando especial atencin a los campos tipo, cdigo, y bytes de datos. Comando dig Dig es una herramienta (linea de comandos) disponible en prcticamente cualquier distribucin linux (aunque tambin hay alguna versin para windows) que te permite hacer consultas a un servidor dns. Dig precisa conocer la direccin IP de un servidor DNS al que consultar por defecto, direccin IP que toma del archivo resolv.conf que en Windows puedes encontrar en c:\windows\system32\drivers\etc\resolv.conf, y en sistemas GNU/Linux en /etc/resolv.conf.

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

35

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


dig . ns Obtendrs la lista de los trece super servidores dns, que debe ser la misma que la que puedes obtener en ftp.internic.net Si lo que quieres es conocer los servidores que manejan los dominios .com .net ..., dig com. NS o dig net. NS Lo mismo para paises: prueba dig es. NS o dig ca. NS Opciones dig # dig codigolibre.org +trace Similar al traceroute TCP/IP, pero para dns # dig codigolibre.org. NS Te indica los servidores dns de tu_dominio: ;; ANSWER SECTION: ignside.net. 132119 IN NS ns2.nexen.net. ignside.net. 132119 IN NS ns1.nexen.net. El primer nmero (132119) indica el TTL (tiempo de vida en cache) de la consulta # dig codigolibre.org. MX Te indica los servidores de correo (Mail e[X]change) que gestionan los mails: ; <<>> DiG 9.3.4 <<>> codigolibre.org +trace ;; global options: printcmd . 503608 IN NS G.ROOT-SERVERS.NET. . 503608 IN NS H.ROOT-SERVERS.NET. . 503608 IN NS I.ROOT-SERVERS.NET. Estan listados por orden de precedencia, los nmeros mas bajos (10, 20) primero. # dig codigolibre.org dig codigolibre.org. @dns1.nrc.ca devuelve la IP del dominio consulta los datos dns en un servidor @especifico.

La mayora de los servidores DNS estan configurados para, si no conocen la respuesta al query, encargarse ellos mismos de reformular la pregunta a otro servidor distinto. Esto se llama configuracin recurrente o amistosa (friendly, recursive). # dig -x numero_ip DNS inverso Una orden como dig www.codigolibre.org genera el siguiente resultado:
# dig www.codigolibre.org ; <<>> DiG 9.3.4 <<>> www.codigolibre.org ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12952 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.codigolibre.org. IN A ;; ANSWER SECTION: www.codigolibre.org. 8326 IN CNAME codigolibre.org. codigolibre.org. 9283 IN A 66.128.53.11 ;; AUTHORITY SECTION: codigolibre.org. 9283 IN NS ns7.dnetnoc.net. codigolibre.org. 9283 IN NS ns8.dnetnoc.net. ;; ADDITIONAL SECTION: ns7.dnetnoc.net. 83067 IN A 66.128.53.12 ns8.dnetnoc.net. 83067 IN A 66.128.53.13 ;; Query time: 2889 msec ;; SERVER: 10.0.0.1#53(10.0.0.1) ;; WHEN: Tue Jul 24 21:34:18 2007 ;; MSG SIZE rcvd: 146

Veamos la respuesta linea por linea, teniendo en cuenta que aquellas que comienzan con ; son comentarios introducidos por dig, no vienen del servidor dns: En las dos primeras lneas, dig se limita a informar de la versin del programa en ejecucin y del dominio objeto de consulta. La lnea ;; global options: printcmd se refiere a las opciones generales usadas en la consulta. Puedes evitar estas dos lineas utilizando la sintaxis de consulta dig +nocmd nombredominio.com La siguiente seccion Got Answer nos ofrece detalles de la consulta recibida, entre ellos, el nmero de respuestas recibidas, y si nos la ha dado o no una "autoridad" en dns. Las 'banderas' (flags) nos dan detalles de la consulta y respuesta: QR (Query/Response) sirve para diferenciar la consulta de la respuesta. RD (Recursion Desired), es una modalidad de la consulta, que es replicada en la respuesta con la bandera RA (Recursion Allowed), y significa que pedimos al server que si no puede resolver la respuesta por si mismo, consulte recursivamente a otro server. La aceptacin de la peticin por el server es opcional. AA significara que la respuesta es de un server autorizado. Otras flags son: TC (Truncated Response), que significa que la respuesta se ha fraccionado por ser de mayor tamao del permitido, AD (Authentic Data) y CD (Checking Disabled).

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

36

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


La tercera seccin nos da detalles de la consulta; adems como es obvio del dominio consultado, nos informa que estamos consultando en los registros A. Como ya sabemos, si indicase MX en su lugar querria decir que estamos consultando una direccin de email. IN indica que la bsqueda se realiza en el mbito de internet. Las consultas posibles que podemos hacer, comenzando por las ya conocidas son: dig codigolibre.org NS para los servidores dns (nombre) dig codigolibre.org MX para los servidores de correo dig codigolibre.org A para la ip del servidor que aloja al dominio dig codigolibre.org ANY reune las anteriores dig codigolibre.org AAAA nos indica el numero IP en ipv6 (si es que lo tiene, claro): dig www.codigolibre.org AAAA +short Comando NMAP A lo largo de todo el texto hemos ido viendo poco a poco algunas de las funciones de nmap, pudiendo comprobar que se trata de una de las herramientas de anlisis de red ms polivalentes que existen. En mi opinin, es el mejor escaneador de puertos y sistema de deteccin de fingerprint que existe hoy en da, y adems es software libre. Como ya hemos visto las distintas opciones de escaneo de nmap, no vamos a volver a hablar de ellas, pues tanto la parte tcnica como los comandos concretos de nmap ya han sido vistos. Vamos a centrarnos en el resto de funcionalidades de nmap y a ver algunos ejemplos. Verbose: Habris visto que siempre que utilizo el comando nmap aada dos parmetros: -P0 y -vv. Ya sabemos que -P0 sirve para evitar que hagamos ping al host, as que nos queda saber para qu sirve -vv. Se trata del modo detallado (verbose) de nmap, para obtener por pantalla informacin adicional acerca de las acciones llevadas a cabo y sus resultados. Usndolo una vez (-v) obtendremos informacin adicional, usndolo dos veces (-vv) obtendremos ms an, y usando -vvvvv obtendremos ms an (segn el manual de nmap, nos volveremos locos haciendo scroll en pantalla...). nmap -P0 -vv -sS xxx.xxx.xxx.xxx Rango de puertos: No siempre querremos escanear los 65535 puertos de un host... y mediante el parmetro -p podremos establecer el rango que queremos escanear y ahorrarnos tiempo. Por defecto, nmap escanea el rango 1-1024 y adems los que se encuentran definidos en /etc/services. nmap -P0 -vv -sS -p 80 xxx.xxx.xxx.xxx Uso para un puerto (80) nmap -P0 -vv -sS -p 1-1024 xxx.xxx.xxx.xxx Uso para un rango (1-1024) Puerto de origen: Si estamos detrs de un firewall o algn dispositivo que bloquea la salida de informacin desde determinados puertos, podemos especificar qu puerto queremos usar para lanzar el escaneo. nmap -P0 -vv -sS -g 6969 xxx.xxx.xxx.xxx Uso (6969) Prctica tcpdump, ifconfig y route Despus de concluir la configuracin de la red de la fundacin cdigo libre dominicana, notas surgen algunas anomalas en el intercambio de paquetes y la transferencia de datos. De que forma podras examinar el trafico que circula en la red , reportar un diagnostico completo de las anomalas ocurridas y responder el cuestionario siguiente, utilizando la herramienta tcpdump, ping y route. tcpdump src host 192.168.1.1 Capturar el trafico cuya IP origen sea 192.168.1.1? tcpdump host 192.168.1.2 Capturar el trfico cuya direccin origen o destino sea 192.168.1.2? tcpdump ether dst 50:43:A5:AE:69:66 Capturar el trfico con destino a la direccin MAC 50:43:A5:AE:69:66? tcpdump dst net 192.168.1.0 Capturar el trfico con red destino 192.168.1.0? tcpdump src net 192.168.1.0 mask 255.255.255.240 Capturar el trfico con red origen 192.168.1.0/28? tcpdump src net 192.168.1.0/28 Capturar el trfico con red origen 192.168.1.0/28? tcpdump dst port 23 Capturar el trfico con destino el puerto 23? tcpdump port 110 Capturar el trfico con origen o destino el puerto 110? tcpdump ip proto \\ip Capturar los paquetes de tipo ICMP tcpdump ip proto \\udp Capturar los paquetes de tipo UDP tcpdump udp Capturar los paquetes de tipo UDP tcpdump tcp and port 80 Capturar el trfico Web tcpdump udp and dst port 53 Capturar las peticiones de DNS tcpdump tcp and \(port 22 or port 23\) Capturar el trfico al puerto telnet o SSH tcpdump tcp and not port 80 Capturar todo el trfico excepto el web # ifconf ig -a # r oute -n De que forma podemos listar la configuracin de toda las interfaces de red Que comando utilizamos si queremos listar las tabla de enrutamiento de nuestro servido

Despus de revisar la tabla de enrutamiento determinamos que el default gw 192.168.1.7 no esta configurado, cual comando podemos utilizar para configurarlo: # route add de fault gw 1 92.168 .1.7

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

37

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


# ping 1 92.168 .1.2 # ping -b 1 92.168 .1.255 Probar la conectividad del computador con la ip 192.168.1.1 al 192.168.1.2 Realizar un ping al ip broadcast

Reglas de iptables Si deseas abrir otros puestos, slo tenis que agregar esas nuevas reglas, pero tengo direccin IP fija, como lo hago? Es muy fcil, en vez de usar masquerading, vamos a usar una solucin mejor: source NAT. Slo hay que cambiar la regla del nat (la primera en los ejemplos anteriores). Si la interfaz que tiene la IP fija es la eth0, y la IP fija es la 111.111.111.111, nos quedara: iptables -t nat -A POSTROUTING -o eth0- SNAT -to 111.111.111.111 # Habilito el SNAT iptables -A INPUT -i eth0 -p ICMP -j ACCEPT # Dejo pasar los paquetes ICMP iptables -A INPUT -i eth0 -p TCP --dport 80 -m state --state NEW -j ACCEPT # Permito conexiones al puerto 80 (HTTP) iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j ACCEPT # Permito conexiones al puerto 22 (SSH) iptables -A INPUT -p TCP -m state -state RELATED -j ACCEPT # Acepto paquetes de conexiones ya establecidas iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP # Rechazamos paquetes de conexiones nuevas iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP # Rechazamos forwarding de conexiones no establecidas Ahora quiero redireccionar las conexiones a un puerto hacia un ordenador interno de mi LAN. Esto se llama destination NAT es bastante sencillo, slo hay que poner una regla adicional. Por ejemplo, si queremos redireccionar las conexiones al puerto 80 hacia el puerto 80 de un ordenador en la red interna (192.168.0.111). iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.111:80 Otro ejemplo sencillo y muy til, redireccionar el puerto 2022 del ordenador haciendo de NAT o firewall hacia el puerto 22 (ssh) de un ordenador de la red interna. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2022 -j DNAT --to 192.168.0.111:22

Prctica #2 Prcticas Finales (Practica Numero 2) Seguridad Linux IPTABLES Escenario.- tenemos un computador personar conectado a la red de la fundacin cdigo libre dominicanos, en la cual tenemos los servicios de ssh y web corriendo. dicho equipo estn entrando persona sin autorizacin y queremos protegerlo con la siguiente caracterstica utilizando iptables. 1. todo los usuario tiene que tener accesos al servidor web. 2. le queremos dar acceso va ssh a un compaero de estudio. 3. denegar el acceso a todo el resto. De que forma podemos realizar dicha accin y con que comando podemos mostrar la configuracin actual en el pc y explique que otro mtodo tenemos para ver la configuracin de iptables. a). iptable -L -n b). Los archivo de configuracin

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

38

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux


Despus de ejecutar el comando anterior determine que funcin realizan las tres primera sentencia y explique de forma resumida la configuracin anterior. Objetivos: Configurar una Lista de Contaron de Acceso (ACL) para permitir o denegar trfico especfico. Probar la Lista de Contaron de Acceso (ACL) para determinar si se lograron los resultados deseados.

Todo esto orientado a proteger nuestro propio PC

Requisitos.- Tener un escenario (topologa) similar a la figura. Se puede usar cualquier distribucin que tenga instalado iptables. para este laboratorio utilizamos la versin iptables v1.3.3. A menos que se especifique lo contrario no hay que ejecutar los siguientes pasos en cada firewall. Iniciar una sesin local y luego ejecuto los comando de iptables como root, Nota: Borrar todas las configuracin de los servidores despus de terminar cada practica y realice este procedimiento en cada servidor asignado antes de empezar su practica. al final del documento estn los comando necesario para realizar este proceso. No es recomendable realizar configuraciones de iptables desde una sesin remota al menos que sepa lo que esta realizando. Paso 1. Probamos la conectividad
ping 192.168.1.3 ping 192.168.1.4

Paso 2. Configurar las poltica por defecto en el sistema.


iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT

Paso 3. aceptamos todo a nuestra interfaz loopback


iptables -A INPUT -i lo -j ACCEPT

paso 4. Aceptamos todo a nuestra ip


iptables -A INPUT -s 192.168.1.2 -j ACCEPT

paso 5 Aceptamos la entrada al compaero de estudio por SSH.


iptables -A INPUT -s 192.168.1.3 -p tcp dport 22 -j ACCEPT

paso 6 Abrimos el puerto 80 para el servidor de web


iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Borrar la configuraciones existente iptables -F #Esto es equivalente al borrar todo la regla uno por uno Borro la regla de una cadena. iptables -X #Borrara una cadena vacia. iptables -Z #Poner a cero los contadores de paquetes y bytes de todas las reglas de una cadena iptables -t nat -F #los mismo que la primera pero especificando al nat

Fundacin Cdigo Libre Dominicano - http://www.codigolibre.org

39

Vous aimerez peut-être aussi