Cambiar los permisos de archivo recursivamente Linux

Cambiar los permisos de archivo recursivamente Linux
Linux, como todos los demás sistemas operativos, es un sistema operativo múltiple al que pueden acceder varios usuarios al mismo tiempo. Por lo tanto, es muy importante que los administradores apliquen un conjunto adecuado de permisos para evitar el acceso no autorizado y las configuraciones erróneas. Los permisos definen quién puede acceder y modificar los archivos almacenados en un sistema de usuarios múltiples. Linux proporciona a los usuarios una mayor flexibilidad y control granular sobre los permisos de acceso de sus sistemas de archivos.

Normalmente, un usuario que crea el archivo tiene los derechos para acceder y cambiar los permisos de archivo. Además, el usuario root tiene por defecto todos los privilegios para acceder a cada archivo del sistema.

En este artículo, explicaremos cómo cambiar los permisos de directorio recursivamente en un sistema operativo Linux utilizando los dos métodos diferentes. Primero, daremos una visión general rápida de cómo ver y cambiar los permisos de archivo, y luego discutiremos cómo cambiar los permisos de manera recursiva.

Ver permisos de archivo actuales

Para ver los permisos actuales de un archivo o un directorio, ejecute el siguiente comando en su terminal:

$ ls -l

Por ejemplo, si ejecutamos LS-L, Recibiríamos una salida similar:

En la lista anterior, si el primer carácter de una fila comienza con "D", indica que es un directorio, mientras que si comienza con "-" indica que es un archivo. Después de esto, los siguientes nueve caracteres muestran los permisos del archivo o un directorio. Estos nueve caracteres se agrupan en tres conjuntos para el usuario, grupo y propietario respectivamente. Además, cada conjunto comprende tres tipos de permisos que son R, W y X son para "leer", "escribir" y "ejecutar" permisos respectivamente.

Cambiar permisos

En Linux, para cambiar los permisos de un archivo o un directorio, se utiliza el comando chmod. Sin embargo, para cambiar el permiso, debe ser el propietario del archivo o el usuario root.

La sintaxis es:

$ chmod [referencia] [operador] [modo] archivo1 file2 ..

Dónde

  • Referencia: a quién asignar permisos e.G U (para el usuario), G (para el grupo), O (para el propietario).
  • Operador: + (agregue el permiso), - (elimine el permiso), = (Establezca solo este permiso)
  • Modo: qué permiso asignar r (para leer), w (para escribir), x (para ejecutar)

Cambiar los permisos recursivamente utilizando -r

Es posible que haya notado que si aplica permisos a través del comando chmod anterior, estos permisos solo se aplican al archivo o directorio especificados en el comando. No se aplicará a los subdirectorios o archivos dentro de un directorio.

Chmod le permite cambiar el permiso de múltiples archivos y subdirectorios dentro de un directorio utilizando la opción -r de la siguiente manera:

$ chmod -r [referencia] [operador] [modo] archivo ..

Digamos que los subdirectorios en el directorio de descargas tienen los siguientes permisos como se muestra en la siguiente captura de pantalla.

Si vemos uno de los archivos con nombre de subdirectorio, contiene algunos archivos con los siguientes permisos.

Ahora modificemos el permiso de nuestro directorio principal de "archivos" asignándole el permiso de escritura de la siguiente manera.

$ chmod u+w archivos

Donde significa "usuario", el + para "agregar" y la w para "escribir".

Después de asignar el permiso de escritura, ejecute el "LS -L"Comando, puede ver que el nuevo permiso ha asignado al directorio" Archivos ".

Sin embargo, este comando solo aplica los permisos al directorio, no los archivos en él. Para verificar esto, navegue al directorio de archivos utilizando el "cd" dominio. Luego ejecuta el "LS -L" dominio. Puede ver en la siguiente captura de pantalla que los permisos no han cambiado.

Aplicemos el permiso recursivamente utilizando el siguiente comando:

$ chmod -r u+w archivos

No solo aplicará el permiso al directorio de "archivos" parentales, sino también a los archivos en él.

Ahora, para verificar si el permiso se aplica correctamente, navegue al directorio "archivos" utilizando el "cdComando "y luego ejecuta el"LS -L" dominio. A partir de la siguiente entrada, puede ver que los permisos se han aplicado con éxito a todos los archivos en el directorio principal.

De la misma manera, también puede asignar recursivamente los permisos en forma absoluta. Por ejemplo, para asignar el permiso de leer, escribir y ejecutar solo al usuario, se puede usar el siguiente comando:

$ chmod -r 700

Cambiar el permiso recursivamente utilizando el comando Find

Cuando Chmod con -r se usa para aplicar permiso en un directorio, asigna el mismo permiso a todos los archivos y subdirectorios en él. Sin embargo, a veces, es posible que desee dar permisos separados a archivos y directorios. Un ejemplo de esto sería aplicar el permiso de ejecución en el directorio pero no en los archivos, ya que los archivos no necesitan el permiso de ejecución. En general, los siguientes permisos se asignan a los archivos y directorios.

Para directorios: 755 o DRWXR-XR-XX
Para archivos: 644 o -rw-r-r--

Si este es el caso, para asignar recursivamente un permiso a los directorios, use una de la forma absoluta o simbólica:

$ Find/Path/TO/Directory -Type D -exec CHMOD 755 +
$ Find/Path/TO/Directory -Type d -exec chmod u = rwx, go = rx \;

Mientras que para asignar recursivamente permisos a los archivos, use una de las formas absolutas o simbólicas:

$ Find/Path/TO/Directory -Type F -exec Chmod 644 +
$ Find/Path/TO/Directory -Type F -exec chmod u = rw, go = r \;

Asegúrese de reemplazar los permisos con sus conjuntos de permisos requeridos.

Así es como puede cambiar los permisos de directorio en Linux recursivamente. Para aplicar los mismos permisos recursivos a todos los archivos y subdirectorio, use la opción -r mientras aplicar permisos recursivos a los archivos y subdirectorios por separado, use el comando Buscar el comando.