Linux manual pages

27.08.08 | by José P. Espinal [mail] | Categories: General, Comandos Linux

Bart Simpson

Definitivamente, luego de haber entrado en el mundo de Slackware Linux, Los ‘man pages’ (páginas de manual) y Google serán tus mejores amigos; y más que eso, tu Shaman y tu Guía, respectivamente.

Relmente no tenía tiempo para escribir hoy, estoy algo atareado por cuestiones laborales, y me senté un rato en mi PC a descansar, hasta que de pronto… ‘tucutú’ , el horrible sonidito de aMSN indicando que alguien me ha hablado.

Sin mucho ánimo, muevo mi brazo hasta alcanzar el mouse, le doy click a la … ventanita esta!, pensando que es algo importante (puesto que mi estado esta en ‘away’) y de pronto: alguien preguntandome algo que estoy ultra seguro que Google en su inmensa sabiduría ha respondido ya de muchas maneras.

Mi respuesta fue simple:
RTFM! (Read The F—-ng Manual) , lo cual no me ayudo mucho, pero me desahogó…

En esta ocasion vamos a tratar de entender unos cuantos tips de nuestro gran amigo ‘man’ (manual).

Si escribimos en consola:

# man man

Estaremos llamando el manual del manual pages, el cual muestra algo como esto:

NOMBRE
       man - formatea y despliega las paginas online del manual

SINOPSIS
       man  [-acdfFhkKtwW]  [--path]  [-m  system]  [-p  texto] 
            [-C config_file] [-M pathlist] [-P pager] [-B navegador]
            [-H htmlpager] [-S section_list] [section] nombre ...

DESCRIPCIÓN
       man formatea y despliega las paginas online del manual.  si
       le especificas la sección, man unicamente buscará en esa
       sección del manual.
       nombre , normalmente es el nombre de la página
       del manual, la cual es típicamente el nombre del comando, 
       función, o archivo. Sin embargo, si el nombre contiene una
       barra (slash, '/'), entonces man lo interpretara como la 
       especificacion de un archivo,  
       de modo que puedes hacer:
       man ./foo.5 o incluso man /cd/foo/bar.1.gz.

Entre otras cosas…

1. Todos los parametros que esten incluidos en llaves, indican que son opcionales, y no es explicitamente necesario indicar uno o más de ellos. Ej.

[-acdfFhkKtwW]  [--path]  [-m  system]

me parece que esa sintaxis es un estandar de documentación, puesto que incluso la documentación de muchas otras cosas usan este formato. (ej. PHP, PERL, C, etc. etc.)

2. Los parametros que no aparezcan dentro de llaves, son obligatorios. Ej.
nombre

3. Una sinopsis es una definicion resumida y generalizada acerca de algo, los detalles de todos los parametros opcionales y obligatorios, son descritos mas abajo, de modo que tendras que desplazarte a travez de toda la pagina del manual para poder entender cierta documentacion.

4. Los manuales siempre hacen refencia a otras paginas de manual, diciendo algo como:

SEE ALSO
       apropos(1), whatis(1), less(1), groff(1), man.conf(5).

En este caso (y muy pertinentemente, hacen referencia a la pagina numero (1) del comando ‘apropos’, el cual es bastante util buscando en diferentes paginas de manual.

5. Cuando veas algo como man.conf(5), quiere decir que debes buscar en la pagina (5), del manual:

man 5 man.conf

6. Para saber cuales paginas de manual hablan acerca de cierto termino, usamos ‘apropos’, ej:

apropos ssh

nos desplegara (entre otras cosas) algo como esto:

hfssh                (1)  - Tcl interpreter with HFS extensions
ssh                  (1)  - OpenSSH SSH client (remote login program)
ssh-add              (1)  - adds RSA or DSA identities to the authentication agent
ssh-agent            (1)  - authentication agent
ssh-copy-id          (1)  - install your identity.pub in a remote machine's authorized_keys
ssh-keygen           (1)  - authentication key generation, management and conversion
ssh-keyscan          (1)  - gather ssh public keys
ssh-keysign          (8)  - ssh helper program for host-based authentication
ssh_config           (5)  - OpenSSH SSH client configuration files
sshd                 (8)  - OpenSSH SSH daemon
sshd_config          (5)  - OpenSSH SSH daemon configuration file

indicando el nombre y numero de la pagina de manual que hace referencia al termino que estuvimos buscando, para visualizar, hacemos igual que como hicimos anteriormente:

# man 5 ssh_config
# man 8 sshd
# man 1 ssh-keygen

7. Si no te gusta leer man pages en consola, puedes abrir konqueror y poner algo como esto en la barra de direcciones:

man:/cp
Para ver el manual del comando cp , por ejemplo, y asi sucesivamente.

8. Es cierto que no es lo mas sencillo del mundo entender man pages, pero tambien es cierto que no es lo mas dificil. Simplemente lee con detenimiento, sin desesperarte y trata de no pasar por alto nada, por mas elemental que parezca.

Entender y familiarizarte con ‘man’ te van a economizar tiempo, y sobre todo, podras evitar algunas de estas respuestas:
RTFM (Read the F—-ng Manual)
RTMFM (Read The Mother F—-ng Manual)
JFGI (Just F—-ng Google It)
STFW (Search the F—-ng Web)
Entre otros…

Espero que este articulo te haya ayudado a comprender e interesarte mas por ‘man’, a la vez que te ayude a invitar a otros a usar Google cuando piensan que eres una enciclopedia online en MSN. :)

NOTA:
Ayudar al otro implica que logre su propósito. Si ese otro no se interesa en aprender o investigar, es porque su principal propósito es permanecer en ignorancia, así que no le des la respuesta a sus preguntas, y estarás ayudandolo igualmente ;)

--
Jose P. Espinal
http://blog.slackware-es.com

Primer concurso de Blogs en Republica Dominicana

21/08/2008 | por José P. Espinal [mail] | Categorías: General

Por primera vez (eso realmente no lo se, pero yo no había visto otro) se está realizando un concurso de Blogs en República Dominicana. No recuerdo bien como fue que me enteré de el concurso, pero decidí inscribir este blog :>> , a ver si el destino se equivoca y por alguna remota razón (que no nos detendremos a imaginar cual sería), pues… ganamos.

Bueno, sin mas preambulos, si quieres votar haz click en esta imagen y busca mi blog en la seccion ‘TEMATICOS‘:

Luego les cuento como se dió este asunto :)

--
Jose P. Espinal
http://www.slackware-es.com

/etc/passwd - El archivo de passwords

08.08.08 | by José P. Espinal [mail] | Categories: Administración, General

En ocasiones, cuando uno es nuevo en Linux, se le ocurre abrir el archivo /etc/passwd; pero inmediatamente lo hacemos y vemos el formato de ‘eso’ (asi le llamamos en ese momento), lo cerramos rapido con intención de no volver a abrirlo y con la esperanza de nunca tener que editarlo manualmente.

Hoy estaremos estudiando ese archivo de forma detenida, y esperando que la próxima vez que lo abran, sea una experiencia menos traumática.

Dirijanse al directorio /etc/ y abran su archivo ‘passwd’.

Mi /etc/passwd luce algo como así:

root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
adm:x:3:4:adm:/var/log:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/:/bin/false
news:x:9:13:news:/usr/lib/news:/bin/false
uucp:x:10:14:uucp:/var/spool/uucppublic:/bin/false
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:/bin/false
ftp:x:14:50::/home/ftp:/bin/false
smmsp:x:25:25:smmsp:/var/spool/clientmqueue:/bin/false
mysql:x:27:27:MySQL:/var/lib/mysql:/bin/false
rpc:x:32:32:RPC portmap user:/:/bin/false
sshd:x:33:33:sshd:/:/bin/false
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
apache:x:80:80:User for Apache:/srv/httpd:/bin/false
messagebus:x:81:81:User for D-BUS:/var/run/dbus:/bin/false
haldaemon:x:82:82:User for HAL:/var/run/hald:/bin/false
pop:x:90:90:POP:/:/bin/false
nobody:x:99:99:nobody:/:/bin/false
jespinal:x:500:100:Jose P. Espinal:/home/jespinal:/bin/bash

…a primera vista, ‘espantoso’.

Este archivo incluye varias piezas de información para cada cuenta de usuario en el sistema.
Cada ‘pieza’ de información esta separada de la siguiente por ‘:‘ (dos puntos).

Evaluemos la siguiente línea de mi archivo para que entiendan mejor:

jespinal:x:500:100:Jose P. Espinal:/home/jespinal:/bin/bash

1) Primera pieza (’jespinal’):
Esta corresponde al ‘login name’ o nombre de usuario correspondiente al usuario que describe dicha linea. En este caso es ‘jespinal‘, pues ese es mi usuario :) , simple, no?.

2) La segunda pieza (’x'):
Corresponde al ‘password’ encriptado; sin embargo, esta ‘x‘ no es mi password, sino que asi se coloca porque el verdadero password no se almacena ahi , sino en ‘/etc/shadow’ (luego estudiaremos ese archivo, calma :) ). Toma en cuenta que si se esta haciendo uso de ‘/etc/shadow’ para almacenar los passwords, entonces en ese campo del /etc/passwd NO DEBE haber nada excepto la ‘x’.

3) Tercera pieza (’500′):
Corresponde al ID numérico del usuario. Como sabrás (y si no lo sabias, pues ya si), a cada usuario del sistema se le asigna, ademas del login-name, un ID numerico para identificarlo. Ese campo de /etc/passwd es el que se usa para registrar el ID numerico del usuario en cuestion.

4) Cuarta pieza (’100′):
Corresponde al ID numérico del grupo al cual pertenece el usuario. En mi caso, el usuario ‘jespinal’ tiene como grupo principal el grupo ‘users’, y ese es el ID numerico de ese grupo (luego estudiaremos /etc/group , que es ahi que se manejan los grupos y el ID que le otorgamos a cada grupo).

5) Quinta pieza (’Jose P. Espinal’):
Nombre del usuario, o Comentario; por ejemplo, en el caso del usuario de MySQL, usamos algo como ‘Usuario de MySQL’, aunque si quieres puedes usar ‘Pepito Perez’, el hecho es que sepas para que se usa este campo, el cual tambien puedes dejar vacio (’root’ usa este campo vacio, por lo general).

6) Sexta pieza (’/home/jespinal’):
Aqui se indica el directorio de trabajo inicial de cada usuario (o sea, su ‘home’).

7) Septima pieza (’/bin/bash’):
Indica el interprete de comandos que usara el usuario por default o el primer comando que ejecutara (ej. el usuario shutdown, y halt).

Fijate que en el caso de usuarios que solo se usan para ejecutar ciertos procesos (mail, uucp, news), el shell es ‘/bin/false’, el cual es un shell nulo para que este usuario no tenga otra utilidad mas que servir para que un proceso se ejecute a nombre suyo.

Ya, eso es todo; ves!? no muerde :>>.

Eso es practicamente todo lo relacionado a este archivo. Realmente facil de entender y de editar (si quieres cambiar algo).

Hasta luego; ya sabes: ‘man’ es tu mejor amigo en Linux.

--
Jose P. Espinal
http://www.slackware-es.com

Asterisk PBX y Slackware Linux

25/07/2008 | por José P. Espinal [mail] | Categorías: Aplicaciones, General

La estabilidad, simplicidad y robustez de Slackware Linux puede ser aprovechada tambien en el ámbito de las Telecomunicaciones. En esta ocasión veremos como instalar Asterisk PBX en Slackware Linux.

Asterisk es la PBX, mecanismo de telefonía, y conjunto de aplicaciones de telefonía de código abierto lider a nivel mundial. Ofreciendo una flexibilidad nunca antes vista en el mundo de las comunicaciones propietarias, Asterisk habilita a los desarrolladores y a los integradores a crear avanzadas soluciones de comunicaciones… de manera gratuita ;)

Slackware Linux, como ya sabemos, es un avanzado sistema operativo tipo Unix que desde su nacimiento ha tenido dos metas principales: Facilidad de usar (claro, si no te gusta leer ni usar ese músculo que te adorna el cráneo, al cual algunos llaman cerebro; Slackware Linux será tu peor enemigo) y Estabilidad.

(voy a asumir que ya tienen Slackware instalado…)

Si yo fuera tu, crearia una carpeta en /usr/src llamada ‘packages’ (siempre lo hago) y ahi tendria las cosas que voy descargando.

1. Descargando LibPRI

# wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz

Estas son las librerias de PRI (Primary Rate ISDN para interfaces T1/E1/J1)
NOTA: No es necesario descargarlo si no usaras una Hardware (tarjeta) de telefonia Digium, Sangoma, etc.

2. Descargando ZapTel

# wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz

Estos son los drivers para el Kernel de las tarjetas de interfaces analogas y digitales. (Las tarjetas Digium requieren esto).

3. Descargando Asterisk

# wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz

4. Descargando Asterisk Add-Ons

# wget http://www.digium.com/elqNow/elqRedir.htm?ref=http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz

Estas son librerias adicionales (extra) de Asterisk, que proveen aun mas funcionalidades (Poder usar MP3, OOH323, MySQL,etc.).

Una vez que lo hayas descargado todo, descomprimelo y (si quieres, esto otro es opcional) crea un vinculo simbolico a cada archivo.

Puedes copiar y pegar el siguiente scripcito para que te economices tiempo, solo es copiar y pegar:

for a in *.tar.gz ;
      do 
      tar xvzf "$a"; 
         ln -s `tar -tzf "$a" | head -n1`\
         `tar -tzf "$a" | head -n1 | gawk -F"-1" '{ print $1 }'` ;
done

Bien, ahora manos a la obra :P

Primero, vamos a instalar LibPRI, entra en el directorio de libpri,

# cd libpri
# make
# make install

Ahora vamos con Zaptel,

Nota: Te recomiendo que bajes primero las librerias de NewT, para que puedas usar la herramienta zttool luego de compilar zaptel.

Puedes bajarlo de aqui:

http://www.linuxpackages.net/pkg_details.php?id=10322

Es un .tgz, de modo que puedes instalarlo de la siguiente manera:

# installpkg nombre-de-paquete-.tgz

… continuamos,

# cd zaptel
# ./configure
# make menuselect (ojo con esto, lo explicare mas adelante)
# make
# make install

La parte de menuselect te permitira seleccionar de manera FACIL (grafica) los modulos que quieres que sean compilados para las diferentes interfaces de telefonia, asi como otros detalles interesantes. (esta aplicacion trae su documentacion, si no esta clara o necesitan que profundice, me avisan).

El siguiente es Asterisk:

# cd asterisk
# ./configure
# make menuselect (igual que en zaptel)
# make
# make install
# make samples (esto genera archivos de configuracion de muestra)

Por ultimo, (muy importante, por lo menos en mi opinion), los Addons:

# cd asterisk-addons
# ./configure
# make menuselect
# make
# make install
# make samples

Listo,

Para correr Asterisk, solo tienes que ejecutar (como root, obviamente):

# /usr/sbin/asterisk

o si no…

# /usr/sbin/safe_asterisk

Este ultimo es un script que inicia automaticamente Asterisk en caso de que por alguna razon ocurra un crash (uno nunca sabe, es mejor prevenir que lamentar).

Pues… bien, Esto es en cuanto a la instalacion de Asterisk en Slackware Linux, luego posteare articulos en torno a la configuracion, integracion de Asterisk con MySQL (para el record de llamadas, etc.) y otros detalles :)

Hasta la proxima,

--
Jose P. Espinal
http://www.slackware-es.com

Transport Layer Security (TLS) y Secure Sockets Layer (SSL)

23/07/2008 | por José P. Espinal [mail] | Categorías: Networking, General, Seguridad

En este artículo estaremos incursionando un poco en la seguridad y criptografía al referirnos a Transport Layer Security (TLS) y su predecesor, Secure Sockets Layer (SSL).

TLS y SSL son protocolos de criptografía que proveen comunicación segura para cosas tales como navegacion web, emails, Fax en internet, mensajería instantanea y otros tipos de transferencia de datos. Hay diferencias ligeras entre SSL y TLS, pero son en escencia lo mismo.

Ok, viene la pregunta: ¿Para que sirve eso?

El protocolo TSL permite que las aplicaciones se comuniquen de manera tal que se evite la intercepcion de paquetes, manipulación y forjamiento de mensajes. TLS provee autentifiación de destino final y privacidad de comunicaciones sobre internet a travez del uso de criptografía.

Por lo general, solo el server se autentifica (se tiene seguro su autenticidad) mientras que el cliente (quien se conecta al server) permanece sin autentifiación. El siguiente nivel de seguridad (en el cual ambos lados se autentifican) se conoce como ‘autentificación mutua’ (la cual require de infraestructura de llaves).

TLS envuelve tres fases básicas:

  • Negociacion con el peer (otro punto que se conecta) para determinar que algoritmo soporta.
  • Intercambio de llaves y autentificación
  • Encriptacion simetrica y autentifiacion de mensajes

Durante la primera fase, el cliente y el server se ponen de acuerdo en el tipo de cifrado que van a utilizar, los algoritmos de autentifiacion para el intercambio de llaves, asi como tambien los codigos de autentificacion de mensajes.

En sintesis (para nuestros fines):
Un protocolo es un conjunto de normas y convenciones que establecen como las computadoras van a interconectarse entre si (digamos que son como el lenguaje entre las computadoras para determinados servicios).
TLS y SSL son lenguajes de criptografía que nos permiten conectarnos de manera SEGURA a un server, y en cuya conexion la informacion pasara totalmente cifrada, de modo que sea casi imposible para un tercero el poder entender dicha información en caso de que capture paquetes mediante alguna técnica.

Para información adicional pueden buscar documentación en Google, y así profundizar más en este tópico.

--
Jose P. Espinal
http://blog.slackware-es.com

Páginas: 1 2 3 4 5 >>

Buscar

Recomendados

[~] SQLninja
[~] XvidCap
Agosto 2008
Lun Mar Mié Jue Vie Sáb Dom
 << <   > >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
¡el blog solicitada ya no existe más!
blog software