En esta guía voy a ayudar a entender los permisos de los archivos de Linux en diferentes distribuciones de Linux como Ubuntu, CentOS, Debian y AlmaLinux. Los permisos de archivos de Linux son muy importantes para entender y utilizar correctamente, debido a razones de seguridad y derechos de acceso de los usuarios.
Los derechos de acceso de los usuarios están controlados por los permisos, atributos y propiedad. Esto define quiénes serán los usuarios autorizados y a qué directorios y archivos podrán acceder.
Explicare los permisos en el sistema operativo Ubuntu 20.04. Puedes elegir por ti mismo qué sistema operativo utilizar. ¡Vamos a empezar!
Requisitos previos
- Instalación nueva de Ubuntu 20.04 . Puedes instalar una maquina virtual con vagrant
- Privilegios de usuario: usuario root o no root con privilegios sudo
Actualizar el sistema
Si tienes una instalación nueva de Ubuntu 20.04 se recomienda actualizar el sistema a los últimos paquetes disponibles.
sudo apt update -y && sudo apt upgrade -y
Comprender los tipos de permisos
Los tres tipos de permisos de los archivos y carpetas son lectura, escritura y ejecución. Estos tipos de permiso controlan qué usuario puede leer el archivo, escribir el archivo o ejecutar el archivo.
- Read: El permiso de lectura (r) define si el usuario puede o no leer el contenido del archivo.
- Write: El permiso de escritura (w) define si el usuario puede o no modificar el contenido del archivo o carpeta.
- Execute: El permiso de ejecución (x) define si el usuario puede o no ejecutar el archivo. Los archivos con permisos de ejecución se conocen como archivos de script.
Entender los permisos de los archivos de Linux
Los tres grupos de permisos que tiene cada archivo o carpeta de Linux son propietario, grupo y usuarios. Estos tres grupos se asignan a un archivo o carpeta.
- Propietario:Los permisos de propietario se aplican sólo al propietario del archivo y la carpeta, y no están relacionados con las acciones de los demás usuarios. La lista de usuarios de Linux se almacena en el archivo /etc/passwd.
- Grupo: Los permisos de grupo se aplican sólo al grupo asignado del archivo y la carpeta, y no están relacionados con las acciones de los usuarios. La lista de grupos de Linux se almacena en el archivo /etc/group.
- Otros: Los permisos del otro usuario se aplican a los demás usuarios del archivo y la carpeta.
Gestión de los permisos
En esta sección os voy a explicar con ejemplos reales los tipos de permisos y grupos de permisos de un archivo o carpeta y el procedimiento para cambiarlos. Por ejemplo, lista el directorio raíz de tu servidor con el siguiente comando:
ls -al
Deberías obtener la siguiente salida:
Como puedes ver hay información sobre si es un archivo o directorio, sobre los tipos y grupos de permisos. Para entender bien esto presta atención a la siguiente salida:
-rw-r--r-- 1 root root 3106 Mar 6 2022 nombre de archivo |[-][-][-]- [------] [---] | | | | | | | | | | | | | +-----------> 7. Grupo | | | | | +-------------------> 6. Propietario | | | | +--------------------------> 5. Método de acceso alternativo | | | +----------------------------> 4. Otros Permisos | | +-------------------------------> 3. Permisos de grupo | +----------------------------------> 2. Permisos del propietario +------------------------------------> 1. Tipo de archivo
Cada permiso de escritura, lectura y ejecución tiene el siguiente valor numérico:
r (read)(lectura) = 4 w (write) (escritura)= 2 x (execute) (ejecución)= 1 sin permisos = 0
Por ejemplo si los tipos de permisos del archivo son -rw-r-r-, para obtener el número de este vamos a sumar los valores de los permisos para ese grupo.
Propietario: rw- = 4 + 2 + 0 = 6 Grupo: r-- = 4 + 0 + 0 = 4 Otros: rw- = 4 + 0 + 0 = 4
Para cambiar el permiso de este archivo, y establecer los permisos a 755 por ejemplo, ejecute el siguiente comando:
sudo chmod 755 nombre_del_archivo
Después de listar el archivo de nuevo, deberías recibir la siguiente salida:
root@host:~# ls -al nombre_del_archivo -rwxr-xr-x 1 root root 3106 Mar 6 2022 nombre_del_archivo
Para comprobar si el número correcto es 755 vamos a comprobarlo como se explica en el ejemplo anterior:
Owner: rwx = 4 + 2 + 1 = 7 Group: r-x = 4 + 0 + 1 = 5 Others: r-x = 4 + 0 + 1 = 5
En este momento el propietario del archivo es el usuario root, y el grupo también es root. Para cambiar el propietario y el grupo ejecuta el siguiente comando:
chown www-data:www-data nombre_del_archivo
Vuelve a listar el archivo y presta atención a la salida:
root@vps:~# ls -al nombre_del_archivo -rwxr-xr-x 1 www-data www-data 3106 Mar 6 2022 nombre_del_archivo
Puedes ver que el propietario y el grupo están configurados como www-data. Por supuesto, puedes establecer un propietario y un grupo diferentes para el archivo siempre y cuando ese usuario y ese grupo existan en tu sistema.
Eso es todo. Esta guía del blog ha explicado los fundamentos de los permisos de archivos de Linux.
Si te ha gustado esta guía compártela en tus redes sociales y ayuda a que esta información llegue a mas gente.
¡Que tengas un Ingenioso día!
¡que tengas un ingenioso día!
Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0
Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.