Linux'ta “yazma” izni, dizinler için “yürütme” ile eşdeğer midir?


17

Yürütme izni, dosyalar (komut dosyaları vb. Dahil) için anlamlıdır, ancak dizinler söz konusu olduğunda write (w)izin aynı şekilde çalışır execute (x), değil mi?

Diğer bir deyişle, bir dizine yazma izni veriyorsak normalde o dizin için "x" (yürütme için) de kontrol ederiz, değil mi?


2
Sorunuz şimdi anlaşılmaz. Bir dosyadaki izinler hakkında nerede konuştuğunuz ve onu içeren dizindeki izinler hakkında nerede konuştuğunuz açık değildir.
Gilles 'SO- kötü olmayı kes'

1
Yeni bir sorunuz varsa , ayrı olarak gönderebilir misiniz ?
Michael Mrozek

1
"Bir dosya için tek ihtiyacımız olan okuma izni" ne demek? Ne için ihtiyacın var? Bir dosyayı okumak için? Evet. Bir dosyayı değiştirmek için ... hayır, o dosyanın sahibi siz değilseniz.
gabe.

İşlemleri dışarıda bırakmanın yanı sıra "okuyabilir, dizin içindeki dosyaları yeniden adlandırabilir / silebilir", "000: silemezsiniz" aslında yanlıştır. Dizin zaten boşsa, üst dizinine yazabiliyorsanız silebilirsiniz. Boş değilse, boş olana kadar silemezsiniz (boş yapmak, üç izin ve tüm boş olmayan alt dizinleri gerektiren yinelemeli bir işlemdir)
Random832

Bu soruda yaptığınız düzenleme, neyin sorulduğunu anlamanın kafa karıştırıcı olmasını sağladı ve gelecekteki ziyaretçiler için herhangi bir değer katmadı. @Gilles'ın cevapladığı orijinal basit soru formuna döndüm. Yeni bir sorununuz varsa başka bir soru sorabilirsiniz . Lütfen her soruyu tek bir konuya odaklamaya çalışın.
Caleb

Yanıtlar:


50

Dizinlerdeki yürütme izni, dizindeki dosyalara erişmeye izin verir. Okuma izni, dizin girişlerinin numaralandırılmasına izin verir. Yazma izni, içindeki girişlerin oluşturulmasına ve kaldırılmasına izin verir.

Yürütme izni olmayan bir dizinde okuma veya yazma iznine sahip olmak yararlı değildir. Yürütme ancak okuma iznine sahip olmak zaman zaman yararlıdır: dosyalara yalnızca tam adlarını biliyorsanız, bir tür ilkel şifre koruması sağlar.

Yani pratikte bir dizindeki faydalı izinler şunlardır:

  • ---: erişim yok
  • --x: adı bilinen dosyalara erişebilir (bazen yararlıdır)
  • r-x: normal salt okunur erişim
  • rwx: normal okuma ve yazma erişimi

Ayrıca bkz. + X iznine sahip Rehber, onsuz ebeveynler. Bu ne zaman faydalı olur? ve Bir alt dizine erişirken ana yöneticinin izinleri önemli mi?


@Gilles haklı! Linux için bu konuda biraz araştırma yapmak şunları ortaya çıkarır: 1) Bir dizin kullanıcı için 'x' iznine sahip değilse, başarısız olan stat veya lstat sistem çağrısıdır. Dizin girişlerini (ad, inode) almak, kullanıcının dizinde 'r' iznine sahip olması mümkün olsa da, bu durum dizin girişlerinin meta verilerinin alınmamasına neden olur. 2) Bazı ek bilgiler için Linux'ta man 7 path_resolution'a bakınız.
Kedar Mhaswade

2
w-xayrıca kullanımları olabilir. Örneğin, genel FTP sitelerinin genel olarak yazılabilir ancak yalnızca sunucu yöneticileri tarafından okunabilen bir uploadveya incomingklasöre sahip olması oldukça yaygın bir uygulamadır .
jmbpiano

Ne olur rw-bunu r--dizinler için yapamadı? Bu cevap, değişiklik zamanını değiştirme yeteneğinden bahseder, ancak Linux ZFS sistemimde bu doğru değil, değişiklik zamanını dizinim yalnızca olsa bile değiştirebildim r--.
CMCDragonkai

@CMCDragonkai Haklısınız, meta verileri değiştirmek sahipliğe dayalıdır, izinlerle ilgili değildir. rw-Girişleri listelemek dışında bir dizin ile hiçbir şey yapabileceğinizi sanmıyorum (ve üst dizinine herhangi bir izin gerektirmeyen, üst öğeye sahipseniz taşıyın / kaldırın).
Gilles 'SO- kötü olmayı bırak'

@Gilles: Doğru. ile rw-dir üzerine, ben olsa bile, içinde yeni dosyalar veya değiştirmek mevcut olanları oluşturamazsınız rw-Değişiklikten deneyin dosyada. touchDosyayı ben de edemem . Arch Linux 4.14.13 kullanıyorum.
Matthias Braun
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.