jueves, 21 de julio de 2011

permisos en linux: que son y que significan



Hola nuevamente! Con este articulo no quiero ahondar y dejar más en duda que en claridad un tema que es "tan" importante: los permisos en GNU/Linux.
¿Porque importantes? Bueno imaginate que si una carpeta o archivo tiene solamente permisos para el Usuario "Pablo" y vos sos el usuario "Carlos" cuando quieras abrir o modificar el archivo, no podrás hacerlo. Punto.

Cabe aclarar (los más entendidos ya lo saben) que el superusuario del sistema (el usuario "root") puede hacer cualquier cosa con cualquier archivo dentro del sistema.

Bueno, basta de chachara y vamos al tema:

3 Tipos de permisos:
  • Lectura (Read o sea leer, "r")
  • Escritura (Write o sea escribir, "w")
  • Ejecución (eXecute o sea ejecutar, "x")

Estos tipos de permisos se aplican tanto a carpetas, subcarpetas y archivos.

Para saber los permisos del archivo "texto1.txt" escribimos en la consola:

ls -l texto1.tx

Veremos un listado como el siguiente:

-rw-r----- 1 UsuarioPropietario GrupoPropietario texto1.txt

Vamos a desglosar un poco esta linea (¿se ve rara por primera vez no?)

"-rw-r--r--"

Esto resume los permisos, el primer "-" significa que se trata de un archivo y no de un directorio (para el caso de un directorio en vez de un guion se mostraria una "d")

Después le siguen una "rw-" (¿y esto que es?) Bueno esto significa que el usuario propietario del archivo tiene permitido r (leerlo) w (cambiarlo) y "-" (y mas nada, osea si en vez de un - apareciera una "x" tambien se podría ejecutar como comando)

Luego le sigue un "r--" y esto es que el Grupo Propietario (no se asusten que en otro articulo intentare explicarles que son los "Grupos en Linux") tiene el permiso de lectura (solo la r seguida de --)


Y por ultimo encontramos un "---": Estos son los permisos "Otros" (los tambien llamados nobody/nogroup, osea nadie/singrupo) Y en este caso equivalen a nada.

Entonces podemos hacer una gran afirmacion: A los permisos se les puede asignar un valor.
Los valores para los permisos son:

r------> 4 (para lectura)
w-----> 2 (para escritura)
x------> 1 (para ejecución)
-------->0 (ningun permiso)

¿y que hay con estos valores?

Bueno, algo tan simple que si a un grupo le queremos dar permisos, podemos darle permisos con exactitud: supongamos que quiero que CUALQUIERA pueda hacer CUALQUIER COSA con el archivo:

r+w+x = 4 + 2 + 1 = 7

Entonces con el comando "chmod" le cambio los permisos al archivo "texto1.txt" :

chmod 700 texto1.txt

Bueno, pero ojo que aquí le dimos Todos los permisos al UsuarioPropietario (al usuario que creo el archivo o el que actualmente tiene los permisos sobre el archivo)

¿Y para que los usuarios del grupo puedan leer el archivo?

chmod 740 texto1.txt

¿Y para que ademas, Otro usuario desconocido pueda abrir y modificar el texto1.txt?

chmod 746 texto1.txt

Bueno, espero que esto le sea util a alguien al momento de "entender" los permisos

como dato extra les doy un enlace a una una wiki de Wikipedia sobre Chmod (Change Mode):

http://es.wikipedia.org/wiki/Chmod


bon appetit!

No hay comentarios: