Permisos en GNU/Linux


GNU/linux es un sistema multiusuario, que nos permite administrar los accesos no solo al sistema, sino también a archivos, documentos, así como a aplicaciones. Para poder administrar adecuadamente quien o quienes tienen acceso a  estos documentos o aplicaciones, y que actividad pueden realizar sobre los mismos (Lectura, escritura Ejecución)  se tienen los «Permisos», y por lo tanto, es importanate saber como funcionan y se determinan.

Los permisos se determinan en una cadena de 9 bits, los cuales se agrupan de 3 en 3, formando tres grupos (propietario, grupo y otros)  de 3 bis cada grupo ( r lectura, w escritura y  x ejecución) . Un  archivo disponible a todo usuario sería representado como -rwx rwx rwx, los tres primeros bits para propietario, los segundos tres para el grupo y los otros tres para otros.

Leyendo unos libros y buscando en internet, encontré varias lecturas sobre el tema y ninguna fué clara al momento de explicar estos permisos en el sistema octal, por lo que no entendí nada, me generó confusión.

Recibí un  correo de Jorge Marínez  Mauricio (http://toro.blogsiglo.com/) el cual fue muy claro para mi y por eso se los comparto tal y cual me llegó, agradeciéndole a Toro su ayuda.

«Son 3 tipos básicos de permisos:
. lectura
. escritura
. ejecución
Para 3 grupos:
. propietario del archivo/directorio (dueño)
. grupo al que pertenece el archivo/directorio (grupo)
. el resto de usuarios que puedan tener permisos sobre el archivo/directorio (mundo)
en ese entendido, tenemos un archivo común con 10 caracteres en sus permisos:
-rwxrwxrwx (r = lectura , w = escritura, x = ejecución) en un grupo de 3:
los primeros tres digitos (a partir del segundo caracter, ya que el primero es especial y se usa para determinar que tipo de archivo es: directorio, archivo, enlace simbólico, dispositivo); pertenecen al dueño, los siguientes 3 al grupo y los últimos 3 al resto de usuarios (mundo), dando el total de los 10 dígitos que conforman los permisos.
Así pues, un archivo con "rwx" significa que tiene acceso a todo. 
en el sistema octal, cada atributo tiene un número:
r = 4
w = 2
x = 1 
Así que la suma de dar todos los permisos a un archivo son 7. 
así pues:
r-- = 4+0+0 = 4
rw- = 4+2+0 = 6
rwx = 4+2+1 = 7
otros ejemplos:
r-x = 4+0+1 = 5
-wx = 0+2+1 = 3
--x = 0+0+1 = 1
-w- = 0+2+0 = 2
esas son las posibles combinaciones, entonces. Si queremos darle permisos al dueño de solo lectura, entonces:
chmod 0400 archivo.txt
(el primer dígito lo obviaremos, pero es importante). 
primer digito: permisos especiales
segundo dígito: dueño
tercer dígito:grupo
cuarto dígito: mundo
otros ejemplos:
permiso de lectura y escritura al dueño y al grupo:
chmod 0660 archivo.txt
permiso de lectura y ejecución a todos:
chmod 0555 archivo.txt
permiso de lectura y escritura al dueño, lectura al resto:
chmod 0644 archivo.txt
etc... las combinaciones serán pues dependiendo de lo que deseemos poder hacer sobre el archivo/directorio y el resto de usuarios que pueden hacer.
saludos,»


Se los comparto, esperando les sea de utilidad.