GNU/Linux >> Tutoriales Linux >  >> Linux

Administre directorios y permisos de archivos con chmod Recursive

¿Está cansado de tener que cambiar los permisos de archivos y directorios manualmente? ¿Está buscando una forma más rápida y eficiente de modificar los permisos de sus archivos y directorios? Si es así, entonces ha venido al lugar correcto porque, en este artículo, aprenderá cómo cambiar los permisos de archivos y directorios usando el comando chmod recursivamente!

¿No eres un lector? ¡Mira este video tutorial relacionado! ¿No ve el video? Asegúrate de que tu bloqueador de anuncios esté deshabilitado.

¡Sigue leyendo para obtener más información!

Requisitos

Para continuar, necesita un dispositivo Linux y un directorio cuyos permisos de archivos y subdirectorios estén disponibles para practicar.

Aprender sobre usuarios y grupos de Linux

Los propietarios y grupos son importantes en Linux, necesarios para administrar archivos y directorios de forma segura. El propietario es a quien se le asigna un archivo o directorio, que por defecto es el creador. En Linux, los archivos y directorios también pertenecen a grupos. Tanto los usuarios como los grupos se configuran a través del chown comando.

En la siguiente captura de pantalla, el contenido resaltado en verde muestra al usuario propietario del archivo o directorio, mihail en este ejemplo. El contenido resaltado en azul muestra a qué grupo pertenece el archivo o directorio, propiedad de staff grupo en este ejemplo.

Comprender los permisos de archivos y directorios de Linux

Los permisos establecen qué acciones puede realizar un usuario o grupo en un archivo o directorio determinado. Se indican mediante una representación de caracteres y también se les asigna un valor numérico.

  • Leer (r o 4 ): Indica si un usuario o grupo puede leer el contenido del archivo o directorio. El permiso de lectura se concede de forma predeterminada a todos los archivos y directorios recién creados para todas las partes.
  • Escribir (w o 2 ): Indica si un usuario o grupo puede editar el contenido de un objeto. Este permiso se concede de forma predeterminada solo al propietario de un archivo o directorio.
  • Ejecutar (x o 1 ): Indica si un usuario o grupo puede ejecutar un archivo o ejecutar comandos dentro de un directorio. El permiso de ejecución se otorga de forma predeterminada solo a los directorios, pero no a los archivos.

Si no le da al usuario (u ) ejecutar permisos a un directorio, no podrán listar contenidos ya que el usuario no podrá ejecutar comandos dentro del directorio!

A continuación se muestra un ejemplo, la salida del comando ls -l muestra los diferentes tipos de permisos. Esos permisos precedidos por el d valor, indicar un directorio.

¿Por qué entonces hay aparentemente tres conjuntos de permisos para cada objeto? El control granular de los permisos se logra dividiendo los permisos en las secciones (referidas como partes a los fines de este tutorial) que se enumeran a continuación.

  • Usuario (u ): El propietario de un archivo o directorio, resaltado en azul.
  • Grupo (g ): Miembros del grupo al que pertenece un archivo o directorio, resaltados en verde.
  • Otro (o ): Todos los usuarios y grupos adicionales no asignados explícitamente, resaltados en rojo.

Cambio de permisos de archivo a través del comando recursivo chmod

Con la comprensión adecuada de los permisos de Linux, siga leyendo para aprender cómo cambiar los permisos de los archivos. Los permisos se modifican mediante el chmod comando recursivo como se muestra en los siguientes ejemplos.

1. Primero, verifique los permisos actuales con el ls -l dominio. Aquí, el my_dir/index.js se muestra el archivo.

2. Ejecute el chmod comando, especificando el grupo, a (todos), y los permisos, rwx , o leer/escribir/ejecutar. El comando completo sigue:chmod a=rwx index.js .

3. Como puedes ver, ejecutando chmod recursiva no devuelve ninguna salida. Para verificar que los permisos han cambiado, ejecute el comando ls -l otra vez.

Configuración de permisos de archivo a través de valores numéricos

¿Recuerdas los números asociados con permisos como lectura o escritura? En lugar de especificar los valores de los caracteres, puede especificar permisos específicos a través de un número. Al agregar los valores, crea un permiso específico como 6 que es una combinación de escribir (2 ) y leer (4 ) permisos.

En el siguiente ejemplo, establezca permisos para main.py archivo mediante el comando chmod 664 main.py . Los valores numéricos se desglosan de la siguiente manera.

  • Usuario: Leer y escribir (6 ).
  • Grupo: Leer y escribir (6 ).
  • Otro: Leer (4 ).

Una vez que se cambien los permisos, verifique los nuevos permisos para main.py archivo con el comando ls -l .

Eliminar y agregar permisos de archivos

Los comandos no numéricos que ha ejecutado hasta ahora usaban el parámetro de asignación (= ) con chmod recursivo, para establecer permisos explícitos. En su lugar, puede eliminar (- ) o agregar (+ ) permisos a conjuntos de permisos existentes.

1. Primero, enumere los permisos existentes para README.md archivo a través del comando ls -l README.md .

2. A continuación, agregue (+ ) ejecutar (x ) permisos para la parte del usuario (u ), mientras elimina (- ) leer (r ) permisos de la otra parte (o ) para README.md , con el siguiente comando chmod u+x,o-r README.md . Los permisos de las diferentes partes están separados por comas (, ).

3. Ejecute el ls -l README.md Comando para verificar que los permisos fueron modificados.

Cambio recursivo de permisos de archivos y directorios

Aunque está progresando, solo está operando en un archivo a la vez. ¿Qué sucede si tiene una gran cantidad de archivos para cambiar los permisos? Es hora de mejorar tu juego y aprender a cambiar los permisos para varios archivos.

Una de las opciones para cambiar varios archivos es ejecutar chmod recursivo con el -R (recursivo, y no el capital) opción. La opción recursiva cambiará los permisos para todos los archivos, incluidos los de los subdirectorios, dentro de una ruta determinada.

1. Considere el siguiente comando, chmod -R a=r,u=rwx my_dir . La mayoría de las opciones que ya has visto antes.

Este comando cambiará los permisos para todos los archivos en el directorio, my_dir y subdirectorios, a través de la opción recursiva (-R ). Los archivos están configurados como legibles (r ) para todos (a ), con permisos diferentes para el usuario actual (u ) configurado con permisos completos (lectura, escritura, ejecución).

En la captura de pantalla a continuación, verá los permisos resultantes después de ejecutar el comando, que no tiene ningún resultado.

2. Suponga que ejecuta el comando, chmod -R a=rwx my_dir , en el mismo directorio que antes, my_dir. Una vez más, está cambiando todos los archivos en my_dir, y sus subdirectorios, para establecer dar todo (a ) permisos completos (lectura, escritura, ejecución). Aquí está el resultado del comando, como chmod recursiva no muestra la salida.

3. ¿Qué tal el método numérico? Como se muestra a continuación, el método recursivo también funciona con permisos numéricos, chmod -R 770 my_dir . Aquí está otorgando permisos completos al usuario y al grupo, pero ningún permiso a la otra parte.

4. Ejecute ls -l para comprobar que my_dir Los permisos de archivos y subdirectorios se establecen con el método numérico.

Definición del comportamiento de archivos y carpetas a través de permisos especiales

Los permisos especiales permiten varios privilegios adicionales exclusivos de los conjuntos de permisos estándar. Hay tres permisos especiales. Así es como funcionan estos permisos especiales y cómo puede agregarlos a un archivo o directorio.

Configuración de los permisos SUID (Usuario + S)

Comúnmente conocido como SUID , es un permiso especial para el usuario. El SUID tiene una sola función:un archivo con SUID siempre se ejecuta como el usuario propietario del archivo, independientemente de quién esté ejecutando el archivo.

Por ejemplo, considere index.js . Para dar el SUID adicional permiso, ejecute chmod u+s index.js .

Ahora, si ejecuta ls -l index.js , encontrará que el usuario tiene un s en sus permisos en lugar de una x.

Configuración de los permisos SGID (Grupo + S)

Comúnmente conocido como SGID , este permiso especial tiene dos funciones:

  • Si se configura para un archivo, permite que el archivo se ejecute como el grupo propietario del archivo, independientemente de quién lo esté ejecutando.
  • Si se configura para un directorio, cualquier archivo creado en el directorio tendrá su grupo propiedad establecida en la del propietario del directorio.

Practica en el index.php expediente. Para agregar el SGID permiso para este archivo, ejecute el siguiente comando:chmod g+s index.php .

Ahora, si ejecutas ls -l index.php , encontrará que el grupo tiene una s en sus permisos.

Ir a un directorio:my_dir . Puede agregar el SGID permiso a este directorio usando el siguiente comando:chmod g+s my_dir . Cualquier archivo creado en este directorio ahora tendrá su grupo propiedad establecida en el propietario del directorio. Puede verificar los nuevos permisos del directorio usando ls -ld my_dir (el d el parámetro limita la salida solo a directorios).

Cambiar el permiso de Sticky Bit

El último permiso especial también se conoce como el "bit pegajoso". Este permiso no afecta a los archivos individuales. Pero, a nivel de directorio, restringe la eliminación de archivos. Solo el propietario de un archivo puede eliminar un archivo dentro de ese directorio.

Agregue la parte adhesiva al antiguo y familiar my_dir directorio. Para hacer eso, ejecute el comando de la siguiente manera:chmod +t my_dir .

Tenga en cuenta que, para agregar el bit adhesivo, no indica el otro grupo(o) antes del +t .

Cuando revisas my_dir los nuevos permisos, verá una T mayúscula en el otro permisos, como se muestra en la siguiente captura de pantalla.

Conclusión

¡Felicidades! Hablaste muchos temas en chmod recursivo Ahora está listo para abordar cualquier molesto problema de permisos que surja con el todopoderoso chmod herramienta. Incluso aprendiste a aprovechar el poder del recurso recursivo (-R ) opción.

¿Cómo pretende implementar chmod? funcionalidad versátil a su favor la próxima vez que necesite administrar permisos de archivos o directorios?


Linux
  1. Preguntas de la entrevista de Linux:permisos básicos de archivos y directorios

  2. Tabla de permisos para un archivo/directorio y tipos de usuarios del sistema de archivos

  3. Retención de permisos de archivo con Git

  4. Preservar los permisos de archivos y carpetas con rsync

  5. Comprensión de los permisos y tipos de archivos de UNIX

Cómo cambiar los permisos de archivos de forma recursiva con chmod en Linux

Comando Chmod en Linux (Permisos de archivo)

Permisos y propiedad de archivos de Linux explicados con ejemplos

Ejemplos de comandos chmod de Linux

UNIX/Linux:Guía para principiantes sobre permisos de archivos y directorios (umask, chmod, lectura, escritura, ejecución)

Cómo administrar permisos/propiedades de archivos y directorios en Linux