28 de abril de 2011

Permisos de los archivos y ficheros (chmod)


Chmod se usa para modificar los permisos de lectura, escritura y ejecución de los archivos y directorios. Este comando tiene el siguiente formato:

chmod [parámetros] permisos nombre del fichero o directorio.

Los permisos se pueden asignar de varias maneras, una de ellas seria por ejemplos:

chmod ugo+rwx fichero 
 
Expliquemos que significa estas siglas:  
  
u = usuario     r = lectura
g = grupo       w = escritura
o = otros         x = ejecución
+ = permite     - = deniega 

Por lo que si lanzamos esta línea de comandos hemos aplicado los permisos lectura, 
escritura y ejecución a usuario, grupo y otros, a ese fichero o directorio que hemos
nombrado.


Otro ejemplo de como podemos usar este comando: 

chmod u=rwx,g=rx fichero  
 
Si se lanza esta línea en la consola lo que hace es que da permisos lectura, escritura y 
ejecución al usuario (u=rwx), lectura y ejecución al grupo (g=rx) y como hemos omitido
a otros no se le dan permisos de ningún tipo a ese fichero o directorio. 
 
  
De esta forma puedes hacer tantas combinaciones como necesites para aplicarle a un fichero o directorio, por ejemplo, si queremos que otro tenga permisos de lectura y escritura, lanzaríamos las siguientes líneas de comandos, lo primero comprobamos los permiso que tiene el fichero al que le vamos a cambiar los permiso:

aceitunero@Pc-15:~$ ls -l
-rw-r--r-- 1 aceitunero aceitunero 7026 2011-04-28 19:09 chmod.txt

Una vez que hemos comprobado los permiso, observamos los que nos interesan que como podemos ver que otros sólo tienen permisos de lectura, pues aplicamos la regla y le añadimos el permiso de lectura y escritura:

aceitunero@Pc-15:~$ chmod o+rw chmod.txt

Hacemos otro ls para comprobar:

aceitunero@Pc-15:~$ ls -l
-rw-r--rw- 1 aceitunero aceitunero 7026 2011-04-28 19:09 chmod.txt

Hay otro método que utiliza números para asignar permisos, y que si te enteras bien te resultará más cómodo de usar que los anteriores, para ayudar un poco esta tabla:

421 421 421 = Valores decimales que vamos a sumar.
100 000 000 = Permisos que vamos a asignar (1 = asigna, 0 = deniega).
rwx rwx  rwx = Permisos de lectura (r), escritura (w) y ejecución (x).
Prop. Grupo Otros

En esta tabla nos fijamos en la línea donde están los binarios (1,0) y en la línea de los valores decimales, ambos los agrupamos en 3 en 3 para cada permiso, pues bien, donde el valor binario sea 0 no nos fijamos en el valor decimal, pero si es 1 sumamos el valor teniendo en cuenta que están agrupados de 3 en 3 no la fila completa.

Usemos el ejemplo anterior que queríamos que otros tenga permiso de lectura y escritura, el propietario los mismo permisos y el grupo sólo permisos de lectura, pues bien,haríamos lo siguiente:

421 421 421 = 646
110 100 110 = (1 = asigna, 0 = deniega).
rwx  rwx rwx = Permisos de lectura (r), escritura (w) y ejecución (x).
Prop. Grupo Otros

Una vez que tenemos el valor, lanzaríamos el comando chmod:

aceitunero@Pc-15:~$ chmod 646 chmod.txt

Otro ejemplo sería dar permiso de permiso de lectura y escritura al propietario y al resto sólo permisos de lectura, pues haríamos lo siguiente:

421 421 421 = 644
110 100 110 = (1 = asigna, 0 = deniega).
rwx  rwx rwx = Permisos de lectura (r), escritura (w) y ejecución (x).
Prop. Grupo Otros

Ahora lanzaríamos el comando chmod:

aceitunero@Pc-15:~$ chmod 644 chmod.txt

Esta forma de asignar los permiso a lo mejor os parecerá un poco más difícil pero si te acostumbras al final lo haces metalmente sin problemas. También te recomiendo que uses el comando man o --help para ver la ayuda de este comando que es muy importante y del que se tiene que tener un buen manejo.

Espero que os sea de ayuda a todos un saludo:

Antonio

No hay comentarios:

Publicar un comentario

No olvides dejar tu comentario.