miércoles, 27 de agosto de 2008

Dar permisos a carpetas y archivos con chmod

Algunas veces llegamos a necesitar, acceso a carpetas o archivos que se encuentran fuera del home, y, aunque no es recomendable meterse con archivos del sistema(mas si es uno novato), aqui van las instrucciones:

para identificar los permisos podemos escribir en consola

ls -l

Los permisos que tiene cada archivo o carpeta los identificamos con las letras

r lectura
w escritura
x ejecución

para dar los permisos:

signo - (menos) para quitar permisos
signo + (mas) para agregar permisos

En consecuencia si nosotro hacemos lo siguiente:

$ sudo chmod +w hola.txt

le hemos agregado permisos de escritura al archivo hola.txt

si aplicamos el siguiente comando

$ sudo chmod -w hola.txt

le quitamos el permiso de escritura al mismo archivo.

con el comando

$ sudo chmod +xrw hola.txt

le hemos agregado todos los permisos al archivo, es decir, ejecución, lectura y escritura.

tipo de usuarios.

u: usuario dueño del archivo
g: grupo o dueño del archivo
o: otros usuarios
a: para todos

veamos ejemplos:

$ sudo chmod a+x hola.txt

con ello todos pueden ejecutar el archivo hola.txt

$ sudo chmod ug+x hola.txt

el dueño y el grupo dueño podrá ejecutar el archivo.


USANDO EL METODO OCTAL

La otra forma bastante utilizada para administrar los permisos de archivos y carpetas en GNU/Linux, es el método octal.

Este método utiliza los números octales del siguiente modo:

000: ningún permiso
001: ejecución para el dueño del archivo
002: escritura para el dueño del archivo
004: lectura para el dueño del archivo
010: ejecución para el grupo dueño del archivo
020: escritura para el grupo dueño del archivo
040: lectura para el grupo dueño del archivo
100: ejecución para resto de usuarios
200: escritura para resto de usuarios
400: lectura para resto de usuarios

Bien, quizás es un poco complicado entender este método, pero no, realmente es fácil. Para asignar los permisos estos se suman conforme a la tabla, obteniéndose un solo número que definirá los permisos que tiene nuestro archivo o carpeta, por ejemplo:

Asignemos todos los permisos al archivo hola.txt y para todos el resto de los usuarios.

$ sudo chmod 777 hola.txt

¿cómo es eso?

claro veamos dijimos que ejecución para el resto era 100, escritura para el resto era 200 y lectura para el resto era 400, por lo tanto.

ordenemos estos permisos

100
200
400
700 es la suma que queda para el resto

010
020
040
070 es la suma que queda para el grupo

001
002
004
007 es la suma que queda para el dueño del archivo

fuente: ubuntusur.org