Cambiate la password.
Prueba diversas combinaciones (passwords
cortas,
letras repetidas) y observa los mensajes de error.
El fichero /etc/passwd contiene los nombres de los
usuarios del sistema
e información relevante sobre ellos. Usando man passwd
averigua
su estructura.
El fichero /etc/group contiene información sobre los
grupos de usuarios del sistema. Averigua su estructura.
Escribe un script que nos diga cada usuario del sistema a
qué grupo
pertenece. Asímismo que marque aquellos usuarios cuyo shell
sea uno de los listados en /etc/shells.
Escribe un script que para cada grupo nos diga que usuarios
pertenecen
a él.
El fichero /etc/shadow contiene las passwords. Averigua su
estructura
y examínalo.
Crea un directorio (mkdir). Edita un
programa que escriba hola
en la pantalla y crea el ejecutable. Observa los permisos de los
ficheros
y del directorio.
Cambiales sus permisos usando chmod y comprueba los efectos
en cuanto acceso.
Cambia los permisos del direcotrio y de los ficheros (prueba muchas
combinaciones) y observa cómo afecta a la ejecución de
las
órdenes cd, ls, ls -l, rm, rmdir, cat, cp.
Estudia la orden umask u prueba su efecto sobre creación
de ficheros y directorios.
Suid.
Ejecuta:
cd cp /bin/bash ./mibash chmod a+s,a+x mibash chmod a+x .
Que un compañero ejecute tu
programa mibash con la opción -p.
Comprende qué pasa cuando ejecuta whoami.
Comprende qué pasa cuando ejecuta passwd.
Sal de mibash con exit y ejecuta ahora mibash sin la opción -p.
Repite las opciones anteriores y razona el comportamiento del programa.
Asegúrate que tu compañero sale del programa.
¿Por qué?. Borra mibash.
Averigua el funcionamiento de la orden su.
Usala para cambiar tu usuario al de un compañero.
Explica porqué es capaz de hacer lo que hace y escribe un
algoritmo
elemental del programa su.
Reflexiona sobre el funcionamiento de la orden passwd y esboza
su algoritmo.
Averigua como se usan las llamadas al sistema getuid
y setuid y
similares. Escribe un programa para probarlas. Estudia su
relación
con el bit SUID de un ejecutable.
¿Cómo harias un programa mibash que no tuviese el problema
con passwd del ejercicio 2?.
Segunda sesión.
Administración.
Esta práctica se hace mejor siendo root.
El comando find permite encontrar ficheros que cumplan
unas determinadas
condiciones (nombre, atributos, etc). La sintaxis simplificada es:
find pathcondiciones/acciones
Una de las condiciones es -perm que permite buscar los archivos
que tienen determinados permisos. El comando man find nos da la
ayuda necesaria para utilizarlo.
Ejecuta un comando find que nos diga todos aquellos
ficheros que
tienen el bit SUID o SGID activo, su propietario y su
localización.
Ejecuta un comando find que, para cada fichero en /usr/bin,
/bin,
/sbin, /usr/sbin, /etc, /usr/local/bin, /usr/local/sbin, nos diga
su
fecha y hora, su path completo y el resultado de ejecutar sobre
él
el comando md5sum.
Realiza un script que almacene la información relevante
del sistema
en un fichero:
Los ficheros mas importantes de configuración.
El resultado de los comandos anteriores.
Todo lo que se te ocurra.
Cuando se vuelva a ejecutar comparará esa información con
la del fichero y nos informará de las diferencias.
Escribe un programa
o script que:
Busque cuentas sin password.
Determine aquellas passwords que concidan con el username,
o con el username y un número detrás.
Determine aquellas passwords que se compongan de uno o dos
caracteres.
Copias de seguridad.
Prepara un script que haga copia de seguridad de tus datos del PC sobre
un fichero de al.nisu.org.
Prepara un script que haga copia de tus datos del PC modificados hoy
sobre un fichero de al.nisu.org
distinto para cada dia de la semana.
Prepara un script que haga copia de seguridad de tus datos del PC sobre
un fichero de al.nisu.org distinto
para cada semana del mes.
Prepara un script que haga copia de tus datos del PC modificados
hoy,
pero vía mail.
Prepara un script que haga copia de tus datos de al.nisu.org modificados hoy
sobre un fichero de al.nisu.org
(cuidado).
Explica todos los problemas de seguridad que pueden estar
presentes al
hacer copia de seguridad de un ordenador sobre otro.