Okuma erişimi olmadan yazma erişimi


16

Bir kullanıcının bir dosyaya yazma erişimine sahip olması ve dosyayı okuyamaması mümkün müdür? Bu nasıl mümkün olaiblir?

Aşağıdaki komutları denedim:

debianbox@debian:~/posix/io$ touch filetest
debianbox@debian:~/posix/io$ ls -l filetest
-rw-r--r-- 1 debianbox debianbox 0 14 oct.  03:10 filetest

debianbox@debian:~/posix/io$ echo "Hello World" > filetest
debianbox@debian:~/posix/io$ cat filetest
Hello World

debianbox@debian:~/posix/io$ chmod u-r filetest
debianbox@debian:~/posix/io$ cat filetest
cat: filetest: Permission forbidden

debianbox@debian:~/posix/io$

Burada gördüğünüz gibi, bu dosyaya yazma erişimim var ama okuma erişimi yok. Bu nasıl mümkün olabilir? Bu bir hata olarak kabul edilir mi? Değilse, hangi durumda bu yararlı olur?

Yanıtlar:


18

Bu bir hata değil, bir özellik TM (Ayrıca, izinlere evrensel unix yaklaşımının bir sonucu).

Dizinler durumunda (BillThor tarafından açıklandığı gibi) dropbox benzeri davranışların dışında, /procve altındaki bazı özel (sözde-) dosyalar için salt yazılır erişim gereklidir /sys. Bu tür dosyalar bazı sürücü veya çekirdek özelliklerini ayarlamak veya bir sistem eylemini tetiklemek için kullanılır. Bunları okuyamazsınız, çünkü bunlar yalnızca tek yönlü sinyalizasyon için kullanılır - yalnızca bazı metinleri / verileri onlara yansıtabilirsiniz. Bu tür dosyaları bulmak için şunu kullanabilirsiniz:

find /proc/[^0-9]* /sys -perm /222 ! -perm /444

Bu dosyalar gelişmiş sistem yapılandırması için kullanıldığından (potansiyel olarak tehlikeli), rootbunlara yalnızca yazma erişimine sahip olduğuna dikkat edin (çoğu durumda).


21

Okuma erişimi olmadan yazma erişimine izin vermenin temel nedeni, hem çekirdek içinde hem de kullanıcı programlarında izin yönetimini basitleştirmesidir. Biri okuma diğeri yazma olmak üzere iki izin vardır ve bunlar bağımsız olarak yönetilir. Belgelenmiş davranış gerçek davranışa denk geldiğinden ve farklı bir davranış gerektirmesi için iyi bir neden olmadığından bu bir hata değildir.

Okuma izinleri olmadan yazma izinlerine sahip olmak normal dosyalar için fazla bir anlam ifade etmez. Çeşitli özel dosyalar için mantıklı.

  • Bazı sistemler yalnızca ek dosyalara izin verir. Bu, örneğin günlük dosyaları için kullanışlıdır. Birçok kullanıcının günlük girişleri oluşturmasına izin vermek, ancak mevcut girişleri silmelerine veya üzerine yazmalarına izin vermemek (dolayısıyla: yazma izni, ancak yalnızca ekleme özniteliği) veya başkalarının girişlerini okumalarına izin vermemek mantıklı olabilir (dolayısıyla: hayır okuma izni).
  • Bir programın, okunmasına izin verilmeden adlandırılmış bir boruya yazmasına izin verilebilir.
  • Bazı cihazlar salt yazılır. Örneğin, bir hoparlöre bağlı ancak mikrofona sahip olmayan bir ses çıkış cihazı yazma iznine sahip olmalı, ancak okuma iznine sahip olmamalıdır.
  • Bir dosyayı okumak veya yazmak, depoya veri almak veya depoya veri eklemek yerine hemen etkili olan çeşitli özel dosya sistemleri vardır. Örneğin, Linux altında, onun altından çeşitli dosyaları /procve /sysbu kullanıcı uzay programları belirli bir dosya yazarak kernel'a komutlar göndermek için izin verir. Bu komut herhangi bir geri bildirim sağlamazsa, özel dosya salt okunur hale getirilir.

3

Hayır, bu bir hata değil. Ancak, genellikle dosyalara uygulandığını görmüyorum.

Sık sık dropbox dizinlerinde yazma erişimi gördüm. Kullanıcılar dizine dosya ekleyebilir, ancak hangi dosyaların var olduğunu göremez.

Normal bir metin dosyası için, yazma kutusu erişimi için yalnızca yazma erişimi uygun olur.

Yalnızca kendiniz için yazma erişimini ayarlamak son derece yararlı olmaz, ancak izin vermemek izin kodunu zorlaştırır.

EDIT: Dropbox dosyalarının yararlı olması muhtemel değildir. Ancak, kök olmayan günlükler için günlük girişlerinin üzerine yazılmasını zorlaştıracağından yararlı olabilir. Dosyayı okuyabiliyorsanız, yedek günlük girdisinin nereye yazılacağını belirlemek çok daha kolaydır. Ancak, günlüklerini böyle ayarlayan kimseyi tanımıyorum. Günlük girişlerinin yerel olarak değiştirilmesini önlemek için uzaktan günlüğe kaydetmenin kullanılması yaygındır.

İzin kombinasyonlarının izin verilebileceği kurallar belirlemek, öngörülemeyen faydalı izinlerin önlenmesine yol açabilir. Birçok kombinasyon grup veya dünya düzeyinde sahip seviyesinden daha anlamlı. Sahibin erişimini engelleme girişimleri kolayca geçersiz kılınabilir. Ancak, yine de ayık ikinci zorlamak için yararlı olabilir.


Bir "dropbox dosyası" aslında pek bir anlam ifade etmez. Sadece bazı verileri yazmak için kullanılabilir ve bir noktada okunabilir hale getirilse bile, içeriği daha önce silinmiş veya kaldırılmış olabileceğinden, gerçekte ne olduğuna dair hiçbir iz göstermez.
rozcietrzewiacz
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.