¿Cómo cambiaría todos los archivos a 644 y todas las carpetas a 755 usando chmod
el linux
símbolo del sistema? (Terminal)
http://superuser.com
: P, pero esta pregunta me ayudó aquí, gracias.
chmod -R u+rwX,go+rX,go-w /foo
¿Cómo cambiaría todos los archivos a 644 y todas las carpetas a 755 usando chmod
el linux
símbolo del sistema? (Terminal)
http://superuser.com
: P, pero esta pregunta me ayudó aquí, gracias.
chmod -R u+rwX,go+rX,go-w /foo
Respuestas:
Un enfoque podría ser usar find:
find /desired_location -type d -print0 | xargs -0 chmod 0755
find /desired_location -type f -print0 | xargs -0 chmod 0644
sudo find /your/location -type f -exec chmod 644 {} \;
con archivos y sudo find /your/location -type d -exec chmod 755 {} \;
directorios
chmod -R a=r,u+w,a+X /foo
?
unable to execute /bin/chmod: Argument list too long
La forma más fácil es hacer:
chmod -R u+rwX,go+rX,go-w /path/to/dir
que básicamente significa:
para ch
archivar mod
es -R
ecursivamente dando:
u
ser: r
permisos de ead, w
rite y e X
ecute,g
rupo y o
ther usuarios: r
EAD y correoX
, pero no -w
permisos 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
- haga que todos puedan buscar / ejecutar un directorio o archivo si ya alguien puede buscarlo / ejecutarlo.
por favor, compruebe man chmod
para más detalles.
Ver también: ¿Cómo modificar todos los directorios excepto los archivos (recursivamente)? en SU
El más corto que se me ocurrió 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:
Es importante destacar que el permiso del paso 1 borra todos los bits de ejecución, por lo que el paso 3 solo agrega bits de ejecución para directorios (nunca archivos). Además, los tres pasos suceden antes de que se vuelva a utilizar 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 a ellos).
Lo más fácil para mí es recordar dos operaciones:
chmod -R 644 dirName
chmod -R +X dirName
La + X solo afecta a los directorios.
En https://help.directadmin.com/item.php?id=589 escriben:
Si necesita una forma rápida de restablecer sus datos public_html a 755 para directorios y 644 para archivos, puede usar algo como esto:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Lo probé y ... ¡funciona!
Esto funcionó para mí:
find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
find /A -type X -exec chmod Y '{}' \;
Haz ambas cosas en una sola pasada con:
find -type f ... -o -type d ...
Como en, encuentre el tipo f O el tipo d, y haga el primero ... para archivos y el segundo ... para directorios. Específicamente:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
Deja el --changes
si quieres que funcione en silencio.
Si necesita una forma rápida de restablecer sus datos public_html a 755 para directorios y 644 para archivos, puede usar algo como esto:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Además, si sabe que PHP se ejecuta como usuario y no como "apache", puede configurar los archivos PHP a 600, para un nivel adicional de seguridad, por ejemplo:
find . -type f -name '*.php' -exec chmod 600 {} \;
Puede encontrar este recurso aquí: https://help.directadmin.com/item.php?id=589
Esto también puede funcionar:
chmod -R 755 * // All files and folders to 755.
chmod -R 644 *.* // All files will be 644.