it-swarm.dev

Jak mohu rekurzivně změnit oprávnění souborů a adresářů?

Na svém místním počítači jsem nainstaloval Ubuntu s Apache/php/mysql.

Nyní mám adresář na/var/www - uvnitř kterého mám několik svých probíhajících projektů. Pracuji také s opensource (drupal, magento, sugarcrm).

Problém, kterému čelím, je změna oprávnění souboru s terminálem. Někdy musím změnit povolení celé složky a jejích následných podsložek a souborů. Musím se individuálně změnit pomocí

Sudo chmod 777 foldername

Jak to mohu udělat rekurzivně.

Také proč to musím dělat vždy 777, zkusil jsem 755 pro složky a 644 pro soubory, ale to nebude fungovat.

73
Nikhil

Stačí přidat -R možnost rekurzivně změnit oprávnění souborů. Příklad rekurzivně přidejte oprávnění ke čtení a zápisu pro vlastníka a skupinu na foldername:

chmod -R ug+rw foldername

Povolení budou jako 664 nebo 775.

Nastavení oprávnění na 777 je vysoce odrazováno. V Apache nebo v editoru se vyskytnou chyby týkající se oprávnění, protože Apache běží pod jiným uživatelem (www-data) než vy.

Pokud chcete napsat na /var/www, přidejte se k www-data group a podle toho nastavte oprávnění umask +.

  • Přidejte se k www-data skupina: Sudo adduser $USER www-data
  • Změnit vlastnictví souborů v /var/www: Sudo chown -R www-data:www-data /var/www
  • Změňte umask, takže nově vytvořené soubory Apache udělují skupině oprávnění k zápisu. Přidat umask 007 to /etc/Apache2/envvars.
  • Udělte se (technicky, skupina www-data) oprávnění k zápisu: Sudo chmod -R g+w /var/www.
95
Lekensteyn

hrubou silou:

Sudo find foldername -exec chmod a+rwx {} ";"

Co nefunguje? Buď konkrétnější!

Sudo find foldername -type d -exec chmod 755 {} ";"
Sudo find foldername -type f -exec chmod 644 {} ";"
25
user unknown

Neměli byste na nic potřebovat 777. V nejhorším případě budete muset změnit vlastníka určitých souborů a adresářů na uživatele „www-data“.

Sudo find /var/www -type d -print0 | xargs -0 chmod 755
Sudo find /var/www -type f -print0 | xargs -0 chmod 644
Sudo find /var/www/some/subset -print0 | xargs -0 chown www-data:www-data

Pokud používáte metodu členství ve skupině Lekensteyn, změňte výše 755 na 775 a 644 na 664 a poté vynutit skupinovou lepivost:

Sudo find /var/www/some/subset -type d -print0 | xargs -0 chmod g+s
4
Kees Cook

Můžete změnit podsložky a soubory na Nautilu. Jak vidíte na obrázku níže. Chcete-li mít povolení na tlačítkách, můžete povolit volbu na Ubuntu Tweak.

enter image description here

3

Pokud chcete, aby všechny vaše soubory byly čitelné na celém světě (tj. Je to jen statická sada HTML souborů/obrázků), použijte tento příkaz:

chmod -R a+r <base directory>

To rekurzivně projde všechny soubory a podadresáře a přidá jim oprávnění ke čtení.

VAROVÁNÍ : Nedělejte to pro soubory, které jsou spustitelné! Pouze soubory, které by měly vidět všichni.

1
Ryan Shillington