Nasıl kullanarak 755 644 tüm dosya ve klasörlerin değiştirecek chmod
gelen linux
komut 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 chmod
gelen linux
komut 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 ch
ange dosyanın mod
es -R
vererek ecursively:
u
ser: r
ead, w
rite ve e X
ecute izinleri,g
roup ve o
ther kullanıcıları: r
ead ve e X
ecute izinleri, ancak -w
ayin 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 chmod
fazla 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 --changes
bunu 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.