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.d
para directorio,-
para archivo,l
para 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.sh
chmod 644 documento.txt
chmod 700 archivo_privado.key
Mé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.txt
o
) exactamente como solo lectura (=r
), eliminando cualquier otro permiso que tuvieran.
chmod o=r archivo.conf
+r
) a todos (a
).
chmod a+r archivo.zip
Cambio 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.txt
al usuariojuan
.Cambia el propietario achown juan documento.txt
juan
y el grupo adesarrollo
.sudo chown juan:desarrollo documento.txt
chgrp
(change group): Para cambiar solo el grupo. Cambia el grupo dedocumento.txt
adesarrollo
.Espero que el siguiente esquema sirva de guía mas visual de todo lo anteriorchgrp desarrollo documento.txt
