RM e-zine numero 10

[ http://www.raza-mexicana.org ]

El pecado es el milagro del infierno

"Es inviolable la libertad de escribir y publicar escritos sobre cualquier materia. Ninguna ley ni autoridad puede establecer previa censura, ni exigir fianza a los autores..."

Constitucion Politica de los Estados Unidos Mexicanos


Advertencia

Raza Mexicana es una  revista  electronica  que  trata  sobre  temas  relacionados  con  la  informatica  en  general,  computacion subterranea, hacking, cracking,  telefonia  y  cualquier  tema  que  tenga  que  ver  con  la  tecnologia.  Esta  revista  es  solo  una publicacion  que  se  basa en el derecho de libertad de expresion del territorio mexicano, ni los autores de los respectivos articulos aqui expuestos, ni el editor,  se  hacen  responsables  de  la  informacion  que  reflejan  ni  del  mal uso de la misma. Los articulos incluidos son propiedad de sus respectivos escritores.  No  se  deje  al  alcance de los  ni~os, puede  contener  piezas  peque¤as, dejese en un lugar fresco, el abuso de  este  producto  puede  ser  nocivo  para  la salud.  Alimentate  sanamente,  come  frutas  y verduras =PpPPp


-[ GRUPO OFICIAL ]-----------------------------------------------------------------------------------------------------------------[ Raza Mexicana Hackers Team ]

                                                  (        alt3kx_H3z       )--> ( alt3kx_h3z@raza-mexicana.org )

                                                  (        DeadSector      )--> ( deadsector@raza-mexicana.org )

                                                  (        dr_fdisk^           )--> ( dr_fdisk@raza-mexicana.org )

                                                  (        Nahual             )--> ( nahual@raza-mexicana.org )

                                                  (        Fatal                )--> ( fatal@raza-mexicana.org )

                                                  (        Yield                )--> ( yield@raza-mexicana.org )

                                                  (        Yo_Soy            )--> ( yo_soy@raza-mexicana.org )

                                                  (         Vlad                )--> ( vlad@raza-mexicana.org )

Esta revista se basa en el derecho de libertad de expresion

Disponible en: http://www.raza-mexicana.org
E-mail:            raza-mexicana@bigfoot.com
Distribucion:
http://www.vanhackez.com
http://www.ezkracho.com.ar/raza
http://www.zine-store.com.ar

                       Producto Mexicano - Made in Mexico

Tabla de Contenidos

                                                     ( 00-> Editorial ................................................... ]-( Editor )--

                                        ( 01-> Linux 'rulz', pero ... y Windows? ................. ]-( Yield )--

                                        ( 02-> Protector Telefonico ................................... ]-( DarkSide )--

                                        ( 03-> Analisis de Ws_ftp ..................................... ]-( Yo_Soy )--

                                        ( 04-> Tutorial de Emacs ...................................... ]-( Nahual )--

                                        ( 05-> Seguridad en Linux/Unix ............................. ]-( Satan )--

                                        ( 06-> El Mundo de los Routers Cisco .................... ]-( dr_fdisk^ )--

                                        ( 07-> Servicios Prodigy Web de Telmex ................ ]-( Vlad )--

                                        ( 08-> Robo de Cuentas de ICQ ............................. ]-( Stele )--

                                        ( 09-> Microsoft Windows Share Passwords ........... ]-( Yo_Soy )--

                                        (10-> Sobrepasando Firewalls 101 ......................... ]-( 0x90 )--

                                        (11-> Anarquia: Bombas ....................................... ]-( psiconauta )--

                                        (12-> Prodigy Turbo: Los Costos Escondidos ......... ]-( KUMA )--

                                        (13-> Personal Communications Services (PCS) ..... ]-( Yo_Soy )--

                                        (14-> Oda a una Vida ........................................... ]-( Fatal )--

                                        ( 15-> Hoy 2 de Julio ............................................ ]-( Fatal )--

                                        ( 16-> Contacto: llaves PGP .................................. ]-( RMHT )--

                                        ( 17-> Programa TKE ......................................... ]-( Vlad )--

                                        ( 18-> Despedida ................................................. ]-( RMHT )--


-00-( Editorial )-------------------------------------------------------------------------------------------------------------------------------------------------------------RM-10]

-----[ Editor ]--------------------------------------------------------------------------------------------------------------------------------[raza-mexicana@bigfoot.com]

Hola, de nuevo estamos aqui, despues de muchos contratiempos (y han sido varios) pero demostramos que Raza Mexicana sigue y seguira por mucho tiempo mas. Durante largo tiempo el sitio estuvo caido, pero ahora  ya  todas  las  secciones  se  encuentran  activas.

Supongo que tambien se dieron cuenta de cambios en los integrantes del grupo, algunos han decidido retirarse temporalmente. Ademas  a  partir  de  ahora  la  revista  sera  publicada  en  HTML (en nuestra pagina) por lo que si alguno de los articulos aqui expuestos contienen imagenes, la unica forma de verlos sera remitirse a nuestro sitio -> www.raza-mexicana.org

Como  siempre,  aceptamos  articulos  para  la  publicacion  en esta  revista,  solo que ahora nos veremos un poco mas estrictos, deberan  tener  por  lo menos  una  longitud de  15  a  20  kb  y  de preferencia que tengan buena ortografia ;). Los temas para  los articulos pueden ser varios, desde Informatica General, Leyes, Anarquia, Cracking, Hacking, Hardware, Electronica, Programacion, etc.

Supongo  que  alguno  de  uds vio en la television como la televisora Tv Azteca hace referencia a los hackers como *cyber piratas* *piratas informaticos*  y  hasta  *cerrajeros virtuales*  XDDD. Con estas expresiones solo desmuestran su ignorancia (o sera por lo que le paso a su pagina?), ademas hace poco en esta misma cadena televisiva, en el programa TKE realizaron un programa donde el tema era "Hackers" y mostraban a varios  muchachos con  paliacates cubriendose  la cara, con lentes y  gorra  para  evitar  ser reconocidos =P, que por cierto solo crea mala fama del verdadero termino Hacker, pero bueno, asi es Mexico.


-01-( Linux 'rulz', pero... y Windows? )----------------------------------------------------------------------------------------------------------------------------RM-10]

-----[ Yield ]--------------------------------------------------------------------------------------------------------------------------------------[yield@raza-mexicana.org]

Durante los ultimos dos a~os en los que he gozado la fortuna de usar Internet, asi como el IRC, he notado que el crecimiento de la poblacion de usuarios de Linux ha tenido un crecimiento sorprendente y no solo eso, sino que ademas su fidelidad  en  el  uso  de este  Sistema  Operativo,  asi  como  sus equivalentes, llamese  FreeBSD,  Solaris, o  inclusive  Unix  es cada dia mas fuerte, en algunos  casos  son  tan  fanaticos  que  reaccionan  con agresividad  ante  cualquier  mencion   de  palabras  como  "Windows", "Microsoft", "Office", "mirc", etc. O sea, cualquier palabra que tenga que ver o que implique el uso de algun programa de Microsoft Corp.

Como nota adicional y personal, soy un Lic. en Administracion (general), desde peque~o me atrajeron los temas relacionados con la Informatica y principalmente con la Seguridad en Sistemas de Informacion y no me refiero al "hacking", aun no sabia siquiera de la existencia de esa palabra; en mi trabajo soy un Administrador de Sistemas, con otras funciones variadas, claro esta, en ningun trabajo se le asigna a una persona una sola funcion. Tengo experiencia laborando en el area de sistemas desde aproximadamente 1995, tengo 20 a~os y creanlo o no yo tambien uso Windows.

Bien  retomando  el  tema,  el  uso  que  le  doy  a  Windows, en sus diferentes versiones, NT Server, Workstation, 95/98 es de aproximadamente 18 horas al dia, dejando solo un par de horas al uso de Linux, el cual uso principalmente los fines de semana.

Ahora bien, por que es que uso tanto windows? Por facilidad de uso? claro que si!, Por facilidad de configuracion? Tambien!, Por que  con  solo  dar  un  par  de  clicks  al  mouse obtengo lo que con Linux tal vez me llevaria una hora? Por supuesto!. Imaginen si usara Linux tanto como Windows, todos, absolutamente todos  en el trabajo, en cualquier departamento, de cualquier nivel me estarian preguntando cada 5 minutos sobrealgo, nunca terminaria  de  responderles,  nunca  terminaria  de  corregir  los  diversos   problemas  que  existen en  la  empresa,  jamas  terminariamos  nuestros  respectivos  trabajos,  y  por que? solo  por  que  al Administrador de Sistemas se le ocurrio meter Linux en todas las maquinas cuando ya todas las personas saben usar Windows.

Mi punto es el siguiente, en mis cinco a~os que llevo trabajando en el area de computo y antes de que comenzara a pensar como Lic. en Administracion, siempre fui de la idea de que por que, siendo que existia un product novedoso,  tan rico  en ventajas,  tan completo, tan mejorado, tan actual, por que no se me autorizaba implementarlo? por que el "Jefe" era tan cerrado y preferia seguir con lo mismo, por que no usar este nuevo paquete de contabilidad en vez del actual, por que no poner este Star Office en  vez  de aquel Office 97 Profesional, por que no usar Linux con Gnome o KDE en vez de usar  Windows,  por  que  preferian  seguir  en  la misma linea? Acaso mis ideas no eran buenas? Acaso creen que no se de lo que hablo? Ustedes  que  opinarian de  mi  "Jefe"?

Pues ese es sin duda el sentimiento y de una persona que se desvive por las computadoras, las nuevas tecnologias, estar a la vanguardia, etc. Pero, por que no pensamos ahora en el punto de vista de un Gerente o de un Director General? creo que en esto tambien puedo opinar ya que mi actual trabajo me pide mucho de ese punto de vista.

Veamos este ejemplo:

El  gerente  del  departamento  de  credito  y cobranza de la Tienda de Aranceles X le pide a su igual del area de sistemas que le mande a un tecnico por que tiene problemas con el Office 97, el gerente de sistemas envia a un tecnico a resolverle  el  problema, este tecnico  es  un  joven  que  pasa  toda la noche conectado a IRC, que usa bitchX, que odia el modo grafico y que solo usa la consola  y  se  la  pasa  "hackeando"  su  linux,  al momento  de  llegar a la oficina del gerente de credito y cobranza y evaluar el problema, le sugiere el cambiar su "asqueroso" Microsoft Office 97 por el StarOffice 5.1a de Sun Microsystems  corriendo  en  un RedHat 6.2 y bajo KDE. Ustedes que creen que diria el gerente? un hombre de 40 a~os, contador, que para el, el crear una  tabla en excel es algo que tardo 6 meses en dominar aun con practica diaria. Pues claro que les dira que no!! y no importa las  razones que les den tanto a el como a su jefe directo, ambos diran que no.

Y esto es por que ustedes no importa cuan inteligentes sean, no pueden decirle a una persona de tal edad que cambie algo que le costo la mitad de un a~o en dominar solo por que a ustedes no les parece usar Windows. Imaginen el costo que eso implica, entrenamiento, comprar hardware compatible, perdida de rendimiento en el analisis de tiempo/trabajo, y ademas la incomodidad de las personas que ya estan acostumbradas a escribir memorandums en Word.

Esto es solo dentro del plano "funcional" de la organizacion para la que trabajen, ahora  un  ejemplo  mas  profundo,  supongamos que ustedes solo quieren cambiar el  servidor  ya  existente,  un  Windows  NT 4.0 por un FreeBSD, en esta situacion tienen  mas probabilidades de que los dejen, pero se enfrentaran a un  reto  mayor, a  un  reto  al que  todos  se  estan  enfrentando  hoy  dia, creanme, todos, en cualquier empresa, por que lo he visto, el reto de hacer que Linux o equivalentes y Windows "trabajen  juntos", si, se que suena repulsivo, pero como ya les dije, el punto de vista de un ing. en sistemas o carrera afin  no es el  mismo  que  el punto de vista de un Licenciado en carreras como contaduria, administracion, derecho, comunicaciones, etc, etc, etc.

Este punto es por lo que Linux no ha tenido el crecimiento que podria  haber  tenido  ya,  si  la  comunidad  "Linuxera"  pensara  en trabajar en conjunto con Windows, tendrian mas exito de penetracion en las empresas, eso es lo que, aunque no les guste, llevo a Microsoft Windows al estandar que  es  hoy,  la compatibilidad  y  se deletrea  C-O-M-P-A-T-I-B-I-L-I-D-A-D.  Ya  existen muchos proyectos que desean contribuir a que esta utopia se realice satisfactoriamente, Wine, VMWare, WinLinux2000, Cygwin entre otros.

Algunos son para intercambiar datos entre Linux y Windows, otros para exportar aplicaciones de una plataforma a otra, creanme, a mi me han ayudado mucho por sus licencias GNU/GPL y a otros  administradores  de  sistemas tambien. Asi  que  si  lo  que realmente desean es que Linux crezca como el gigantezco Sistema Operativo que es dejen de decir "Linux rulz, Windows sux" y mejor digan "La interoperabilidad y el intercambio de  informacion,  el  aprovechamiento  de  los  recursos  de  mi  empresa  y  la optimizacion de los mismos rulz", y eso no quiere decir que lleguen gritando "reemplazemos windows por linux", eso quiere decir que trabajen con lo que tienen y de ser posible lo mejoren.

Pero sobre todo, no se cierren, quitense esa mentalidad de linuxeros ultra, por que nadie, en ningun lugar la necesita, no importa que tan genio y elitista sea....


-02-( Protector Telefonico )--------------------------------------------------------------------------------------------------------------------------------------------RM-10]

-----[ DarkSide ]-----------------------------------------------------------------------------------------------------------------------------------[darkside@forward.com]

La preocupacion cada vez es mayor por el llamado "pirateado" de los telefonos, ¨Como evitar que nuestras conversaciones sean escuchadas en una extension cunando no deseamos eso?, ¨Como saber si existe alguna extension clandestina en nuestra linea telefonica, caracterizando una operacion de espionaje?

Una manera de mantenernos seguros es evitar que funcione cualquier tipo de extencion cuando el principal este en funcionamiento.

El circuito es extremadamente simple, operando como una carga artificial que es activada cuando ocurre la alteracion de la tension de la linea telefonica por el levantamiento del audiocular y en ese caso, el telefono enmudecere (al ser conectada la conexion "pirata").

Segun podemos ver por el circuito principal, tenemos dos diodos zener en  este  circuito.  El  primero  conectado  en  la  base  del transistor hace que este transistor conduzca y por lo tanto, aplique toda la tension de la linea en  el  segundo,  cuando  la  tension fuera mayor que 18v, el transistor no es polarizado y el aparato se comporta como circuito abierto. El uso  de  los  4  diodos  hace que no haya necesidad de observar la polaridad de la conexion en la linea telefonica cuando conectamos el aparato. El aparato es conectado en serie con la linea, de modo que al intercalarse el conector ya tenemos esta conexion, sin problemas.

* LISTA DE MATERIALES

Semiconductores:

Q1-BC547-transistor NPN

D1,D2,D3 y D4-1N4002-diodos de silicio

DZ1-3V3 x 400mW-diodes zener

Dz2-18V x 400mW-diodo zener

* El Resistor R1 ( 47k? ) es opcional, pudiendo ser necesario en los casos en que note inestabilidad de funcionamiento.


-03-( Analisis de Ws_ftp )---------------------------------------------------------------------------------------------------------------------------------------------RM-10]

-----[ Yo_Soy ]------------------------------------------------------------------------------------------------------------------------------[yo_soy@raza-mexicana.org]

+-----{ Introduccion ----------------------

La otra vez, me puse a pensar y divagar sobre el metodo el cual utiliza el  Ws_ftp  para guardar los passwords de los sitios en los cuales se opta por usar la opcion 'Save password'. Hablando en terminos de seguridad, es una muy mala opcion por el riesgo que esto pueda traer, con el simple hecho de que alguien pudiera obtener el archivo  en  el  cual  los  passwords  son guardados, seria capaz de suplantar la identidad del usuario real e ingresar al sitio.

Ws_ftp es un cliente para Windows de John A. Junod y es distribuido por la empresa Ipswitch (www.ipswitch). Para la creacion de este articulo se utilizo la version de WS_FTP32 951130. Al terminar el articulo seriaz capas de romper algunos passwords de manera manual y/o realizar un programa que crackeara los passwords.

+-----{ Ws_ftp.ini --------------------

Para empezar, el programa guarda las sesiones de ftp y los passwords en el archivo ws_ftp.ini, el archivo esta compuesto (generalmente) de la siguiente manera (esto puede variar dependiendo de la configuracion del sitio) :

[Nombre_perfil]

HOST=www.hostname.com

UID=usuario

PWD=password

DIR=/directorio_inicial

PORT=puerto

PASVMODE=0

COMMENT=comentario

Asi, por ejemplo si tuvieramos la session guardada de un sitio (por ejemplo www.sistema.com.mx):

[Sistema]

HOST=www.sistema.com.mx

UID=admin

PWD=736A7577697267 <----- Password encriptado

PASVMODE=0

Supongamos que obtenemos el ws_ftp.ini de alguna persona, solamente pegamos la zona del sitio al cual deseamos ingresar en nuestro propio ws_ftp.ini y al ejecutar nuestro programa, vemos que el sitio tiene su propio perfil ;). Y con los passwords, solo que hay un problema, no sabemos cual es, pues en el cuadro de password sale sombreados con asteriscos. Facilmente podemos ver este password con algun programa que muestre los caracteres que han sido cambiados por asteriscos y tendremos el password en texto plano.

Para los flojos, esto debe bastar, pero si tu quieres saber un poco mas sobre el metodo que es utilizado para guardar los passwords, sigue leyendo.

+-----{ Rompiendo el password -------------------------------

Antes que nada, debo confesar que no estoy familiarizado con ingieneria inversa y con la criptografia (supongo que algunos conocimientos en esta area podria hacer esto mas sencillo), asi que si no te gusta como lo hago, no sigas leyendo =P.

El programa utiliza para cifrar los datos un metodo de sustitucion de la cadena por caracteres numericos aumentando el valor de estos a medida que el numero de caracteres en la cadena crece.

--[ Tabla de caracteres

= 20     1 = 31     B = 42     S = 53     d = 64     u = 75

! = 21    2 = 32     C = 43     T = 54     e = 65     v = 76

" = 22    3 = 33     D = 44     U = 55     f = 66     w = 77

# = 23    4 = 34     E = 45     V = 56     g = 67     x = 78

$ = 24    5 = 35     F = 46     W = 57     i = 68     y = 79

% = 25   6 = 36     G = 47     X = 58     h = 69     z = 7A

& = 26    7 = 37     H = 48     Y = 59     j = 6A     { = 7B

' = 27      8 = 38     I = 49      Z = 5A     k = 6B     | = 7C

( = 28     9 = 39      J = 4       A [ = 5B   l = 6C     } = 7D

) = 29     := 3A       K = 4       B = 5C     m = 6D     ~ = 7E

* = 2A     ; = 3B      L = 4C     ] = 5D     n = 6E     | = 7F

+ = 2B    < = 3C     M = 4D     ^ = 5E     o = 6F

, = 2C     = = 3D     N = 4E     _ = 5F     p = 70     ¥ = FFFFFFD1   

- = 2D     > = 3E     O = 4F     ` = 60     q = 71     ¤ = FFFFFFF1

. = 2E     ? = 3F      P = 50     a = 61     r = 72

/ = 2F     @ = 40     Q = 51     b = 62     s = 73

0 = 30     A = 41      R = 52     c = 63     t = 74

Bueno, creo que con eso basta. Si quieres tenerlos todos tendras que hacerlo tu, bueno, veamos como se guarda el password.

+++++ CREANDO UN PASSWORD EJEMPLO:

Supongamos que deseamos ver el password encriptado de la palabra 'raza'.

---> Ok, primero separamos cada caracter de la palabra de una en una:

r a z a

---> Sustituimos el valor de cada letra por su correspondiente, tomando

en cuenta los valores de la tablita de arriba:

r = 72

a = 61

z = 7A

a = 61

---> Que nos da como resultado:

72 61 7A 61

---> Tomando en cuenta que a partir de la segunda posicion se va aumentando

el valor de cada caracter de 1 en 1, asi:

 

C+0,C+1,C+2,C+3... <-- Donde 'C' representa el valor de cada caracter

de la tabla de arriba.

 

72 61 7A 61 quedaria:

 

72+0 61+1 7A+2 61+3

^----------- 7A + 2 = 7C

(al caracter 'A' le aumentamos 2 lo cual nos da como resultado C, asi: A+1 = B, A+2 = C, A+3 = D ... hasta la F)

---> Resolviendo nos da como resultado:

72 62 7C 64

---> Quitamos los espacios y nos da como resultado:

72627C64

Lo cual es el password cifrado y que funciona, y si no me crees has una cuenta en tu sistema y pruebalo.

+++++ OBTENIENDO EL PASSWORD A PARTIR DEL PASSWORD CIFRADO.

Si tomamos en cuenta el aumento de cada valor, podemos obtener el password original, si restamos el valor a~adido. Para mayor claridad, tomemos el mismo ejemplo: 72627C64

---> Separamos el password en pares, recordando que a cada par le corresponde un caracter:

72627C64                                     72 62 7C 64

Original                                         Separado

---> Restamos de uno en uno cada valor (a partir del segundo par) asi por ejemplo:

0 1 2 3 <-- Posicion que vamos a restar

72 62 7C 64

| | | |-- (64-3) = 61

| | '----- (7C-2) = 7A

| '-------- (62-1) = 61

'----------- (72-0) = 72

---> Que nos da como resultado: 72 61 7A 61

---> Ahora si podemos obtener los caracteres reales:

72 = r

61 = a

7A = z

61 = a

El password es 'raza' =).

Que tal si rompemos otro para mayor distraccion ;), tomamos el de arriba del ejemplo del perfil 'Sistema'

[Sistema]

HOST=www.sistema.com.mx

UID=admin

PWD=736A7577697267 <----- Password encriptado

PASVMODE=0

Ok, entonces separamos de dos en dos y queda: 73 6A 75 77 69 72 67 Hacemos la resta y va:

0       1      2     3     4     5     6    <- Posicion

73   6A   75   77   69   72   67   <- Restamos

73   69   73   74   65   6D   61   <- Resultado

73 69 73 74 65 6D 61 <- Resultado que vamos a sustituir con la tablita s i s t e m a <- Password en texto plano!!!

Aqui hay algo que no he mencionado, los valores van como sigue:

60   61   62   63   64   65   66   67   68   69   6A   6B   6C   6D   6E   6F   70   71   72 ... 79   7A

Si te fijas, los valores de los caracteres en lugar de ir directamente del 69 al 70 va 69, 6A..6F, 70..79, 7A..7E esto quiere decir que si tenemos '72' y le restamos '5' el resultado en lugar de ser '67' va a ser '6D', asi que OJO!.

Hay otra cosa a tomar en cuenta:

Cuando hay una "¤" que vale FF FF FF F1 las posiciones se sustituyen con los valores correspondientes a cada caracter en la posicion, excepto la posicion donde se encuentra la "¤" el cual vale FF.

asi

¤ = FFFFFFF1

ni¤o = 6E6AFF72

pero si la '¤' va al final de la cadena esto queda asi:

a¤a¤a = 61FF63FFFFFFF4

si separamos '61FF63FFFFFFF4' en pares podremos notar que:

                             . - - -  ¤                   
   a   ¤  a     ___  | ___                       FFFFFFF4 el cual corresponde al valor de la
   61  FF  63  FF  FF  FF  F4               segunda ¤ que ocupa la cuarta posicion:
                                              (FFFFFFF1 +3 = FFFFFFF4)


-04-( Tutorial de Emacs )----------------------------------------------------------------------------------------------------------------------------------------------RM-10]

-----[ Nahual ]--------------------------------------------------------------------------------------------------------------------------------[nahual@raza-mexicana.org]

TUTORIAL DE EMACS

-----------------------------------------

PARa LOs QUe ESTAMOs HASTa La MADRe De VI

-------------pOR nAHUAL------------------

Derechos Reservados (c) 1985 Free Software Foundation, Inc Ver condiciones, y otra informacion importante, al final de este texto Traduccion al Espa~ol del documento original Este es el Tutorial de Emacs v. 20.2.1

* INTRODUCCION ---------------

Nota  introductoria:  Ver  "Haciendo este tutorial el default"  hacia  el final de este texto. Los comandos en Emacs por lo general incluyen el uso de la tecla CONTROL (conocida a veces como Ctrl) o la tecla META (conocida a veces como Alt). En este texto los abreviaremos de la siguiente manera:

C-<car>     significa mantener presionada la tecla CONTROL mientras oprimimos un caracter <car>. Por ejemplo, C-f seria:                  mantener presionada la tecla CONTROL y oprimir la letra f.

M-<car>     significa mantener presionada la tecla META mientras oprimimos un caracter <car>. Si no hay una tecla META, se                   puede presionar y soltar la tecla ESC, y despues oprimir un caracter. Nos referiremos a la tecla ESC asi: <ESC>

Nota que al usar la tecla ESC, en lugar de una autentica tecla META (como Alt), no debemos mantenerla presionada. Esto es porque la tecla ESC es un caracter en si, no es una tecla de modificacion como CONTROL, META, o SHIFT, por ejemplo.

Importante!

- Los caracteres ">>" al margen izquierdo indican algo que pueden probar ustedes mismos. Por esto, para usar este tutorial al maximo es necesario abrirlo con Emacs, no solamente darle una leida con algun otro editor.

-Para finalizar la sesion hay que usar C-x C-c (Dos caracteres, y no necesitan soltar la tecla Ctrl).

>> Ahora, presiona C-v (Ver siguiente pantalla) para seguir con la pantalla siguiente (Manten presionada la tecla CONTROL mientras oprime la tecla v). Haz esto de ahora en adelante para ver el resto del documento.

Lo primero  que  hay que  aprender  es  como  moverse  de un lugar a otro dentro del texto. Ya sabes como desplegar la pantalla siguiente, con C-v. Para desplegar la pantalla anterior solo es cosa de usar M-v (manten presionada la tecla META y oprime v. Si no tienes tecla META, usa <ESC>v, oprimiendo la tecla ESC y despues oprimiendo la tecla v).

>> Trata de usar M-v y C-v varias veces, para acostumbrarte.

En la mayoria de los teclados ahora posible reemplazar comandos CONTROL y META  que  controlan  el  cursor,  con  el uso de Page Up, Page Down, Home, End, Insert, Delete, y las flechas. Pero es recomendable usar los comandos CONTROL y META de cualquier forma, por las razones siguientes:

1) Funcionan con cualquier tipo de terminal

2) Asi uno practica el uso de Emacs. Ademas de que usando estos comandos suele ser mas rapido, porque no hay que mover las manos a otra seccion del teclado.

3) Si uno se acostumbra a usar estos comandos, sera mas facil aprender a usar otros comandos, de control de cursor, mas avanzados.

* RESUMEN ----------

Los siguientes comandos son utiles para observar las paginas de un texto: C-v Ver siguiente pantalla, M-v Ver pantalla anterior ,C-l Posicionar el cursor al centro de la pantalla y redesplegar el documento  alrededor  del  mismo.  (Es CONTROL-L no CONTROL-1) >> Encuentra el cursor y fijate que texto esta cerca de el. Ahora usa C-l. Encuentra el cursor de nuevo y observa que ese mismo texto esta en el centro de la pantalla.

* CONTROL BASICO DEL CURSOR ----------------------------

Es util poder moverse de pantalla en pantalla. Pero como moverse a un lugar especifico dentro del texto? Existen varias manera de hacer  esto.  La  forma  mas  basica  es  usando C-p, C-b, C-f,  y  C-n.  Cada  uno  de  estos  comandos mueve el cursor una fila o una columna en una direccion particular dentro de la pantalla. La tabla siguiente muestra estos comandos y la manera en que mueven el cursor.

                                                                            Linea Previa, C-p

                                                                                    :

                                                                                    :

                                                Atras, C-b .... Current cursor position .... Adelante, C-f

                                                                                    :

                                                                                    :

                                                                        Linea Siguente, C-n

Las letras tienen un significado en particular, en ingles. P es Previous, N es Next, B es Backward, y F es Forward.
Nota: En teclados modernos es posible, y mas facil, reemplazar C-p, C-b, C-n, y C-f con las flechas que controlan el cursor.

>> Da algunos C-n para bajar a esta linea.

>> Mueve el cursor dentro de la linea usando C-f y despues sube usando C-p. Observa lo que ue sucede cuando el cursor esta enmedio de la linea y haces C-p

Cada linea de texto tiene un caracter que significa "Nueva-Linea". Es como cualquier otro caracter, pero en lugar de que lo veamos, como veriamos una letra, por ejemplo, lo que hace es separar cada linea en el texto.

>> Coloca el cursor al principio de una linea. Haz C-b y el cursor se colocara al final de la linea anterior, que es donde se encuentra el caracter Nueva-Linea

C-f haria lo mismo, moviendose del final de una linea al principio de la linea siguiente.

>> Usa C-b varias veces, y despues regresa al final de la lineacon C-f. Haz C-f una vez mas para mover el cursor al principio de la linea siguiente.

Cuando te mueves mas alla de la parte de arriba o abajo de la pantalla, la pantalla va a moverse. Esto se conoce como scrolling. Asi podemos mover el cursor para arriba o para abajo sin necesidad de cambiarnos completamente de pantalla.

>> Mueve el cursor mas alla de la pantalla con C-n, y observa lo que sucede.

Si resulta muy lento mover el cursor caracter por caracter, puedes moverlo palabra por palabra con M-f (hacia adelante) y M-b (hacia atras).

>> Presiona M-f y M-b varias veces.

Cuando estas en medio de una palabra, M-f mueve el cursor al final de esa palabra, Cuando estas al final de una palabra, o en el espacio en blanco entre dos palabras, M-f se mueve al final de la palabra siguiente. M-b funciona igual, pero en direccion contraria.

>> Muevete usando M-f y M-b, incluyendo algunos C-f y C-b. Observa como funcionan M-f y M-b cuando el cursor se encuentra en diferentes lugares dentro y entre palabras.

Nota el paralelismo entre C-f y C-b por un lado, y M-f y M-b por otro. Generalmente los caracteres META actuan sobre unidades de lenguaje (palabras, oraciones, parrafos), mientras que los caracteres CONTROL actuan sobre unidades independientes de lo que se este editado(lineas,caracteres,etc.)  

Este pararelismo se ve entre lineas y oraciones: C-a y C-e se mueven entre el principio y el final de una linea, y M-a y M-e se mueven entre el principio y el final de una oracion.

>> Prueba un par de C-a y despues un par de C-e Prueba un par de M-a y un par de M-e

Se puede ver que el uso repetido de C-a no hace nada. Pero el uso repetido de M-a nos sigue moviendo a otras oraciones. Esto muestra que los comandos no son completamente analogos, pero no deja de ser natural este funcionamiento.

El lugar donde se encuentra el cursor se conoce como "point" (punto). Por lo tanto, se puede decir que el cursor indica donde "point" se encuentra dentro del texto.

Esto es un resumen de comandos usados para controlar el cursor:

C-f Moverse adelante un caracter

C-b Moverse atras un character

M-f Moverse adelante una palabra

M-b Moverse atras una palabra

C-n Moverse a la linea siguiente

C-p Moverse a la linea anterior

C-a Moverse al principio de una linea

C-e Moverse al final de una linea

M-a Moverse al principio de una oracion

M-e Moverse al final de una oracion

>> Prueba esos comandos algunas veces, para practicar. Son los mas usados.

Otros dos comandos importantes que controlan el cursor son M-<, que mueve el cursor al principio del documento, y M->, que mueve el cursor al final del documento.

En la mayoria de las terminales, los simbolos ">" y "<" estan encima de la coma, por esto es necesario oprimir tambien la tecla SHIFT. Es decir, M-SHIFT-<, o de lo contrario estariamos usando "M-," (M-comma).

>> Presiona M-< para ir al principio de este tutorial. Despues presiona C-v varias veces para regresar aqui.

>> Presiona M-> para ir al final de este tutorial. Despues presiona M-v varias veces para regresar aqui.

La mayoria de los comandos en Emacs aceptan un argumento numerico; para la mayoria de los comandos, esto sirve para repetir el comando un determinado numero de veces. Para dar este argumento al comando, hay que oprimir C-u  seguido  de  los  digitos deseados, antes de usar el comando.

Si se tiene una tecla META disponible, hay una alternativa: mantener presionada la tecla META mientras escribimos el numero. Es recomendable aprender el metodo C-u, porque funciona en cualquier terminal.

Por ejemplo, C-u 8 C-f movera el cursor 8 caracteres hacia adelante.

>> Prueba usando C-n o C-p con un argumento mumerico, para mover el cursor a alguna linea cercana con un solo comando.

La mayoria  de  los  comandos  usan el argumento numerico como contador, para repetir el comando. Pero algunos comandos lo usan de manera diferente. C-v y M-v son algunas excepciones.  El  argumento hace que muevan la pantalla completa ese numero lineas. C-u 4 C-v moveria la pantalla completa 4 lineas para arriba.

>> Prueba C-u 8 C-v ahora.

Esto debio haber causado que la pantalla se moviera 8 lineas para arriba. Para volver la pantalla a donde estaba, se le puede hacer C-u 8 M-v, por ejemplo.

Si estas usando X-Window, se puede usar la barra de al lado, para examinar el texto usando el mouse.

>> Usando el mouse, oprime alguna seccion dentro de la barra. Dependiendo a que altura se oprimio la barra, el texto subira o       bajara a una altura determinada.

>> Dejando presionado el mouse sobre el boton que esta dentro de la barra, trata de mover el texto. La pantalla subira y bajara correspondientemente.

* CUANDO EMACS ESTA CONGELADO ------------------------------

Si Emacs deja de responder a los comandos, puede usarse el comando C-g para pararlo. Puede usarse C-g para detener algun comando que este tardando demasiado en ejecutarse. Tambien es  posible  usar  C-g para  descartar un argumento numerico o cancelar un comando que has decidido no ejecutar despues de todo.

>> Presiona C-u 100 para usar un argumento numerico de 100. Despues C-g. Ahora presiona C-f. El cursor solo se movera un caracter, puesto que el argumento numerico fue cancelado con C-g.

Si presionaste <ESC> por error, puede cancelarse con un C-g.

* COMANDOS DESHABILITADOS --------------------------

Ciertos comandos en Emacs estan deshabilitados para que principiantes no los usen por accidente. Si se presiona uno de estos comandos, Emacs presenta un mensaje diciendo que comando es, y dando la opcion de cancelar o ejecutar ese comando. Si en verdad se desea correr ese comando, es cuestion de presionar la barra espaciadora. En caso contrario, es cosa de oprimir la tecla "n".

>> Oprime <ESC> : (es un comando deshabilitado) Oprime la letra "n" para cancelar.

* VENTANAS -----------

Emacs puede tener varias ventanas, cada una con su propio texto. Mas adelante explicare como usar ventanas multiples. Pero por lo pronto solo aprenderemos como deshacernos de ventanas extras, para tener una sola. Es facil:

C-x 1 (Una sola ventana: matar las demas)

Es decir, CONTROL-X seguido del digito 1. C-x 1 expande la ventana donde se encuentra el cursor, para ocupar la pantalla completa. Quita las demas ventanas.

>> Pon el cursor en esta linea y haz C-u 0 C-l

>> Haz C-h k C-f Observa como la ventana original se achica, dando lugar a otra mas, la cual contiene informacion sobre el comando CONTROL-f

>> Usa C-x 1 para hacer desaparecer esa ventana

* INSERTANDO Y BORRANDO ------------------------

Para insertar texto, solo escribe el texto. Caracteres que son visibles, como 5, K, $, etc. son considerados como texto por Emacs, y son insertados inmediatamente. Presiona la tecla <Return> para insertar un caracter Nueva-Linea.

Se puede borrar el ultimo caracter escrito presionando la tecla <Delete>, la cual es una tecla en el teclado llamada a veces "Del". En muchos casos, la tecla <Backspace> sirve como <Delete>, pero no siempre.

La tecla <Delete> borra el caracter justo antes del cursor en ciertos sistemas; en otros borra el caracter justo despues.

>> Escribe algunos caracteres ahora, y borralos presionando <Delete> o <Backspace>, el que de el resultado deseado. No te preocupes por cambiar este archivo. Si este tutorial esta definido como el default, esto no alterara el archivo original. Esto es tu copia personal.

Cuando una linea de texto es demasiado grande para caber en la pantalla, esta linea sera continuada en una segunda linea. Un simbolo de continuacion, el backslash (""), indica que la linea ha sido continuada.

>> Inserta texto hasta llegar al margen derecho de la pantalla. Sigue agregando texto y veras el simbolo de continuacion.

>> Usa <Delete> o <Backspace> para borrar la linea hasta que quepa en una sola linea. El simbolo de continuacion desaparece.

Se puede borrar el caracter Nueva-Linea como cualquier otro caracter. Si se borra el caracter Nueva-Linea que se encuentra entre dos lineas, estas dos lineas seran unidas como una sola; si la linea formada es demasiado larga para caber en la pantalla, aparecera el simbolo de continuacion.

>> Mueve el cursor a donde comienza una linea. Presiona <Backspace> (o <Delete> tal vez). Esto une esta linea con la anterior.

>> Presiona <Return> para reinsertar el caracter Nueva Linea que fue borrado.

Recuerda que la mayoria de los comandos en Emacs aceptan argumentos numericos. Lo mismo sucede con caracteres de texto. Asi se pueden repetir caracteres varias veces.

>> Ahora presiona C-u 8 *

Esto insertara el caracter "*" 8 veces.

Este es un resumen de comandos de borrado y eliminacion:
	<Delete>	eliminar el caracter justo antes del cursor 			(en las PC es <Backspace>) 
	C-d		eliminar el caracter justo despues del cursor 
	M-<Delete>	eliminar la palabra justo antes del cursor 
                M-d		eliminar la palabra justo despues del cursor
	C-k                          eliminar desde la posicion del cursor hasta el final de la linea  	
                M-k                        eliminar desde la posicion del cursor hasta el final de la oracion indicada por el cursor
Notese que <Delete> (o Backspace, como ya explicamos) y C-d versus M-<Delete> y M-d tienen el mismo paralelismo 
que C-f y M-f. C-k y M-k funcionan de manera parecida a C-e y M-e.
 

Cuando se  borra  mas  de  un  caracter  a  la  vez, Emacs guarda ese texto en memoria para que pueda extraerse de nuevo. La extraccion de texto eliminado se conoce como "yanking". Se puede extraer  el  texto  eliminado  en  el  mismo  lugar  donde  fue eliminado, o en cualquier otro lugar en el texto. Se puede extraer el texto repetidamente, para hacer  copias  multiples  de  el.  El comando es C-y.

La diferencia entre entre "borrar" y "eliminar" es que el texto eliminado se puede volver a extraer, y el testo borrado no. En general, comandos que quitan cantidades grandes de texto, guardan ese texto por seguridad. Comandos que  quitan  cantidades  menores de texto, no lo guardan.

>> Mueve el cursor al principio de una linea que no esta vacia Presiona C-k para eliminar el texto en esa linea. >> Presiona C-k      una vez mas. Esto eliminara el caracter Nueva-Linea de esa misma linea

Ver que un C-k elimina el texto en la linea, un segundo C-k elimina la linea en si, haciendo que las demas lineas suban. C-k utiliza un argumento numerico de manera especial: elimina ese numero de lineas y su contenido tambien. Es decir,  C-u 2 C-k  eliminaria 2 lineas consu respectivo caracter Nueva-Linea; presionando C-k dos veces no haria eso.

Para extraer el texto eliminado mas recientemente, y ponerlo donde se encuentra el cursor, presionar C-y.

>> Pruebalo. Presiona C-y

     Cuando varias lineas son eliminadas con C-k, un solo C-y extraera todas las lineas.

>> Presiona C-k varias veces

Ahora, para recuperar el texto:

>> Presiona C-y. Ahora mueve el cursor unas cuantas lineas para abajo, y presiona C-y nuevamente. Esto demuestra que se puede copiar texto y empastarlo en otra parte.

El comando C-y extrae la ultima eliminacion hecha. Pero eliminaciones previas no estan perdidas. Repitiendo el comando M-y nos presenta texto  que  eliminamos  previamente.  Repitiendo  este  comando  suficientemente,  llegaremos de  nuevo  al  texto  que eliminamos mas recientemente. Es mas facil de comprender siguiendo este ejemplo:

>> Elimina una lineacon C-k. Mueve el cursor a otra linea y eliminala tambien. Presiona C-y para extraer la segunda linea que eliminamos. presiona M-y para ver la primera linea que eliminamos, y asi sucesivamente. Es posible darle argumentos positivos y negativos al comando M-y.

* DESHACER -----------

Si se hace una modificacion al texto, pero al final decides que fue un error, se puede cancelar esa modificacion con el comando deshacer, C-x u.

Normalmente, C-x u deshace los cambios hechos por un solo comando, el mas reciente. Si se repite C-x u varias veces seguidas, cada repeticion deshace el comando previo.

Pero hay dos excepciones: los comandos que no cambian el texto no cuentan (esto incluye los movimientos de cursor y de pantalla), y los caracteres insertados en el texto se manejan en grupos de 20 (para reducir el numero de C-x u que hay que hacerse para eliminar texto insertado).

>> Elimina esta linea con C-k. El comando C-x u lo volvera a poner.

C-_ es otra forma del comando C-x u, pero es mas facil de escribir repetidamente. La desventaja es que no todos los teclados presentan son claros en como escribirlo. En algunos teclados puede escribirse C-- o C-/.

El argumento numerico para C-_ o C-x u sirve para repetir el comando.

* ARCHIVOS -----------

Para hacer permanentes los cambios que hagamos en el texto, debemos grabarlo en un archivo. Los cambios se graban en un archivo "abriendo" el archivo ( o "encontrando" o "visitando" el archivo).

Abrir  un  archivo  significa  que  veremos  el contenido  del  archivo, dentro  de  Emacs.  Al  abrir  el  archivo,  Emacs no grabara permanentemente ningun cambio hecho para evitar que se modifique el contenido del archivo si nosotros  no  lo  queremos asi, a menos que nosotros mismos queramos guardar esos cambios. Y aun cuando grabemos los cambios hechos a un archivo, Emacs grabara el archivo original con un nombre diferente, en caso de que nos arrepintieramos de haber modificado  el  archivo.

Si ves abajo en la pantalla veras una linea que comienza y termina con guiones, y empieza con algo asi como "--:-- TUTORIAL". Esta parte de la pantalla normalmente indica el nombre del archivo que hayamos abierto. En este momento, estas visitando el archivo "TUTORIAL" que es la copia personal del documento original. El nombre del archivo abierto siempre aparecera en este lugar.

Los comandos para encontrar y guardar archivos son diferentes a los demas comandos que has aprendido, en que estan formados por dos caracteres. Ambos comienzan con el caracter Control-x. Existe una  serie  completa  de  comandos  que  comienzan  con Control-x; muchos de ellos tienen que ver con archivos, buffers, y cosas por el estilo. Estos comandos son de dos,  tres, o  cuatro caracteres de longitud.

Otra cosa acerca del comando para abrir un archivo es que hay que escribir el nombre del archivo que queremos. En este caso, decimos que el comando "lee un argumento de la terminal" (el argumento es el nombre del archivo). Al escribir el comando

C-x C-f

Emacs nos preguntara el nombre del archivo. Este nombre aparecera en la parte inferior de la pantalla. Esta parte inferior se llama minibuffer cuando es usada de esta manera. Pueden usarse comaandos de edicion ordinarios de Emacs para editar el nombre del archivo.

Cuando estemos escribiendo el nombre del archivo (o cualquier otra cosa dentro del minibuffer), se puede cancelar el comando con C-g.

>> Presiona C-x C-f, despues C-g. Esto cancela el minibuffer y tambien el comando C-x C-f.

Cuando has escrito el nombre del archivo, presiona <Return> y el comando C-x C-f abrira el archivo. El minibufferr desaparece inmediatamente despues.

El contenido del archivo aparecera en pantalla, y podremos editarlo. Para guardar nuestros cambios, utilizamos el comando

C-x C-s Guarda los cambios

Esto copia el texto que estemos viendo, a nuestro archivo. Al hacer esto, Emacs hace una copia de respaldo del archivo original llamada de la misma forma, pero con el caracter "~" agregado al final.

Al guardarse los cambios, Emacs presenta el nombre del archivo modificado. Es conveniente guardar los cambios con frecuencia, para evitar perder demasiado en caso de que el sistema se vuelva inestable y caiga.

>> Presiona C-x C-s, para guardar la copia de tu TUTORIAL Veremos las palabras "Wrote ...TUTORIAL" (TUTORIAL ...escrito) al pie de la pantalla.

NOTA: En ciertos sistemas, presionando C-x C-s congelara la pantalla y no veremos ningun mensaje de Emacs. Esto indica una caracteristica del sistema operativo, llamada  "control de procesos",  esta  interceptando  C-s y no  le  es permitido  el  acceso  a Emacs. para descongelar la pantalla, usa C-q. lee la seccion "Spontaneus Entry to Incremental Search"  (Acceso  Espontaneo  a Busqueda or Incrementos) en el manual de Emacs para ver como dar tratamiento a este problema.

Puedes abrir un archivo existente, para verlo o editarlo. Se puede tambien abrir un archivo inexistente. De esta manera se pueden crear archivos nuevos: Abre el archivo, el cual estara vacio, y despues introducirle texto. Al guardar el archivo, Emacs creara ese archivo junto con el texto que le hayamos introducido. De ahi en adelante, estaras editando un archivo existente.

* BUFFERS ----------

Si abres un segundo archivo con C-x C-f, el otro que ya tenias abierto sigue dentro de Emacs. Se puede pasar de un archivo a otro usando el comando C-x -C-f.

>> Crea un archivo llamado "compadre" con el comando C-x C-f compadre <Return>. Inserta algo de texto, y guardalo usando C-x C-s. Despues regresa a este tutorial con C-x C-f TUTORIAL <Return>.

Emacs guarda el texto de cada archivo en lo que se conoce como "buffer". Al abrir un nuevo archivo, creamos un nuevo buffer. Para ver la lista de buffers que tenemos un un instante, usamos este comando:

C-x C-b Lista de Buffers

>> Prueba ahora C-x C-b

Observa como cada buffer tiene un nombre, y puede tambien tener el nombre del archivo que contiene esos datos. Algunos buffers no corresponden a archivos. Por ejemplo, el  buffer  llamado  *Buffer List*  no esta  asociado  a  ningun  archivo.  Es  el buffer  que contiene la lista de buffers creada cuando hacemos C-x C-b. Cualquier texto que se vea en una ventana de Emacs es parte de algun buffer.

>> Presiona C-x 1 para cerrar la lista de buffers.

Si se hacen cambios a algun archivo, despues se  abre  otro  archivo,  esto  no guarda  automaticamente  el  primer  archivo.  Los cambios estaran en su buffer, dentro de Emacs. La creacion o edicion del segundo archivo no tiene efecto alguno  sobre  el  buffer del primer archivo. Esto es util, pero tambien significa que necesitamos una manera conveniente de guardar el contenido del buffer del primer archivo. Seria molesto tener que regresar al primer archivo con C-x C-f y despues guardarlo con C-x C-s. Asi que tenemos

C-x s Guardar buffers determinados

C-x s te preguntara acerca de cada buffer que contenga cambios que no han sido guardados. Te pregunta, por cada buffer, si debera guardarlo.

>> Inserta una linea de texto, despues usa C-x s Emacs preguntara si debera guardar el buffer llamado TUTORIAL Responde si (yes) a la pregunta presionando "y".

* EXTENDIENDO LA LISTA DE COMANDOS -----------------------------------

Hay muchos mas comandos en Emacs que podrian ser asociados a todos los  caracteres  Control  y  Meta.  El  comando  de eXtension es usado para esto, para aumentar el numero de comandos que pueden activarse con los diversos caracteres. Este comando viene en dos formas:

C-x eXtension de Caracter. Seguido de un caracter. M-x eXtension de noMbre. Seguido del nombre

A continuacion estan ciertos comandos que son utiles, pero son menos usados que los que ya has aprendido. Ya vimos  dos  de ellos: los comandos de archivo C-x C-f para abrir un archivo, y C-x C-s para guardarlo. otro ejemplo  es  el  comando  usado  para terminar la sesion Emacs, C-x C-c (No hay que preocuparse de perder los cambios hechos al archivo;  Emacs  preguntara  si  se desea guardar los cambios o no, antes de cerrarse).

C-z es el comando que permite salirse de Emacs *temporalmente*--para despues volver a entrar a la misma sesion.

En los sistemas que lo permitan, C-z "suspende" Emacs; esto es, retorna a la shell, sin terminar Emacs. En las shells mas comunes, el comando fg, o `%emacs' (sin comillas) nos regresara a Emacs.

En sistemas que no tengan soporte para suspension, C-z creara una subshell dentro del mismo Emacs, para poder correr otros programas y despues regresar a Emacs; pero en realidad nunca sale de Emacs. En este caso, el comando `exit' cerrrrara la subshell y nos regresara a Emacs.

Usar C-x C-c muchas veces es util solamente para cuando queramos salir de nuestra shell. Tambien es la forma correcta de salir de un Emacs invocado dentro de algun otro programa, puesto que dicho programa puede no saber que hacer  cuando  Emacs  es suspendido. En circunstancias ordinarias, es util tener Emacs suspendido con C-z, en lugar de salir de el.

Hay muchos comandos de tipo C-x. Esta es la lista de los que hemos aprendido:

C-x C-f Abrir un archivo C-x C-s Guardar un archivo C-x C-b Lista de buffers C-x C-c Salir de Emacs C-x u Deshacer

Comandos de extension de nombre son comandos que son utilizados menos todavia, o  comandos  que  solo  se  usan  en  cierto modo. Un ejemplo es el comando replace-string, que reemplaza cierto texto con otro texto, a nivel global. Al presionar M-x, Emacs presentara la M-x en la parte inferior de la pantalla, y se debemos escribir el nombre del comando; en este caso "replace-string". Solo escribe "repl s<TAB>" y Emacs completara el nombre del comando, donde <TAB> es la tecla Tab. Presiona <Return>.

El comando replace-string requiere dos argumentos--el texto a reemplazar, y el texto con el que se reemplazara. Despues de escribir cada argumento, presionar <Return>.

>> Mueve el cursor a la linea vacia dos lineas debajo de esta. Presiona M-x repl s<Return>cambiada<Return>alterada<Return>

Nota como esta linea ha sido cambiada: haz reemplazado la palabra c-a-m-b-i-a-d-a con "alterada" donde quiera que fue encontrada, a partir de la posicion inicial del cursor.

* GUARDADO AUTOMATICO ----------------------

Si se hacen cambios a un archivo, pero no han sido  guardados,  podrian  perderse  si  el  sistema  cae,  por  alguna  razon.  Para protegernos de esto, Emacs periodicamente guarda los archivos que estemos editando a archivos de "guardado automatico". Cada archivo de guardado automatico tiene un # al principio y al final de su nombre; por ejemplo, si estamos editando el archivo "hola.c", su archivo de guardado automatico es "#hola.c#". Cuando guardemos nuestro archivo de la manera normal, con  C-x  C-s,  Emacs borrara su archivo de guardado automatico.

Si el sistema cae, podras recuperar el archivo abriendo el archivo normalmente (el original, no el de guardado automatico) y despues presionando M-x recover file<Return>. Cuando Emacs pida confirmacion, escribe yes<return> para segur adelante, y recuperar el archivo con los datos perdidos.

* AREA DE COMANDOS -------------------

Si escribimos los comandos lentamente, Emacs los presentara en la parte inferior de la pantalla, el area de comandos (echo area). Esta area se encuentra en la ultima linea de la pantalla.

* LINEA DE MODO ---------------------

El area directamente encima de el area de comandos se conoce como linea de modo. Esta linea dice algo asi como:

--**-Emacs: TUTORIAL (Fundamental)--L670--58%------------------

Esta linea proporciona informacion util acerca de el estado de Emacs y el texto que estemos editando.

Antes que nada, esta el nombre del archivo. En este caso el nombre es TUTORIAL. -NN%- indica la posicion del cursor dentro del texto. Significa que NN por ciento del texto esta arriba de la pantalla. Si tuvieramos la primera pagina del texto en la pantalla, diria -Top- en lugar de -00%-. Si tuvieramos la ultima pagina del texto en nuestra pantalla, diria -Bot-. Si estas viendo un texto tan chico que cabe completamente en una pantalla, la linea de modo diria -All-.

Los asteriscos al principio indican que se han hecho cambios al texto. Justo al abrir o guardar un archivo, esta parte de la linea no muestra asteriscos, solo guiones.

La parte de la linea de modo que se encuentra entre parentesis dice en que modo de edicion nos encontramos. La modo default es el modo Fundamental. Es el que estamos usando ahora, y es un ejemplo de "modo principal".

Emacs tiene varios modos principales. Algunas de ellas sirven para editar lenguajes diferentes y/o tipos de texto, como modo Lisp, modo Texto, etc. En cada momento, solo puede estar activo un modo principal, y su nombre estara donde "Fundamental" esta ahora.

Cada modo principal hace que ciertos comandos actuen de manera diferente. Por ejemplo, hay comandos para generar comentarios dentro de un programa, y como cada lenguaje de programacion tiene una idea diferente de lo que es un comentario, cada modo principal tiene que insertar comentarios de diferente forma. Cada modo principal es el nombre de un comando de extension, asi es como podemos cambiar de modo. Por ejemplo, M-x fundamental-mode es el comando para cambiar a modo Fundamental.

Para editar texto en algun lenguaje humano, como este documento, seria conveniente el modo de Texto.

>> Escribe M-x text-mode<Return>

No te preocupes, nungun comando que hayas aprendido cambia de manera apreciable. Pero se puede observar que M-f y M-b ahora tratan apostrofes como partes de las palabras. Antes, en modo Fundamental, M-f y M-b trataban apostrofes como separadores de palabras.

Modos principales usualmente hacen cambios sutiles como ese: la mayoria de los comandos hacen "el mismo trabajo" en cada modo principal, pero trabajan ligeramente diferente.

Para ver informacion acerca del modo activo en determinado momento, usa C-h m.

>> Usa C-u C-v una o varias veces para subir esta linea hasta la parte superior de la pantalla >> Escribe C-h m, para ver una descripcion del modo Texto >> Usa C-x 1, para quitar la pantalla informativa

Los modos principales se llaman asi porque tambien existen modos secundarios. Los modos secundarios no son alternativas a los modos principales, sino que son ligeras modificaciones a los mismos. Cada modo secundario puede ser habilitado o deshabilitado independientemente de los demas modos secundarios, e independientemente de tu modo principal. Asi que pueden no usarse los modos secundarios, usar un solo modo secundario, o usar cualquier combinacion de ellos.

Un modo secundario que es muy util, en especial al editarse texto en algun idioma, es el modo Auto Fill. Cuando este modo esta activado, Emacs rompe la linea entre dos palabras automaticamente cada vez que escribamos una linea que demasiado larga.

Se puede activar Auto Fill con el comando M-x auto-fill-mode<Return>. Cuando este modo este activado, se puede desactivar con el mismo comando M-x auto-fill-mode<Return>. Si esta activado, el comando lo desactiva; si esta desactivado, el comando lo activa.

>> Escribe M-x auto-fill-mode<Return> ahora. Escribe algo como "asdf " repetidamente hasta que la linea se divida en dos lineas. cada palabra debe estar separada por un espacio, porque Emacs solo rompe las lineas en donde haya espacios.

El margen generalmente es de 70 caracteres, pero se puede cambiar con el comando C-x f. El margen se especifica como un argumento numerico.

>> Usa C-x f con un argumento de 20 (C-u 2 0 C-x f). Despues escribe algo y podra observarse como Emacs rompera las lineas mayores de 20 caracteres. Regresa el margen a 70 usando C-x f nuevamente.

Si haces cambios a la mitad de un parrafo, el modo Auto Fill no funcionara. En este caso hay que usar el comando M-q, con el cursor dentro de ese parrafo.

* BUSQUEDA -----------

Emacs puede buscar hileras de caracteres (es decir, palabras o grupos de palabras) dentro de un documento, hacia abajo o hacia arriba dentro del mismo. Buscar texto es un comando que controla el cursor; mueve el cursor al siguiente lugar donde aparezca ese texto.

Este comando es diferente al de muchos otros editores, en que trabaja en "incrementos". Esto significa que la busqueda ocurre mientras escribimos lo que buscamos.

El comando para iniciar la busqueda es C-s para una busqueda hacia adelante, o C-r para una busqueda hacia atras. PERO ESPERA! no los pruebes todavia.

Cuando escribas C-s notaras que abajo, en el area de comandos, aparece "I-search". Esto indica que Emacs esta preparado para iniciar una busqueda de texto en modo de incrementos, esperando que escribas el texto a buscar. <Return> cancelara la busqueda en cualquier momento.

>> Ahora, escribe C-s para comenzar una busqueda. Lentamente, una letra a la vez, escribe la palabra "cursor", una sola vez. >> Usa C-s nuevamente, para buscar esa palabra otra vez. >> Ahora presiona <Delete> (<Backspace> si tienes una PC) y observa el movimiento del cursor. >> Presiona <Return> para terminar la busqueda.

Viste lo que paso? Emacs, en busqueda incremental, trata de buscar el texto que se haya escrito hasta el momento. Para ir a la siguiente incidencia de la palabra 'cursor', usamos C-s de nuevo. Si ya no hay incidencias de esa palabra Emacs sonara una alarma y nos avisara que la busqueda esta fallando. C-g terminara la busqueda y regresaremos a donde comenzamos.

NOTA: En ciertos sistemas, escribiendo C-s congelara la pantalla y Emacs no dira mas. Esto indicaria que una caracteristica del sistema operativo llamada "control de flujo" esta interceptando el C-s y no le permite a Emacs recibirlo. Para descongelar la pantalla habra que usar C-q. En este caso es conveniente leer la seccion "Spontaneous Entry to Incremental Search" (Acceso espontaneo a busqueda en incrementos) en el manual de Emacs, para obtener consejos en como trabajar con esta caracteristica.

Si estas en medio de una busqueda incremental y oprimes <Delete> (o <Backspace>), el ultimo caracter presionado sera eliminado y la busqueda ira para atras. Por ejemplo, suponiendo que hayas presionado la "c", para buscar la primera incidencia de "c". Ahora, si presionamos la "u", el cursor ira a la primera incidencia de "cu". Oprime <Backspace>. Esto borra la "u", asi que el cursor regresara a la primera incidencia de "c", nuevamente.

Si estas en medio de una busqueda y escribes un caracter de Control o Meta (con excepciones--los que tienen significado especial en una busqueda, como C-s y C-r), la busqueda es cancelada.

C-s comienza una busqueda de la siguiente incidencia de cualquier texto que le siga a la posicion actual del cursor. Para hacer una busqueda en reversa se usa C-r. Todo lo que se dijo sobre C-s es aplicable a C-r, excepto que la busqueda es en direccion opuesta.

* VENTANAS MULTIPLES ---------------------

Una de las caracteristicas mas utiles de Emacs es que puede desplegar mas de una ventana a la vez.

>> Mueve el cursor a esta linea y escribe C-u 0 C-l

>> Ahora usa C-x 2 lo que dividira la pantalla en 2 ventanas Ambas ventanas contienen este tutorial. la ventana superior contiene el cursor.

>> Escribe C-M-V para mover la ventana inferior. (Si no tienes una tecla META verdadera, usa ESC C-v)

>> Usa C-x o ("o" de "otra") para mover el cursor a la ventana inferior.

>> Usa C-v y M-v para mover el texto en la pantalla. Sigue leyendo las instrucciones en la ventana superior.

>> Escribe C-x o de nuevo para regresar el cursor a la pantalla superior. El cursor seguira donde lo dejamos antes de cambiar de ventana.

Puedes seguir usando C-x o para cambiar de ventana. En cada ventana el cursor conserva su posicion, pero solo la ventana activa muestra el cursor. Todos los comandos ordinarios son aplicados a la ventana en la que se encuentra el cursor. Llamamos a esta ventana la "ventana seleccionada".

El comandio C-M-v es muy util cuando estamos editando el texto en una ventana y usamos el texto en la otra solo como referencia. Puedes conservar el cursor siempre en el cursor de la ventana donde estas editando y usar C-M-v para avanzar el texto en la otra ventana secuencialmente.

C-M-v es un ejemplo de un caracter CONTROL-META. Si tienes una tecla META verdadera, se puede escribir C-M-v manteniendo presionadas las teclas Ctrl y Meta (Alt, en las PC) al presionar "v". No importa cual de las teclas CONTROL o META se presiona primero porque su funcion es modificar los caracteres que presionamos.

Si no hay una tecla META verdadera, y se usa ESC en su lugar, el orden si importa: se presiona la tecla ESC seguida de Ctrl-v; Ctrl-ESC v no funcionara en este caso. Eso es porque ESC es un caracter en si, no una tecla modificadora.

>> Escribe C-x 1 para deshacerse de la ventana inferior

(Si escribiste C-x 1 en la ventana inferior, eso se desharia de la ventana superior. Como diciendo "quedate con una sola ventana, en la que estoy ahora").

No es necesario tener el contenido de un mismo buffer en ambas ventanas. Si se usa C-x C-f para abrir un archivo en una ventana, la otra ventana no cambiara. Se puede abrir un archivo diferente en cada ventana.

He aqui otra manera de hacer que dos ventanas desplieguen dos cosas diferentes:

>> Escribe C-x 4 C-f seguido del nombre de alguno tus archivos. Presiona <Return>. Ve como el archivo se abre en una ventana inferior. El cursor ira a la nueva ventana tambien.

>> Usa C-x o para regresar a la ventana superior, y C-x 1 para quitar la inferior.

* NIVELES DE EDICION RECURSIVA -------------------------------

Algunas veces te meteras en lo que se conoce como un "nivel de edicion recursiva". Esto es indicado  por  unos corchetes  en  la linea de modo, encerrando los parentesis que encierran el nombre del modo principal. por ejemplo, veras [(Fundamental)] en lugar de (Fundamental).

Para salir del nivel de edicion recursiva, presiona ESC ESC ESC. Eso es un comando para cancelar multiusos. Tambien se puede usar para eliminar ventanas adicionales, y para salirse del minibuffer.

>> Usa M-x para entrar al minibuffer; presiona ESC ESC ESC para salir

No se puede usar C-g para salir de un nivel de edicion recursiva. Esto es porque C-g es usado para cancelar comandos y argumentos DENTRO de el nivel de edicion recursiva.

* OBTENIENDO MAS AYUDA -----------------------

En este tutorial hemos tratado de proporcionar suficiente informacion como para dar un buen comienzo usando Emacs. Hay tanto disponible en Emacs que seria imposible ponerlo todo  aqui.  Sin embargo,  seria  conveniente  aprender  pas  acerca  de  Emacs puesto que tiene muchas mas caracteristicas utiles. Emacs porporciona comandos para leer documentacion sobre comandos de Emacs. Todos estos comandos de ayuda comienzan con el caracter C-h (help, en ingles), el cual es llamado "Caracter de Ayuda".

Para obtener cualquier tipo de ayuda, escribe el caracter C-h, y despues un caracter indicando el tipo de ayuda deseada. Si estas completamente perdido, escribe C-h ? y Emacs indicara los tipos de ayuda que tiene disponibles. Si oprimes C-h  y  decides  que despues de todo no quieres ayuda, presiona C-g para cancelarlo.

(Algunos sistemas tienen alterado el significado de C-h. En realidad esto  no  deberia  hacerse  a  nivel global,  para  todos  los usuarios, asi que tienes derecho a quejarste con el administrador. Por lo pronto, si C-h no presenta un mensaje de ayuda en la parte de abajo de la pantalla, intenta presionando F1 o M-x help <Return>.)

La ayuda mas basica la proporciona C-h c. Escribe C-h seguido del caracter c, y un caracter o secuencia de comando; Emacs despliegara una corta descripcion del comando.

>> Escribe C-h c Control-p El mensaje sera algo como

C-p runs the command previous-line (C-p corre el comando linea-previa)

Esto da el "nombre de la funcion". Los nombres de las funciones de usan principalmente para personalizar  y  extender  a  Emacs. Pero como los nombres de las funciones son elegidos para indicar lo que hace un comando, tambien sirven como documentacion muy corta--suficiente para recordar comandos ya aprendidos.

Comandos de caracteres multiples como C-x C-s y (si no se tiene una tecla META o EDIT o ALT) <ESC>v tambien son permitidos despues de C-h c.

>> Escribe C-h k Control-p

Esto despliega toda la documentacion acerca de la funcion, asi como su nombre, en una ventana de Emacs. Al terminar de leer dicha documentacion, se puede cerrar la ventana con C-x 1. Pero no  es  necesario  hacerlo inmediatamente.  Se  puede  editar nuestro texto, y tener esa documentacion de ayuda como referencia, y despues presionar C-x1.

Estas son otras opciones utiles de C-h:

C-h f Describe una funcion. Hay que escribir el nombre de la funcion

>> Prueba escribiendo C-h f previous-line<Return>. Esto despliega toda informacion disponible sobre la funcion que implenenta el comando C-p.

C-h a Apropos de comandos. Escribe una palabra y Emacs pondra una lista  de  todos  los  comando que usan  esa  lista.  Todos estos comandos pueden invocarse con M-x. Para algunos comandos, el Apropos de comandos tambien presentara una secuencia de uno o dos caracteres que invoca el mismo comando.

>> Escribe C-h a file<Return>.

Esto despliega en otra ventana una lista de todos los comandos M-x que contengan "file" (archivo) en sus nombres. Se veran comandos de caracteres como C-x C-f enlistados junto a los correspondientes comandos de nombre como find-file (encontrar archivo).

>> Presiona C-M-v para mover el contenido de la pantalla de ayuda. hazlo varias veces.

>> Presiona C-x 1 para deshacerse de la ventana de ayuda

* CONCLUSION -------------

Recuerda, para salir de Emacs permanente se usa C-x C-c. Para salir temporalmente a la shell, para poder regresar a Emacs despues, se usa C-z.

Este tutorial deberia ser comprensible para cualquier nuevo usuario, asi que si hay algo que no parece muy claro, no te eches la culpa - quejate!

* HACIENDO COPIAS DE ESTE DOCUMENTO ------------------------------------

Este tutorial es descendiente de la linea de tutoriales de Emacs iniciada por Stuart Cracraft para el Emacs original.

Derechos Reservados (c) 1985, 1999 Free Software Foundation

Se da el permiso a cualquier persona para hacer o distribuir copias de este documento, en su forma original, en cualquier medio, con la condicion de que la nota de derechos reservados y la nota de permisos sean preservados, y que el distribuidor otorgue a quienes lo reciban el derecho de redistribuirlo como se menciona aqui.

Se da el permiso de distribuir versiones modificadas de este documento, o porciones del mismo, bajo las condiciones antes mencionadas, con la condicion de que mencionen claramente quien las altero.

Las condiciones para copiar el programa Emacs en si son mas complejas, pero guiadas por el mismo espiritu. Leer el documento COPYING incluido con tu paquete Emacs para mayor detalles, y dale copias de Emacs y este tutorial a tus conocidos. Ayuda en la batalla contra el obstaculismo en software utilizando, escribiendo, y compartiendo software gratis!

* HACIENDO ESTE TUTORIAL EL TUTORIAL DEFAULT ---------------------------------------------

Para evitar modificaciones accidentales a este documento, es conveniente hacerlo el tutorial default.

Para que este tutorial en Espa~ol sea el default:

$ su Password: XXXXXXXX # mv /usr/share/emacs/XY.Z/etc/TUTORIAL \ > /usr/share/emacs/XY.Z/etc/TUTORIAL.INGLES # cp utilidades.emacs.txt /usr/share/emacs/XY.Z/etc/TUTORIAL

Se requiere Donde XXXXXXXX es la clave de acceso a root. Mientras que XY.Z es la version de emacs. Por ejemplo, 20.2.

Esto hace una copia de respaldo del tutorial original, en Ingles, llamada TUTORIAL.INGLES; en su lugar ponemos el tutorial en Espa~ol.

* NOTA FINAL -------------

Este tutorial es una version escrita en Espa~ol en Junio/1999 por Nahual, de Raza-Mexicana . Esta basado en el tutorial incluido con GNU Emacs 20.2.1, y es practicamente identico al mismo en cuanto al contenido tecnico.

Las pocas modificaciones o adiciones que se hicieron fueron unicamente para hacer el texto aun mas facil de comprender.

Este documento es mantenido por Nahual <nahual@sdf.lonestar.org>


--05- -----( Seguridad en Linux / Unix )----------------------------------------------------------------------------------------------------------------------------RM-10] -----[ Satan ]--------------------------------------------------------------------------------------------------------------------------------------[satanas@hushmail.com]

Hablar de seguridad en unix es un tema que oimos  a diario,  decir que  tan  confiable  es  mi  sistema,  que  tan  segura  esta  mi empresa no es depensar en una maquina que esta en una oficina, bajo candado, y nadie puede accesarla, ni verla y mucho menos tocarla. Es ir mas haya de nuestra sapiensa, es el decir que hago para que mi sistema este seguro.

Bueno pues empezaremos definiendo el termino "Seguridad".

Que es Seguridad? - Es un termino relativo - Consistencia - Privacidad - Seguridad es un estamo emocional - Proteccion - Confiabilidad para la empresa.

Como veran la seguridad es un termino que se da segun las necesidades de la persona, al empresa, el grupo, etc.

Para mi la seguridad la podria definir con la siguiete ecuacion:

Seguridad= 1/Conveniencia "Nuestro sistema es tan seguro y eficaz dependiendo de que tan fuerte, dedicado e inteligente sea su administrador XDD".

Donde Comienza la seguridad de mi sistema? La seguridad comienza antes de instalar nuestro  equipo, esa seguridad  es:  1- La seguridad de los datos. 2- Que requerimientos necesitan nuestros usuarios. 3- La seguridad fisica del servidor (como su ubicacion, su ventilacion adecuada, etc).

Pasando ya en materia algo que nunca debemos olvidar los administradores es un buen Man!! recuerde que es el mejor amigo del Administrador XDD

Ahora comenzaremos con la seguridad elemental de nuestro sistema, recuerden que es lo primero que quiere robar el cracker...asi es lo siguiente: /etc/passwd /etc/shadow /etc/grup Recordando que para mayor seguridad nuestro archivo de passwords debe estar encriptado y no olvidar denegar el permiso de lectura a ningun usuario que no pertenezca al grupo de root XDD

Que reglas deben seguirse para la creacion de un usuario (user and password)?

-Primero que nada debemos elegir un buen user y un buen pass de preferencia que no sea relacionado con su nombre, iniciales, edad, telefono, novia, cita, etc XDD. Este password debe contener numeros, letras, mayusculas, minusculas para que los crackers sufran mas tratando de codificar los passwords XDD. -No debemos apuntar la clave en ningun papel, libro o agenda, porque puede llegar visita y pillar tu passwords XDD. -No crear cuentas publicas. -Cambiar frecuentemente los passwords. -Usar solamente la cuenta un solo usuario (preferencia el due~o). -Checar diario las bitacoras de los usuarios, que archivos almacenan, que extensiones, etc. -Verificar las cuentas usando diccionarios. -Checar el permiso de quien puede cambiar passwords. -Verificar el control de asignacion de los grupos. -Ante cualquier situacion o anormalidad, actuar, corregirla y si sobrepasa o pone en riesgo el sistema, reportarlo. -Revisar que tan a menudo son usadas las cuentas. -Eliminar aquellas cuentas que no tengan password. -Usar shells restringidas.

Pasando a los comandos que debemos cuidar y detectar su uso indebido estan: su y last .Como ya sabemos el comando su sirve para cambiar de un usuario a otro y que se usa con frecuencia para elevarnos a poder supremo XDD root, el sue~o de todo Cracker; una manera facil es checar los logs localizados en /var/log/message este archivo nos dice que usuario trato de hacer un su y que resultados obtuvo.

El comando last nos es de gran importancia para revisar cuando fue el ultimo acceso de x usuario al sistema, checando tambien su fecha y eventos que realizo, y mas que nada localizar accesos no autorizados como ips desconocidas XD.

Ahora pasaremos a hacer un chequeo de nuestros archivos del sistema (FileSystem)

-Que tipo de archivo -Su longitud en bytes -Tiempo de ultimo acceso (atime) -Tiempode modificacion (mtime) -Tiempo de cambio de inodo (ctime) -Revisar el UID y GID -Checar permisos -Observar su ubicacion

Protegiendo nuestros archivos con el chmod: Este comando permite cambiarle permisos a nuestros archivos.

sintaxis : chmod opcion mode,mode file

SATA S=4000 SUID S=2000 SGID S=1000 STICKY ATA= 4,2,1 ATA= r,w,x

Respaldo de datos constante: Un buen administrador debe hacer respaldos constantes de sus datos, debido a que pueden haber errores en le usuario, equipo, sistema, ataques de hac