Debido a que Linux es un sistema operativo multiusuario, tiene un mecanismo que establece y administra los permisos de archivos para garantizar que solo los procesos y usuarios autorizados puedan acceder a varios directorios y archivos. A medida que usa Linux, puede encontrar varios casos en los que no puede editar archivos o directorios debido al error «Permiso denegado», lo que indica que no tiene los privilegios necesarios. Este tutorial le mostrará cómo cambiar recursivamente los permisos de archivo en Linux para asegurarse de que su configuración de permisos se aplique a las subcarpetas y archivos.
Cómo verificar los permisos de archivo en Linux
Cuando se produce el error de «permiso denegado» en una operación de archivo o directorio, comience por verificar los permisos asignados para el usuario, grupo y otros.
Para ello, puede utilizar el ls -l
dominio. Por ejemplo, los siguientes son permisos para varios archivos y directorios en el directorio “/var”.
El resultado anterior contiene información específica.
- La primera columna representa los permisos de archivo y directorio. La primera letra de esta columna indica el tipo:
d
significa directorio,l
representa un enlace simbólico, y-
un archivo normal. - Los otros nueve caracteres se agrupan en tres conjuntos:
u
usuario,g
grupo, yo
propietario indicar los permisos de archivo o directorio.r
indica permisos de «lectura»,w
indica permisos de «escritura», yX
indica permisos de «ejecución».
Una vez que conozca los permisos de archivo de su directorio o archivo de trabajo, puede cambiarlos fácilmente.
Cómo usar chmod para cambiar los permisos de archivo
los chmod
El comando es la forma más fácil de cambiar los permisos de archivos en Linux. La sintaxis general del comando es:
chmod {permission}{operator}{mode}
- Permiso: esto representa los permisos otorgados a un usuario, grupo, propietario o todos.
- Operador: esto indica los permisos otorgados al cesionario del permiso:
+
otorga permiso,-
niega los permisos, y=
especifica qué permisos establecer. - Modo: esto dicta qué permisos establecer:
r
leer,w
escribe ox
ejecutar.
Por ejemplo, para denegar a todos el acceso de escritura al directorio de copia de seguridad en el directorio «/var», puede usar el comando:
sudo chmod -w /var/backups
Aunque cambiar los permisos de archivo usando el chmod
El comando es efectivo, solo cambia los permisos de archivo para el directorio o archivo especificado.
Afortunadamente, puede cambiar recursivamente los permisos de archivo de un directorio o archivo y sus subdirectorios y archivos. Para hacer eso, use el comando chmod recursivo -r
opción.
Por ejemplo, eliminemos recursivamente read
permisos para el directorio “/var/backup” y todos sus archivos y subdirectorios. Los permisos actuales son:
drwxrwxrwx 2 root root 4096 Jul 15 06:25 backups
ahora vamos a correr chmod
recursivamente para cambiar los permisos:
sudo chmod –r -r /var/backups
Ahora puede ver que los permisos del archivo han cambiado.
Permiso de cambio recursivo con find
Por lo general, no configurará archivos y directorios con permisos similares. Esto se debe a que necesita el permiso de ejecución para poder cd
en un directorio específico. Sin embargo, la mayoría de los archivos no requieren este permiso de ejecución.
Para superar esto, puede utilizar el find
utilidad en Linux. Esto le permite buscar solo archivos o directorios específicos y establecer permisos en ellos.
Tomemos el directorio “/var/log”. El directorio contiene archivos y directorios.
Para establecer permisos específicos solo para archivos, podemos usar el comando de búsqueda con el -type f
opción.
Vea un comando de ejemplo a continuación:
sudo find /var/log/ -type f -exec chmod 777 {} ;
En el ejemplo anterior, usamos el comando de búsqueda para buscar archivos en el directorio «/var/log», luego configuramos permisos de lectura, escritura y ejecución para usuarios, grupos y todo.
También podemos hacer el mismo caso para los directorios. En este caso especificamos el -type d
para obtener sólo directorios.
Por ejemplo:
sudo find /var/log/ -type d -exec chmod 755 {} ;
En el ejemplo anterior, solo configuramos el permiso 755 para directorios y no tanto para archivos como para directorios.
Puede verificar esto usando el ls -la
dominio.
Notará que todos los archivos tienen el permiso 777, mientras que los directorios tienen permisos 755.
Para concluir
Saber cómo cambiar los permisos de archivos en Linux es una habilidad esencial, ya que ayuda a prevenir el acceso no autorizado y las modificaciones a varios archivos y directorios. Mientras tanto, también puede cambiar la propiedad de los archivos para restringir el acceso a los archivos o usar una lista de control de acceso para un control aún más preciso de los permisos de los archivos en Linux.