terminal - subcarpetas - permisos 755 e 644
Cambie todos los permisos de archivos y carpetas de un directorio a 644/755 (7)
¿Cómo cambiaría todos los archivos a 644 y todas las carpetas a 755 usando chmod
desde el símbolo del sistema de linux
? (Terminal)
El más corto que pude encontrar es:
chmod -R a=r,u+w,a+X /foo
que funciona en GNU / Linux, y creo en Posix en general (de mi lectura de: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html ).
Lo que esto hace es:
- Establecer archivo / directorio a r__r__r__ (0444)
- Agregue w para el propietario, para obtener rw_r__r__ (0644)
- Establecer ejecutar para todos si un directorio (0755 para dir, 0644 para archivo).
Es importante destacar que el permiso del paso 1 borra todos los bits de ejecución, por lo que el paso 3 solo agrega los bits de ejecución para directorios (nunca archivos). Además, los tres pasos suceden antes de que se recursure en un directorio (por lo que esto no es equivalente a, por ejemplo,
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
dado que a = r elimina x de los directorios, entonces chmod no puede recurrir en ellos.)
Esto funcionó para mí:
find /A -type d -exec chmod 0755 {} /;
find /A -type f -exec chmod 0644 {} /;
Esto también puede funcionar:
chmod -R 755 * // All files and folders to 755.
chmod -R 644 *.* // All files will be 644.
Haz ambas cosas en una sola pasada con:
find -type f ... -o -type d ...
Como en, encuentre el tipo f O tipo d, y haga el primero ... para los archivos y el segundo ... para los directorios. Específicamente:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
Deja de --changes
si quieres que funcione en silencio.
La forma más fácil es hacer:
chmod -R u+rwX,go+rX,go-w /foo
que básicamente significa:
para cambiar las mod
archivo -R
ecursivamente dando:
-
u
ser:r
ead,w
rite y e Permisos de Xecute, - usuarios del juego y otros usuarios: permisos de copiado y e
X
permiso, pero no-w
permiso de rito.
Tenga en cuenta que X
hará que un directorio sea ejecutable, pero no un archivo, a menos que ya se pueda buscar / ejecutar.
+X
: hacer que un directorio o archivo pueda buscarse / ejecutarse por todos si ya puede buscarlo / ejecutarlo cualquiera.
Por favor, consulte man chmod
para más detalles.
Vea también: ¿Cómo modificar todos los directorios excepto los archivos (recursivamente)? en SU
Lo más fácil de recordar es dos operaciones:
chmod -R 644 dirName
chmod -R +X dirName
El + X solo afecta directorios.
Un enfoque podría ser el uso de find:
para directorios
find . -type d -print0 | xargs -0 chmod 0755
para archivos
find . -type f -print0 | xargs -0 chmod 0644