Dağı seçeneği nodev'i ve USB flash sürücülerle kullanımını anlama


10

montaj (8) OS X Manuel Sayfa açıklanır nodevseçeneği:

Dosya sistemindeki karakteri yorumlamayın veya özel aygıtları engellemeyin. Bu seçenek, kendi mimarileri için özel aygıtlar içeren dosya sistemlerine sahip bir sunucu için kullanışlıdır.

Tek başına, tam olarak anlamıyorum ... 

… Benim için bu sorunun - seçeneği anlamama yardımcı olabilecek daha önemli kısmı:

USB flash sürücüler neden nodev seçeneğiyle monte edilir?

Misal:

sh-3.2$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk0s2 on /Volumes/swap (hfs, local, journaled)
/dev/disk0s4 on /Volumes/spare (hfs, local, journaled)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
localhost:/Eiu9XWYlwq4E8x9l_bQTiX on /Volumes/MobileBackups (mtmfs, nosuid, read-only, nobrowse)
/dev/disk3 on /Volumes/gjp22 (zfs, local, journaled, noatime)
/dev/disk3s1 on /opt (zfs, local, journaled, noatime)
/dev/disk6 on /Volumes/zhandy (zfs, local, journaled, noatime)
/dev/disk8s1 on /Volumes/experiment (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk10 on /Volumes/tall (zfs, local, journaled, noatime)
/dev/disk11s2 on /Volumes/LaCie Little Big Disk (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk12 on /Volumes/twoz (zfs, local, journaled, noatime)
Wuala on /Volumes/WualaDrive (osxfusefs, local, nodev, nosuid, synchronous, mounted by gjp22)
/dev/disk14s2 on /Volumes/Time Machine Backups (hfs, local, nodev, nosuid, journaled)

Bu örnekte, dört cilt nodev:

  1. deneme - USB flash sürücüde
  2. LaCie Little Big Disk - FireWire 400 üzerindeki bir sabit disk sürücüsünde, bu birim bir Time Machine içerirBackups.backupdb
  3. Wuala - dosya sistemi entegrasyonu OS X için FUSE kullanıyor
  4. Time Machine Yedeklemeleri

Gevşek olarak, 2, 3 ve 4'ün özel olduğunu anlayabiliyorum. Ancak:

  • nodevUSB flash sürücünün alaka düzeyini anlayamıyorum .

diğer referanslar

USB diskleri otomatik olarak takma (Nasıl çalışır) - Unix ve Linux

Arka fon

Lion ve Mountain Lion'daki Time Machine'in neden USB flash sürücülerden yedeklenemediğini anlamak isteyen. Ancak bu soru daha genel olarak nodevseçenekle ilgilidir.

Yanıtlar:


17

Bu nodevseçenek, sisteme, sahip olduğunuz özel dosya türü olan aygıt düğümleri oluşturmaya ve bunlara erişmeye izin vermemesini söyler /dev.

Örneğin /dev/disk0, dosya sistemi veya izin denetimi kodu gibi daha yüksek düzeylerden geçmek zorunda kalmadan birinci diskte depolanan tüm verilere doğrudan erişmenizi sağlar; denetlenen tek izin, söz konusu aygıt düğümünü açmanıza izin verilip verilmeyeceğidir. okuma veya yazma için.

Bu /dev/disk0, dünya tarafından okunabilir hale getirilirse, herhangi bir kullanıcının aynı diskteki diğer kullanıcıların dosyalarını (şifrelenmemişse) kolayca okuyarak kolayca okuyabileceği anlamına gelir /dev/sda.

İşletim sistemine bağlı /devgenellikle dahil cihaz düğümlerinin diğer birçok türde olacak /dev/memolmasa sistemleri ile derlenmiş bir çekirdek çalışan - Sistemin entire (fiziksel ve / veya sanal) bellek erişim sağlar CONFIG_STRICT_DEVMEM(sürece root ).

Bu nedenle, sadece kök genellikle aygıt düğümleri (diğer kullanıcılar için, oluşturmasına izin verilen mknod"İşleme izin verilmedi" dönecektir) ve tüm mevcut cihaz düğümleri tek bir noktadan (tutulur /dev, normal kullanıcılara vermeyin sıkı dosya izinleriyle) okuma veya yazma erişimi. (Bazı istisnalar dışında.) Bununla birlikte, modern günlerde, herkes kök erişimine sahip oldukları başka bir bilgisayara giderek, bir USB sürücüsünde bazı aygıt düğümleri oluşturmak için kullanarak, çok açık izinler ayarlayarak, yalnızca kök kısıtlamasını atlayabilir, ve o sürücüyü bağlayan senin bilgisayarın.

Bu, nodevseçeneğin önlediği şeydir - birisi kendi sürücüsünde dünya tarafından okunabilir / dünya çapında yazılabilir bir aygıt düğümü oluştursa bile, işletim sistemi, nodevmontaj sırasında kullanılan seçenek nedeniyle onunla herhangi bir şey yapmayı reddeder .


Aynı nedenler nosuid, işletim sistemine normalde bir programın kullanıcınınkinden farklı ayrıcalıklarla yürütülmesine neden olacak setuid bitini göz ardı etmesini söyleyen seçenek için de geçerlidir . Örneğin /usr/bin/sudo, setuid bitine sahiptir ve root'a aittir, bu nedenle her zaman root ile aynı ayrıcalıklara sahip olacaktır.


Bu harika bir cevap - teşekkürler. İşleri doğru anlarsam, ZEVO destek forumunda başka bir soru ortaya çıkar: ZEVO ZFS neden nodev seçeneği olmadan bağlanıyor? (Şu anda yalnızca HFS Plus'a verecek yedek bir USB sabit disk sürücüm yok.)
Graham Perrin

@GrahamPerrin: nodevVarsayılan olarak devre dışı bırakılan ve montaj sırasında açıkça ayarlanması gereken seçenekler. OS X çıkarılabilir disk otomatik mounter bunları ayarlar, Linux'taki eşdeğer programlar da yapar, ancak mountmanuel olarak eklemediğiniz sürece terminalden çalıştırılırken ayarlanmazlar -o nodev. ( mountKök ayrıcalıkları gerektirdiğinden bu güvenliğe zarar vermez .) Bu nedenle ZEVO ZFS diskinizin nasıl monte edildiğine bağlıdır.
user1686

ZEVO Community Edition 1.1.1 ile içe aktarma dinamiktir (otomatik) ve varsayılan değer otomatik olarak olmadan monte edilir nodev. Ne içe aktarma ne de ZFS montajı kimlik doğrulaması gerektirmiyor… ZEVO bölgesinde işlerin nasıl yayıldığını görelim.
Graham Perrin

@grawity: Yanlış, nodevseçenek, aygıt dosyalarındaki okuma ve yazma işlemlerini reddetmeyi söyler, böylece mevcut dosya da endişelenir. Bunları yine de oluşturabilirsiniz.
user2284570
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.