jueves, 15 de diciembre de 2016

Prácticas I. Sistemas Operativos. Videos Parte II.

VPN con openVPN, PPTPD Y openSSl.

Aquí os dejo unos buenos vídeos sobre VPN realizados por el grupo5 (Carolina, Alberto y Javier T.) de 2º de ASIR, curso 2016-2017.

Vídeo VPN con openVPN y openSSL.
Vídeo VPN con pptpd.

Explicación de VPN, utilidades y ejemplos

viernes, 9 de diciembre de 2016

Prácticas I. Sistemas Operativos. Videos Parte I.

Diretorio Activo.

La realización de las prácticas y sus vídeos correspondientes han sido realizados satisfactoriamente por todos los alumnos de 2º curso de ASIR del Colegio Salesiano "San Jose", en el mes de noviembre del 2016.

Los vídeos completos de las prácticas, podéis verlos en youtube, como así os lo indique vía twitter.

En esta entrada os dejo los vídeos básicos y fundamentales, para la instalación del Diectory Active, creando un dominio raiz de un bosque, un subdominio , otro subdominio bajo el anterior y un RODC, todo en Windows Server 2012. Los vídeos están realizados magistralmente por Javier P.

Enlace al enunciado de las prácticas.Prácticas I Sistemas Operativos. Curso 2016-2017 http://ssooasir.blogspot.com.es/2016/12/practica-i-sistemas-operativos-2-curso.html

Ejemplos de Tablas I.

Ejemplos de tablas.

viernes, 25 de noviembre de 2016

Solución procesos fork() I

Solución del ejercicio propuesto en la entrada procesos fork() I del 6 de octubre de 2015. Esta solución se obtiene sobre linux Ubuntu 10.04 en una máquina virtual de VirtualBox, sobre ordenadores con procesadores intel core i5 con windows 8.1 pro.

Atención este ejercicio tiene el mismo árbol de procesos que el fork() II, pero en la ejecución en este caso los nietos se quedan huérfanos porque en el código no hay un segundo wait(). Como se ha ejecutado sobre Ubuntu 10.04 los proceso huérfanos pasan a ser hijos del proceso 1, en las versiones siguientes, no pasan a ser hijos del proceso 1.

viernes, 4 de noviembre de 2016

Solución Runlevel I. Linux.

Solución al ejercicio planteado de Runlevel Linux el 20 del 10 de 2016. Realizado en Ubunutu.

  1. En etc/init.d/ creamos inicios.sh
    • date>>/home/alumno/historia.txt
    • cat /dev/null>/home/alumno/.bash_history # eliminamos el historial de comandos del usuario
  2. A continuación creamos el enlace simbólico:
    • ln -s /etc/init.d/inicios.sh /etc/rc2.d/S99inicios.sh
    • # Observar que hemos puesto la ruta absoluta, que lo incluimos en el nivel 2 (de arranque)
    • # La S de start y el 99 del orden de orden o prioridad de ejecución
  3. Hacemos el segundo script historial.sh en /etc/init.d
    • cat /home/alumno/.bash_history>>/home/alumno/historial.txt
    • # Añadimos al fichero creado anteriormente "historial.txt" el historial de comandos del usuario en esa sesión
  4. Creamos los enlaces simbólicos del script historial.sh, en los niveles de apagado 0 y de reinicio 6.
    • ln -s /etc/init.d/historial.sh /etc/rc0.d/S99historial.sh
    • ln -s /etc/init.d/historial.sh /etc/rc6.d/S99historial.sh

También se podría utilizar el fichero /etc/rc.local en Ubuntu o el fichero /etc/rc.d/boot.local en Suse.

martes, 25 de octubre de 2016

Ejemplo HTML5 II

Queremos realizar una web lo mas parecido posible a esto. Utilizando HTML5 y CSS3.

lunes, 24 de octubre de 2016

Ejemplo HTML5.

Queremos realizar una web lo más parecido posible a esto.

Sencillo fichero CSS

jueves, 20 de octubre de 2016

Runlevel Linux.

El root quiere saber cuantas veces el usuario "usuario" se conecta al ordenador y lo que hace. Cada vez que apague el sistema, se tiene que almacenar en un fichero accesible solo por el root las horas y fechas de inicio y solo los comandos ejecutados por el usuario en esa sesión.

martes, 4 de octubre de 2016

Solución procesos fork() II.

Solución del ejercicio propuesto en la entrada procesos fork() II del 8 de octubre de 2015. Esta solución se obtiene sobre linux Ubuntu 14.04 y debian 8.6 en una máquina virtual de VirtualBox, sobre ordenadores con procesadores intel core i5 con windows 8.1 pro.

Solución Procesos fork() III.

Solución del ejercicio propuesto en la entrada procesos fork() III del 12 de octubre de 2015. Esta solución se obtiene sobre linux Ubuntu 14.04 y debian 8.6 en una máquina virtual de VirtualBox, sobre ordenadores con procesadores intel core i5 con windows 8.1 pro.

1º Ejercicio.

2º Ejercicio.

Solución proceso fork()IV.

Solución del ejercicio propuesto en la entrada procesos fork() IV del 27 de noviembre de 2015. Esta solución se obtiene sobre linux Ubuntu 14.04 y debian 8.6 en una máquina virtual de VirtualBox, sobre ordenadores con procesadores intel core i5 con windows 8.1 pro.

sábado, 27 de agosto de 2016

Scripts VIII.

Ejercicios sencillos para repasar conocimientos de cara al examen de este septiembre.

  1. Realiza un programa que pida un texto y nos devuelva ese mismo texto sin vocales y el número de las distintas vocales que ya no se muestran del texto que has introducido.
  2. Realiza un script que pida una serie de números y te diga cuál es el mayor, el menor, la suma y la media, de todos ellos.
  3. Realiza un script que te muestre los grupos a los que pertenece un usuario que le pases por teclado.
  4. Realiza un script que me compruebe cada hora que no se ha desmontado ningún sistema de ficheros. En caso contrario que apague el sistema.

miércoles, 15 de junio de 2016

Scripts VII.

Ejercicios propuestos en la prueba 10-6-2016

  1. Realiza un script que utilice dos números enteros como argumentos y deben devolverse todos los números enteros del intervalo formado por los dos números. El programa debe comprobar que se pasan sólo 2 números y que el segundo es mayor que el primero, en caso contrario mostrar mensaje de error.
  2. if test $# -ne 2 –a $1 –lt $2

    then

    echo “ Perdona pero introduce solo dos números y el segundo mayor que el primero”

    else

    for (( i=$1; i<=$2;i++))

    do

    echo “$i”

    done

    fi

  3. Guión que devuelva los enlaces duros que hay en el directorio actual.
    1. find . –type f –links +1 ¡cuidado! los enlaces duros sobre enlaces blandos no salen
    2. ls -li | tail –n +2|sort -k1 -n -r > fichero

      cont=`ls –li|tail –n +2|wc –l`

      while [ $cont -gt 0 ]

      do

      var1=`head -"$cont" fichero | tail -1 |tr -s " " | cut -d" " -f1`

      conti=`expr $cont - 1`

      var2=`head -"$conti" fichero | tail -1 | tr -s " " | cut -d" " -f1`

      if [ $var1 -eq $var2 ]

      then

      head -"$cont" fichero | tail -1 | tr -s " " | cut -d" " -f10 > enlaces

      fi

      cont=`expr $cont - 1`

      done

      cat enlaces

    3. Arrai=(`ls –li|sort –k1 –n –r`|tr –s “ “ “ “|cut –d “ “ –f1`)

      For((i=0;i<${#arrai[*]}; i++))

      Do

      Cont=0

      For((j=0;j<${#arrai[*]}; j++))

      Do

      if [ ${arrai[$i]} –eq ${arrai[$j]}

      then

      Cont=$(($cont+1))

      fi

      Done

      if [ $cont -gt 1 ]

      then

      echo “enlaces duros encontrados”

      find . –inum $i

      fi

      done

  4. Realiza un script que compruebe cada 15 minutos, la carga media del procesador en esos 15 últimos minutos y que envíe un mensaje al terminal /pts/5 en el caso de que la carga supere más del 20%. (el 20% es simbólico, nos referimos a una carga cualquiera).

    creamos el script: carga.sh

    v=`cat /proc/loadavg|cut -d" " –f3`

    entero=$(echo "$v/1"|bc) otra forma de hacerlo entero=`echo "$v*100"|bc|cut -d"." -f1`

    if [ $entero -gt 20 ] siguiendo la anterior forma if [ $entero -gt 2000 ]

    then

    echo aviso $entero >>/dev/pts/5

    fi

    En el crontab -e

    */15 * * * * ./root/carga.sh

  5. EL archivo /etc/login.defs contiene muchos comentarios y líneas en blanco, haz un guion para ver las líneas que no son comentarios o líneas en blanco (los ajustes de configuración real).

    grep -Ev /etc/login.defs '^$|^#'

  6. Realiza un script que me devuelva el nombre de los procesos que realmente están ejecutándose.

    c=(`ps -eo stat -o pid|grep "R"|tr -s " " |cut -d" " -f2`)

    for v in ${c[*]}

    do

    ps aux|grep $v|tr -s " "|cut -d" " -f11

    done

  7. Realiza un shell-script que pida por teclado el nombre de un usuario y nos diga si está o no conectado al sistema. Si está conectado que me indique el número de procesos que tiene en el sistema.

    echo –n nombre de usuario

    read usuario

    var=`who|grep –w $usuario`

    if [ $? –eq 0 ]

    then

    n=`Ps aux |grep "^usuario" |wc –l` también ps –u $usuario|wc -l

    echo el usuario $usuario está conectado y tiene $n procesos

    else

    echo el usuario $usuario no está conectado

    fi

viernes, 3 de junio de 2016

miércoles, 1 de junio de 2016

Solución prácticas II.

  1. Varias posibilidades:
    • find / -perm -o+t 2>/dev/null
    • find / -perm -o=t 2>/dev/null
    • find / /perm /o+t 2>/dev/null
  2. ls -ld /var/tmp
  3. su user1 mkdir carpeta1 touch fichero1
  4. su user2 mkdir carpeta2 touch fichero2
  5. no, porque el directorio /var/tmp tiene el sticky bit, que hace que sólo el propietario pueda borrar los ficheros.
  6. su user1 cd mkdir ayuda
  7. man more>moreman man less>lessman (no estamos dentro de ayudas)
  8. tar -cvjf fichero.tbz moreman lessman.
  9. tar -tjf fichero.tbz
  10. stat fichero.tbz
  11. tar -xjvf /home/user1/ayudas/fichero.tbz
  12. su - y como root cd /home/user1/ chmod o+t ayuda o chmod +1000 ayuda
  13. Varias posibilidades:
    • cat /etc/passwd|cut -d":" -f1,3| grep -E -v "1[0-9][0-9][0-9]|root"|cut -d"," -f1
    • cat /etc/passwd| cut -d":" -f1,3|grep -E -v "[0-9]{4}|root"|cut -d"," -f1
    • aún así, con las anteriores soluciones, puede que en algunas distribuciones se muestren cuentas como el nobody con UID 65534
    • cat /etc/passwd| grep -E -v –w “/bin/bash”
  14. ejecutar: lastlog (te muestran todos los usuarios del sistema incluso los que nunca han accedido) lastb (los usuarios que han cometido un error al logarse) last (usuarios que se han conectado).
  15. lastb | grep "Fri"|tr -s " " | cut -d" " -f1|sort -k1 -u
  16. lastb|grep -c 'user1'
  17. cat /etc/group | grep users|cut -d: -f4:|tr "," " "|wc -w
  18. cat /etc/group|grep -E -v '[0-9]{4}' | sort -t: -k3 -n
  19. find . -type l

lunes, 30 de mayo de 2016

Prácticas II. Linux

  1. Busca directorios que tengan el sticky bit.
  2. Muestra los detalles de /var/tmp.
  3. Crea dentro del directorio anterior y con user1 un fichero y un directorio.
  4. Haz lo mismo con user2.
  5. ¿Puede el user1 borrar lo que ha hecho user2?
  6. Crea en el directorio de trabajo de user1 un directorio llamado ayudas.
  7. Crea un fichero con la ayuda del comando more y otro del comando less.
  8. Crea un fichero tar comprimido utilizando bzip2 con los ficheros anteriores.
  9. Muestra el contenido del fichero.tbz.
  10. ¿Qué muestra el comando stat fichero.tbz.
  11. Extrae el contenido del fichero tar en el directorio ayudas.
  12. Establece el permiso sticky bit al directorio ayudas.
  13. Muestra los usuarios del sistema que no pueden logarse.(excepto el root)
  14. Diferencias entre lastlog, lastb y last.
  15. ¿Quién no ha conseguido conectarse el viernes?.
  16. ¿Cuántas veces ha fallado user1 al conectarse.
  17. ¿Cuantos usuarios tiene el grupo comun, creado en la entrada anterior?.
  18. Muestra los grupos de los usuarios del sistema (los que no se pueden logar), ordenados.
  19. Busca los enlaces simbólicos de tu directorio de trabajo.

miércoles, 25 de mayo de 2016

Gestión de usuarios en Linux, III parte.

  1. Tienes (crea) 3 usuarios, juan que pertenece al grupo nominas, pedro que pertenece al grupo personal y luisa que pertenece al grupo almacén.
  2. De forma temporal los 3 usuarios tendrán esta mascara rw-r-----, es decir, cada vez que creen un fichero esa será su máscara.
  3. Estos tres usuarios necesitan trabajar en un proyecto conjunto. Se acercan al administrador para solicitar un directorio compartido en el que puedan trabajar juntos, pero que nadie más pueda acceder a sus archivos. Como administrador tienes que hacer lo siguiente:

  4. Crea un nuevo grupo llamado comun.
  5. Agrega juan, pedro y Luisa al grupo común.
  6. Haz un nuevo directorio llamado /home/común.
  7. Haz que el grupo propietario del directorio /home/común sea el grupo comun.
  8. Concede al directorio común los permisos:rwxrwx---.
  9. Analiza la situación:
    • ¿los 3 usuarios pueden acceder al directorio común?.
    • ¿Y crear archivos?.
    • Cada usuario creará un archivo.
    • ¿Cómo son los detalles de los archivos que crean los usuarios(ls -l)?.
    • ¿Pedro y Luisa, pueden hacer algo con los archivos de juan?¿por qué?.
  10. Piensa las formas que puedes utilizar para solventar esta situación.
  11. Ten en cuenta que podrías tener muchos ficheros. Realiza la solución mas eficiente, agrega el permiso setgid, al directorio.
  12. Cada usuario creará un nuevo fichero.
  13. ¿Cómo son ahora los detalles de los archivos creados?.
  14. ¿Pedro y Luisa, pueden hacer algo con los archivos de juan?

jueves, 12 de mayo de 2016

Gestión de usuarios en Linux, II parte.

  1. Comprueba en los fichero oportunos de tu distribución Linux si:
    • ¿Te crea un directorio de trabajo por defecto?.
    • ¿ Tiene la característica UPG, (Grupo Privado de Usuario)?
  2. Crea un usuario "pepe" sólo con las opciones por defecto que traiga tu distribución.
  3. Ponle una contraseña.
  4. Comprueba la correcta creación del usuario.¿En que ficheros has mirado?
  5. Si tu distribución no creara el directorio /home/pepe, realiza todas las acciones necesarias para que el usuario "pepe" pueda trabajar en ese directorio.
  6. Comprueba otra vez, la correcta creación del usuario.
  7. Crea otro usuario, "juan", con uid 1111, que pertenece también a los grupos "pepe" y "lpadmin", como comentario "Juan Pérez", su directorio de trabajo /home/juan se tiene que crear, tendrá un grupo principal con el mismo nombre en el que se incluirá.
  8. Comprueba la correcta creación del usuario. De todas las formas.
  9. Muestra los grupos a los que pertenece "juan".
  10. ¿Y si sólo quieres saber el número de grupos a los que pertenece "juan"?
  11. Crea un grupo de nombre "principal", no standar.
  12. Comprueba su correcta creación.
  13. Haz que el grupo "principal" se convierta en el grupo principal del usuario "pepe".
  14. Comprueb aque lo has hecho bien.
  15. El usuario "pepe" también tiene que estar en el grupo "pepe"..
  16. Y en el grupo "lpadmin". ¿De cuantas formas puedes hacerlo?
  17. Obliga al usuario "pepe" que la 1ª vez que se logue. cambie la contraseña.¿De cuantas formas puedes hacerlo?.
  18. Bloque al usuario "juan" de todas lsa formas que sepas.
  19. Haz los cambio oportunos en el fichero adecuado, para que cada vez que crees un usuario se cree el directorio de trabajo por defecto del usuario.
  20. Desbloquea la cuenta del usuario "juan".
  21. Haz que "juan" tenga una cuenta válida hasta el 22 de junio,que no pueda cambiar la contraseña en la 1ª semana, y que luego la tenga que cambiar cada 20 días.
  22. Comprueba que los cambios se han realizado.
  23. Muestra las entradas de "pepe" y de "juan" en el sistema.¿Y si ejecutas lastb?
  24. Haz las modificaciones oportunas en el fichero adecuado para que solo "juan" pueda utilizar el "sudo".

martes, 19 de abril de 2016

Prácticas I. Linux

Primera toma de contacto con la shell de linux.

  1. Estás en tu directorio de trabajo, ejecuta los comandos ls y alias interpretarlos.¿Por qué crees que se muestran en color?. ¿Qué pasa si ejecutas \ls?
  2. Sitúate en el directorio /etc/X11. Muéstrame el contenido del directorio de forma detallada, ordenado por tamaño.
  3. Muéstrame el contenido del directorio de forma detallada, ordenando por tamaño pero esta vez utiliza la báscula h
  4. Muéstrame el contenido del directorio de forma detallada, ordenado por fecha de modificación.
  5. Averigua que báscula tienes que utilizar para mostrarme el contenido del directorio, ordenado por fecha de modificación más detallada (minutos, segundos).
  6. ¿y si quiero los anteriores ejercicios en orden inverso?
  7. ¿Qué diferencia hay entre los siguientes comandos?
    1. echo /etc/c*
    2. ls /etc/c*
    3. ls -d /etc/c*
  8. Muestrame sólo los ficheros(archivos o directorios) del directorio etc con 4 caracteres. Busca información en los manuales oportunos. Pista glob, comodines, wildcards.
  9. Muestrame sólo los ficheros(archivos o directorios) del directorio etc que comienzen por a o b o c o d.
  10. ¿que hace esto? " cp /etc/hosts ~ "
  11. Comprueba que se ha hecho correctamente, si es así borra el fichero copiado.
  12. ¿que hace esto? " cp -v /etc/hosts ~ /hosts.copia"
  13. Comprueba que se ha hecho correctamente, si es así borra el fichero copiado.
  14. Si vuelves vuelves a realizar el comando cp anterior se sobreescribe.¿Cómo puedes evitar la sobreescritura?. Pon un ejemplo de cada una de las 2 formas.
  15. Averigua que hace cp -p /etc/hosts ~
  16. Mueve el archivo copiado al directorio videos con el nombre hosts.copiado.
  17. Cambia el nombre del archivo por el de equipos.
  18. ¿Cómo puedo averiguar si un comando es un alias?. ¿Y todos los alias que tengo?
  19. ¿Qué diferencia hay entre which y whereis?
  20. ¿Puedes localizar el fichero equipos?.

sábado, 16 de abril de 2016

Continuación unidad didáctica 1.

Presentación de las actividades de enseñanza y aprendizaje de la unidad didáctica 1. Linux, Instalación de un Sistema Operativo en red.

jueves, 14 de abril de 2016

Algoritmos de planificación 2.

Solución a los algoritmos propuestos en la entrada Algoritmos de Planificación del 18-10-2015.


Atención:en el instante 3, en la cola 2, no es BF, como es obvio, es una errata(F no llega hasta el instante 6), lo correcto es BE.

Nos vigilan y no es broma.

Vídeo sobre la vigilancia que sufrimos diariamente sin darnos cuenta

¿Verdaderamente sabemos lo que estamos haciendo cuando damos nuestros datos? ¿y cuando instalamos apps en el móvil?

martes, 5 de abril de 2016

viernes, 25 de marzo de 2016

iSCSI Target Windows 2012R2

En este vídeo se explica de forma clara y sencilla como crear un servidor iSCSI Target en Windows 2012R2

martes, 15 de marzo de 2016

Vídeo de motivación. Víctor Küppers.

Fenomenal vídeo que se nos ha presentado esta tarde en las buenas tardes. Muy apropiado para estas fechas donde comenzamos la asignatura..., el módulo más importante del ciclo, la FCT, "Formación en Centros de Trabajo", la mejor entrevista que un empresario os podrá hacer, y recordar: conocimiento, habilidad y ACTITUD.

jueves, 18 de febrero de 2016

Scripts VI

  1. Realiza un script que copie todos los archivos con extensión .sh y .exe del directorio actual al directorio pasado como argumento. Si el directorio no existe o no es un fichero, se debe crear y si existiera un error a la hora de la copia no debiera aparecer.
  2. Realiza un script que elimine todos los procesos generados por las aplicaciones que se pasan como argumento. Comprueba que haya algún argumento.
  3. Realiza un script que copie todos los archivos modificados hoy de un usuario pasado como argumento a un directorio también pasado como argumento. Si el directorio no existe o no es un fichero, se debe crear y si existiera un error a la hora de la copia no debiera aparecer.

lunes, 15 de febrero de 2016

Scripts V

Más ejemplos para programar.

Ejercicios propuestos en algunos exámenes.

  1. ¿Recuerdas el comando "dd"?,pues realiza un guión en el que puedas introducir el nombre y el tamaño y me cree un fichero de esas caracteristicas.
  2. Realiza un script que me ordene la lista de palabras que le pasamos por la entrada estándar, como parámetros, pero si una de ellas es "invertir" me invertirá la ordenación.
  3. Realiza un script que me muestre un "usuario" aleatorio del sistema.Utiliza un array y RANDOM.
  4. Modifica el anterior script para que no te muestre deamon. Comprobar que el usuario que te ha dado aleatoriamente esta ahora en el sistema.
  5. Realiza un script que liste los nombres de login, el directorio propio del usuario y el interprete de comandos, de todos los usuarios(no deamon) ordenados alfabéticamente por nombre.Este cayó en el examen del 24-2-2015.

domingo, 7 de febrero de 2016

Scripts IV.

Más ejemplos para programar.

Ejercicios propuestos en algunos exámenes.

  1. Realiza un script que me muestre un menú, que me permita realizar las siguientes operaciones (con funciones) con todos los números pasados como argumentos:
    1. Suma.
    2. Media.
    3. Mayor.
    4. Menor.
    5. Factorial, del primero.
    6. Resta, del primero y el último, siempre que se pueda.
  2. Realiza un script que me cree un array y utilizando funciones me lo rellene de números y los muestre.
  3. Realiza un script que muestre la longitud de cada elemento de un array.
  4. Realiza un script que muestre el % de ocupación de los sistemas de ficheros (/dev/sd*) y escriba un mensaje en el fichero $home/log/infocupacion cada vez que realice una comprobación si la ocupación de alguno de ellos es superior al 90%. Realiza las operaciones necesarias en el sistema para que se compruebe cada día laboral, cada dos horas, a partir de las 8:00 hasta las 20:00 horas.

martes, 26 de enero de 2016

VPN en Linux.

Vídeo que se muestra la creación de una red virtual privada, VPN, utilizando un servidor Linux Ubuntu y accediendo desde clientes Windows y Linux.