Introducción
Si está utilizando Linux como su sistema operativo principal o administrando servidores Linux, surgirá una situación cuando intente crear o modificar un archivo y obtenga un error de "Denegación de permiso". Generalmente, los errores relacionados con permisos insuficientes se pueden resolver estableciendo los permisos correctos o la propiedad del archivo.
Linux es un sistema multiusuario y el acceso a los archivos se controla mediante permisos, atributos y propiedad de los archivos. Esto asegura que solo los usuarios y procesos autorizados puedan acceder a archivos y directorios.
Para obtener más información sobre los permisos de archivos, consulte Umask Command en Linux.
En este artículo, explicaremos cómo cambiar de forma recursiva los permisos de archivos y directorios.
Comando Chmod recursivo
El chmod
permite cambiar los permisos de archivo usando el modo simbólico o numérico.
Para operar recursivamente en todos los archivos y directorios en un directorio dado, use el chmod
con la -R
, ( --recursive
). La sintaxis general para cambiar de forma recursiva los permisos de archivos es la siguiente:
chmod -R MODE DIRECTORY
Por ejemplo, para cambiar los permisos de todos los archivos y subdirectorios del directorio /var/www/html
755
, use:
chmod -R 755 /var/www/html
El modo también se puede especificar mediante el método simbólico:
chmod -R u=rwx,go=rx /var/www/html
Solo el root, el propietario del archivo o el usuario con sudo
pueden cambiar los permisos de un archivo. Tenga especial cuidado al cambiar de forma recursiva los permisos de archivo.
Buscar comando
En general, los archivos y directorios no deberían tener los mismos permisos. La mayoría de los archivos no requieren permiso de ejecución, pero los permisos de ejecución deben establecerse en directorios para poder modificarlos.
El escenario más común es cambiar de forma recursiva los permisos de archivo de un sitio web a 644
y los permisos de carpeta a 755
.
Usando el método numérico:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
Usando el método simbólico:
find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;
find /var/www/html -type f -exec chmod u=rw,go=r {} \;
El find
busca archivos o directorios en /var/www/html
y pasa cada archivo o directorio encontrado al chmod
para establecer los permisos.
Cuando se usa find
con -exec
, el chmod
se ejecuta para cada elemento encontrado. Utilice el xargs
para acelerar la operación pasando varias entradas al mismo tiempo:
find /var/www/html -type d -print0 | xargs -0 chmod 755
find /var/www/html -type f -print0 | xargs -0 chmod 644
Conclusión
El chmod
con la -R
permite cambiar de forma recursiva los permisos del archivo.
Para establecer de forma recursiva los permisos de archivo en función de su tipo, utilice chmod
junto con el comando de find