Programa de Clase Diplomado-GNU-Linux

Embed Size (px)

Citation preview

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

Diciembre 2010

Cuaderno de Prcticas

Diplomado Sistemas GNUFundacin Cdigo Libre Dominicano Versin 1.0

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

1

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

CopyrightEsta 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.

PrefacioEste 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: [email protected]

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

2

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux

Capitulo 1PRACTICA GNU/BASICO COMPLETO1) 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 : ifcoconfig , ls -l /u/shman/ 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) 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/ 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

3

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux54) Mirar todas las variables del shell: a) set b) env c) echo $ 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

4

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linux123) 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

5

___________________________________________________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 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 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-Linuxignorarn. 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 /. 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>

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

30

___________________________________________________Cuaderno de Practicas Diplomado GNU-Linuxjob 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 COMPLETOCapitulo 1 Modelo OSICapa 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 capaCada 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/IPA 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 2Prctica #1 Prcticas PreliminaresComando 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-Linuxsencillo. 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 Wirelessiwconfig : 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-Linuxincluso 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-Linuxdig . 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