Yıllarca Linux ile çalışıp boş zamanımı kendim bularak bazı temel bilgileri tekrar gözden geçirmeye karar verdim. Bu yüzden izinler (kaynak kodunu kontrol etmeden) ve klasörler için özel durumlarıyla ilgili bilgileri yeniden okudum ve klasör izinleri hakkında (belirli bir kullanıcı için / group / others): Bir klasörü iki sütunlu bir tablo olarak hayal ediyorum, şöyle:
filename | inode
foo | 111
bar | 222
Okuma tablonun sol sütun okumak (ve liste) olabilir izni araçları, yazma ekleme ve masaya girdileri kaldırma ve izni karşılık yürütmek inode'a dosya adından çevirmek mümkün izni karşılık gelir; yani klasörün içeriğine erişebilirsiniz .
Bazı deneyler yaptım ve sonuçların hepsi benim bu "dünya görüşü" ile tutarlı, ama bir sonuç kaçınılmaz görünüyor: izinleri olan bir klasör d-w-------
tamamen işe yaramaz. Ayrıntılı: içeriğini listeleyemezsiniz, içeride olduğunu bildiğiniz hiçbir dosyayı okuyamazsınız (çünkü adları inode'lara çeviremezsiniz), dosyaları kaldıramaz veya yeniden adlandıramaz veya ekleyemezsiniz, çünkü yine çeviri anlamına gelir ve hardlinks bile ekleyemezsiniz (çünkü, sanırım, bu bir isim ve bir inode numarası eklemek anlamına gelir, bu da her ikisini de bileceğiniz anlamına gelir, bu da yine surma yaparak, izin izninin ayarını kaldırma amacını ihlal eder) . Orada eğer Ve tabii ki, vardır böyle bir klasörün içinde dosyaların içindekileri silemediğinden, o zaman, ya bu klasörü silemezsiniz.
Yani ... iki soru sormak istiyorum:
- Bu benim benzetimim doğru mu, yoksa büyük bir gaf mı?
- Önceki yanıttan bağımsız olarak, açıklandığı gibi izinlere sahip bir klasöre sahip olmanın uygun olduğu herhangi bir durum var mı?
mkdir foo ; chmod 200 foo ; touch foo/bar
ben olsun touch: cannot touch ‘foo/bar’: Permission denied
. Foo / bar zaten mevcut olsa bile bu olur. Ben bash (Arch Linux) test ediyorum.