martes, 19 de febrero de 2008

Cómo recuperar un archivo borrado con lsof

¿Has borrado por equivocación un archivo? Ese mismo archivo ¿lo tienes abierto en alguna otra aplicación? (por ejemplo, estabas escuchando un ogg o un mp3 y mientras lo escuchas, sin querer, lo has borrado en lugar de moverlo a otro directorio, por ejemplo). Bien, pon en “Pause” el reproductor y no lo cierres por nada del mundo :-) . Ahora, usa el sistema virtual de ficheros /proc para recuperarlo:

$ cp /proc/4158/fd/4 elfichero.recuperado

(4158 es el identificador de la aplicación que todavía tiene abierto el fichero que acabas de borrar.En nuestro ejemplo, sería el identificador del player mp3. 4 es el descriptor del fichero que nos interesa (en nuestro ejemplo, el player puede tener abierto más de un fichero, 4 es el identificador que nos interesa). ¿Cómo he obtenido esos números? Con lsof:

HowTo: Debian+OpenSSL+Bind9+Postfix+OpenLDAP+Courier (I)

Este HowTo es la consecuencia de una tragedia, he perdido mi server casero. Con lo que no me queda otra que volver a montarlo.

En consecuencia he decidido dedicarle algo más de tiempo y documentar el proceso desde cero. Y que así esta tragedia pueda ser reutilizada por otros.

Este HowTo se lo dedico con todo mi cariño, afecto y admiración a la comunidad de sistemas de mi curro: igomez, pastelero, sramos, moebius, snaker, lynks, dvazquez y apardo. Pues ellos han sido mi apoyo, acicate y sostén intelectual los últimos 24 meses. Además a ellos les he dado mucho la brasa…. pero que mucho, sobre todo a sramos, igomez y pastelero y esta dedicatoria es una forma de mostrarles mi agradecimiento por sus muestras de solidaridad afectuosa.

Evidentemente este es un servidor casero lo que quiere decir que le faltan muchas de las virguerias que nuestras Hackers de sistemas meten en nuestras máquinas en producción. Pero como server casero suficiente, en mi opinión

La verdad es que uno se queda mucho mejor, pero que mucho, cuando comparte con los demás. Para todos vosotros que lo disfrutéis y que le saquéis algo de jugo.

Ahhhhhh y lo más importante que matéis todos los bichos que encontréis.

Lo he dividido en dos partes, ésta comprende hasta la instalación y configuración de los buzones pop3 courier. En la siguiente entrega el resto.

Instalación de alai server

Alai server está alojada en un k7 1800, con 80Gb de disco, con ip fija, bajo el dominio alai.org. Es una máquina imaginaria que como su nombre indica (alai=alegre en euskera) es alegre y feliz :) por que confía en que dejemos todo como debe ser sin que “nada” de problemas. A ver que hacemos… je, je.

Bueno sobre la elección de una debian me abstengo de explicar por qué; soy debianero, a Chessy, por ejemplo, le va Fedora y somos amigos que nos llevamos muy bien, para gustos los colores, vive libre. Sobre el proceso de instalación hay documentación más que de sobra, así que no comentaré nada al respecto.

Como una referencia podéis consultar: The Perfect Setup - Debian Etch (Debian 4.0)

Se instala una Debian 4.0 r1 etch (otra cosa que stable para un server es una imprudencia) por medio de una iso net-install dejando un sistema básico (esto es seleccionando solo “sistema estandar” en tasksel). Lo vamos a ir instalando todo poco a poco, servicio a servicio según necesidades.

Solo señalar que el disco se particiona en cuatro, /boot, /, /var y /swap. Y como es un server con una partición /var bien hermosa.

Servicios en alai server

  • bind9 DNS para la resolución de nombres y como secundario de un dominio
  • Servidor web apache2
  • OpenSSL Entidad certificadora CA, llaves y certificados
  • OpenLDAP slapd
  • Cyrus-SASL autentificación
  • PHP 5
  • Servidor de correo postfix
  • Buzones de correo Courier
  • Servidor de bases de datos MySql
  • Servidor de Backup BackupPc
  • Servidor de listas de correo sympa
  • Servidor de contenidos Drupal
  • Wiki DokuWiki
  • WebDav
  • Servidor CUPS

Como cuestión previa dado que Debian etch no lo instala por defecto en el “Sistema base” y necesitamos trabajar en remoto con el server, instalamos ssh y openssh-server:

alai:~# apt-get install ssh openssh-server

Y vamos a hacer una instalación inicial de apache2 para ir tirando mientras vamos montando cosas, para phpldapadmin por ejemplo. El tema de apache2 se tratará con detalle cuando le toque :)


alai:~# apt-get install apache2
Se instalarán los siguientes paquetes NUEVOS:
apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 libexpat1 libpq4 libsqlite3-0

DNS bind9 enjaulado

Primero el bind9 DNS mas que nada porque actua como secundario del dominio y se resuelven nombres más rápidamente en la red local que usando los DNS del ISP y por que la peña se me queja de que no anda internet igual desde que mate nuestro server casero. 80)

Así que no siendo estrictamente necesario ser el primer paso….. empezamos por aquí


alai:~# apt-get install bind9
Desempaquetando bind9 (de .../bind9_1%3a9.3.4-2etch1_i386.deb) ...
Configurando bind9 (9.3.4-2etch1) ...
Adding group `bind' (GID 104) ...
Hecho.
Adding system user `bind' (UID 104) ...
Adding new user `bind' (UID 104) with group `bind' ...
Not creating home directory `/var/cache/bind'.
wrote key file "/etc/bind/rndc.key"
Starting domain name service...: bind.

Bueno así lo deja debian. Vamos a configurar.
Si fuera un primario la cosa se complicaría pero siendo un secundario, chupao.
Editamos el fichero de configuración local, esto es: /etc/bind/named.conf.local


//
// Do any local configuration here
//
zone "alai.org" {
type slave;
file "bigarren.alai.org";
allow-query { any; };
masters { 23.211.45.78; };
};

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

Osea le decimos que la zona es alai.org, que es un esclavo y que el fichero para guardar la info es bigarren.alai.org (bind9 lo mete en /var/cache/bind) que permitimos cualquier pregunta y le decimos quien es nuestro maestro (su ip).

Enjaulando a bind9
Vamos a meter a bind9 en una jaula. De esta forma conseguimos mas seguridad, en el caso de que bind9 se vea comprometido y dado que sus actividades están limitadas a la jaula las consecuencias se minimizan.

Empezamos por parar el servicio

alai:~# /etc/init.d/bind9 stop

Editamos el fichero /etc/default/bind9 para hacer que el demonio corra como el usuraio bind sin privilegios encerrado en una jaula en /var/lib/named.
Y substituimos la línea OPTIONS=”-u bind” por la nuestra OPTIONS=”-u bind -t /var/lib/named”

alai:~# vim /etc/default/bind9

Ahora creamos la jaula, sus directorios:

alai:~# mkdir -p /var/lib/named/etc
alai:~# mkdir /var/lib/named/dev
alai:~# mkdir -p /var/lib/named/var/cache/bind
alai:~# mkdir -p /var/lib/named/var/run/bind/run

Movemos el directorio de configuraciones desde /etc a /var/lib/named/etc

alai:~# mv /etc/bind /var/lib/named/etc

Creamos un enlace simbólico del nuevo directorio de configuraciones desde la vieja localización (para evitar problemas cuando bind sea actualizado en el futuro)

alai:~# ln -s /var/lib/named/etc/bind /etc/bind

Creamos los dispositivos null y random. Fijamos también los permisos de los directorios:

alai:~# mknod /var/lib/named/dev/null c 1 3
alai:~# mknod /var/lib/named/dev/random c 1 8
alai:~# chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
alai:~# chown -R bind:bind /var/lib/named/var/*
alai:~# chown -R bind:bind /var/lib/named/etc/bind

Necesitamos modificar /etc/default/syslogd a fin de que podamos seguir recibiendo mensajes registrados en el registro del sistema.
Hay que modificar la línea: SYSLOGD=”” por esta otra: SYSLOGD=”-a /var/lib/named/dev/log”:

Abrís el fichero con vuestro editor favorito y hacéis las modificaciones

alai:~# vim /etc/default/syslogd
#
#
# Top configuration file for syslogd
#
#
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
#
#
# For remote UDP logging use SYSLOGD="-r"
#
#SYSLOGD=""
#
SYSLOGD="-a /var/lib/named/dev/log"

Rearrancamos el servicio:

alai:~# /etc/init.d/sysklogd restart

Arrancamos bind, y chequeamos /var/log/syslog en busca de posibles errores

alai:~# /etc/init.d/bind9 start

Enlaces de interés sobre Bind9 y su jaula
De todas formas si alguna necesita bregar con un primario o documentarse sobre la jaula para bind9, ahí van unos enlaces.
* DNS, BIND, DHCP, LDAP and Directory Services (bind9.net)
* Howto: Debian Root Server with Virtual Hosting (VHCS) on Debian “etch”
* DNS Installation and Setup using BIND9
* [Debian Sarge] Installing A Bind9 Master/Slave DNS System
* Traditional DNS Howto
* Bind-Chroot-Howto (Debian)
* Building A Debian DNS System
* Chroot-BIND HOWTO

Cómo reinstalar una aplicación con Yum

Instalar en Yum es fácil: yum install programa . Pero reinstalar una que ya esté instalada no es evidente. No existe un comando tipo –force (”yum install –force ” o “yum reinstall” …) Así que hay que lidiar un poco con el venerable RPM:

# rpm -e –justdb –nodeps programa
# yum install programa

con la primera línea borramos la entrada de programa en la base de datos de RPM. Así, para Yum, esa aplicación (programa) ya no está instalada. No se quejará cuando le digamos que la reinstale.

Deshabilitar momentáneamente Compiz

Un pequeño truco, pero que me ha costado encontrarlo. El programa Visual Paradigm (escrito en Java) no funciona correctamente con CompizFusion instalado y ejecutándose, así que para lanzar VP tengo que desactivar temporalmente los efectos de Compiz. ¿Cómo? Así:


$ metacity --replace

Para volver al estado anterior (CompizFusion activado):

$ compiz --replace

Cómo evitar que Linux borre los ficheros de /tmp al arrancar

Ubuntu, por defecto, borra los ficheros que encuentra en /tmp al arrancar. Eso, en mi opinión, es algo bueno. Los usuarios no deberían (deberíamos :-) guardar sus ficheros en /tmp. Para eso está nuestro directorio home (~). El comportamiento de los scripts de arranque se gestiona a través del fichero /etc/default/rcS. Para indicar a Ubuntu que no queremos que se cargue los ficheros que encuentre en /tmp al arrancar, debemos de modificar la variable TMPTIME . En concreto, los ficheros serán borrados si su fecha de modificación es anterior a TMPTIME días. Un valor de 0 en esa variable significa que los ficheros serán borrados independientemente de la fecha de modificación. Si lo que queremos es que Ubuntu no borre esos ficheros jamás, hay que poner un -1 como valor (o la palabra infinite).

Ojito, porque en Fedora/CentOS/RedHat este trabajo se lleva a cabo a través de un proceso cron en /etc/cron.daily/tmpwatch . Por defecto ese proceso se cargará los ficheros que acumulen más de 720 horas sin haber sido usados.

Truco original en UnixCraft

Resetear password de root

Supongamos que se te ha olvidado el password de root de tu máquina Linux. ¿Es posible recuperarlo? No. ¿Es posible resetearlo? Sí. El proceso es sencillo, pero en esta web lo han documentado paso a paso.

¿Y es posible proteger GRUB para que no se pueda hacer lo que el artículo anterior indica? Sí, a través del comando password de GRUB.

Y no debemos de olvidarnos de protegernos ante arranques con LiveCD; para ello, indicaremos por BIOS que se arranque a través del disco duro y pondremos un password en la BIOS para que no nos cambien esa configuración.

Truco Firefox para recuperar pestañas cerradas

Supongamos que estás navegando por Internet y ya tienes unas cuantas pestañas abiertas todas ellas interesantes. Como ya tienes bastante cargado el navegador comienzas a cerrar pestañas y por descuido cierras una o varias que te interesaban. Vaya… tendrás que ir al historial de Firefox a buscar cuáles eran las direcciones de esas pestañas interesantes que acabas de cerrar. Un engorro, ¿no hay nada más fácil? Pues sí, pulsa Ctrl+Shift+T. ¡Sorpresa! La última pestaña que cerraste se vuelve a abrir, tal y como la dejaste. Vuelve a pulsar Ctrl+Shift+T… ¡funciona! Es como un Undo del cierre de pestañas. Interesante.

Cómo cambiar rápido de directorio

¿Te gusta tener una terminal abierta para trabajar? A mí sí, me resulta cómodo y rápido. Y siempre busco trucos para ir aún más rápido en mi trabajo desde consola. Hoy he descubierto uno más que creo que usaré a menudo. Se trata de lo siguiente: supongamos que cambias constantemente de directorios entre un conjunto de 3 o 4. Por ejemplo, analizando tu comportamiento, te das cuenta de que contínuamente trabajas en /var/www , en /home/nombre y en /opt/codigo . Esos tres directorios guardan a su vez subdirectorios, por los que sueles desplazarte con regularidad. Es un incordio poner:

$ cd /var/www/carpetaX

[trabajar]

$ cd /opt/codigo/carpetaY

[trabajar]

etc.

Lo ideal sería, estando situado en cualquier directorio, escribir:

$ cd carpetaX

y que el sistema sepa que nos referimos a /var/www/carpetaX , porque es la más usada. O bien:

$ cd carpetaY

y que el sistema nos coloque en /opt/codigo/carpetaY automáticamente. Una especie de directorios favoritos. En Bash se puede hacer, basta con definir la variable de entorno CDPATH, así:


$ CDPATH='.:~:/var/www:/opt/codigo'
$ export CDPATH

Prueba ahora a cambiar (desde cualquier sitio) a subdirectorios que existan dentro de los que hemos definido en CDPATH.

Si quieres guardar la configuración entre arranque y arranque, recuerda añadir la definición de variable a tu fichero .bashrc.

Convertir de LaTeX a ODT y viceversa

Un apunte rápido para que no se me pierda. Acabo de encontrarme con la necesidad de convertir un texto en formato LaTeX a formato ODT (OpenOffice Writer). Buscando en el sabio, he encontrado rápido una macro para hacer el proceso inverso (writer2latex). Tras investigar un poco más, he llegado a una aplicación multiplataforma para conseguir el objetivo a través de un paso intermedio: convertir de LaTeX a RTF y de RTF a ODT. El proyecto se alberga en SourceForge y se llama latex2rtf. No lo he probado aún, pero tiene buena pinta. Vamos a ver qué tal se porta ;-)

QtTube: cómo descargar vídeos de YouTube con un click

QtTube es una pequeña pero útil aplicación para descargar vídeos de YouTube con un click, sin usar la línea de comandos para nada.

Como el paquete de QtTube no está disponible en Synaptic y tiene algunas dependencias, su instalación no es trivial. Dado que estos días he estado impartiendo un curso de iniciación al software libre, aproveché este ejemplo para explicar la instalación de aplicaciones sin usar Synaptic, ni .debs. (sin llegar todavía a la compilación de fuentes con el hechizo mágico ./configure && make && make install) QtTube es el ejemplo de transición perfecto. Para que la explicación fuera reaprovechable, grabé un vídeo en formato .ogg.

Lo podéis encontrar troceado ( [ 1 , 2 , 3 , 4 , 5]} o completo ( 74 MB )

Nota para recordar: se pueden concatenar varios vídeos .ogg en uno sólo desde la línea de comandos simplemente así:

$ cat qttube_{1..5}.ogg >> qttube.ogg

Para que luego digan que la línea de comandos está anticuada y sólo la usamos los viejos del lugar … :-)

Recuperar el password de un fichero .rar en Linux

Russian password crackers es una web especializada en aplicaciones para la recuperación de passwords. Disponen de un extenso catálogo (passwords de sistema - Windows, Linux - , de BBDD - Oracle, Clarion, Paradox - , de BIOS, de MS-Office , de OpenOffice, de archivos ARJ, ZIP, RAR), tanto de pago como gratuitas. He llegado a esta web siguiendo un enlace en Google, buscando aplicaciones para la recuperación de passwords de ficheros RAR en Linux.

Al final, he llegado a la página de cRARk, la aplicación que buscaba, pero para Windows. Tras descargarlo, veo que el README nombrar el enlace para la versión Linux. Tras descomprimir, veremos que hay dos versiones: crark y crark-hp. La segunda permite romper (por fuerza bruta o por ataques de diccionario) contraseñas de archivos RAR con cabeceras cifradas.

Para poder ejecutar crark es necesario, la primera vez, hay que definir un fichero donde se le indica si se va a usar ataque por fuerza bruta o por diccionario. En el primer caso, hay que definir el juego de caracteres a usar y la longitud estimada de la clave (mínimo, máximo). En el segundo caso, se puede definir aparte de la ruta al diccionario, las permutaciones y combinaciones que se quieren realizar con cada palabra que aparece en dicho diccionario. Les recomiendo que como partida, nos descargamos este fichero .zip ya preparado con algunos ejemplos (incluyendo el fichero secret.rar, que no es más que un archivo .rar de prueba, con el password secret). Si lo descargamos, no nos olvidemos de que el autor ha usado la versión Windows de cRARk, por lo que antes de poder usar sus ficheros de configuración, hay que convertir los saltos de línea Windows a saltos de línea Linux - esto se hace con la herramienta dos2unix -). A continuación un ejemplo de ejecución (con éxito) sobre ese fichero de prueba:
[juanan@localhost crark-3.1]$ ./crark-hp -pdic_pass.def secret.rar
cRARk-HP (Encrypted Headers) v. 3.1b Freeware
Copyright 1995-2001, 2006-07 by P. Semjanov,
http://www.password-crackers.ru
portions (c) 1993-2005 Eugene Roshal
(c) PSW-soft Password Cracking Library PCL v. 2.0d by P. Semjanov
..
Choosing best crypto functions...........................................
Chosen: ASM (Northwood/Core 2), MMX4 (AMD) (/f0223)
Ticks per password expected = 40350769, theoretical = 30000000, CPU rate = 0,74
..
Processing line 3 of password definition file...
secret - Header CRC Ok
..
Testing archive /tmp/crark/test/secret.rar
..
Testing secret.nfo
secret - CRC OK
In hex (PCL style): \73 \65 \63 \72 \65 \74
Passwords tested = 7 (time = 00,27, rate = 26 p/s)
Total tested = 7, slow tests = 1

Happy cracking!

Serigrafía tus CDs y DVDs con LightScribe


Nota de la Wikipedia: LightScribe (en español “Escritura de Luz“) es una tecnología desarrollada por HP y LiteOn pensada para etiquetar un CD o un DVD usando una grabadora de CD/DVD.

Agradecemos el software que Lacie ha hecho posible, antes de empezar.

Podemos leer más información y manuales en la web de Lacie.

Estas instrucciones son para Ubuntu, en Fedora se podrían instalar directamente.

1.- Bajamos el software: Abrimos una consola y descargamos el software necesario mediante wget:
wget http://www.lacie.com/download/drivers/lightscribe-1.4.136.1-linux-2.6-intel.rpm
wget http://www.lacie.com/download/drivers/4L-1.0-r6.i586.rpm

A continuación, procedemos a la instalación propiamente dicha:

sudo apt-get install alien
sudo alien -i lightscribe-1.4.136.1-linux-2.6-intel.rpm
sudo alien -i 4L-1.0-r6.i586.rpm

Ahora ya podemos ejecutar el “4L-gui” y divertirnos pintando carátulas con nuestro pingüino favorito en la parte de arriba del CD o DVD :-) En la imagen de este post podemos ver el resultado de imprimir el icono de la Wikipedia sobre un CD.

Creo que en mi HP nuevo ya no queda nada sin soporte en Linux: audio, video, lector de tarjetas, bluetooth, wifi, ligthscribe, webcam, … definitivamente este es el año de Linux ;) de la mano de Ubuntu!”

Eliminar pitido de login GDM

El otro día en una conferencia arranqué mi portátil con Ubuntu tranquilamente. Justo cuando el conferenciante se calló un segundo, la pantalla de login gráfico de GNOME avisó de que ya estaba lista para recibir el login con un pitido que sonó fatal en medio del silencio O:-) Más tarde, en casa, haciendo pruebas, ví que el pitidito de marras no sólo sale cuando GDM nos invita a teclear nuestro login, sino también cuando el login o el password que metemos es incorrecto. Bien, todos estos pitidos se pueden deshabilitar o bien cambiar por algo más agradable (elijan lo primero, por favor), editando el fichero /etc/gdm/gdm.conf .

En concreto, vi /etc/gdm/gdm.conf y asegurarse de que los siguientes valores están a false:
SoundOnLogin=false
SoundOnLoginSuccess=false
SoundOnLoginFailure=false

Además, en mi caso, tuve que comentar la siguiente línea:

# SoundProgram=/usr/lib/gdmplay

Por otro lado, los cambios afectan a GDM a partir del siguiente reinicio (probablemente exista alguna forma de indicar que GDM lea esta nueva configuración, pero con cerrar sesión no vale… probablemente con un telinit…)

¡No más molestos pitiditos!

Cómo recuperar datos en Linux (ext3)

La mayoría de distros de Linux usan por defecto ext3, un sistema de archivos con journaling que funciona estupendamente, aunque dependiendo del uso puede dar mejores o peores rendimientos. Pero la comparativa para saber cual es mejor si ext2, ext3, reiserfs, jfs, etc etc sería para hacer otro artículo. ¡Que alguien se anime !

Bueno, lo que nos ocupa es que estamos en nuestra distro favorita de Linux ;) y borramos una carpeta entera o un archivo sin querer… bueno pues … ¡no todo está perdido!

Rápidamente monta un disco USB con espacio y vuelca tu sistema de archivos en ese disco. Un ejemplo:

Nuestra particion con datos borrados es por ejemplo /dev/sda1 y hemos montado un disco USB con muuucho espacio libre, de hecho con tanto o más de lo que ocupa el disco de nuestro ordenador.

Copiamos nuestro disco completo en un archivo dentro del disco USB con la utilidad dd :

dd if=/dev/sda1 of=/media/usb/archivo_con_disco_a_recuperar.dd

Ahora instalamos la utilidad de análisis fornese “autopsy” que está en los prepositorios de debian.

http://www.sleuthkit.org/autopsy/

La arrancamos desde el usuario root y dejamos la consola con la utilidad corriendo, mientras que abrimos un navegador que apunte a http://localhost:9999/autopsy con lo que nos conectamos a la utilidad de autopsias.

En el interfaz creamos un nuevo caso con cualquier nombre, seleccionamos en “add image” el fichero que hemos creado con la imagen de nuestra partición, e incorporamos el fichero de imagen al proyecto. Ahora seleccionamos “Analizar” y luego en “File Analysis”, con lo que veremos ya los ficheros que se borraron y podremos visualizarlos e incluso si no se han machacado, recuperarlos.

Si alguien conoce más aplicaciones de recuperar datos en Linux, con algún manualillo o pequeño post como éste, que responda a este post y así en los comentarios tendremos una buena base de conocimiento para nuestro amigo Google ;)

Suerte y como recomendación… copias de seguridad!”

Matar todos los procesos de un tiro

Apunto aquí una orden que he necesitado miles de veces y de la que nunca me acuerdo:

$ kill -9 `ps -ef | grep -i nombre | awk {’print $2′}`

Mata todos los procesos que tengan la cadena nombre en la descripción . Si no te acuerdas de esa orden, siempre puedes hacer un ps -aww| grep nombre y luego matar los procesos copiando y pegando los identificadores en una orden kill.

Construyendo un clúster virtual

Cuando un administrador quiere probar una nueva aplicación en su servidor, primero la instala en el servidor de pruebas o desarrollo y si funciona sin romper nada, la pasará a explotación. Pero, ¿cómo probar una aplicación diseñada para un cluster? La respuesta está en la virtualización.

Gracias a soluciones como Xen virtual machine monitor, es posible instalar múltiples máquinas virtuales en un sólo ordenador físico, ejecutarlas simultáneamente con diferentes sistemas operativos, diferentes configuraciones ... y conectarlas entre sí con tarjetas de red virtuales.

Xen es una estupenda herramienta para construir clusters Beowulf virtuales. Puede ser muy útil también para enseñar conceptos básicos de clusters y para testear nuevas características/software en ellos sin miedo a causar daños en el cluster real.

En ClusterMonkey.net comienzan una serie de artículos que nos explicarán paso a paso cómo conseguirlo.

Artículo completo en DiarioLinux.

CÓMO activar efecto tipo Expose de Mac OS X en Ubuntu Gutsy 

Este es uno de esos COMOs o How to de baja tecnología que yo suelo poner. En esta ocasión vamos a recuperar el efecto «tipo expose à la Mac OS X» que venía por defecto en versiones de Ubuntu/Compiz anteriores a Feisty y que eché de menos en Gutsy. Luego me enteré que habían cambiado el modo en que se activaba... ¡así sin avisar ni nada!. Es una pequeña putada porque este efecto, a parte de ser visualmente atractivo, nos va a ayudar a acceder en cuestión de nada a cualquier ventana que necesitemos. Una vez que te habitúas a usarlo es difícil estar sin él, porque te ahorra tiempo.

Espero que para la próxima Hardy Heron mejoren este tipo de detalles y no dejen a los usuarios colgados, buscando cosas donde ya no están... algo tan propio de la gente del lado oscuro.

Bueno, vayamos al grano.

  1. Lo primero que tenemos que hacer es instalar los Drivers para nuestra tarjeta gráfica, de forma que la aceleración 3D esté permitida. En el caso de mi tarjeta gráfica, Intel X3100, los drivers son libres así que están disponibles sin ningún problema. Si tu tarjeta fuera otra, necesitarías instalar cualquier software necesario para que funcione correctamente.
  2. Vamos a instalar Compiz y xserver-xgl. Una vez expliqué cómo hacerlo con una tarjeta nVidia y drivers privativos. Esta vez será más fácil. Abrimos un terminal de comandos (sé que se puede usar synaptic, pero de verdad es más cómodo con la terminal de comandos), y ejecutamos:

    $ sudo -s
    # apt-get install compiz xserver-xgl

    (nos preguntará si queremos instalar algunas cosas más además de compiz, aceptamos)

    # apt-get install compizconfig-settings-manager

    (este es importante porque nos añade a nuestro menú de preferencias un programita de configuración con una interfaz fácil de usar).

  3. Cerramos la terminal, que la teníamos como superusuario y no es bueno dejarla abierta. Es posible que al haber instalado el nuevo servidor de X (xserver-xgl) debamos reiniciar las mismas para que funcione correctamente. Para ello cerramos todas las aplicaciones que tengamos abiertas, cerramos sesión (ojo, no reiniciar) y reiniciamos el servidor de X de forma segura pulsando SHIFT+ALT+DEL (Nota: DEL no es SUPR, sino la tecla de borrado que hay arriba de ENTER).
  4. Habilitar Expose. El problema con este efecto es que en versiones anteriores estaba en otro sitio, con lo cual si instalaste Gutsy sobre Feisty deja de funcionar y si instalaste Gutsy y fuiste a buscarlo donde estaba en Feisty no encontraste nada.
    1. En el menú de Gnome vamos a «Sistema>Preferencias>Advanced Desktop Effect Settings» y lo ejecutamos.
    2. Vamos a la sección de Windows Management y habilitamos el plugin «Escalar».
    3. Vamos a la pestaña Acciones. enemos activo «Iniciar selector de ventanas» con un atajo de teclado. Yo prefiero activar «Iniciar selector para todas las ventanas», que nos permitirá buscar entre las ventanas que tengamos en todos los espacios de escritorio, aunque esto es -obviamente- opcional
    4. Para ello asignaremos a esta nueva opción un atajo de teclado (el que más nos guste, yo he asignado SHIFT+ALT+Z, por tenerlo todo junto. Además he asignado un gesto de ratón (llevar el ratón a la esquina superior derecha, TopRight).
  5. Aceptamos todo y salimos. Ya tenemos el efecto expose de Compiz funcionando tal y como venía en Feisty y anteriores. ¿Fácil? Yo diría que sí.

Con esto hemos acabado por hoy. ¿Les ha sido de ayuda? Eso espero, porque la sensación de perder el tiempo es chunga :)

SuperGrubDisk, vitaminas para tu gestor de arranque

Super Grub Disk es una pequeña utilidad que realmente te puede sacar de un apuro.

Se trata, como su nombre deja entrever, de un disco que actuará como selector de inicio (el equivalente a tu GRUB), permitiéndonos un buen montón de opciones con las que trabajar durante el arranque de nuestra computadora.

¿Has instalado Windows y quieres reinstalar el grub en tu mbr? ¿Quieres eliminar el grub para volver a trabajar con windows? ¿Tienes algún problema de arranque y quieres solventarlo? SuperGrubDisk es el fin de tus dolores de cabeza, casi con seguridad.

En mi caso descubrí esta aplicación hace unos meses, ya que mi portátil tenía un hardware demasiado nuevo y eso es algo que los usuarios de Linux (aunque cada vez menos) tenemos que pagar con sangre, de forma que al instalar el grub en el MBR y arrancar normalmente desde ahí, el lector de CDs dejaba de ser reconocido no sólo en mi Ubuntu, sino en mi Windows XP. Por ese motivo llegué a probar SuperGrubDisk que con la opción de «iniciar linux directamente» me permitio que mi lector de CDs fuera reconocido y trabajar normalmente.

Desde luego esta no es una aplicación para todos los días como Listen o Brasero, pero desde luego para los momentos de urgencia es mano de santo. Esto y una knoppix... no tienen precio :)

COMO Recuperar GRUB en cinco minutos

Ya sé que en la guía ubuntu hay un método para reinstalar el GRUB que consiste en acceder al PC como root usando el cd de instalación. Considero que ese método es un poco engorroso... Esta pequeña ayuda la colgué hace un tiempo en Ubuntu-es.org pero he decidido ponerla aquí también para que esté más localizable.

Al grano.

1. Para recuperar el grub vamos a usar un LiveCD, que debe ser de una distro que use GRUB: Así pues yo disponía de varias Live-distro que usen grub: Knoppix, Ubuntu y ELive. Me decanté por la primera por ser la más conseguida y (con mucha diferencia) la que tiene el inicio más rápido de las tres. Si ya tenéis LiveCD de Ubuntu podéis usar ése sin problemas, incluso aunque el CD sea de Hoary y ya tengáis Breezy instalada: Sólo queremos instalar un gestor de arranque ;)

2. Suponiendo que ya tenemos LiveCD lo ponemos en el lector e iniciamos el PC desde ese dispositivo.

3. Hacemos un directorio para montar nuestra partición con Linux:

~# mkdir /mnt/ubuntu /* podéis hacer el directorio que os dé la gana, mientras recordéis cuál era.

4. Montamos la partición con una orden de montaje convencional. En mi caso el formato de la partición es ext2, debemos sustituirlo por el que se ajuste a nuestro caso, así como debemos localizar la partición en la que tenemos instalada Ubuntu (normalmente será algo como /dev/hda5, pero puede variar de un caso a otro).

~# mount -t ext2 partición_ubuntu /mnt/ubuntu

5. Ahora vamos a cambiar el origen de root de nuestro sistema de archivos al directorio en el que hemos montado Ubuntu, para que al instalar grub interprete que el "/" del sistema está ahí. Para ello usamos chroot.

~# chroot /mnt/ubuntu/

6. Instalamos GRUB en el MBR del primer disco duro, que normalmente estará configurado como Primary Master (hda).

~# grub-install /dev/hda

7. Verificamos que todo está bien revisando las entradas que se han incluído en /boot/grub/menu.lst y si están todos nuestros sistemas (que será lo más normal) ya podemos reiniciar nuestro sistema, retirar el LiveCD y disfrutar de nuestro gestor de arranque :)

Con esto conseguimos reinstalar el grub en un suspiro.

Cómo desinstalar Kernels viejos y limpiar el menú de Grub

Después de sucesivas actualizaciones de nuestro sistema, es muy probable que la lista de entradas en el menú de Grub crezca incontrolablemente. Tal es el caso bastante común en Ubuntu, con su impecable proceso de actualización de todo el sistema, pero además, cada Kernel instalado ocupa alrededor de 80 a 85 Mb de espacio en el disco rígido.

Este breve artículo explica cómo cómo desinstalar Kernels viejos, limpiar el menú de Grub y de paso recuperar un respetable espacio de almacenamiento muy sencillamente.

Sin embargo, debemos saber que al instalar un nuevo Kernel no es recomendable desinstalar el anterior, al menos hasta que probemos el nuevo y veamos que funciona bien.

Regla de iptables para bloquear MSN

Los brasileños del sitio Dicas-L encontraron una simple y muy satisfactoria regla de firewall para bloquear el servicio de mensajería instantánea de MSN en toda una red. Para esto es necesario el módulo STRING de iptables disponible a partir del Kernel 2.6.14. La regla es la siguiente:

iptables -I FORWARD -p tcp -m string --string "VER " --from 51 --to 56 --algo bm -j REJECT

Y su explicación es la siguiente:

El módulo STRING hace una búsqueda en el contenido del paquete por una determinada cadena de caracteres. Los parámetros --from y --to indican el final del encabezado TCP y el final de los datos, si se omiten la búsqueda se realiza en el paquete entero.

El parámetro --string indica la cadena a buscar, en este caso "VER ", que es parte del protocolo en algunos paquetes de MSN, principalmente los usados durante el login.

Artículo completo en Dicas-L.

Top de los 25 comandos más útiles en Linux

Encontré en Pimp Your Linux, un interesante artículo sobre el top 25 de los comandos de Gnu/Linux y Un*x en algunos casos, que resultan imprescindibles para el administrador y usuario novato. El artículo es más que interesante, y les trascribo y traduzco :

#1. hostname
Imprime el nombre del local host en donde estás trabajando.

#2. whoami
Imprime el nombre de usuario en la pantalla, y puede resultar extremandamente útil cuando se cambia de usuario con su.

#3. id username
Imprime el UID del usuario y su GID, effective ID y grupos suplementarios.

#4. date
Imprime o cambia la fecha y la hora del sistema operativo. También se podria utilizar un servidor ntp para tener todos los sistemas con el mismo horario cada vez que se encienden.

#5. time
Determina la cantidad de tiempo que le toma a un proceso completarse + otra información. El ejemplo que se dá es:
  • time ls
Para ver el tiempo que toma hacer un listado con ls.



#6. who
Determina los usuarios logueados en el sistema.

#7. rwho -a
Determina todos los usuarios logueados en la red. El servicio debe estar activado para ejecutar el comando o se debe ser usuario root.

#8. finger user_name
Información del sistema sobre un usuario.

#9. last
Muestra un listado de los últimos usuarios logueados en el sistema.

#10. history | more
Muestra los últimos ( 1000 aprox ) comandos ejecutados desde la línea de comandos. El "| more" hace que pare la salida por pantalla cada vez que se completa la salida. Redireccionar un comando hacia "more" resulta sumamente útil para diferentes propósitos, como se explica, para listados largos y para otras actividades corrientes en cualquier Gnu/Linux o Un*x.
#11. ps uptime
Muestra el tiempo que pasó desde el último reboot.

#12. ps
Lista los procesos actualmente ejecutados por un usuario.

#13. ps axu | more
Lista todos los procesos actualmente corriendo, incluso aquellos que no son controlados por la terminal, junto con el nombre del usuario que es dueño del proceso.

Agrego a lo anterior:
  • ps aux | grep nombredelprograma
  • kill -9 PID ( el pid correspondiente al nombredelprograma que se busca terminar )
Para que se reinicie un proceso, útil parar reiniciar un servicio y que éste lea otra vez su archivo de configuración:
  • kill -hup PID
  • killall nombredelprograma
Este último comando termina todas las instancias de un programa indicando su nombre. No siempre funciona, y a veces es necesario recurrir a ps y grep para obtener el pid.

Y por último, si cancelamos la ejecución de una aplicación con control + z , o bien si lo corremos con el & al final:

Por ejemplo "jackd -d alsa &" ( para ejecutar el servidor Jackd con el driver Alsa en segundo plano ), si queremos terminar con el proceso:
  • kill -9 %1
En caso de que sea el proceso en segundo plano número uno, si es el segundo 2, y así.

#14. top
Muestra una lista de los procesos que estan corriendo actualmente, listados en orden según su consumo del cpu. Muy útil.

#15. uname -a
Información sobre el servidor local. Versión del kernel, de Linux si es un sistema Gnu/Linux, o lo mismo para otros Un*x o BSD, además de información sobre el procesador.

#16. free
Información sobre la memoria ( en kb ), libre y consumida, además de datos sobre la swap.

#17. df -h
Muestra el espacio libre en Mb de una partición. El formato es df -h /dev/hda1 si queremos saber la cantidad de espacio en Mb libre en /dev/hda1. Agrego yo:
  • du -h
Para saber, también en Mb, la cantidad de Mb que ocupa un directorio o un archivo.

#18. du / -bh | more
Similar a lo anterior, pero mas específico y detallado. No tan útil como el df -h archivo o directorio.

#19. cat /proc/cpuinfo
Para ver ( cat ) el contenido de la entrada cpuinfo del pseudofilesystem proc, en éste caso con información sobre el cpu.

#20. cat /proc/interrupts
Lista las interrupciones en uso.

#21. cat /proc/version
Lista la versión de Linux.

#22. cat /proc/filesystems
Muestra los filesystem habilitados en el kernel. Muy útil.

#23. cat /etc/printcap
Muestra la configuración de las impresoras.

#24. lsmod
Muestra los módulos cargados en el sistema.

#25. echo $PATH
Muestra el contenido de la variable $PATH.

Algunos otros comandos útiles que agrego:
  • mount -o loop imagen.iso directorio/
Para montar una imagen iso en un directorio sin necesidad de grabarla a CD o DVD. Deben ser root.
  • cp -rv directorio/ /otrodirectorio/
Copia un directorio entero manteniendo los permisos, dueños, links, y cualquier cualquier otra característica del directorio.
  • netstat -putan | grep aplicación
Información sobre el estado de una aplicación servidor o que trabaja con tráfico de red. También deberán ser root.
  • w
Muestra quien está logueado y qué está haciendo
  • comando > archivo
Redirecciona el contenido de un comando hacia archivo, por ejemplo:
  • ls -l | grep usuario > archivosdeusuario
Si se usan dos > , es decir ">>" se agrega el contenido que se redirecciona después de la última línea del archivo de texto, sin sobreescribir.
  • ls -l
Muestra los permisos, dueño y grupo, además de fecha dentro de un directorio, de los archivos y directorios
  • chown -R nombredeusuario:grupo directorio/
Cambia recursivamente el dueño y grupo de un directorio y su contenido. Pueden utilizar el comodín ( * ), ya que a veces según la configuración puede no funcionar como debe hacerlo.
  • sync
Recomandado para hacer antes de desmontar un dispositivo mass storage, como una cámara fotográfica digital, un pendrive, o una pda. O bien si hubo modificaciones y movimiento de información ( cp y mv por ejemplo ) entre particiones, antes de desmontar.

Para cambiar la contraseña de un usuario:
  • passwd usuario
Otro comando muy útil es el de agregar un usuario a un grupo:
  • gpasswd -M usuario grupo
  • gpasswd -A usuario grupodeusuario
En el ejemplo anterior indicamos que usuario será el administrador de grupodeusuario.

Si hay problemas con la lectora de cd o con la de dvd, y quieren saber qué aplicación o comando la está utilizando ( para evitar el dispositivo ocupado ), prueben con :
  • lsof | grep /dev/hda1
Si hda1 es su compactera, por ejemplo. Si pusieron un CD/DVD que está roto y les cuelga la compactera, prueben con :
  • hdparm -w /dev/hda1
Otra vez, si /dev/hda1 es su compactera. Es el mismo comando que usa el kernel para permitir que luego de muchos I/O erróneos, se pueda desmontar el dispositivo. Deben ser root para ejecutar dicho comando.
La lista podria seguir, pero por el momento se me han ocurrido los comandos sugeridos. Creo que será de utilidad para más de un usuario.

Cómo montar archivos ISO, BIN, CUE, MDF, NRG e IMG

Linux tiene la posibilidad de montar las imágenes de CD/DVD sin tener que grabarlas. Con unos cuantos comandos de consola podremos montar distintos tipos de imágenes de CD/DVD fácilmente:

sudo mount -t iso9660 -o loop archivo.iso /directorio/de/montaje

Montando imágenes .BIN y .CUE

Para poder montar estos archivos necesitas convertirlos antes a imagen ISO, esto lo puedes hacer con el programa bchunk. Luego procederemos a convertir la imagen .BIN con su archivo .CUE correspondiente a un solo archivo .ISO (que luego se monta como se explica más arriba):

bchunk archivo.bin archivo.cue nuevonombre.iso

Montar imágenes .NRG (imágenes de Nero Burning Rom)

Para poder montar estas imágenes tendremos que convertirlas a ISO. Para ello usaremos el programa nrg2iso.

nrg2iso archivo.nrg nuevoarchivo.iso

Montar imágenes .IMG

Usaremos el programa CCD2ISO. Para convertir la imagen ccd a iso hacemos:

ccd2iso imagen.img imagen.iso

Montar imágenes MDF y MDS

De nuevo utilizaremos un programa para convertir antes la imagen mdf a iso. El programa tiene el original nombre de mdf2iso.

mdf2iso archivo.mdf nuevaimagen.iso

Artículo completo en Mi manual de novata en GNU/Linux.

ARES en Linux

Y tan sólo 3 semanas después de comenzar a usar Linux por primera vez, un usuario descubrió lo fácil que es hacer funcionar una de sus aplicaciones favoritas de Windows: Ares, la popularísima P2P para compartir archivos en Internet. En su muy detallado tutorial él mismo explica cómo usar la aplicación Automatix para instalar Wine, la reimplementación de la API de Win16 y Win32 para sistemas Unix, y cómo configurar correctamente a ésta última para ejecutar Ares 2.0.9 (su última versión).


En particular este tutorial está realizado para Ubuntu 7.04 "Feisty Fawn", pero debería aplicarse también a cualquier otra distribución GNU/Linux moderna.

Fuente: www.vivalinux.com.ar

lunes, 18 de febrero de 2008

Como instalar Google Earth en Linux

Antes de todo comentaros que esta mini guia está destinada a personas que recién empiezan a utilizar el sistema operativo Linux, y que como es normal el nivel de conocimiento sobre este es mínimo.



En primer lugar descargaremos nuestro paquete desde los servidores oficiales de Google.



Seguidamente daremos permisos de ejecución al archivo descargado (Google EarthLinux.bin).

chmod a+x GoogleEarthLinux.bin

nos pedirá que introduzcamos la cable root .
Una vez que realizamos los cambios de permiso nos aseguramos que estos estén cambiados utilizando el siguiente comando:

ls -l

Una vez realizada la corporación iniciaremos la instalación ejecutando el archivo.

./GoogleEarthLinux.bin

Llegados a este punto sólo es pulsar el botón Instalar y adelante. Ojo no olvidarnos en respetar las mayúsculas y las minúsculas en los comandos.



Fuente: www.espaciolinux.com

Como diseñar un Splash Screen para KDE

Este mini-como pretende explicar básicamente como cambiar nuestro ksplash por uno nuevo diseñado por nosotros mismos. Es extremadamente fácil, y lo único que necesitaremos es The Gimp y nuestra imaginación. Y por supuesto Kde.

Primero de todo debemos conseguir un ksplash de modelo. www.kde-look.com

Una vez descargado lo descomprimimos en nuestro directorio home de usuario que es desde donde lo modificaremos para crear el que más se ajuste a nuestros gustos.
En la carpeta descomprimida nos encontramos con estos archivos:

  • Preview.png
  • splash_active_bar.png
  • splash_bottom.png
  • splash_inactive_bar.png
  • splash_top.png
  • Theme.rc

Splash_top.png

Éste es el tema central en el cuál tenemos que explicar nuestra idea de lo que queremos mostrar. Aquí se pueden añadir infinidad de cosas, imágenes, textos, etc... Algunos conceptos básicos que se suelen mostrar se hacen mediante información: Sistema Operativo, versión de Kde, tu propio dominio... Si por el contrario la quereis personalizar con un tema más acorde a vuestros gustos personales: formula 1, fútbol, anime, films, grupos musicales...
Lo más importante es que quede claro y no que parezca un pegote de muchas cosas, y ahí entra la imaginación de cada uno.
Lo que más se lleva y hacen más vistosos los temas es el efecto crystal o semitransparente, con efectos líquidos que ofrecen una visión más modelada y en 3 dimensiones. Pero eso va a gusto de cada uno.

Splash_bottom.png

En éste caso nos referimos a la barra de progreso que indica lo que tarda en iniciar el escritorio Kde, y donde nos indica en la parte izquierda lo que se va cargando. Aquí sencillamente se trata de cambiar colores o el fondo adecuándolo al tema central. También podemos dejarlo con el blanco que es el que siempre se ha llevado, o cambiar el recuadro de la barra de progreso con colores a nuestro gusto, etc... pero mejor nos complicamos y exprimimos más nuestras ideas.

Splash_active_bar.png y Splash_inactive_bar.png

Posiblemente la más importante, ya que en la barra activa como la inactiva deben coincidir los iconos. Una manera de hacerlo sin complicarse mucho la vida es aplicando filtros:

Abrimos la imagen splash_active_bar.png con The Gimp y con el botón derecho del ratón encima de la imagen, buscamos filtros y en el desplegable siguiente elegimos el método. Id probando los diferentes filtros y os asombrareis de todo lo que podeis llegar a hacer con 2 clicks.

-Un ejemplo:
filtros-colores-colorear, color personalizado: blanco. Y se convertirá a una escala de grises suave. Guardamos con el nombre splash_inactive_bar.png. Seguidamente sin tocar los iconos cambiamos el fondo. Para eso abrimos otra vez splash_active_bar.png y con la opción del cuentagotas copiamos el color del fondo para añadirlo con la herramienta de relleno en el fondo del splash_inactive_bar.png. De ésta manera sólo cambiarían los iconos y el fondo quedaría del mismo color en ambos .png

Preview.png

La imagen preview es la que nos muestra una preliminar del tema cuando pulsamos sobre el tema en: Pantalla anunciadora dentro del panel de control, en Aspecto y Temas. Simplemente sirve para eso.
Por eso es importante que una vez acabemos nuestro tema abramos con The Gimp Preview.png y cambiemos el aspecto "pegándole" las imágenes que hemos creado adecuándolo a nuestro tema final. Copiar y pegar, la parte más fácil.

Theme.rc

Lo que debemos variar aquí son nuestros datos: e-mail, página web, nuestro nombre o nick, etc... Lo demás no hace falta tocarlo ya que con el predeterminado ya basta.

¿Dónde colocamos nuestro tema?

Buena pregunta...

En nuestro directorio /home, dentro de la carpeta de nuestro usuario, existen varias carpetas ocultas, entre ellas: .kde (/home/usuario/.kde). Seguimos esta ruta: /home/usuario/.kde/share/apps .Dentro de la carpeta apps creamos otra llamada ksplash, y dentro de ésta última creamos 2 más: pics y Themes. Los temas creados por nosotros o bajados de alguna página van en Themes.

Importante: No tenemos que poner los archivos sueltos dentro de Themes, sino: cada tema en su carpeta.

Ejemplo: /home/usuario/.kde/share/apps/ksplash/Themes/tema_propio

Ésto es lo básico para poder crear nuestros temas splash para kde. Dependerá de los conocimientos de Gimp que podamos tener para poder crear efectos y diseños increíblemente profesionales.

Lo demás... imaginación.

Fuente: www.espaciolinux.com

Permisos y propiedades en archivos y directorios en linux!!!

En este corto articulo tratamos el tema de como cambiar los permisos de ficheros y directorios en nuestro sistema Linux. Todo los comandos y ejemplos que se citan deben ejecutarse desde la linea de comandos en una terminal. Tambien decir que existen programas en modo grafico donde se puede conseguir lo mismo que aqui se explica a golpe de raton.

Lo primero que hay que decir es que para conseguir toda la información sobre los comandos involucrados en el tema de permisos podeis consultar los comandos man chmod, man chown y man chgrp.

Información de un archivo/directorio

Cuando obtienemos información sobre un archivo/directorio con el comando ls, existen diferentes campos que te dicen que clase de permisos el archivo/directorio tiene.
Ejemplo:

[user@localhost]# ls -l
-rwxr-x--- 1 pepito depart1 4348 Nov 24 16:19 test

En la primera columna se pueden ver una serie de letras y guiones -rwxr-x---, estas letras nos dicen quien en el sistema, y que clases de permisos tiene el archivo test.

Estas letras están agrupadas en tres grupos con tres posiciones cada uno, más una primera posición que nos dice de que clase de archivo se trata (los mas normales (d) directorios, o (-) archivos de datos). En nuestro ejemplo la primera posición es (-) con lo cual el archivo test, es un archivo de datos (binario/ejecutable en este ejemplo).

El primer grupo de tres (rwx en nuestro caso) nos dice que clase de permisos tiene el dueño del fichero (u)(user/owner)
El segundo grupo de tres (r-x en nuestro caso) nos dice que clase de permisos tiene el grupo del fichero (g)(group).
Y el último grupo de tres (--- en nuestro caso) nos dice que clase de permisos tienen todos los demás usuarios del sistema sobre este
fichero (o)(others).

 r :significa permiso para leer
w :significa permiso para escribir
x :significa permiso para ejecutar
La segunda columna pepito, nos dice quien es el dueño del fichero,(pepito en este caso).
La tercera columna depart1, nos dice cual es el grupo del fichero (depart1 en este caso).
La cuarta columna 4348, nos dice el tamaño del fichero.
La quinta columna Nov 24 16:19, nos dice cual es la fecha y hora de la última modificación.
La sexta columna test, nos dice cual es el nombre del fichero/directorio.

Asi pues, el fichero test de nuestro ejemplo tiene los siguientes permisos:

  • pepito puede leer, escribir/modificar, y ejecutar el fichero test.
  • Los usuarios pertenecientes al grupo depart1 puede leer, y ejecutar pero no escribir/modificar.
  • Los demás usuarios no pueden hacer nada, ni leerlo, ni escribir/modificar, ni ejecutarlo.

Como cambiar los permisos/dueño/grupo de un archivo/directorio?

Para cambiar el dueño del fichero se utiliza el comando : chown usuario fichero

Para cambiar el grupo del fichero se utiliza el comando: chgrp grupo fichero
Para cambiar los permisos se utiliza el comando: chmod permisos fichero

Los permisos se pueden especificar de diferentes maneras, una serie de ejemplos, es lo mejor para comprenderlo:


  chmod ugo+rwx test (da permisos rwx a todos, user,group,others)
chmod ugo-x test (quita permiso x (ejecucion) a todos, user,group,others)
chmod o-rwx test (quita permisos rwx a others)
chmod u=rwx,g=rx test (da permisos rwx a user, rx a group y ninguno a others)


Asi podriamos continuar con todas las posibles combinaciones de letras, es cuestión de usar la imaginación ;-)

Existe otro metodo que utiliza numeros, en vez de letras para asignar permisos, la siguiente tabla nos puede ayudar un poco a comprender esta manera:


  r w x  VALOR DECIMAL

0 0 0 0 (000 binario es 0 en decimal)
0 0 1 1 .........
0 1 0 2 .........
0 1 1 3 .........
1 0 0 4 (100 binario es 4 en decimal)
1 0 1 5 .........
1 1 0 6 .........
1 1 1 7 (111 binario es 7 en decimal)


1 significa activado y 0 desactivado, o sea 101, activa r y x, y
desactiva w. Sabiendo esto solo tenemos que usar el valor decimal para
dar solo permisos de lectura y ejecucion, un ejemplo aclarara esto.

chmod 750 test

da permisos rwx al usuario (7=111)
da permisos r-x al grupo (5=101)
da permisos --- a los demas (0=000)

Esto es todo por hoy, espero que tengan un poco mas claro lo de los
permisos de ficheros en Linux y que le vayan perdiendo el miedo a la
linea de comandos.

Fuente: www.linux-es.org