Bir klasörün salt okunur görünümünü nasıl oluşturabilirim?


12

Dosya sisteminde, okuma-yazma erişimi olan başka bir klasörün salt yazılır "görünümünü" sunan bir yer istiyorum.

Dosyaların içine kopyalanabileceği ancak okunamayacağı bir FTP bırak kutusuna benzer şekilde bir şey hayal ediyorum, örneğin:

$ ls read-write-view/ write-only-view/
read-write-view/:
a  b  c

write-only-view/:

$ cp d write-only-view/
$ ls read-write-view/ write-only-view/
read-write-view/:
a  b  c  d

write-only-view/:

Bunun örnekteki gibi çalışması önemlidir - içeriğe erişildiğinde hala görünür read-write-view/ve her iki "görünüm" de tek bir kullanıcı için işlevseldir.

Böyle bir şeyi nasıl ayarlayabilirim? Belki sembolik bağların akıllıca düzenlenmesi? Veya bir bağ montajının olağandışı bir yapılandırması mı?

Yanıtlar:


2

Aynı soruyu birkaç yıl önce samba posta listesindeki öğrenci bırakma kutuları için sordum (http://lists.samba.org/archive/samba/2008-September/143610.html) ve cevap bizim için çalıştı. Dosya sisteminizde (acl paketinden) genişletilmiş acl özelliklerine ihtiyacınız var, işte Jeremy Allison'ın cevabı ...

Tamam, sorun şu ki, öğrencilerin yeni dosyaları sürükleyip bırakabilmek için içerdiği dizini okuyabilmeleri gerekiyor. Bunun nedeni, Samba'nın büyük / küçük harfe duyarlı olmayan aramalar yapmak için dizini kendi adına tarayabilmesidir.

Ancak, öğrencilerin birbirlerinin dosyalarının adlarını görmelerine izin vermediğiniz sürece, öğrencilerin içine (ve kendi dosyalarına) yazabilmeleri, ancak diğer dosyaları düzenlememeleri veya görmemeleri için bir DropBox kurabilirsiniz.

Öncelikle, DropBox dizininde oluşturulan dosyaların öğrencinin birincil grubuna değil, DropBox dizinin grup sahibine ait olduğundan emin olmak istersiniz. Yani :

chgrp öğretmenleri DropBox

öğretmen grubuna ait olmasını sağlamak. Ardından, içinde oluşturulan dosyaların sahip bir öğretmen grubuna sahip olduğundan emin olmak için setgid bitini DropBox dizininde ayarlayın.

chmod g + s DropBox

Ardından, DropBox'daki bir dosyanın yalnızca dosyanın sahibi veya dizinin sahibi veya kök (/ tmp'nin sahip olduğu izinlerin aynısı) tarafından yeniden adlandırılabildiğinden veya silinebildiğinden emin olun.

chmod + t DropBox

Daha sonra öğrencilerin bir ACL ekleyerek dizine yazmasına izin verin

setfacl -mg: öğrenciler: rwx DropBox

Varsayılan acl "diğerleri" nin izinleri olmayacak şekilde ayarlandığı sürece, bir öğrenci tarafından bu dizine yazılan dosyalar kendilerine ait olacak, ancak sahip oldukları bir "öğretmenler" grubuna sahip olacak ve öğrenciler her birini okuyamayacak diğerleri dosyaları.

Dosyaların dizinin sahibine ait olmasına neden olmanız gerekiyorsa, onları oluşturan öğrenciler tarafından değil, yukarıda açıklandığı gibi ayrı bir paylaşım ayarlamanız ve ardından paylaşım düzeyi parametresini eklemeniz gerekir:

sahibi devral = evet

bu paylaşımdaki dizinler içinde oluşturulan dosyaların, oluşturma sahibine değil, içeren dizine ait olmasına neden olur.


1

Bunlardan bazılarını, hedef kullanıcıların klasöre yazma erişimine sahip olacak ancak okuma erişimi olmayacak şekilde klasördeki izinleri ayarlayarak gerçekleştirebilirsiniz.

Örneğin, herkesin bir klasöre yazmasına ancak içeriğini listelemesine izin vermek için aşağıdakileri yapabilirsiniz:

chmod o=wx folder

Veya yalnızca belirli bir kullanıcı grubuna bu erişimi vermek için:

chgrp groupname folder
chmod o=,g=wx folder

Artık bu kullanıcılar klasörün içeriğini listeleyemeyecek, ancak dosyaları klasöre yerleştirebilecek:

$ ls folder
ls: cannot open directory folder: Permission denied
$ touch folder/filename

Bu, istediğiniz her şeyi yapmaz, çünkü kullanıcılar klasördeki dosyalara yine de ad tahmin edebilirlerse erişebilirler. Dosyaları düzenli olarak açılan kutu klasöründen diğer kullanıcıların erişemeyeceği bir konuma taşıyan bir cron işi ile bu riski en aza indirebilirsiniz.


1

Rw erişimine sahip bir "salt okunur görünüm" bırakma klasörü oluşturabilir ve içeriği diğer "okuma-yazma-görünümüne" taşımak için cronjob veya inode bildirimini kullanabilirsiniz.


1

Ben sadece bağlama bağlama hile kullanabilirsiniz inanıyorum, içinde /etc/fstab:

/path/to/read-write-view /path/to/write-only-view none bind 0 0

Yani, muhtemelen o zaman:

chmod a=wx /path/to/write-only-view
chmod a=rwx /path/to/read-write-view

1

"Bir dizini başka bir konuma bağlamak ve izin bitlerini değiştirmek" için tasarlanmış bindfs komutunu kullanın .

Hem okuma hem de yazma erişimi olan normal bir klasörle başlayın:

$ mkdir read-write-view && touch read-write-view/{a,b,c}
$ ls read-write-view
a  b  c

Klasörü okuma erişimi olmadan bağlamak için bindfs komutunu kullanın:

$ mkdir write-only-view
$ sudo bindfs --perms=a-r read-write-view write-only-view

Yalnızca orijinal klasörün içeriğinin listelenebildiğini doğrulayın:

$ ls read-write-view write-only-view
read-write-view:
a  b  c
ls: cannot open directory write-only-view: Permission denied

Orijinal klasörün bağlama yoluyla yazılabileceğini doğrulayın:

$ echo 'Can you read this?' > write-only-view/d
$ cat read-write-view/d
Can you read this?

Dosyaların yuvadan okunamadığını doğrulayın:

$ cat write-only-view/d
cat: write-only-view/d: Permission denied

0

İlk olarak, bunu tersine düşünmek daha kolaydır. Yazma erişimine ihtiyaç duyanlar için rw olan bir klasörünüz ve salt okunur erişime ihtiyaç duyanlar için bu klasörün salt okunur bir "görünümü" niz var.

Mount - bind -o ro seçeneğinin doğru çalışmasını hiç bulamadım. Bunu yapmanın en güvenilir yolu nfs kullanmaktır. / Etc / export klasörüne aşağıdakileri ekleyin

/path-to-folder/folder 127.0.0.1(secure,ro,no_root_squash)

ardından salt okunur "görünümü"

mount -o ro 127.0.0.1:/path-to-folder/folder /read-only-folder

Artık orijinal klasörünüzün salt okunur bir görünümüne sahip olmalısınız.

Aynı şeyi samba / cifs ile yapabileceğinizi düşünüyorum, ancak bu sadece ağ erişimi için gerçekten mantıklı olacaktır.

Bu çözüm, bu Howto'dan ( çalınan ) esinlenmiştir . Umut ediyorum bu yardım eder.


Salt okunur bir görünüm sormuyorum, sadece okuma ve yazma.
ændrük

0

İçeriği görüntülemek için bir "sadece yazma" diski okumak zorunda çünkü bu mümkün olduğunu sanmıyorum.

Böyle bir cihazı sansaydım, nasıl çalıştığını nasıl doğrulayabilirim? Belki de bu kickstarter için bir tane.


0

Bu bir cevap değil, daha çok bir düşünce ve muhtemelen başka bir soru. Bana göre bu bir çeşit kanca veya tetikleyici ile uygulanabilir gibi geliyor.

Arka plandaki bazı programlar salt okunur klasörü izleyebilir (yoklama ile değil, FAM veya bunun gibi bir şeyle bilgilendirilebilir ) ve ardından her dosyayı göründüğü anda salt okunur klasöre taşıyabilir.

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.