chmod -R alt klasörlerdeki dosyaları bir sebepten dolayı üre edilebilir yapar


22

Bazı WordPress temaları ayarlarken izinleri ayarlıyordum ve koştum chmod 664 -R theme-dir/*Dizin kökündeki dosyalar üzerinde gayet iyi çalıştı, fakat alt dizinlerdeki bütün dosyalar şu anda şöyle okuyordu ls -l:

?---------  ? ? ? ?            ? core_functions.php
?---------  ? ? ? ?            ? css
?---------  ? ? ? ?            ? custom_functions.php
?---------  ? ? ? ?            ? images
?---------  ? ? ? ?            ? import_settings.php
?---------  ? ? ? ?            ? js
?---------  ? ? ? ?            ? options_trim.php
?---------  ? ? ? ?            ? page_templates
?---------  ? ? ? ?            ? post_thumbnails_trim.php
?---------+ ? ? ? ?            ? shortcodes

Alt dizinlerin hiçbirine cd giremiyorum ve onları da silemiyorum. Hiç böyle bir şey görmedim, hiç kimse benzer bir şeye rastladı mı?


bozuk dosya sistemi gibi görünüyor ..
alexus

1
koşmakchmod -R u+rwX,go+rX,go-w theme-dir/*
Dusan Bajic

@ dusan.bajic İşe yaradı, teşekkürler. Yine de ilk etapta neden olduğu hakkında hala bir fikrim yok.
Sal,

5
@alexus bozulma yok, sadece izin veriyor
civcivler

644 (ya da her neyse) chmod'a karşı boğduğumda böyle bir şey gördüm sanırım, ama gerçekten bir çalışma sistemi üzerinde tekrar test yapmak istemiyorum
Foon

Yanıtlar:


49

Bir dizinin içeriğine (veya özellikle dosya adı haricinde dosya meta verisine) erişmek, dizinin yürütme bit ayarına sahip olmasını gerektirir.

Özyinelemeli chmod'unuz bu izni kaldırdı, bu yüzden bu erişimi kaybettiniz. Eğer kullanıyorsanız -Rseçeneği ait chmodizinlerin sayısal sürümünü kullanmaktan kaçınmak daha iyidir ve bunun yerine (örnek olarak istenen devlet kullanarak) çalıştırın chmod -R ug=rwX,o=rX. X büyüklüğü, X bitini yalnızca en az bir xset içeren dizinlere veya dosyalara ayarlamak anlamına gelir . Ayrıca, u=rwX,go=rXgerçekten grup kullanıcılarına yazma ihtiyacı duymadığınız sürece 644 ( ) kullanmak isteyebilirsiniz .


6
X , bazı kullanıcılar için yürütme iznine sahip olan dizinlerde ve dosyalarda X'in ayarlanması anlamına gelir (bu genellikle istediğiniz şeydir)
tomclegg

1
@ tomclegg: Doğru. Cevabımı uygun şekilde güncelledim. Hiçbir zaman dizine özel bir sürüm eklememiş olmaları ya da daha iyi bir operasyon öncesi mektubu (u, g, o ya da a gibi) eklemeyi tuhaf görünmektedir, bu da bu değişikliği sadece dizinlere uygulamak anlamına gelir.
Kevin Cathcart

13

Gönderen Wordpress belgelerinde :

Sunucunuza kabuk erişiminiz varsa, aşağıdaki komutları kullanarak dosya izinlerini art arda değiştirebilirsiniz.

Dizinler İçin:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

Dosyalar İçin:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Bu özel sorun için bir overkill, ancak diğer durumlarda çok yararlı :)
nurchi

1
Daha fazla güvenlik duyarlı ortamlarda (Magento ve Son zamanlarda Sağlık Hizmetleri Sistemleri), tedarikçilerin ve açık kaynaklı sistemlerin SADECE dosya yöntemini kullanarak tavsiyede bulunduklarını, çünkü yukarıdaki durum üzerinde ayrıntılı granül kontrolü sağladığından ve ayrıca hassas bir şekilde kontrol edilmesini sağladığını fark ettim. setuid, setgid ve ayrıca rezil “yapışkan bit” uygulaması. Muhtemelen bu kullanım durumu için bunu ortaya çıkarmak daha fazla iş olabilir, ancak bahis cevabı her zaman istenen sonucu sağlayan en güvenli yöntemdir. Bunu karşılaması mümkün ise, Güvenlik'in her zaman Özellik 1 olması gerektiğine inanıyorum.
Bryan 'BJ' Hoffpauir Jr.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.