Los permisos en Linux son una parte fundamental de la seguridad y la gestión del sistema, ya que determinan quién puede acceder a los archivos y directorios y de qué manera. En Linux, hay tres tipos básicos de permisos: lectura (r), escritura (w) y ejecución (x).
- Lectura (r): El permiso de lectura en un archivo permite ver su contenido. En un directorio, permite ver los archivos y subdirectorios que contiene.
- Escritura (w): El permiso de escritura en un archivo permite modificar su contenido. En un directorio, permite agregar, eliminar o renombrar archivos y subdirectorios.
- Ejecución (x): El permiso de ejecución en un archivo permite ejecutarlo como un programa o script. En un directorio, permite acceder a él y a cualquier archivo o subdirectorio que contenga, aunque para ver los contenidos de dicho directorio, también se necesita el permiso de lectura.
Los permisos se definen para tres categorías de usuarios:
- El propietario del archivo (u): La persona que creó el archivo o directorio.
- El grupo (g): Cada archivo pertenece a un grupo, y los permisos pueden ser otorgados a todos los miembros de este grupo.
- Otros (o): Cualquier otro usuario que no sea el propietario ni miembro del grupo.
Estos permisos se pueden ver utilizando el comando ls -l
en la terminal, donde se muestra una cadena de caracteres como -rwxr-xr--
, por ejemplo. Aquí, el primer carácter indica si es un archivo (-
) o directorio (d
). Luego, los siguientes tres caracteres representan los permisos del propietario, seguidos por los tres para el grupo y los tres últimos para otros.
Aqui podéis verlo mejor para poder llegar a entenderlo de una mejor manera:
En el caso del permiso de ejecución (X) en el cado de sea un archivo el que posea el permiso lo que hara sera ejecutar el fichero y en el caso de que sea un directorio lo atravesara (d indicia que es un directorio)
como mencionamos anteriormente los permisos se dividen en tres grupos.
Para que se entienda mejor imaginar que teneis un fichero con los siguiente permisos:
rwx-xr--r
En este caso lo dividiríamos de tres en tres el:
rwx // -xr // --r
En el caso de que tengas tengas esos permiso los grupos se dividirían de la siguiente manera:
- Propietario: rwx
- grupo: -xr
- otros: –r
Este seria el resultado de los permisos, lo único que tendrías que hacer seria ver los permisos que tiene el archivo o el directorio y saber que cada tres permisos es un grupo diferente.
Para que podáis ver y entender mejor los permisos de linux tenéis la siguiente foto en la cual el primer «root» que vemos seria el propietario del directorio en este caso, el cual correspondería a los tres primeros permisos y el segundo «root» correspondería al grupo los siguientes tres permisos:
¿Por que tiene el mismo grupo que el usuario propietario ?
La respuesta a esta pregunta es muy fácil de responder, esto se debe el usuario root o el usuario kali son dos usuarios a nivel de sistema.
cat /etc/passwd | grep ""sh$
Pero a su vez si ejecutamos el siguiente comando:
cat /etc/groud
Con esto podemos ver como a nivel de grupo yo también soy un grupo y por eso como grupo te asigna tu propio grupo, cada user a nivel de sistema tiene su propio grupo, por ejemplo tu creas un usuario llamado juan, cuando te crees ese mismo usuario se creara a su vez el grupo de juan y se le asignara ese mismo grupo.
En este caso aqui podemos ver la creación del usuario pepito y como a su vez ya es un usuario de sistema.
En este apartado podemos ver como nada más crear el usuario de pepito se crea de manera instantanea el grupo de pepito.
Lectura e Interpretación numérica.
Además, los permisos también pueden ser representados numéricamente usando la notación octal, donde cada dígito es la suma de sus permisos componentes: lectura (4), escritura (2) y ejecución (1). Por ejemplo, el permiso rwx
se representa como 7
(4+2+1), rw-
como 6
(4+2), y así sucesivamente.
Para que lo podáis entender mejor os lo explicare con un ejemplo practico:
Supongamos que tenemos los siguientes permisos:
rwx r-x r-x
P G O
Esto seria muy facil en el caso de tenga cualquier caractere de algunos de (RWX) se pondria un numerito 1 y en caso de que no tenga ningún caractere se le pondrá un número 0, el resultado de los permisos anteriores el resultado a decimal seria el siguiente:
rwx r-x r-x
P G 0
111 101 101
Otro punto que tenemos que tener en cuanta son las posiciones de los número en decimal, las posiciones irían de derecha a izquierda, en el caso de 101 el uno de la parte de la derecha seria la posición 0 luego el siguiente número seria la posición 1 y el ultimo 1 seria la posición 2 asi con el resto de número, ahora lo que haremos sera hacer un sumatorio de dos elevado a la posición pero solo contaremos la posición si esa posición tiene un 1
rwx r-x r-x
P G 0
111 101 101
210 210 210
Para sacar el primero número de la primera parte de los permisos seria la siguiente:
rwx r-x r-x
P G 0
111 101 101
210 210 210
2^0 + 2^1 +2^2= 1 + 2 + 4= 7
Aquí ya habríamos sacado el primer número. Lo que hemos hecho ha sido sumar todos los números elevados a dos, más la posición en la que está (en el caso de que hubiese un número 1). Pero como en este caso todas las posiciones tenían un número 1, pues se suman todas
Luego para sacar el segundo número seria de la siguiente manera:
rwx r-x r-x
P G 0
111 101 101
210 210 210
7
2^0 + 2^2= 1 + 4 = 5
En este caso solo se sumaran los de la posición 0 y dos que son los que tiene un número 1, y como el siguiente tiene los mismo permisos seria de la misma forma solo se sumarian los de la posición 0 y 2 que son los que tienen un número, el resultado final seria el siguiente:
rwx r-x r-x
P G 0
111 101 101
210 210 210
755
El resultado final seria 755.
Agregar // Quitar permisos
Para modificar los permisos de un archivo o directorio, se utiliza el comando chmod
. Por ejemplo, chmod 755 archivo
asigna los permisos rwx para el propietario y rx para el grupo y otros. Para cambiar el propietario y el grupo de un archivo o directorio, se utilizan los comandos chown
y chgrp
, respectivamente.
Entender y gestionar los permisos es crucial para mantener la seguridad y la organización adecuada en un sistema Linux.
CONCLUSIÓN
En resumen, los permisos en Linux son esenciales para la seguridad y la organización del sistema, permitiendo que solo los usuarios autorizados accedan o modifiquen archivos y directorios. Comprender y gestionar estos permisos es clave para mantener la integridad y la privacidad de la información en cualquier sistema Linux.
En el caso de que quieras aprender más sobre linux y entender mejor como funciona este es uno de los mejores sitios en donde podrás entender más sobre el fantástico mundo de linux además de miles de comandos interesantes.