Nasıl kullanarak 755 644 tüm dosya ve klasörlerin değiştirecek chmodgelen linuxkomut istemine? (Terminal)
http://superuser.com:: P ama bu soru burada bana yardımcı oldu, teşekkürler.
chmod -R u+rwX,go+rX,go-w /foo
Nasıl kullanarak 755 644 tüm dosya ve klasörlerin değiştirecek chmodgelen linuxkomut istemine? (Terminal)
http://superuser.com:: P ama bu soru burada bana yardımcı oldu, teşekkürler.
chmod -R u+rwX,go+rX,go-w /foo
Yanıtlar:
Bir yaklaşım find kullanarak olabilir:
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 {} \;dosyalar ve sudo find /your/location -type d -exec chmod 755 {} \;dizinler için deneyin
chmod -R a=r,u+w,a+X /foo?
unable to execute /bin/chmod: Argument list too long
En kolay yol:
chmod -R u+rwX,go+rX,go-w /path/to/dir
temel olarak şu anlama gelir:
için change dosyanın modes -Rvererek ecursively:
user: read, write ve e Xecute izinleri,group ve other kullanıcıları: read ve e Xecute izinleri, ancak -wayin izni değil .XÖnceden aranabilir / yürütülebilir değilse, bir dizini yürütülebilir, ancak bir dosya yapamayacağını lütfen unutmayın .
+X- zaten herkes tarafından aranabilir / yürütülebilir ise, bir dizini veya dosyayı herkes tarafından aranabilir / yürütülebilir hale getirin.
Daha man chmodfazla ayrıntı için lütfen kontrol edin .
Ayrıca bkz: Dosyalar dışındaki tüm dizinleri nasıl yineleyebilirsiniz (özyinelemeli)? SU'da
Gelebildiğim en kısa şey:
chmod -R a=r,u+w,a+X /foo
GNU / Linux üzerinde çalışan ve genel olarak Posix'e inanıyorum (şu okumaya göre: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html ).
Bunun yaptığı:
Önemli olarak, 1. adım izni tüm yürütme bitlerini temizler, bu nedenle 3. adım yalnızca dizinler için yürütme bitlerini geri ekler (asla dosyalar). Ek olarak, üç adımın tümü bir dizin tekrarlanmadan önce gerçekleşir (bu nedenle bu, örn.
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
a = r, x'i dizinlerden kaldırdığından, chmod bunlara katılamaz.)
Hatırlamam en kolay iki işlem:
chmod -R 644 dirName
chmod -R +X dirName
+ X yalnızca dizinleri etkiler.
Https://help.directadmin.com/item.php?id=589 üzerinde şunu yazarlar:
Public_html verilerinizi dizinler için 755 ve dosyalar için 644 olarak sıfırlamanın hızlı bir yoluna ihtiyacınız varsa, bunun gibi bir şey kullanabilirsiniz:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Test ettim ve ... işe yarıyor!
Bu benim için çalıştı:
find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
find /A -type X -exec chmod Y '{}' \;
Her ikisini de tek bir geçişte yapın:
find -type f ... -o -type d ...
Olduğu gibi, f türünü VEYA d türünü bulun ve ilkini ... dosyalar için, ikincisini ... dirs için yapın. özellikle:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
Bırak --changesbunu sessizce çalışmak istiyorsanız.
Public_html verilerinizi dizinler için 755 ve dosyalar için 644 olarak sıfırlamanın hızlı bir yoluna ihtiyacınız varsa, bunun gibi bir şey kullanabilirsiniz:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Ayrıca, PHP'nin "apache" olarak değil, kullanıcı olarak çalıştığını biliyorsanız, ek bir güvenlik düzeyi için PHP dosyalarını 600'e ayarlayabilirsiniz, örneğin:
find . -type f -name '*.php' -exec chmod 600 {} \;
Bu başvuruyu burada bulabilirsiniz: https://help.directadmin.com/item.php?id=589
Bu da işe yarayabilir:
chmod -R 755 * // All files and folders to 755.
chmod -R 644 *.* // All files will be 644.