logo sinuh
 

Inicio arrow Conocimiento arrow Curso GNU/Linux desde cero arrow Entrega 37. Personalización del entorno (y III).
Entrega 37. Personalización del entorno (y III). Imprimir
Por Luis García Galván   
sábado, 03 mar 2007 10:37

CURSO DESDE 0 DE GNU/LINUX. Versión 2.


Entrega 37. Personalización del entorno (y III).


		% ^How did the sex change^ operation go? 		
Modifier failed.

Seguimos con el PATH.


Otra utilidad que se puede hacer con la variable PATH es saltarnos './' para la ejecución de un ejecutable que no esté en la ruta. Para muestra:


matados2k@imperio:~$ cd curso/miscomandos/

matados2k@imperio:~/curso/miscomandos$ echo echo Hola Caracola > hola

matados2k@imperio:~/curso/miscomandos$ chmod +x hola

matados2k@imperio:~/curso/miscomandos$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

matados2k@imperio:~/curso/miscomandos$ hola

bash: hola: command not found

matados2k@imperio:~/curso/miscomandos$ PATH=$PATH:./

matados2k@imperio:~/curso/miscomandos$ hola

Hola Caracola

matados2k@imperio:~/curso/miscomandos$

Ahora hemos conseguido el comportamiento típico de ms-dos. De hecho, hay distribuciones que ya traen preparado esto. Pero personalmente, esto es algo que puede producir un agujero en la seguridad, en este caso puede que no, pero ahora veamos otro ejemplo:


matados2k@imperio:~/curso/miscomandos$ echo echo Eres marica y el culo te pica > ls

matados2k@imperio:~/curso/miscomandos$ chmod +x ls

matados2k@imperio:~/curso/miscomandos$ ls

hola lentejas ls

matados2k@imperio:~/curso/miscomandos$ PATH=./:$PATH

matados2k@imperio:~/curso/miscomandos$ ls

Eres marica y el culo te pica

matados2k@imperio:~/curso/miscomandos$


Aquí podemos observar cómo poniendo './' justo como el primero en la ruta podemos suplantar uno de los ejecutables más usados en GNU/Linux y en cualquier Unix. En este caso sólo nos han colado un mensaje muy molesto y bastante idiota.


Ahora supongamos que tenemos un scritpt que borre el disco duro desde el raíz y de forma silenciosa, probablemente si estamos desde un usuario sin permiso de root se produzca entre nada y poco daño al sistema, dado que necesita permisos.


Pero ahora supongamos que mejoras el script y lo primero que haces es comprobar si tiene permisos de root, si no es así, ejecuta 'ls' con los parámetros indicados pero si lo es hace el borrado desde '/' de forma silenciosa. Seguimos suponiendo, y supongamos que yo tengo un amigo llamado Manolito y éste tiene un ftp en el que yo puedo subir cosas, y Manolito dice que Ricky Martin es mejor que Los Mojinos Escozíos, como eso es una aberración me cabreo y le coloco el script en su ftp.


Resulta que Manolito entra en su máquina donde tiene el servidor de ftp y entra como root porque tiene que hacer tareas de mantenimiento, entra en mi directorio y ejecuta 'ls' para ver qué le he subido. Como Manolito es muy cómodo pero algo malo como administrador tenía el PATH como en el segundo ejemplo, y como resultado se ha comido un exploit que le ha borrado el disco duro de la manera más tonta posible, que es no reconocer que Los Mojinos son 'el mejón grupo' del mundo mundial.


Personalmente, y fuera de bromas, yo soy de los que prefieren './' fuera de cualquier parte de la variable PATH.


La variable PS1


Como es evidente, no voy a hablar de la Play Station, sino de una de las variables que nos van a permitir personalizar nuestro prompt para dejarla con la información que a nosotros nos guste.


Para ver la configuración que tenemos, la visualizamos:


matados2k@imperio:~$ echo $PS1

\u@\h:\w\$

matados2k@imperio:~$


Y ahora toca traducir qué es lo que hace eso, y para ello usamos la siguiente información:


  • \a carácter de campana ASCII (07)

  • \d la fecha en formato día mes día (p.ej., mar may 26)

  • \e caracter de escape ASCII (033)

  • \h el nombre del host hasta el primer «.»

  • \H el nombre del la máquina completo (FQDN)

  • \n caracter de nueva línea

  • \r retorno de carro

  • \s el nombre del shell, el nombre base de $0 (el fragmento que sigue a la última barra)

  • \t la hora actual en formato 24-horas HH:MM:SS

  • \T la hora actual en formato 12-horas HH:MM:SS

  • \@ la hora actual en formato 12-horas AM/PM

  • \u el nombre de usuario del usuario actual

  • \v la versión de bash (p.ej., 2.0)

  • \V la versión del paquete del bash, versión + patch-level (p.ej., 2.00.0)

  • \w el directorio actual de trabajo

  • \W el nombre base del directorio actual de trabajo

  • \! el número del comando actual en el histórico

  • # el número de comando del comando actual

  • \$ si el UID efectivo es 0, un #; en otro caso, $

  • \nnn el caracter correspondiente al número en octal nnn

  • \\ una contrabarra

  • \[ inicio de una secuencia de caracteres no imprimibles que pueden usarse para incrustar una secuencia de control del terminal en el prompt.

  • \] fin de una secuencia de caracteres no imprimibles


Lo primero es saber que todos los símbolos con significado especial llevan el carácter de escape '\'. Mirando la tabla traducimos que primero debe poner el nombre del usuario activo, seguido del símbolo @, el nombre del host que es el nombre de mi máquina, seguido de :, el nombre del directorio donde estoy y el símbolo final.


Ahora voy a crearme uno nuevo:


matados2k@imperio:~$ AUXILIAR=$PS1

matados2k@imperio:~$ PS1="El mejor es \u y son las \t\a :P "

El mejor es matados2k y son las 19:51:01 :P PS1=$AUXILIAR

matados2k@imperio:~$


Como veis podéis hacer muchas combinaciones y ponerlo a vuestro gusto.


La guinda del pastel


Por último vamos a ver un fichero más, ya que personalizando podríamos hacer muchas más entregas, así que decido poner fin con esto a esta serie de entregas.


Si os logueáis desde una consola sin ser bajo entorno gráfico veréis muchas veces mensajes de bienvenida parecidos a este:


Linux imperio 2.6.17-2-686 #1 SMP Wed Sep 13 16:34:10 UTC 2006 i686


The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

matados2k@imperio:~$


El fichero que contiene lo que va a mostrase como bienvenida es 'etc/motd', así que puedes poner lo que quieras y ver los cambios:


matados2k@imperio:~$ su

Password:

imperio:/home/matados2k# cd /etc

imperio:/etc# cp motd motd_copia

imperio:/etc# echo Vendo Ford Fiesta 1.1 > motd

imperio:/etc# echo En buen estado y de color rosa >> motd

imperio:/etc# echo Con resonador y ruedas de 205/35 15\" y mega alerón >> motd

imperio:/etc# echo Horteras al poder >> motd

imperio:/etc#


Y ojo, que esto lo verá cualquier usuario al entrar en la máquina, no solo tú, así que a todos les llegará mi bonito mensaje y de paso a ver si cuela:


Vendo Ford Fiesta 1.1

En buen estado y de color rosa

Con resonador y ruedas de 205/35 15" y mega aleron

matados2k@imperio:~$


Espero que si probáis a poner tonterías luego restauréis los ficheros como yo hago:


imperio:/etc# cp motd_copia motd

imperio:/etc# cat motd

Linux imperio 2.6.17-2-686 #1 SMP Wed Sep 13 16:34:10 UTC 2006 i686


The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

imperio:/etc#



Despedida.


Pues sin más me despido hasta la próxima semana, donde ya veremos si empiezo a explicar la programación de shell script. No me falléis.


Agradecimientos:

· Revisión del documento: karuchi (Carolina García).


Página oficial y dominio de mi propiedad http://matados2k.es

Matados'2k Usuario y moderador de foro.noticias3d.com

Matados'2k Usuario y moderador de www.sinuh.org

,

matados2k (arroba) gmail (punto) com


Este documento está sometido a la licencia de creative commons en su variante “Reconocimiento-NoComercial-SinObraDerivada 2.1 España” . Es de agradecer que se comunique al autor el uso de este documento en otro medio y se debe incluir de forma obligatoria este recuadro y los agradecimientos.


Comentario[s]

Sólo los usuarios registrados pueden escribir comentarios.
Por favor valídate o regístrate.

Powered by AkoComment 2.0!




© 2002-2005 SINUH - Comunidad GNU/Linux de Extremadura
Este portal utiliza Mambo
DHTML / JavaScript Tree by TwinHelix Designs

Para contactar con nosotros envía un correo a
info
Licencia Creative Commons
Los contenidos de este portal, salvo indicación en contra, están sujetos a una licencia de Creative Commons.

Los logotipos y marcas que aparecen son propiedad de sus respectivos dueños.

Las opiniones y declaraciones de las personas reflejadas en los foros y comentarios son propiedad y responsabilidad de sus autores, no identificando la opinión de SINUH y excluyendo de cualquier responsabilidad a esta asociación.
Ahora 960 visitantes
Advertisement