Permisos en Linux
Hoy nos toca hablar las crípticas letras que aparecen al usar el comando ls -l. Entender los permisos es imprescindible para la seguridad y el control del sistema. A continuación intentare explicar forma clara qué son, para qué sirven y cómo puedes modificarlos de dos maneras diferentes.
Estructura de Permisos
Los permisos de un fichero en Linux se basan en un sistema de tres categorías de usuarios y tres tipos de permisos.
Las Categorías de Usuarios :
- Propietario (u - user): El usuario que ha creado el archivo o directorio.
- Grupo (g - group): Un grupo de usuarios que comparten un acceso común al archivo.
- Otros (o - others): Cualquier otro usuario del sistema.
Los Tipos de Permisos (qué pueden hacer):
- Lectura (r - read): Permite leer (read) el contenido de un archivo o listar los ficheros de un directorio.
- Escritura (w - write): Permite modificar (write) o eliminar un archivo, o crear/eliminar ficheros dentro de un directorio.
- Ejecución (x - execute): Permite ejecutar (execute) un archivo (si es un programa o script) o acceder a un directorio.
Cuando ejecutas el comando ls -l, se ve una cadena de 10 caracteres como esta: drwxr-xr--
- El primer carácter (
d): Indica el tipo de fichero.dpara directorio,-para archivo,lpara enlace simbólico, etc. - Los siguientes nueve caracteres (
rwxr-xr--): Se dividen en tres bloques de tres, correspondientes a los permisos de propietario, grupo y otros.rwx: Permisos para el propietario (lectura, escritura y ejecución).r-x: Permisos para el grupo (lectura y ejecución, pero no escritura).r--: Permisos para otros (solo lectura).
Método Numérico (Octal) 🔢
El método numérico es el más común y utiliza un sistema de números para representar los permisos. A cada tipo de permiso se le asigna un valor:
- r (lectura) = 4
- w (escritura) = 2
- x (ejecución) = 1
- - (sin permiso) = 0
Para establecer los permisos de una categoría, simplemente sumas los valores. Por ejemplo, rwx es 4 + 2 + 1 = 7.
El comando para cambiar permisos es chmod, y se utiliza con tres números: uno para el propietario, uno para el grupo y uno para otros.
Ejemplos:
Desde el terminal:
Da permisos de lectura, escritura y ejecución al propietario (7), y de lectura y ejecución al grupo (5) y a otros (5).
chmod 755 script.shchmod 644 documento.txtchmod 700 archivo_privado.keyMétodo Simbólico (Letras) 📝
Este método utiliza letras y símbolos para añadir (+), quitar (-) o establecer (=) permisos de forma más intuitiva.
- Usuarios:
u(propietario),g(grupo),o(otros),a(todos). - Permisos:
r,w,x. - Operadores:
+(añadir),-(quitar),=(establecer exactamente).
Ejemplos:
Desde el terminal:
Añade el permiso de ejecución (+x) solo al propietario (u).
chmod u+x script.sh-w) solo al grupo (g).
chmod g-w documento.txto) exactamente como solo lectura (=r), eliminando cualquier otro permiso que tuvieran.
chmod o=r archivo.conf+r) a todos (a).
chmod a+r archivo.zipCambio de Propietario y Grupo 👥
Además de los permisos, es posible cambiar quién es el propietario de un fichero y a qué grupo pertenece. Para ello, se usan los comandos chown y chgrp.
Desde el terminal:
chown(change owner): Para cambiar el propietario. Cambia el propietario dedocumento.txtal usuariojuan.Cambia el propietario achown juan documento.txtjuany el grupo adesarrollo.sudo chown juan:desarrollo documento.txtchgrp(change group): Para cambiar solo el grupo. Cambia el grupo dedocumento.txtadesarrollo.Espero que el siguiente esquema sirva de guía mas visual de todo lo anteriorchgrp desarrollo documento.txt