Linux / Comando chmod: cambiar permisos de archivos y directorios
chmod cambia los permisos de lectura, escritura y ejecución de archivos y directorios. Se pueden usar modos numéricos y simbólicos, y es seguro verificar los permisos actuales del objetivo antes de realizar cambios.
Los permisos se aplican por separado al propietario, al grupo y a otros usuarios. El bit de ejecución de un archivo regular determina si se puede ejecutar, mientras que el bit de ejecución de un directorio determina si se puede atravesar la ruta y acceder a los elementos internos. El comando para cambiar la propiedad es chown.
Sintaxis básica
chmod [opciones] modo archivo ...
La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man chmod en el sistema actual.
Ejemplos de uso
Agregar permisos de ejecución en modo simbólico
Se añaden permisos de ejecución solo al propietario, dejando los demás permisos igual.
chmod u+x script.sh
Especificar permisos en modo numérico
En cada cifra octal, lectura vale 4, escritura 2 y ejecución 1; sume los permisos deseados. Así, 644 concede lectura y escritura al propietario (4+2), y solo lectura al grupo y a los demás (4). Use archivos de prueba existentes para los ejemplos de script.sh y report.txt.
chmod 644 report.txt
Verificar antes y después del cambio
Verifique el modo del archivo objetivo después de cambiar los permisos.
ls -l report.txt
chmod go-rwx report.txt
ls -l report.txt
Comprobar el modo numérico aplicado
640 tiene permisos de lectura y escritura para el propietario, lectura para el grupo, y ningún permiso para otros usuarios. El siguiente ejemplo se aplica solo a archivos creados manualmente y luego se verifica con stat.
printf 'demo\n' > demo.txt
chmod 640 demo.txt
stat -c '%a %n' demo.txt
Ejemplo de salida:
640 demo.txt
chmod suele terminar sin salida cuando tiene éxito. En directorios, x permite buscar o atravesar entradas; r permite listar sus nombres y w, junto con los permisos necesarios de acceso, modificar las entradas. No aplique automáticamente el modo de un archivo a un directorio. El bloque anterior crea demo.txt: ejecútelo en un directorio de prueba vacío.
Un modo numérico fija los permisos básicos rwx del propietario, grupo y otros. Una operación simbólica como chmod g+w archivo modifica solo los bits indicados y conserva los demás. Los bits especiales, las listas de control de acceso (ACL) y las políticas de SELinux requieren una revisión adicional; no reduzca todo el control de acceso a tres cifras.
Opciones y formatos principales
| Opción o formato | Descripción |
|---|---|
u/g/o/a |
Significa propietario, grupo, otros usuarios y todos. |
+ / - / = |
Significa agregar, quitar o establecer permisos. |
r/w/x |
Significa permisos de lectura, escritura y ejecución. |
-R |
Cambiar recursivamente hasta los subdirectorios y archivos. |
--reference=archivo |
Aplicar el mismo modo que el archivo de referencia. |
Precauciones al usar
chmod -R 777 proporciona un acceso amplio a todos los usuarios, por lo que no se debe usar por conveniencia. Los archivos y directorios tienen permisos diferentes. Antes de realizar cambios recursivos, verifique el alcance del objetivo con find o ls, y también revise el control de acceso más allá del modo básico, como ACL y SELinux.
Preguntas frecuentes
¿Qué significa chmod 755?
El propietario tiene lectura, escritura y ejecución (7), y el grupo y otros usuarios tienen lectura y ejecución (5). Aunque se aplica de la misma manera a archivos y directorios normales, el significado es diferente.
Documentación oficial
El comportamiento exacto de las opciones y las diferencias según la implementación se pueden consultar en la documentación oficial de chmod.




