La Pantalla Negra II

#####################################
## HACKINDEX ##
## http://www.hackindex.org ##
#####################################
Titulo: La pantalla negra II
Autor: Lokutus
Tema: Linux

La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.

El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: http://www.hackindex.org ; y se incluya este disclaimer en su totalidad y sin modificación alguna.

Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.
#####################################

Volvemos a enfrentarnos una vez más con el dragón.

Linux Debian (Potatoe)
Login: genaro
password:
[genaro]$ _

Vamos a introducir algunas órdenes, para familiarizarnos un poco con el shell que estamos utilizando,

[genaro]$ ls
[genaro]$ pwd
/home/genaro
[genaro]$ _

Estas órdenes ya las vimos en la primera parte, si queremos repetir en cualquier otro momento algunas de las órdenes, no hace falta teclearlas de nuevo, usando las flecha de cursor arriba, podemos repetir órdenes que ya hemos tecleado anteriormente, e incluso editarlas.

Sigamos metiendo órdenes, crear directorios, borrarlos, crear ficheros, etc. Llegará un momento, en que el texto desaparezca por la parte superior de la pantalla. La consola, sólo tiene 80 columnas de ancho y 25 líneas de alto, para ver una línea que haya desaparecido, podemos usar la combinación de teclas "Mayúsculas + Retroceso de página" para ir arriba y "Mayúsculas + Avance de página" para ir hacia abajo. Si lo deseamos, podemos ejecutar dos o más órdenes en una misma línea separandolas con el punto y coma, ";"

[genaro]$ mkdir directorio ; ls ; cd directorio ; pwd
directorio
/home/genaro/directorio
[directorio]$ _

A diferencia de lo que ocurre con otros sistemas operativos orientados a caracteres, casi todos los comandos básicos que acepta el shell, son externos, o sea, programas aparte, muchos de esos programas están en el directorio /bin y otros en el directorio /usr/bin Para verlos puede hacer un ls

[directorio]$ ls /bin
arch date grep mknod
rmdir true ash dd
gtar mktemp rpm umount
……………
[directorio]$ _

En cualquier momento, cuando se tenga curiosidad acerca de qué hace un programa determinado, podemos consultar la orden "man".

[directorio]$ man ls
——————————————-
LS(1) LS(1)
NOMBRE
ls, dir, vdir – listan los contenidos de directorios
SINOPSIS
ls [opciones] [fichero...]
Opciones de POSIX: [-CFRacdilqrtu1]
Opciones de GNU (en la forma más corta):
[-1abcd­fgiklmnopqrstuxABCDFGLNQRSUX]
[-w cols] [-T cols]
[-I patrón]
[--full-time] [--format={long,verbose,com­mas,across,vertical,single-column}]
[--sort={none,time,size,extension}]
[--time={atime,access,use,ctime,status}]
[--color[={none,auto,always}]]
[--help] [--version] [--]
DESCRIPCIÓN
El programa ls lista primero sus argumentos no directorios:
————————————————

Con las teclas de cursor, nos desplazamos hacia arriba y abajo, para salir pulsar la tecla q. La mayoría de las órdenes aceptan parámetros, los parámetros especifican que cosas debe hacer un programa o como debe funcionar.

[directorio]$ cd .. ; ls -l
drwxr-xr-x 5 genaro users 1024 Jan 13 00:22 directorio
[genaro]$ _

TIP 3: Los parámetros en Unix se pasan con el simbolo "-", a diferencia del DOS que usa el símbolo "/".

Con el parámetro -l, hemos dicho a ls que liste los ficheros en formato largo, un fichero por línea, dando más información sobre ese fichero. Probad a hacer:

[genaro]$ ls -l /usr/bin
-rwxr-xr-x 1 root root 20648 Jul 30 1999 zipsplit
-rwxr-xr-x 1 root root 41 Mar 25 1999 zless
-rwxr-xr-x 1 root root 1068 Mar 25 1999 zmore
-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew
[genaro]$ _

Veremos desplazarse los ficheros rápidamente y se perderán los primeros, este es el momento para prácticar las combinaciónes de teclas "Mays + Re Pag" y "Mays + Av Pag". Al principio de cada línea, hay una información muy rara, -rwxr-xr-x, la primera letra, indica que tipo de fichero es, si es una "d" es un directorio, y si es el caracter "-" es un fichero ordinario, o sea, un programa, un fichero de texto, un fichero de sonido, un AVI, etc. Si volvemos a hacer un ls -l, vemos que efectivamente, el fichero "directorio" que hemos creado con anterioridad, es un directorio.

[genaro]$ ls -l
drwxr-xr-x 5 genaro users 1024 Jan 13 00:22 directorio
[genaro]$ _

Vemos en la tercera columna, la palabra "genaro", o sea, dice que lo hemos creado nosotros, y como pertenecemos al grupo de trabajo "users", el fichero también pertenece al grupo "users". La siguiente columna, 1024, indica el tamaño del fichero, observa el listado de /usr/bin. luego viene la fecha y la hora, y por último el nombre del fichero. Pero volvamos a la primera columna.

-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew

Sobre el fichero órdinario znew, hay unos permisos de lectura y escritura, vemos que el fichero, pertenece a "root" y es de un grupo de usuarios llamado "root". Quitamos el primer caracter, que nos dice que tipo de fichero es, y separamos los demás caracteres en bloques de tres.

rwx r-x r-x

El primer bloque, se aplica sobre el usuario propietario, en este caso "root", el segundo bloque sobre el grupo propietario, también "root" y el último bloque, a todos los demas. El propietario del fichero, "root", puede leer "r" , puede escribir en el "w", incluido el borrado, y puede ejecutarlo como programa, "x". En nuestro caso, como no somos "root" y somos de otro grupo, "users", se aplica el tercer bloque, podemos leer el fichero, y podemos ejecutarlo, pero no podemos sobrescribirlo, ni borrarlo, ni hacer ninguna modificación. Esto es una seguridad básica del sistema operativo, en una máquina en la que existan varios usuarios trabajando al mismo tiempo, ninguno podrá modificar los programas ni los ficheros para meter troyanos ni bromas. Supongamos que alguien escribiera un virus para Linux, y lo ejecutamos trabajando como "genaro", el virus tendría nuestros permisos y no podría borrar los ficheros importantes.

[genaro]$ ls -l /etc/shadow
-r——– 1 root root 745 Dec 22 02:01 /etc/shadow

El fichero /etc/shadow, contiene los passwords de los usuarios, y sólo lo puede leer el usuario "root". Otro parámetro de ls, es el parámetro -a, con -a listamos también los ficheros ocultos

[genaro]$ ls -a . .gftp
.twmX8Fmri .. .gimp
.user.rdb Directorio
[genaro]$_

Hay más ficheros ocultos, pero se han omitido por comodidad, los ficheros ocultos en Unix son los que empiezan con un punto, normalmente suelen ser ficheros de configuración. De esos ficheros, hay dos, el fichero "." y el fichero ".." que son directorios, "." es el directorio en el que estamos y ".." es el nivel superior, o directorio padre.

TIP 4: Cuando usamos más de un parámetro, normalmente se pueden agrupar con un único simbolo "-"

[genaro]$ ls -alF

Siguiendo con el tema de los parámetros, el shell del sistema operativo, no mete a los programas los parámetros tal y como nosotros se los damos, tiene que mirar si existen unos caracteres especiales llamados metacaracteres. Un metacaracter, es el símbolo "*", cuando pasamos un asterisco como parámetro a un programa, el sistema operativo lo sustituye por los nombres de todos los ficheros que existen en el directorio.

[genaro]$ cd directorio
[directorio]$ touch fichero1
[directorio]$ touch fichero2
[directorio]$ cd ..
[genaro]$ mkdir dir2
[genaro]$ touch fichero3
[genaro]$ touch fichero4
[genaro]$ touch fichero5
[genaro] ls *
fichero3 fichero4 fichero5
directorio:
fichero1 fichero2
dir2:
[genaro]$ _

La órden ls * en nuestro caso, equivalía a "ls directorio dir2 fichero3 fichero4 fichero5". El caracter asterisco, naturalmente también se puede usar como comodín de varios caracteres.

[genaro]$ ls *.txt

Otro metacaracter es el símbolo "?" que sustituye a un caracter.

[genaro]$ ls fichero?
fichero3 fichero4 fichero5

Para más información se puede consultar "man bash". La semana que viene, Mario Brosh

  • Share/Bookmark

No hay posts relacionados.

Etiquetas: , , , ,

Deja un comentario

Tienes que iniciar sesión para escribir un comentario.