Introducción
Los sistemas multiusuario, como Linux, requieren la configuración y administración de permisos de archivos que aseguren que solo los usuarios autorizados tengan acceso a los archivos que se supone que deben tener.
Si necesita cambiar un permiso de archivo, use el chmod
dominio. También permite cambiar el permiso del archivo de forma recursiva para configurar múltiples archivos y subdirectorios usando un solo comando.
En este tutorial, aprenderá a usar chmod de forma recursiva y cambiar el permiso de archivo en Linux.
Requisitos previos
- Una línea de comando/ventana de terminal (Ctrl +Alt +T o Ctrl +Alt+F2 )
- Una cuenta de usuario con sudo privilegios (opcional)
- Un sistema Linux
Comprobar permiso de archivo
Si necesita verificar los permisos de archivo en el directorio de trabajo, use el comando:
ls –l
La salida enumera los permisos de todos los archivos en el directorio.
Por ejemplo, el Ejemplo El directorio contiene tres archivos (test1.txt , prueba2.txt y prueba3.txt ) con los mismos permisos (-rw-rw-r– ).
Los permisos de archivo enumerados anteriormente nos dicen lo siguiente:
- El propietario tiene privilegios de lectura y escritura
- El grupo de propietarios tiene privilegios de lectura y escritura
- Otros usuarios tener privilegios de lectura
Cambiar permiso recursivamente
Es común usar el chmod
básico Comando para cambiar el permiso de un solo archivo. Sin embargo, es posible que deba modificar el permiso de forma recursiva para todos los archivos dentro de un directorio.
En tales casos, el chmod recursivo opción (-R
o --recursive
) establece el permiso para un directorio (y los archivos que contiene).
La sintaxis para cambiar el permiso del archivo de forma recursiva es:
chmod -R [permission] [directory]
Por lo tanto, para configurar el 755 permiso para todos los archivos en el Ejemplo directorio, escribiría:
sudo chmod -R 755 Example
El comando da leer, escribir y ejecutar privilegios al propietario (7 ) y leer y ejecutar acceso a todos los demás (55 ).
Cambiar permiso con el comando de búsqueda
Para asignar permisos separados a directorios y archivos, puede usar el find
comando.
La sintaxis básica incluye el uso de find
comando para ubicar archivos/directorios y luego pasarlo a chmod
para establecer el permiso:
sudo find [directory] -type [d/f] -exec chmod [privilege] {} \;
- Reemplazar
[directory]
con la ruta del directorio que contiene los archivos y subdirectorios que desea configurar. - Especifique si está buscando un directorio
-type d
o un archivo-type f
. - Establecer el archivo
[privilege]
conchmod
comando usando el modo numérico o simbólico.
Evite asignar privilegios de ejecución a los archivos. Una configuración común incluiría ejecutar los siguientes comandos:
sudo find Example -type d -exec chmod 755 {} \;
sudo find Example -type f -exec chmod 644 {} \;
En este ejemplo, los directorios tienen 755 (u=rwx,go=rx ), mientras que los archivos tienen privilegios 644 (u=rw,go=r).
Puede verificar que los directorios y los archivos tengan diferentes configuraciones de permisos moviéndose al Ejemplo directorio (cd Example
) y listar el contenido (ls -l
). El resultado debe ser similar al siguiente:
Cambiar el permiso de archivos específicos de forma recursiva
Combinando find
comando con chmod
también se puede usar para cambiar el permiso de archivos que son de un tipo específico.
La sintaxis del comando para cambiar el permiso de un tipo de archivo específico en un directorio es:
find [directory] -name "*.[filename_extension]" -exec chmod [privilege] {} \;
Por ejemplo, para hacer todo .sh archivos en el directorio actual ejecutable , usarías:
find . -name "*.sh" -exec chmod +x {} \;