ff-multiconverter, multimedia, audio, video, linux, ubuntu ubuntu kylin, china, releases, linux terminal, ubuntu, linux, comandos, shell conky, gadgets, ubuntu, linux SpeedTest-Cli, velocidad, red, consola, terminal tag foto 6 pinta, grafica, linux, ubuntu djl, juegos, yum, synaptic, paquetes ubuntu, releases, canonical psensor, ubuntu, linux, sistema, monitor

Una breve introducción al concepto de permisos en Linux.

Introducción.

¿Has visto esa combinación de r,w,x y - cuando listas un directorio?, tienes cierta idea que son los permisos, pero ¿como se usan y como funcionan?.


En Linux a cada fichero se le asignan un propietario y un grupo, y una serie de permisos para el propietario y para el grupo y para el resto de los usuarios.


En este tutorial sobre permisos de archivos y directorios entenderás totalmente su uso y la manera correcta de utilizarlos.

En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que se aplican al propietario del archivo, los que se aplican al grupo que tiene el archivo y los que se aplican a todos los usuarios del sistema. Podemos ver los permisos cuando listamos un directorio con ls -l:

$> ls -l
-rwxrwxr-- 1 sergio ventas 9090 sep 9 14:10 presentacion
-rw-rw-r-- 1 sergio sergio 2825990 sep 7 16:36 reporte1
drwxr-xr-x 2 sergio sergio 4096 ago 27 11:41 videos

Veamos por partes el listado, tomando como ejemplo la primera línea. La primera columna (-rwxrwxr--) es el tipo de archivo y sus permisos, la siguiente columna (1) es el número de enlaces al archivo, la tercera columna (sergio) representa al propietario del archivo, la cuarta columna (ventas) representa al grupo al que pertence al archivo y las siguientes son el tamaño, la fecha y hora de última modificación y por último el nombre delarchivo o directorio.

El primer caracter al extremo izquierdo, representa el tipo de archivo, los posibles valores para esta posición son los siguientes:

* - un guión representa un archivo comun (de texto, html, mp3, jpg, etc.)
* d representa un directorio
* l link, es decir un enlace o acceso directo
* b binario, un archivo generalmente ejecutable

Los siguientes 9 restantes, representan los permisos del archivo y deben verse en grupos de 3.

Los tres primeros representan los permisos para el propietario del archivo. Los tres siguientes son los permisos para el grupo del archivo y los tres últimos son los permisos para el resto del mundo o otros.

rwx rwx rwx
usuario grupo otros

En cuanto a las letras, su significado son los siguientes:

* r read - lectura
* w write - escritura (en archivos: permiso de modificar, en directorios: permiso de crear archivos en el dir.)
* x execution - ejecución

Las nueve posiciones de permisos son en realidad un bit que o esta encendido (mostrado con su letra correspondiente) o esta apagado (mostrado con un guión -), asi que, por ejemplo, permisos como rwxrw-r--, indicaría que los permisos del propietario (rwx) puede leer, escribir y ejecutar el archivo, el grupo (o sea los usuarios que esten en mismo grupo del archivo) (rw-) podrá leer y escribir pero no ejecutar el archivo, y cualquier otro usuario del sistema (r--), solo podrá leer el archivo, ya que los otros dos bits de lectura y ejecucción no se encuentran encendidos o activados.

Permisos en formato numérico octal.

La cambinación de valores de cada grupo de los usuarios forma un número octal, el bit x es 20 es decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:

* r = 4
* w = 2
* x = 1

La combinación de bits encendidos o apagados en cada grupo da ocho posibles combinaciones de valores, es decir la suma de los bits encendidos:

- - - = 0 no se tiene ningún permiso
- - x = 1 solo permiso de ejecución
- w - = 2 solo permiso de escritura
- w x = 3 permisos de escritura y ejecución
r - - = 4 solo permiso de lectura
r - x = 5 permisos de lectura y ejecución
r w - = 6 permisos de lectura y escritura
r w x = 7 todos los permisos establecidos, lectura, escritura y ejecución

Cuando se combinan los permisos del usuario, grupo y otros, se obtienen un número de tres cifras que conforman los permisos del archivo o del directorio. Esto es más fácil visualizarlo con algunos ejemplos:
Permisos Valor Descripción
rw------- 600 El propietario tiene permisos de lectura y escritura.
rwx--x--x 711 El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución.
rwxr-xr-x 755 El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo.
rwxrwxrwx 777 El archivo puede ser leido, escrito y ejecutado por quien sea.
r-------- 400 Solo el propietario puede leer el archivo, pero ni el mismo puede modificarlo o ejecutarlo y por supuesto ni elgrupo ni otros pueden hacer nada en el.
rw-r----- 640 El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros no pueden hacer nada.

Estableciendo los permisos con el comando chmod.

Habiendo entendido lo anterior, es ahora fácil cambiar los permisos de cualquier archivo o directorio, usando el comando chmod (change mode), cuya sintaxis es la siguiente:

chmod [opciones] permisos archivo[s], algunos ejemplos:

$> chmod 755 reporte1
$> chmod 511 respaldo.sh
$> chmod 700 julio*
$> chmod 644 *

Los ejemplos anterior establecen los permisos correspondientes que el usuario propietario desea establecer, el tercer ejemplo (chmod 700 julio*) cambiará los permisos a todos los archivos que empiezen con julio (julio01, julio02, julio_respaldo, etc.) debido al caracter '*' que es parte de las expresiones regulares que el shell acepta, e indica lo que sea. El último ejemplo por lo tanto cambiará los permisos a los archivos dentro del directorio actual.

Una opción común cuando se desea cambiar todo un árbol de directorios, es decir, varios directorios anidados y sus archivos correspondientes, es usar la opción -R, de recursividad:

$> chmod -R 755 respaldos/*

Esto cambiará los permisos a 755 (rwxr-xr-x) del directorio respaldos y de todos los subdirectorios y archivos que estén contenidos dentro de este.

Estableciendo permisos en modo simbólico.

Otra manera popular de establecer los permisos de un archivo o directorio es a través de identificadores del bit (r,w, o x) de los permisos, como ya se vió anteriormente, pero ahora identificando además lo siguiente:

* al usuario con la letra u
* al grupo con la letra g
* a otros usuarios con la letra o
* y cuando nos referimos a todos (usuario, grupo, otros) con la letra a (all, todos en inglés)
* el signo + para establecer el permiso
* el signo - para eliminar o quitar el permiso

La sintaxis es muy simple chmod augo[+|-]rwx[,...] archivo[s], asi por ejemplo, si queremos que otros tengan permiso de escritura sería chmod o+w archivo, todos los usuarios con permisos de ejecución chmod a+x archivo.

En este modo de establecer permisos, solo hay que tomar en cuenta que partiendo de los permisos ya establecidos se agregan o se quitan a los ya existentes.Veámoslo con ejemplos su manera de trabajar:
Actual chmod Resultado Descripción
rw------- a+x rwx--x--x Agregar a todos (all) permisos de escritura.
rwx--x--x go-x rwx------ Se eliminan permiso de ejecución para grupo y otros.
rwxr-xr-x u-x,go-r rw---x--x Al usuario se le quita ejecución, al grupo y otros se le quita lectura.
rwxrwxrwx u-x,go-rwx rw------- Al usuario se le elimina ejecución, al grupo y otros se eliminan todos los permisos.
r-------- a+r,u+w rw-r--r-- A todos se les agrega lectura, al usuario se le agrega escritura.
rw-r----- u-rw,g+w,o+x ---rw---x Al usuario se le eliminan lectura y escritura, al grupo se le agrega lectura y otros se le agrega ejecución.
Cambiando propietario y grupo

Volviendo a mostrar el listado al inicio de este artículo:

$> ls -l
-rwxrwxr-- 1 sergio ventas 9090 sep 9 14:10 presentacion
-rw-rw-r-- 1 sergio sergio 2825990 sep 7 16:36 reporte1
drwxr-xr-x 2 sergio sergio 4096 ago 27 11:41 videos

Vemos en la tercera y cuarta columna al usuario propietario del archivo y al grupo al que pertence, es posible cambiar estos valores a través de los comandos chown (change owner, cambiar propietario) y chgrp (change group, cambiar grupo). La sintaxis es muy sencilla: chown usuario archivo[s] y chgrp grupo archivo[s]. Además al igual que con chmod, también es posible utilizar la opción -R para recursividad.

#> ls -l presentacion
-rwxrwxr-- 1 sergio ventas 9090 sep 9 14:10 presentacion
#> chown juan presentacion
#> ls -l presentacion
-rwxrwxr-- 1 juan ventas 9090 sep 9 14:10 presentacion
#> chgrp gerentes presentacion
#> ls -l presentacion
-rwxrwxr-- 1 juan gerentes 9090 sep 9 14:10 presentacion


Solo el usuario root puede cambiar usuarios y grupos a su voluntad sobre cualquier usuario, queda claro que habiendo ingresado al sistema como usuario normal, solo podrá hacer cambios de grupos, y eso solo a los que pertenezca.

Una manera rápida para el usuario root de cambiar usuario y grupo al mismo tiempo, es con el mismo comando chown de la siguiente manera:

#> chown juan.gerentes presentacion (o en vez de punto, con : puntos)
#> chown juan:gerentes presentacion

Así, cambiará el usuario.grupo en una sola instrucción.

Bits SUID, SGID y de persitencia (sticky bit)

Aún hay otro tipo de permisos que hay que considerar. Se trata del bit de permisos SUID (Set User ID), el bit de permisos SGID (Set Group ID) y el bit de permisos de persistencia (sticky bit). Para entender los dos primeros el SUID y el SGID veamos los permisos para un comando de uso común a todos los usuarios, que es el comando passwd, que como se sabe sirve para cambiar la contraseña del usuario, y puede ser invocado por cualquier usuario para cambiar su propia contraseña, si vemos sus permisos observaremos un nuevo tipo de permiso:

#> ls -l /usr/bin/passwd
-r-s--x--x 1 root root 21944 feb 12 2006 /usr/bin/passwd

SUID

En vez de la 'x' en el grupo del usuario encontramos ahora una 's' (suid). passwd es un comando propiedad de root, pero sin embargo debe de poder ser ejecutado por otros usuarios, no solo por root. Es aqui donde interviene el bit SUID, donde al activarlo obliga al archivo ejecutable binario a ejecutarse como si lo hubiera lanzado el usuario propietario y no realmente quien lo lanzó o ejecutó. Es decir, es poder invocar un comando propiedad de otro usuario (generalmente de root) como si uno fuera el propietario.
SGID

El bit SGID funciona exactamente igual que el anterior solo que aplica al grupo del archivo. Es decir si el usuario pertenece al grupo 'ventas' y existe un binario llamado 'reporte' que su grupo es 'ventas' y tiene el bit SGID activado, entonces el usuario que pertenezca al grupo 'ventas' podrá ejecutarlo. También se muestra como una 's' en vez del bit 'x' en los permisos del grupo.
STICKY BIT (Bit de persistencia)

Este bit se aplica para directorios como en el caso de /tmp y se indica con una 't':

#> ls -ld /tmp
drwxrwxrwt 24 root root 4096 sep 25 18:14 /tmp

Puede apreciarse la 't' en vez de la 'x' en los permisos de otros. Lo que hace el bit de persistencia en directorios compartidos por varios usuarios, es que el sólo el propietario del archivo pueda eliminarlo del directorio. Es decir cualquier otro usuario va a poder leer el contenido de un archivo o ejecutarlo si fuera un binario, pero sólo el propietario original podrá eliminarlo o modificarlo. Si no se tuviera el sticky bit activado, entonces en estas carpetas públicas, cualquiera podría eliminar o modificar los archivos de cualquier otro usuario.
Estableciendo los permisos especiales

Para cambiar este tipo de bit se utiliza el mismo comando chmod pero agregando un número octal (1 al 7) extra al principio de los permisos, ejemplo:

#> ls -l /usr/prog
-r-x--x--x 24 root root 4096 sep 25 18:14 prog
#>chmod 4511 /usr/prog
#> ls -l /usr/prog
-r-s--x--x 24 root root 4096 sep 25 18:14 prog

Nótese que el valor extra es el '4' y los demás permisos se dejan como se quieran los permisos para el archivo. Es decir, los permisos originales en este ejemplo eran 511 (r-x--x--x), y al cambiarlos a 4511, se cambió el bit SUID reemplazando el bit 'x' del usuario por 's'.

Los posibles valores serían los siguientes:
- - - - - - - - - = 0 Predeterminado, sin permisos especiales. No se requiere indicar.
- - - - - - - - t = 1 Bit de persistencia, sticky bit
- - - - - s - - - = 2 Bit sgid de grupo
- - - - - s - - t = 3 Bit sgid y sticky
- - s - - - - - - = 4 Bit suid
- - s - - - - - t = 5 Bit suid y sticky
- - s - - s - - - = 6 Bit suid y sgid
- - s - - s - - t = 7 Bit suid, sgid y sticky

MUY IMPORTANTE: Algo sumamente delicado y que se tiene que tomar muy en cuenta es lo que decidas establecer con permisos de bit SUID y SGID, ya que recuerda que al establecerlos de esta manera, cualquier usuario podrá ejecutarlos como si fueran el propietario original de ese programa. Y esto puede tener consecuencias de seguridad severas en tu sistema. Siempre considera y reconsidera si conviene que un usuario normal ejecute aplicaciones propias de root a través del cambio de bits SUID o SGID. Mejores alternativas pueden ser los comandos sudo y su, en este tip de LinuxTotal.com.mx encuentras una manera de identificar archivos y ejecutables con estos bits establecidos.

Permisos preestablecidos con umask.

El comando umask establece la máscara de permisos de directorio y de archivos. Es decir los nuevos directorios y archivos que se crean obtienen el valor de los permisos a partir de los valores de umask.

$> umask
0002
(o en formato simbólico con la opción -S)
$> umask -S
u=rwx,g=rwx,o=rx

Lo anterior indica que un directorio y archivos ejecutables se crearán con los permisos 775 y los archivos comunes con los permisos 664. Esto se logra restando de 777 el valor de umask (777-002) y (666-002) respectivamente. El primer valor de umask corresponde para valores de Sticky bit, GUID o SUID, que por default es 0.

$> umask
0002
(Creamos un archivo y según la máscara debemos de tener 666-002=664 o rw-rw-r--)
$> touch archivo
$> ll archivo
-rw-rw-r-- 1 sergio sergio 0 sep 25 20:14 archivo
(Ahora creamos un directorio y según la máscara debemos de tener 777-002=775 o rwxrwxr-x)
$> mkdir dir
$> ls -ld dir
drwxrwxr-x 2 sergio sergio 4096 sep 25 20:20 dir

Para establecer el valor de la máscara, simplemente se usa el mismo comando umask seguido del valor de máscara que se desee:

$> umask 0022

Para dejarlo fijo en la sesión, entonces conviene agregarlo a .bash_profile o .bash_rc de nuestro directorio de inicio.


Búsqueda personalizada



Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:


Instalacion y configuracion de Fluxbox.

Fluxbox es un gestor de ventanas. Su objetivo es ser ligero y altamente personalizable, con sólo un soporte mínimo para iconos, gráficos, y sólo capacidades básicas de estilo para la interfaz. 

Se utilizan atajos de teclado, tabs, y menús simples como interfaces, los cuales pueden ser editados.

Algunos usuarios prefieren Fluxbox sobre otros gestores de ventanas debido a su velocidad y simplicidad.

Iniciamos instalando Fluxbox:
sudo aptitude install fluxbox

Aceptar toda confirmacion que pida (si es que la pide).

Se descarga e instala en cuestion de segundos, literalmente, porque es RE liviano.


Acceder a Fluxbox.

Cerramos la sesion una vez termine la instalacion y en la pantalla para
loguearse clickeamos "Sesion" y elegimos "Fluxbox".

Aceptamos e iniciamos sesion.

Si tenian Gnome, les va a preguntar si quieren que quede como
predeterminado siempre que entren Fluxbox o que sea solo esa vez
hasta que cierren la sesion.

Ya estamos dentro de Fluxbox.

Cambiar la apariencia en Fluxbox.

Te metes en esta pagina:

http://www.box-look.org/index.php?xc...6cf4de6cd2165b

Elegi el tema que mas te guste.

Lo descargas y lo descomprimis.

Copia y pega la carpeta en este directorio: /home/TU_NOMBRE_DE_USUARIO/.fluxbox/styles

Ahora haciendo click derecho en el escritorio te va a aparecer el menú.

Anda a la opcion Styles y clickea el que agregaste vos a la carpeta.



Modificando el menu de Fluxbox.

Tirá este comando en una consola:

gedit home/TU_NOMBRE_DE_USUARIO/.fluxbox/menu

Ese archivo es el menú. Despues buscá en internet que hay tutoriales de
como armarte el tuyo como mas te guste.

Yo te tiro el codigo del mio, que me lo modifiqué a mi gusto, con "accesos directos".
Lo que tenes que hacer es borrar lo que tenga ese archivo y copiar y pegar esto:

[begin] (Linux) {}
[exec] (HOME Thunar) { thunar $HOME} <>
[exec] (HOME Nautilus) { nautilus --no-desktop $HOME} <>
[separator] () {}
[exec] (Opera) {opera} <>
[exec] (Pidgin) {pidgin} <>
[exec] (Thunderbird) {thunderbird} <>
[exec] (Amarok) {amarok} <>
[exec] (Firefox) {firefox} <>
[exec] (Gedit) {gedit} <>
[exec] (Terminal) {gnome-terminal} <>
[exec] (Monitor del sistema) {gnome-system-monitor} <>
[exec] (Screenshot) {gnome-screenshot} <>
[exec] (Agregar/Quitar) {gnome-app-install} <>
[separator] () {}
[submenu] (Sistema) {}
[include] (/etc/X11/fluxbox/fluxbox-menu) {}
[submenu] (Styles) {}
[stylesdir] (/usr/share/fluxbox/styles) {}
[stylesdir] (~/.fluxbox/styles) {}
[end]
[end]

Fijate que al principio estan todos los "accesos directos" a programas que YO uso.

Si usas otros, cambialos.

Lo que va entre parentesis es el nombre que aparece en el menú, lo que va entre
llaves es el comando de ejecucion de la aplicacion.

Por ejemplo, yo tengo (Pidgin) {pidgin}, si usas aMSN, entonces mandale (aMSN) {amsn}.

Elementos en el panel inferior.

Primero que nada explico una cosa. Tirá este comando en consola:

gedit home/TU_NOMBRE_DE_USUARIO/.fluxbox/init

Este es el archivo de configuración de todo el entorno.

Si mas o menos tenes idea de ingles y le pones onda, vas a entender que es cada cosa.

Los del principio son el ancho de las barras, titulos, tamaños de letra, etc...

Nos vamos a la linea que dice session.screen0.rootCommand:

Despues de los dos puntos no hay nada, porque lo vamos a agregar nosotros.

Que es esta linea? Aca se ponen las cosas que queres que se ejecuten automaticamente
cuando inicias sesion.

Por si no te diste cuenta, en el panel inferior, no tenes el administrador de redes,
y si tenes notebook, tampoco tenes el monitor de bateria. Como los agregas?
session.screen0.rootCommand: nm-applet & gnome-power-manager &

Los "&" son separadores para que la maquina sepa cual es el nombre del programa.

Tampoco tenes para modificar el sonido.

Tampoco tenes el iconito que te avisa cuando hay actualizaciones disponibles.

Asi que a la misma linea a la que le agregamos antes, ahora le agregas esto:

session.screen0.rootCommand: nm-applet & gnome-power-manager & update-notifier &

Obviamente que solo le agregas el "update-notifier &", porque el resto ya lo tenes.

Wallpaper.

Primero instalamos esto:

sudo aptitude install eterm

Te recomiendo poner el wallpaper que quieras usar en esta carpeta /home/TU_NOMBRE_DE_USUARIO/.fluxbox/backgrounds
Con este comando pones el wallpaper:

fbsetbg -f /home/TU_NOMBRE_DE_USUARIO/.fluxbox/backgrounds/
NOMBRE_DEL_WALLPAPER

Que significa el comando? "fbsetbg" (fb = FluxBox, set = poner xD, bg = BackGround)
El "-f" indica "fullscreen", es decir, pantalla completa. Si lo queres centrado, entonces
poné "-c", e imaginate las demas variantes.

Que problema tenemos ahora? Que es un comando el poner el fondo de pantalla,
que no es autoejecutable al inicio del sistema. Entonces? Que hachemo'?
Lo agregamos al init! Tonce... Otra linea mas:

session.screen0.rootCommand: nm-applet & gnome-power-manager &
update-notifier & fbsetbg -f /home/TU_NOMBRE_DE_USUARIO/.fluxbox/
backgrounds/NOMBRE_DEL_WALLPAPER &

Cada vez que cambien el wallpaper tienen que cambir el nombre del wallpaper
en esa linea, obviamente.

Gvtray (progrma para controlar el volumen).

Como se dieron cuenta, no hay nada que les ayude a regular el sonido.

Yo les recomiendo GVTRAY.
sudo apt-get install python-alsaaudio python-gnome2-extras
wget http://gtk-tray-utils.googlecode.com...ray-1.1.tar.gz

Lo descomprimimos y nos metemos en la carpeta:

tar -xvf gvtray-1.1.tar.gz cd gvtray-1.1

Ahora metan estos comandos xD :

sudo mkdir /usr/share/gvtray
sudo cp gvtray /usr/bin
sudo cp gvtray.py /usr/share/gvtray/
sudo cp -r gvtray_about/ /usr/share/gvtray/gvtray_about

Finalmente, agregan a la linea "session.screen0.rootCommand" del INIT el GVTRAY.
Como les quedaria el INIT entonces?

session.screen0.rootCommand: nm-applet & gnome-power-manager &
update-notifier & fbsetbg -f /home/TU_NOMBRE_DE_USUARIO/.fluxbox/
backgrounds/NOMBRE_DEL_WALLPAPER & gvtray &

Mejorar apariencia de aplicaciones GTK:

Para mejorar su aspecto, ya que originalmente se ven "mal", instalamos este programa:

sudo aptitude install gtk-chtheme

No recuerdo si se necesita alguna repo aparte. Si no se los instala de una diganme que la busco.
Una vez instalado lo ejecutamos escribiendo en consola:

gtk-chtheme

Elijan el estilo que quieran, y listo.

Los iconos no son los que queres? Asi se cambian:

Te vas a esta carpeta /usr/share/icons y te fijas como se llaman los iconos que queres
(son los mismos que tenias en gnome).
Despues abris el archivo .gtkrc-2.0 que esta en tu carpeta Home y al final de todo le
agregas esta linea:
gtk-icon-theme-name = NOMBRE_DE_LOS_ICONOS

Clicar "Restart" y listo.

ACLARACIONES IMPORTANTES:
- El archivo "keys" en el directorio /home/TU_NOMBRE_DE_USUARIO/.fluxbox/
es en el que se manejan los accesos directos por teclado.

Yo lo configure como esta en Gnome. Si quieren, copien y peguen:
OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu
OnDesktop Mouse4 :NextWorkspace
OnDesktop Mouse5 revWorkspace
Mod1 Tab :NextWindow
Mod1 Shift Tab revWindow
Mod1 F2 :ExecCommand fbrun
Mod1 F4 :Close

Mod1 = Tecla ALT

- Si les falta algun directorio de los que nombré en el tutorial, o algun archivo,
entonces creenló ustedes No hay drama, suele pasar.

En caso del archivo init, si no tenes la linea "session.screen0.rootCommand:", agregala.

- Donde vean "ALFA" y al lado un numero (255), eso es la cantidad de transparencia
de algo.

Por ejemplo, haciendo click derecho sobre el panel inferior con la ruedita del mouse
podes regular la cantidad de transparencia.

Tambien tenes en el menú en el escritorio, en la configuracion de Fluxbox, para
regular la transparencia en los bordes de ventanas.

Yo lo puse asi:

Alfa 150 para el panel inferior.
Alfa 200 para la ventana activa.
Alfa 100 para la ventana inactiva.

- Revisen ustedes y no tengan miedo. Es cuestion de amigarse con el init y de
aprenderse como configurar el menú para armarse uno propio (yo todavia no aprendi,
me robe el de un amigo y le modifique los accesos directos y algun que otro nombre xD)

- Para Ubuntu 9.04, no es necesario modificar las KEYS ya que cuando instalamos Fluxbox,
la config de las keys esta muy buena, y no como en las versiones anteriores que es diferente.

- Si usan WICD y/o kpowersave en vez de las aplicaciones de GNOME, entonces agreguen
asi al init:

session.screen0.rootCommand: wicd-client & kpowersave &

Y asi todas las demas aplicaciones, por ejemplo, yo ahora tengo tambien klipper,
y agrego "klipper &".
 Capturas de pantallas.













Búsqueda personalizada

Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:


Diseño Gráfico en Linux: completo videotutorial de Gimp (28 vídeos).

GIMP (GNU Image Manipulation Program) es un programa de edición de imágenes digitales en forma de mapa de bits, tanto dibujos como fotografías. Es un programa libre y gratuito. Forma parte del proyecto GNU y está disponible bajo la Licencia pública general de GNU.


Es el programa de manipulación de gráficos disponible en más sistemas operativos (Unix, GNU/Linux, FreeBSD, Solaris, Microsoft Windows y Mac OS X, entre otros).


La interfaz de GIMP está disponible en varios idiomas, entre ellos: español, alemán, inglés, catalán, gallego, euskera, francés, italiano, ruso, sueco, noruego, coreano y neerlandés.


En una gran cantidad de casos, Gimp es una alternativa sólida, potente y rápida a Photoshop, aunque no ha sido desarrollado como un clon de este y posee una interfaz diferente.


Un tutorial su Gimp lo encuentras en esta página.


Los iniciadores del desarrollo de GIMP en 1995 fueron los estudiantes Spencer Kimball y Peter Mattis como un ejercicio semestral en la Universidad de Berkeley, en el club informático de estudiantes. Actualmente un equipo de voluntarios se encarga del desarrollo del programa. La primera versión de GIMP se desarrolló inicialmente en sistemas Unix y fue pensada especialmente para GNU/Linux, como una herramienta libre para trabajar con imágenes y se ha convertido en una alternativa libre y eficaz al Photoshop para gran número de usos.


GIMP significaba inicialmente «General Image Manipulation Program» («Programa general para manipulación de imágenes»), pero en 1997 se cambió al significado «GNU Image Manipulation Program» («Programa de manipulación de imágenes de GNU»). GIMP forma parte oficial del Proyecto GNU.


GIMP sirve para procesar gráficos y fotografías digitales. Los usos típicos incluyen la creación de gráficos y logos, el cambio de tamaño, recorte y modificación de fotografías digitales, la modificación de colores, la combinación de imágenes usando un paradigma de capas, la eliminación o alteración de elementos no deseados en imágenes o la conversión entre distintos formatos de imágenes. También se puede utilizar el GIMP para crear imágenes animadas sencillas, la manipulacíon de vectores, edición avanzada de video.


GIMP es también conocido por ser quizás la primera gran aplicación libre para usuarios no profesionales o expertos. Productos originados anteriormente, como GCC, el núcleo Linux, etc., eran principalmente herramientas de programadores para programadores. GIMP es considerado por algunos como una demostración fehaciente de que el proceso de desarrollo de software libre puede crear aplicaciones que los usuarios comunes, no avanzados, pueden usar de manera productiva. De esta forma, Gimp ha abierto el camino a otros proyectos como KDE, GNOME, Mozilla Firefox, OpenOffice.org y otras aplicaciones posteriores.
Completo videotutorial de Diseño Grafico en Linux.
Les dejo 28 vídeos (casi 4 horas) realizados por Leonel Iván Saafigueroa donde explica como utilizar algunas herramientas de GIMP

















































































Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Instalar Conky con previsión del tiempo en Ubuntu 10.10 Maverick Meerkat.

Conky es un monitor de sistema libre y ligero para X, que muestra información diversa en su escritorio. Ayer, después que alguien me hiciera una pregunta en un foro de Ubuntu, decidí instalarlo en mi escritorio Ubuntu 10.10 de mis ordenadores de sobremesa y portátil. No fue fácil y tuve que consultar diversos foros y enlaces, así que decidí escribir este artículo sobre lo que hice.

Mi configuración de conky involucra dos secciones diferentes y ocupa un lugar considerable de mi escritorio. En la configuración de dos monitores que tengo en mi sobremesa eso no es un problema, pero en el portátil presenta el problema que Conky, a pesar de que siempre se ubica debajo de cualquier ventana, se posiciona encima de los iconos de escritorio, de manera que cualquier icono que esté en el área donde está conky quedará oculto por él. No uso demasiados iconos de escritorio y los iconos de todas maneras se pueden acceder pasando el ratón sobre la ventana de conky, pero sea consciente de este problema si lo quiere instalar.

En mi ordenador de sobremesa uso dos monitores y configuré conky para que se muestre en el rincón superior derecho, y se muestra en el segundo monitor. En el portátil también está configurado para que se muestre en el rincón superior derecho. También instalé conkyForecast que es un script de python para acceder información meterológica para conky provista por www.weather.com, un servicio meteorológico en línea.

Así es como de bonito se ve en mi portátil, con el fondo de pantalla "cometa" que se puede encontrar en/usr/share/backgrounds/cosmos/comet.jpg:



Lo primero que se tiene que hacer es instalar conky:

sudo apt-get install conky
Esperaremos para configurar conky a tener instalado todo lo referente a
la previsión del tiempo.

Para esto lo primero que tiene que hacer, si no lo ha hecho ya, es abrir una
cuenta en www.weather.com. Cuando se subscribe, tiene que pedir un
"XML weather feed", que es un producto libre que el lugar ofrece con un código
que permite a una página web obtener un canal con información meteorológica.

Una vez que se registra y pide este producto recibirá un correo largo, pero en
algún lugar podrá encontrar:

Partner ID: 1333566431 License Key: 8b530a2a1ab8008a

También necesita obtener información sobre su localización.

Para esto navegue a www.weather.com, y en la parte superior izquierda
encontrará un campo donde entrar una localización y pedir información
sobre el tiempo allí. Entre su localización, por ejemplo yo entré Barcelona,
y mire por la dirección URL que le muestra su navegador, yo por ejemplo veo:

http://www.weather.com/weather/today/Barcelona+Spain+SPXX0015

Necesita el código después del último signo "+", o sea SPXX0015.

Antes de continuar necesita bajarse un par de tipos de letra, al menos yo lo tuve
que hacer, una para el logo de Ubuntu y el título, y la otra para los símbolos
meteorológicos (el sol, las nubes, etc.).

Los símbolos de Ubuntu se pueden bajar de:

http://www.gnome-look.org/content/show.php/OpenLogos?content=54390


Puede poner el archivo bajado a una carpeta llamada ".fonts" en su carpeta de inicio
o en /usr/share/fonts/truetype/myfonts.

El tipo de letra de meteorología lo puede bajar de:

http://www.dafont.com/search.php?psize=m&q=weather

Instale el archivo ttf (cámbiele el nombre a weather.ttf) en cualquiera de los dos
lugares mencionados.

A continuación necesita instalar el script conkyForecast de python.

Está en un depósito PPA, puede instalarlo con las dos líneas siguientes en una terminal:
sudo add-apt-repository ppa:conkyhardcore/ppa sudo apt-get update && sudo apt-get install conkyforecast

Ahora copie conkyForecast a su carpeta de inicio:

cp /usr/share/conkyforecast/conkyForecast.config ~/.conkyForecast.config

Bien, ya está todo instalado. Ahora tenemos que editar el archivo de
configuración de conky y de conkyforecast.

Primero editamos el archivo ".conkyForecast.config" que ponemos en nuestra
carpeta de inicio:
# config settings for conkyForecast.py CACHE_FOLDERPATH = /tmp/ CONNECTION_TIMEOUT = 5 EXPIRY_MINUTES = 30 TIME_FORMAT = %H:%M DATE_FORMAT = %Y-%m-%d LOCALE = us_US XOAP_PARTNER_ID = 1333566431 XOAP_LICENCE_KEY = 8b530a3a1ab8008a MAXIMUM_DAYS_FORECAST = 4 AUTO_NIGHT = False BASE_XOAP_URL = http://xoap.weather.com/weather/local/SPXX0015?cc=*&dayf=5&link=xoap∏=xoap&par=1333566431&key=8b530a3a1ab8008a&unit=m PROXY_HOST = PROXY_PORT = 8080 PROXY_USERNAME = PROXY_PASSWORD =
Substituya mi código por los que obtuvo de www.weather.com.

Ahora tiene que crear dos archivos en su carpeta de inicio, ".conkyrc1"
y ".conkyrc2" para configurar cada uno de los paneles conky que se pueden
ver en mi escritorio. Aquí están, entre también su localización en los lugares
apropiados en vez de los míos.

En ".conkyrc1" ajuste los parámetros para los procesores y los discos
de su entorno:

.conkyrc1
############################# ## VinDSL | 1280x1024x24 ## ############################# #### ## Use XFT? Required to Force UTF8 (see below). # use_xft yes xftfont LiberationSans:size=9 xftalpha 0.1 text_buffer_size 2048 #### ## Force UTF8? Requires XFT (see above). ## Displays degree symbol, instead of °, etc. # override_utf8_locale yes #### ## Update interval in seconds. # update_interval 1.5 #### ## This is the number of times Conky will update before quitting. ## Set to zero to run forever. # total_run_times 0 #### ## Create own window instead of using desktop (required in nautilus)? # own_window yes own_window_type override own_window_transparent yes #### ## Use double buffering? Reduces flicker. # double_buffer yes #### ## Draw shades? # draw_shades no #### ## Draw outlines? # draw_outline no #### ## Draw borders around text? # draw_borders no #### ## Draw borders around graphs? # draw_graph_borders no #### ## Print text to stdout? ## Print text in console? # out_to_ncurses no out_to_console no #### ## Text alignment. # alignment top_right #### ## Minimum size of text area. # minimum_size 235 0 #### ## Specify width and height for bars. # default_bar_size 0 4 #### ## Gap between text and screen borders. # gap_x 400 gap_y 28 #### ## Shorten MiB/GiB to M/G in stats. # short_units yes #### ## Pad % symbol spacing after numbers. # pad_percents 0 #### ## Limit the length of names in "Top Processes". # top_name_width 10 #### ## Subtract file system -/+buffers/cache from used memory? ## Set to yes, to produce meaningful physical memory stats. # no_buffers yes #### ## Set to yes, if you want all text to be in UPPERCASE. # uppercase no #### ## Number of cpu samples to average. ## Set to 1 to disable averaging. # cpu_avg_samples 4 #### ## Number of net samples to average. ## Set to 1 to disable averaging. # net_avg_samples 2 #### ## Add spaces to keep things from moving around? ## Only affects certain objects. # use_spacer right #### ## My colors. # color0 White color1 Ivory color2 Ivory2 color3 Ivory3 color4 Tan1 color5 Tan2 color6 Gray color7 AntiqueWhite4 color8 DarkSlateGray color9 Black TEXT ################## ## LOGO ## ################## ${voffset -42}${font OpenLogos:size=103}${color2}v${voffset -66}${goto 178}${font UbuntuTitleBold:size=20}${color4}10.10 ################## ## SYSTEM ## ################## ${voffset 10}${font Arial:bold:size=9.5}${color4}SYSTEM ${color8} ${hr 2} ${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font}${color6} ${sysname} ${kernel} ${alignr} ${machine} ${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font}${color6} Intel I5 ${alignr}${freq_g cpu0} GHz ${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font}${color6} Uptime ${alignr}${uptime} ${voffset 2}${font StyleBats:size=10}${color2}o${voffset -1}${font}${color6} File System ${alignr}${fs_type} ################## ## PROCESSORS ## ################## ${voffset 5}${font Arial:bold:size=9.5}${color4}PROCESSORS ${color8}${hr 2} ${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU1 ${cpu cpu1}%${color7}${alignc 35}${cpubar cpu1} ${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU2 ${cpu cpu2}%${color7}${alignc 35}${cpubar cpu2} ${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU3 ${cpu cpu3}%${color7}${alignc 35}${cpubar cpu3} ${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU4 ${cpu cpu4}%${color7}${alignc 35}${cpubar cpu4} ################## ## MEMORY ## ################## ${voffset 5}${font Arial:bold:size=9.5}${color4}MEMORY ${color8}${hr 2} ${voffset 2}${font StyleBats:size=10}${color2}l${voffset -2}${font}${color6} RAM ${goto 95}${mem}/ ${memmax}${alignr}${memperc}% ${color7}${membar} ################## ## HDD ## ################## ${voffset 2}${font Arial:bold:size=9.5}${color4}HDD ${color8}${hr 2} ${voffset 2}${font StyleBats:size=10}${color2}x${voffset -2}${font}${color6} ROOT ${goto 95}${fs_used /} / ${fs_size /}${alignr}${fs_free_perc /}% ${color7}${fs_bar /} ${voffset 1}${font StyleBats:size=10}${color2}x${voffset -2}${font}${color6} HOME ${goto 95}${fs_used /home}/ ${fs_size /home}${alignr}${fs_free_perc /home}% ${color7}${fs_bar /home} ${voffset 1}${font StyleBats:size=10}${color2}x${voffset -2}${font}${color6} Data ${goto 95}${fs_used /data}/ ${fs_size /data}${alignr}${fs_free_perc /data}% ${color7}${fs_bar /data} ${voffset 1}${font StyleBats:size=10}${color2}4${voffset -2}${font}${color6} SWAP ${goto 95}${swap} / ${swapmax}${alignr}${swapperc}% ${color7}${swapbar} ################## # TOP PROCESSES ## ################## ${voffset 3}${font Arial:bold:size=9.5}${color4}TOP PROCESSES ${color8}${hr 2} ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 1}${goto 115}${top_mem mem_res 1}${alignr}${top_mem mem 1}% ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 2}${goto 115}${top_mem mem_res 2}${alignr}${top_mem mem 2}% ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 3}${goto 115}${top_mem mem_res 3}${alignr}${top_mem mem 3}% ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 4}${goto 115}${top_mem mem_res 4}${alignr}${top_mem mem 4}% ################## ## NETWORK ## ################## ${voffset 5}${font Arial:bold:size=9.5}${color4}NETWORK ${color8}${hr 2} ${voffset 2}${font PizzaDude Bullets:size=10}${color2}a${font}${color6} Private IP${alignr}${addr eth0} ${font PizzaDude Bullets:size=10}${color2}a${font}${color6} Public IP${alignr}${execi 600 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit|.]//g'} ${voffset 4}${font PizzaDude Bullets:size=10}${color2}T${font}${color6} Down${alignr}${downspeed eth0} ${font PizzaDude Bullets:size=10}${color2}N${font}${color6} Up${alignr}${upspeed eth0} ${voffset 4}${font PizzaDude Bullets:size=10}${color2}T${font}${color6} Downloaded${alignr}${totaldown eth0} ${font PizzaDude Bullets:size=10}${color2}N${font}${color6} Uploaded${alignr}${totalup eth0}
.conkyrc2:
############################# ## VinDSL | 1280x1024x24 ## ############################# #### ## Use XFT? Required to Force UTF8 (see below). # use_xft yes xftfont LiberationSans:size=9 xftalpha 0.1 text_buffer_size 2048 #### ## Force UTF8? Requires XFT (see above). ## Displays degree symbol, instead of °, etc. # override_utf8_locale yes #### ## Update interval in seconds. # update_interval 1.5 #### ## This is the number of times Conky will update before quitting. ## Set to zero to run forever. # total_run_times 0 #### ## Create own window instead of using desktop (required in nautilus)? # own_window yes own_window_type override own_window_transparent yes #### ## Use double buffering? Reduces flicker. # double_buffer yes #### ## Draw shades? # draw_shades no #### ## Draw outlines? # draw_outline no #### ## Draw borders around text? # draw_borders no #### ## Draw borders around graphs? # draw_graph_borders no #### ## Print text to stdout? ## Print text in console? # out_to_ncurses no out_to_console no #### ## Text alignment. # alignment top_right #### ## Minimum size of text area. # minimum_size 235 0 #### ## Specify width and height for bars. # default_bar_size 0 4 #### ## Gap between text and screen borders. # gap_x 10 gap_y 28 #### ## Shorten MiB/GiB to M/G in stats. # short_units yes #### ## Pad % symbol spacing after numbers. # pad_percents 0 #### ## Limit the length of names in "Top Processes". # top_name_width 10 #### ## Subtract file system -/+buffers/cache from used memory? ## Set to yes, to produce meaningful physical memory stats. # no_buffers yes #### ## Set to yes, if you want all text to be in UPPERCASE. # uppercase no #### ## Number of cpu samples to average. ## Set to 1 to disable averaging. # cpu_avg_samples 4 #### ## Number of net samples to average. ## Set to 1 to disable averaging. # net_avg_samples 2 #### ## Add spaces to keep things from moving around? ## Only affects certain objects. # use_spacer right #### ## My colors. # color0 White color1 Ivory color2 Ivory2 color3 Ivory3 color4 Tan1 color5 Tan2 color6 Gray color7 AntiqueWhite4 color8 DarkSlateGray color9 Black TEXT ################## ## WEATHER ## ################## ${voffset 5}${font Arial:bold:size=9.5}${color4}WEATHER ${color8}${hr 2} # ${goto 59}${font Weather:size=40}${color1}y${voffset -8}${font RadioSpace:size=32}${color3}${offset 14}${execpi 600 conkyForecast --location=SPXX0015} ${goto 59}${font Weather:size=40}${color1}y${voffset -8}${font RadioSpace:size=32}${color3}${offset 14}${execpi 600 conkyForecast --location=GMXX2809} ${voffset -17}${font Arial:size=22}${color4}${alignc}${execi 600 conkyForecast --location=SPXX0015 --datatype=OB} ${voffset 7}${goto 20}${font ConkyWindNESW:style=Bold:size=38}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=BS}${goto 96}${voffset -5}${font ConkyWeather:style=Bold:size=40}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=WF}${voffset -2}${goto 180}${font MoonPhases:size=30}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT} ${voffset -20}${goto 30}${font}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=WS}${goto 86}Feels like ${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --centeredwidth=4 }${goto 182}Lunar ${voffset 10}${goto 30}${font}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=1 --shortweekday}${goto 83}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=2 --shortweekday}${goto 136}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=3 --shortweekday}${goto 192}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=4 --shortweekday} ${goto 20}${font}${color2}${font ConkyWeather:size=32}${execi 600 conkyForecast --location=SPXX0015 --datatype=WF --startday=1 --endday=4 --spaces=1} ${goto 22}${voffset -30}${font}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=1 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=1 --hideunits --centeredwidth=4 }${goto 76}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=2 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=2 --hideunits --centeredwidth=4 }${goto 130}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=3 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=3 --hideunits --centeredwidth=4 }${goto 185}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=4 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=4 --hideunits --centeredwidth=4 } ################## ## TIME ## ################## ${voffset 5}${font Arial:bold:size=9.5}${color4}TIME ${color8}${hr 2} ${voffset -4}${if_match ${time %l}<=9}${font RadioSpace:size=32}${color3}${alignc 2}${time %H:%Mh }${else}${if_match ${time %l}>=10}${font RadioSpace:size=32}${color3}${alignc 2}${time %H:%Mh}${endif}${endif} ${voffset -35}${font LiberationSans:size=8}${color4}${alignc 5}Sunrise${offset 1}${execi 600 conkyForecast --location=SPXX0015 --datatype=SR --startday=1}${color3}${offset 2}|${offset 2}${color4}Sunset${offset 1}${execi 600 conkyForecast --location=SPXX0015 --datatype=SS --startday=1} ################## ## CALENDAR ## ################## ${voffset 5}${font Arial:bold:size=9.5}${color4}DATE ${color8}${hr 2} ${voffset 4}${font LiberationSansBold:size=10}${color4}${alignc 7}${execpi 60 VinDSL_Cal= date +'%B${offset 6}%Y'} ${voffset 2}${font LiberationMono:size=9.5}${execpi 60 VinDSL_Cal= cal | sed '1d' | sed -e 's/'`date | awk '{print $3}'`'/${color4}'`date | awk '{print $3}'`'${color3}/' | sed 's/^/${offset 36}${color3}/'}
Puede probar la configuración para ver si todo funciona bien entrando
los siguientes comandos desde una terminal:
conky -c ~/.conkyrc1 & conky -C ~/.conkyrc2 &
Finalmente tiene que configurar que estos dos comandos como programas
de inicio de manera que obtenga conky en su escritorio cada vez que empieza
el escritorio. Para esto tiene que crear otro script para comenzar conky
automáticamente cuando empieza la sesión de escritorio.

Este es el script, que tiene que ubicar en su carpeta de inicio y llamarlo por
ejemplo .conky_autostart.sh:
#!/bin/bash sleep 20 && conky -c ~/.conkyrc1 sleep 20 && conky -c ~/.conkyrc2
Y ahora tiene que ir al menú Preferences -> Startup programs, y añadir
este script como se muestra en la captura de pantalla:


Un comentario final sobre el problema que mencioné al principio sobre
iconos ocultos. Si se coloca un icono de escritorio en el área donde tiene el
conky, quedará oculto por él ubicándose entre el escritorio y conky y no
podrá verlo. Esto no pasa con las ventanas de aplicaciones que siempre se
ubican por encima de conky. Esto no representa un problema demasiado
grande para mi ya que mantengo el escritorio bastante limpio de iconos,
pero por ejemplo si inserta un dispositivo USB por ejemplo, el icono de
acceso puede aparecer en el área de conky y quedar oculto. Esto tampoco
es un problema, si no encuentra un icono simplemente pase el ratón sobre
el área de conky y el puntero cambiará a un dedo señalando cuando está sobre
el icono. Simplemente clique con el botón izquierdo del ratón y manteniéndolo
presionado muévase a otra área del escritorio libre de conky. Esto moverá el
icono fuera del área de conky.



Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog: