Trabajar con permisos en Linux es una tarea fundamental para garantizar la seguridad y el control de acceso a los archivos y directorios. Uno de los comandos más útiles para gestionar esto es chmod
, que permite definir quién puede leer, escribir o ejecutar un archivo. A continuación, explico de manera sencilla cómo funciona este comando y cómo puedes aplicarlo en diferentes situaciones.
chmod
, que significa "change mode" (cambiar modo), permite ajustar los permisos de archivos y directorios en sistemas operativos tipo Unix, como Linux. Los permisos determinan quién puede leer, escribir o ejecutar un archivo o directorio.Cada categoría puede tener tres tipos de permisos:
Los permisos en Linux se representan en formato simbólico o numérico, los cuales te detallaré a continuación:
Un ejemplo típico de representación simbólica de permisos es -rwxr-xr--
Este formato se descompone en:
-
: Indica el tipo de archivo, -
para archivos, d
para directorios.rwx
: Permisos para el propietario.r-x
: Permisos para el grupo.r--
: Permisos para otros usuarios.El formato numérico utiliza valores octales para representar los permisos:
r
w
x
Los permisos se suman para cada categoría, por ejemplo:
7
= Lectura (4) + Escritura (2) + Ejecución (1) = rwx
.5
= Lectura (4) + Ejecución (1) = r-x
.4
= Solo lectura = r--
.El comando básico de chmod tiene la siguiente estructura:
chmod [opciones] permisos archivo
Supongamos que tienes un archivo llamado archivo.txt
y deseas otorgarle los permisos rwx
al propietario, r-x
al grupo y r--
a otros usuarios:
chmod 754 archivo.txt
Ahora, si verificas los permisos con el comando ls -l
, verás algo como esto:
-rwxr-xr-- 1 usuario grupo tamaño fecha archivo.txt
Si prefieres usar el formato simbólico, puedes hacer lo mismo con:
chmod u=rwx,g=rx,o=r archivo.txt
u
se refiere al propietario.g
al grupo.o
a otros.También puedes agregar o quitar permisos de forma incremental:
chmod g+x archivo.txt
.chmod o-w archivo.txt
.Cuando trabajas con directorios, los permisos tienen significados especiales:
Por ejemplo, para otorgar permisos completos al propietario en un directorio llamado mi_directorio
, y permisos de solo lectura y ejecución al grupo y a otros ejecutamos lo siguiente:
chmod 755 mi_directorio
El comando chmod
incluye opciones adicionales que pueden ser útiles:-R
(recursivo): Aplica los cambios a todos los archivos y subdirectorios, por ejemplo:
chmod -R 755 mi_directorio
--reference=archivo_referencia
: Copia los permisos de un archivo a otro archivo, por ejemplo:
chmod --reference=archivo1.txt archivo2.txt
No otorgues permisos excesivos, evita usar 777 (todos los permisos para todos) a menos que sea estrictamente necesario, siempre puedes verificar los permisos regularmente usando ls -l
para asegurarte de que no hay permisos que puedan afectar la seguridad.