chmod
může to vlastně udělat sám; X
symbolické oprávnění znamená "spustit, pokud to dává smysl", což obecně znamená v adresářích, ale ne v souborech. Můžete tedy použít:
chmod -R u=rwX,go=rX /path/to/htdocs
Jediným potenciálním problémem je, že pokud některý z obyčejných souborů již má spouštěcí sadu, chmod
předpokládá, že je to záměrné a ponechá si to. Pokud se jedná o potenciální problém a máte GNU verzi chmod
(tj. používáte Linux), můžete jej získat, abyste odstranili všechna zbloudilá oprávnění ke spuštění, jako je toto:
chmod -R a-x,u=rwX,go=rX /path/to/htdocs
Bohužel tento trik nefunguje s bsd (/macOS) verzí chmod
(U jiných verzí si nejsem jistý). Je to proto, že verze bsd používá X
oprávnění založené na "původním (neupraveném) režimu", tj. zda měl nějaké spouštěcí bity před a-x
byla provedena úprava (viz man
stránka).
Použijte find
pro vyhledání adresářů a aplikaci chmod na ně:
find -type d | xargs chmod 775
Použijte typ f
pro soubor:
find -type f | xargs chmod 775
Použijte find's -type
možnost omezit akce na soubory a adresáře. Použijte -o
možnost zadat alternativní akce pro různé typy, takže stačí spustit find
jednou, nikoli samostatně pro každý typ.
find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +