dardo
02/03/2008, 02:46
Como despedida de mis "apañeros" de trabajo le e editado ligeramente el profile del usuario que solemos utilizar para entrar en una máquina de QA en la que solemos operar diariamente.
Les he hecho este shell-script apañadete para que no se olviden de mi, o para que se acuerden de mi cada vez que vayan al baño.
UID=0 y GID=0 (entre otros), aunque no puede tocar los archivos de la gente seguridad lógica porque están protegidos mediante listas de acceso puede cambiar a root o a cualquier otro usuario sin necesidad de contraseña.
En mi caso se trataba de ser elegante sin ser muy bestia, porque se me puede ir la olla y cargarme alguna tabla de alguna base de datos rebotar la máquina o cualquier otra cosa semejante.
#/bin/sh
#atrapamos las señales 1(SIGHUP),2(SIGINT),3(SIGQUIT),9(SIGKILL),15(SIGTE RM),18(SIGTSTP)
trap '' 1 2 3 9 15 18
clear
stty -echo
p_magica=magica
echo " ( "
echo " /\ _)"
echo " _ _\/_ _( "
echo " ( \_.'\"\"\"\"'._.'/ "
echo " ')|''-------'/ "
echo " '\__ __.' "
echo " /___\ "
echo
echo "Escribe la palabra mágica: "
read intento
echo " "
while [ "$p_magica" != "$intento" ]
do
clear
echo " ( "
echo " /\ _)"
echo " _ _\/_ _( "
echo " ( \_.'\"\"\"\"'._.'/ "
echo " ')|''-------'/ "
echo " '\__ __.' "
echo " /___\ "
echo
echo "Escribe la palabra mágica: "
read intento
done
clear
echo "¡Has adivinado la palabra mágica!"
echo
echo "¡Que list@ eres!"
echo
stty echo
Creo que es bastante autoexplicativo. No he encontrado la manera de que sea inm une al ^Z pero el kill -9 y el ^C se la pelan bastante.
Solo quedaba darle al fichero un nombre normal...
# ls -l adivina*
-rwx------ 1 operador staff 87 Mar 1 20:16 adivina.sh
# mv adivina.sh PRUEBA2_SYBASE.LOG
# ls -la PRUE*
-rwx------ 1 operador staff 87 Mar 1 20:16 PRUEBA2_BACKUP_SYBASE.LOG
-rw-rw-r-- 1 syba1200 grpsyba 2357 Feb 16 18:23 PRUEBA3_BACKUP_SYBASE.LOG
... ponerle un usuario y grupo que no de el cante...
# chown syba1200:grpsyba PRUEBA2_BACKUP_SYBASE.LOG
# ls -l PRUEBA*
-rwx------ 1 syba1200 grpsyba 87 Mar 1 20:16 PRUEBA2_BACKUP_SYBASE.LOG
-rw-rw-r-- 1 syba1200 grpsyba 2357 Feb 16 18:23 PRUEBA3_BACKUP_SYBASE.LOG
... ponerle permisos de ejecución ...
# chmod 711 PRUEBA2_BACKUP_SYBASE.LOG
# ls -l PRUEBA2*
-rwx--x--x 1 syba1200 grpsyba 87 Mar 1 20:16 PRUEBA2_BACKUP_SYBASE.LOG
Si, lo se, un fichero cuyo nombre acaba en .LOG con permisos impares, eso da casi más el cante que si no le hubiera cambiado el nombre.
... añadirlo al .profile que está en el home del usuario ...
echo ./PRUEBA2_BACKUP_ORACLE.LOG >> .profile
(ojo que hay que usar dos > (>>) y no un solo > pues nos cepillaríamos el .profile del usuario y ahí tenemos muchos alias y variables de entorno útiles.
... y comprobar que está añadido
tail -8 PRUEBA2_BACKUP_ORACLE.LOG
(En este caso mostramos las últimas ocho líneas, pero pueden ser más o menos)
Y ahí lo tienes, cuando alguien haga un su al usuario o entre a pelo con él tendrá que aguantar una lámpara maravillosa que le solicitara la palabra mágica y si introduce una no válida seguirá insistiendo, para colmo no podrá abortar el proceso ni interrumpirlo, aunque lo puede mandar a dormir (con ^Z) o puede ser abortado por violación de segmento (eso si sabía evitarlo pero no era plan).
Hasta el siguiente capítulo de bricolinux.
Les he hecho este shell-script apañadete para que no se olviden de mi, o para que se acuerden de mi cada vez que vayan al baño.
UID=0 y GID=0 (entre otros), aunque no puede tocar los archivos de la gente seguridad lógica porque están protegidos mediante listas de acceso puede cambiar a root o a cualquier otro usuario sin necesidad de contraseña.
En mi caso se trataba de ser elegante sin ser muy bestia, porque se me puede ir la olla y cargarme alguna tabla de alguna base de datos rebotar la máquina o cualquier otra cosa semejante.
#/bin/sh
#atrapamos las señales 1(SIGHUP),2(SIGINT),3(SIGQUIT),9(SIGKILL),15(SIGTE RM),18(SIGTSTP)
trap '' 1 2 3 9 15 18
clear
stty -echo
p_magica=magica
echo " ( "
echo " /\ _)"
echo " _ _\/_ _( "
echo " ( \_.'\"\"\"\"'._.'/ "
echo " ')|''-------'/ "
echo " '\__ __.' "
echo " /___\ "
echo
echo "Escribe la palabra mágica: "
read intento
echo " "
while [ "$p_magica" != "$intento" ]
do
clear
echo " ( "
echo " /\ _)"
echo " _ _\/_ _( "
echo " ( \_.'\"\"\"\"'._.'/ "
echo " ')|''-------'/ "
echo " '\__ __.' "
echo " /___\ "
echo
echo "Escribe la palabra mágica: "
read intento
done
clear
echo "¡Has adivinado la palabra mágica!"
echo
echo "¡Que list@ eres!"
echo
stty echo
Creo que es bastante autoexplicativo. No he encontrado la manera de que sea inm une al ^Z pero el kill -9 y el ^C se la pelan bastante.
Solo quedaba darle al fichero un nombre normal...
# ls -l adivina*
-rwx------ 1 operador staff 87 Mar 1 20:16 adivina.sh
# mv adivina.sh PRUEBA2_SYBASE.LOG
# ls -la PRUE*
-rwx------ 1 operador staff 87 Mar 1 20:16 PRUEBA2_BACKUP_SYBASE.LOG
-rw-rw-r-- 1 syba1200 grpsyba 2357 Feb 16 18:23 PRUEBA3_BACKUP_SYBASE.LOG
... ponerle un usuario y grupo que no de el cante...
# chown syba1200:grpsyba PRUEBA2_BACKUP_SYBASE.LOG
# ls -l PRUEBA*
-rwx------ 1 syba1200 grpsyba 87 Mar 1 20:16 PRUEBA2_BACKUP_SYBASE.LOG
-rw-rw-r-- 1 syba1200 grpsyba 2357 Feb 16 18:23 PRUEBA3_BACKUP_SYBASE.LOG
... ponerle permisos de ejecución ...
# chmod 711 PRUEBA2_BACKUP_SYBASE.LOG
# ls -l PRUEBA2*
-rwx--x--x 1 syba1200 grpsyba 87 Mar 1 20:16 PRUEBA2_BACKUP_SYBASE.LOG
Si, lo se, un fichero cuyo nombre acaba en .LOG con permisos impares, eso da casi más el cante que si no le hubiera cambiado el nombre.
... añadirlo al .profile que está en el home del usuario ...
echo ./PRUEBA2_BACKUP_ORACLE.LOG >> .profile
(ojo que hay que usar dos > (>>) y no un solo > pues nos cepillaríamos el .profile del usuario y ahí tenemos muchos alias y variables de entorno útiles.
... y comprobar que está añadido
tail -8 PRUEBA2_BACKUP_ORACLE.LOG
(En este caso mostramos las últimas ocho líneas, pero pueden ser más o menos)
Y ahí lo tienes, cuando alguien haga un su al usuario o entre a pelo con él tendrá que aguantar una lámpara maravillosa que le solicitara la palabra mágica y si introduce una no válida seguirá insistiendo, para colmo no podrá abortar el proceso ni interrumpirlo, aunque lo puede mandar a dormir (con ^Z) o puede ser abortado por violación de segmento (eso si sabía evitarlo pero no era plan).
Hasta el siguiente capítulo de bricolinux.