[king_blenxx] El sistema de permisos de archivos en linux

Iniciado por king_blenxx, Octubre 09, 2019, 01:51:53 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 09, 2019, 01:51:53 PM Ultima modificación: Octubre 10, 2019, 09:52:52 AM por king_blenxx
Los permisos de archivos en linux funcionan basandose en un sistema de sumas.
Hay 3 tipos de usuarios:
- El root
- Los grupos
- Y los usuarios que no son root
Imaginate que cada archivo tiene una sección de permisos la cual contiene una variable para cada tipo de usuario antes mencionado.
Esta variable guarda un número el cual el máximo es 7.
El permiso de lectura tiene un valor de 4, el de escritura de 2 y el de ejecucion de 1. Estos valores se iran sumando en la supuesta variable de cada tipo de usuario hasta que llegar al máximo número que es 7.
Por ejemplo, si la variable en ese archivo del usuario root tiene un valor de 6 quiere decir
que el root tiene permiso de escritura y de lectura en ese archivo.
Otro ejemplo, si la variable en ese archivo de un usuario cualquiera tiene el valor de 3 quiere decir
que ese usuario tiene permiso de escritura y ejecucion del archivo.

Cuando es linux introduces el comando ls -all sale lo siguiente al lado de los archivos:

(lo puedes ver en la imagen de abajo)


En la primera imagen con "type" se refiere al tipo de archivo es, si es un directorio o un archivo "normal".
En la segunda imagen que aporte se puede ver que los directorios, los cuales son los que tienen el nombre en azul tienen una "d" al principio y el archivo ".profile" que NO es un directorio tiene el primer hueco vacio.
En la primera imagen hay agrupados en 3 grupos distintos unos conjuntos de caracteres, la "r" se refiere a read, la "w" a write y la "x" a execute. La primera agrupacion pertenece a los permisos del usuario root, la segunda agrupacion a los permisos que tienen los grupos sobre ese archivo y la tercera a los permisos del resto de usuarios.

Para asignar permisos en linux se hace con el comando "chmod {(permisos del root)(permisos del grupo)(permisos del usuario)} {nombre del archivo}".
Por ejemplo, si yo introduzco el comando "chmod 777 test.txt", lo que estoy haciendo es darle al usuario común permisos de lectura, escritura y ejecución sobre el archivo, al grupo lo mismo que al usuario y al root igual. Cada uno de estos 3 números es la variable que mecione antes, la variable del usuario tiene un valor de 7 lo cual le da todos los permisos, la del grupo también es 7 y la del root también es 7, el valor de esta variable es 7 porque se suma el valor del permiso de lectura que es 4, el de escritura que es 2 y el de ejecución que es 1.
Pero que pasa que si en vez de 777 es 744, PIENSALO EN TU CABEZA ANTES DE SEGUIR LEYENDO.
Lo que hacemos si es 744 es que cogemos el primer número, que es 7, el cual es la variable del usuario root, al ser 7 el número máximo ya sabemos que ese usuario tiene permisos máximos sobre ese archivo. Ahora cogemos el siguiente número el cual es 4, y recordamos que 4 es el valor del permiso de escritura, entonces el grupo solo tiene permiso de escritura y igual pasa en este caso con el usuario común.
NOTA IMPORTANTE: Si el valor de la variable es 4, por ejemplo, SIEMPRE va a tener solo permiso de lectura, ninguna suma entre estos números te va a dar 1,2,4, los unicos números que te van a dar sumando entre estos  van a ser  el numero 3 (escritura(2), ejecucion(1)),el 6 (lectura(4)+escritura(2)) y el 7(lectura(4),escritura(2),ejecucion(1)).

Espero que haya quedado claro, saludos.