GNU/Linux >> Tutoriales Linux >  >> Cent OS

Centos:¿cambiar todos los permisos de carpeta con 1 comando?

Dentro del directorio de mi aplicación web, ¿cómo puedo cambiar todos los permisos de mi carpeta a rwxr-xr-x? (755)? ¿Y cómo puedo cambiar todos los permisos de archivo a rw-r--r--? (644)? Quiero cambiar todas las carpetas y archivos, incluidos los sub-subarchivos y carpetas.

Sé que el siguiente comando cambiaría todos los archivos y carpetas, pero quiero distinguir entre un archivo y una carpeta.

chmod -R 755 ./my_web_app_project

Respuesta aceptada:

Una forma de hacer exactamente lo que quieres con un find el comando es

find my_web_app_project '(' -type f -exec chmod 644 {} ';' ')' -o '(' -type d -exec chmod 755 {} ';' ')'

-o significa O.
Este comando procesa todos los objetos en el árbol del proyecto
que son del tipo "archivo" o escribe "directorio",
y ejecuta diferentes comandos según el tipo de cada objeto.

Puede hacer esto un poco más eficiente
reemplazando los puntos y comas (';' ) con signos más (+ );
esto le dice a find para ejecutar chmod 644 una vez, con todos los nombres de los archivos sin formato como argumentos,
y para ejecutar chmod 755 una vez, con todos los nombres de los directorios como argumentos.

Por cierto, no es necesario que digas ./ para cualquier otra cosa que no sea ejecutar un programa en el directorio actual
(aunque ocasionalmente resulta útil
para manipular archivos cuyos nombres comienzan con algunos caracteres especiales).

Me pregunto cómo se verán sus permisos ahora
(antes de ejecutar un chmod recursivo en todo el árbol ).
Los archivos generalmente no tienen activados los bits de permiso de ejecución
a menos que realmente sean programas ejecutables,
o accidentalmente haya hecho algo como chmod -R 755 .
Los directorios generalmente no tienen sus bits de permiso de ejecución desactivados
a menos que hayas hecho algo catastrófico como chmod -R 644 .
Si ha estropeado mucho los permisos
porque ha realizado un chmod -R poco aconsejable con un modo numérico,
ignore esta sección
y siga con el comando al principio de esta respuesta.

Pero, si sus permisos son generalmente sensatos,
y solo quiere imponer un estándar de
permisos de lectura/escritura para el usuario,
y permisos de solo lectura para todos los demás (grupo y mundo ),
puedes hacer

chmod -R +rX,u+w,go-w my_web_app_project

en el que

  • +rX significa +r,+X (tenga en cuenta que la X está en mayúscula, esto es importante).
    • +r significa establecer permisos de lectura para usuarios, grupos y otros.
    • +X significa establecer permisos de ejecución para usuarios, grupos y otros si actualmente está establecido para alguno de ellos o si el objeto es un directorio .
  • u+w significa establecer permiso de escritura para el usuario.
  • go-w significa desactivar el permiso de escritura para el grupo y otros.
Relacionado:¿Puedo eliminar la carpeta C:ProgramDataPackage Cache?

Resumen de algunos puntos clave:

  • Por supuesto que puedes chmod solo las cosas que posees
    (a menos que tengas privilegios) y que no son de solo lectura.
    Si hay cosas en su directorio que no puede chmod ,
    cualquiera de estos comandos provocará un error.
  • El find los comandos no harán nada con cosas
    que no sean directorios o archivos (por ejemplo, canalizaciones con nombre).
  • El find comando con -exec chmod 755 {} + puede fallar
    si aún no tiene permiso de lectura y ejecución para todas las carpetas
    bajo su directorio de nivel superior.
  • El chmod -R +rX,u+w,go-w voluntad de comando
    • establecer todos los directorios en el modo 755,
    • ignorar enlaces simbólicos,
    • para todos los demás tipos de archivos (incluidos, por ejemplo, canalizaciones con nombre):
      • establecerlo en 755 si ya tiene al menos una x poco; de lo contrario,
      • establecerlo en 644.

Cent OS
  1. Gestión de paquetes de CentOS 8 con DNF en la línea de comandos

  2. Cómo auditar permisos con el comando de búsqueda

  3. Centos:¿cambiar el nombre de todos los archivos con un nombre determinado?

  4. Listar todos los paquetes instalados con yum en CentOS 7

  5. Cómo usar el comando chmod (Modo de cambio) en Linux

Comando Chmod en Linux (Permisos de archivo)

Comando Chmod en Linux

Comando Chmod:cómo cambiar los permisos de archivo en Linux

Cómo cambiar el nombre de host en CentOS 8

Aprenda el uso del comando chmod (modo de cambio) en Linux

Ejemplos de comandos chmod de Linux