Archivo

Entradas Etiquetadas ‘pcmanfm’

Permisos de archivos en Linux

Jueves, 4 de Febrero de 2010

Sin profundizar demasiado en el tema, voy a explicar como maneja Linux los permisos de archivos, para entender como funciona, y poder configurarlo fácilmente.

Si lo que queréis es la versión extendida, aquí os dejo un par de enlaces, en los que se explica de una manera más completa:
http://www.ant.org.ar/cursos/curso_intro/x1439.html

Voy a empezar, explicándolo de una manera gráfica, que seguro que es algo más intuitiva. Cuando abrimos las propiedades con el botón derecho del ratón, en cualquier archivo o directorio, veremos una pantalla como esta:

En nautilus: (a mi parecer, un poco complicada su forma de visualización)

En pcmanfm: (más sencillo imposible)

Bien, ahora vamos a ver que significa cada parte:

Hay tres secciones, el propietario, el grupo, y los otros usuarios que no pertenecen al grupo marcado. Cada uno de estos colectivos, tiene tres clases de permisos. Lectura (poder leer el archivo), escritura (editar, y borrar el archivo), y ejecución (el archivo podrá ser ejecutado). Estas opciones pueden aplicarse a un archivo, o a un directorio.

En las imágenes mostradas arriba, podemos ver un directorio que se encuentra en mi partición de datos, que alberga música. El propietario soy yo, con permisos de lectura, escritura, y ejecución, mientras que los demás usuarios, pueden escuchar esa música, pero no borrarla o editarla, de manera que podemos estar tranquilos.

Solo podremos cambiar los permisos, de los archivos y directorios que seamos dueños (a no ser que los editemos como root), lógico no? Bien, ahora que ya hemos entendido como funcionan los permisos, vamos a profundizar un poco, y ver como gestionarlos desde la terminal (puede sernos muy útil).

Con el comando, ls -la (ls para listar, -l para mostrar los permisos, y -a para mostrar archivos ocultos), veremos una lista como esta en cualquier directorio (cojo los ejemplos de ant.org):

[shrek@pantano:~]$ ls -la
total 13
drwxr-sr-x   2 shrek    user        1024 May  2 09:04 .
drwxrwsr-x   4 root     staff       1024 Apr 17 21:08 ..
-rw-------   1 shrek    user        2541 May  2 22:04 .bash_history
-rw-r--r--   1 shrek    user         164 Apr 23 14:57 .bash_profile
-rw-r--r--   1 shrek    user          55 Apr 23 14:44 .bashrc
-rwxrwxr-x   1 shrek    user           0 Apr 14 19:29 a.out
-rwxrwxr-x   1 shrek    user          40 Apr 30 12:14 hello.pl
-r--------   1 shrek    user          64 Apr 29 14:04 hola
-rwxrw-r--   1 shrek    user         337 Apr 29 13:57 lista
-rw-rw-r--   1 shrek    user         40  Apr 30 12:31 listador
-rw-rw-r--   1 shrek    user           0 May  2 09:04 null
-rwxrwxr-x   1 shrek    user         175 Apr 30 12:30 prue.pl
-rwxrwxr-x   1 shrek    user          56 Apr 23 15:08 que.sh

Vemos, que se listan 10 caracteres, que nos dan la información que necesitamos, vamos a verlo uno por uno, una vez entendido, es muy fácil de interpretar. El primero, nos dice que tipo de archivo o directorio es:

Contenido Significado
- Archivo común
d Directorio
c Dispositivo de caracteres (tty o impresora)
b Dispositivo de Bloque (usualmente disco rígido o CD-ROM)
l Enlace simbólico
s Socket
p Pipe

Ahora vamos, a ver que significan los siguientes caracteres, que son los que nos importan:

Como veis, es lo mismo que nos mostraba la interface gráfica, 3 subgrupos, de 3 caracteres, el primero es permiso de lectura (r de read), el segundo escritura (w de write), y el tercero de ejecución (x execute).

Para cambiar los permisos, usaremos el comando chmod en una terminal. Agregaremos permisos con el símbolo mas “+” y los quitaremos con el símbolo “-”. También tenemos que especificar a que grupo se los estamos aplicando, al propietario:

a: aplicar a todos

u: aplicar al propietario

g: aplicar al grupo

o: aplicar a terceros

Pongo un par de ejemplos, para que se entienda mejor:

chmod a+x archivo

Le estaremos agregando permisos de ejecución (x), para todos.

chmod go-w archivo

Ahora en cambio, le estamos quitando los permisos de escritura (w), a los miembros del grupo, y a terceros

De todas, maneras, hay una manera más sencilla, de hacer estos cambios, y es usando el sistema octal. Para los que sepáis un poco de matemáticas, o tengáis curiosidad, os explico de donde salen los números que vamos a ver a continuación. Con este sistema, a cada privilegio, se le aplica un número, siguiendo el sistema octal: el bit x es 20 = 1, el bit w es 21 = 2, el bit r es 22 = 4.

Resumiendo:
r = 4
w = 2
x = 1

Ahora haciendo simples sumas, podemos nombrar cualquier permisos mediante números de 3 dígitos (el primero para el propietario, el segundo para el grupo, y el tercero para terceros).

Valor Descripción
700 El propietario tiene permisos de lectura, escritura y ejecución; los demás no pueden ni acceder (ejemplo, la home)
744 El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución lectura
755 El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo.
777 El archivo puede ser leído, escrito y ejecutado por quien sea.
640 El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros no pueden hacer nada.

Solo tenemos que sumar los ingredientes que queramos, para saber el número que debemos aplicar, es bastante sencillo y fácil de recordar. Luego aplicamos el valor, con el comando chmod:

chmod 755 archivo

Ahora, por últimos, vamos a ver como cambiar el propietario o el grupo al que pertenece un archivo. Lo haremos con el comando chown. Indicaremos el nombre del propietario nuevo, y también podemos agregar seguido de un punto, el nombre del grupo, si queremos cambiarlo.

chown pepito archivo.txt

Nombra a pepito propietario del archivo

chown pepito.amigos archivo.txt

Nombra a pepito propietario del archivo y además cambia el grupo a “amigos”.

chown .amigos archivo.txt

Cambia el grupo a “amigos”, pero mantiene el mismo propietario de archivo.

Eso es todo. Esto nos servirá para entender mejor como maneja linux los permisos, y poder solucionar pequeños errores que nos encontremos, o administrar mejor nuestro sistema, sobretodo si hay más de un usuario en el mismo, y no queremos llevarnos sorpresas.

Tepes Linux , , , ,

Montar pendrives en openbox

Miércoles, 20 de Enero de 2010

Voy a comentar brevemente, un problemilla que he tenido en mi salto a openbox, y como he logrado solucionarlo (gracias a Teh, del foro de Arch). El problema, era que cuando quería montar un pendrive desde el explorador de archivos (sea cual fuera), no funcionaba con un doble click de toda la vida. Me tiraba el siguiente error:

Rejected send message, 1 matched rules; type="method_call", sender=":1.7"
 (uid=1000 pid=3278 comm="pcmanfm) interface="org.freedesktop.Hal.Device.
Volume" member="Mount" error name="(unset)" requested_reply=0
destination="org.freedesktop.Hal" (uid=0 pid=825 comm="/usr/sbin/hald))

Parece ser que es problema de Hal, y la solución más sencilla, me ha parecido añadir un par de lineas al fstab:

sudo nano /etc/fstab

 /dev/sdb1 /media/pen auto   rw,users,noauto 0 0
 /dev/sdc1 /media/pen2 auto  rw,users,noauto 0 0

Añado dos lineas, por si conectamos dos pendrives a la vez, el primero lo reconocerá como sdb1, y el segundo como sdc1.

También tenemos que crear los dos puntos de montaje:

sudo mkdir /media/pen1 /media/pen2

Los puntos de montajes, los podéis cambiar, así como las opciones del fstab. Es solo para que os hagáis una idea. De esta manera, ya podremos montar los pendrives con un doble click.

Tepes Archlinux, Linux , , , , , ,