ทำความเข้าใจกับตัวเลือกการเมาท์ nodev และการใช้งานกับแฟลชไดรฟ์ USB


10

เมานต์ (8) หน้า OS X คู่มืออธิบายnodevตัวเลือก:

อย่าตีความตัวละครหรือบล็อกอุปกรณ์พิเศษในระบบไฟล์ ตัวเลือกนี้มีประโยชน์สำหรับเซิร์ฟเวอร์ที่มีระบบไฟล์ที่มีอุปกรณ์พิเศษสำหรับสถาปัตยกรรมอื่นนอกเหนือจากของมันเอง

เพียงอย่างเดียวฉันไม่เข้าใจ ... 

…สำหรับฉันส่วนสำคัญของคำถามนี้ - ซึ่งอาจช่วยให้ฉันเข้าใจตัวเลือก - คือ:

ทำไมแฟลชไดรฟ์ USB ถึงติดตั้งพร้อมตัวเลือก nodev

ตัวอย่าง:

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)

ในตัวอย่างนั้นวอลุ่มสี่ด้วยnodevคือ:

  1. การทดลอง - ในแฟลชไดรฟ์ USB
  2. LaCie Little Big Disk - บนฮาร์ดไดรฟ์ของ FireWire 400 ไดรฟ์ข้อมูลนี้รวมถึง Time MachineBackups.backupdb
  3. Wuala - การรวมระบบไฟล์ใช้ FUSE สำหรับ OS X
  4. สำรองข้อมูล Time Machine

ฉันพูดได้อย่างหลวม ๆ ฉันเข้าใจได้ว่า 2, 3 และ 4 นั้นพิเศษ อย่างไรก็ตาม:

  • ฉันไม่เข้าใจความเกี่ยวข้องของnodevแฟลชไดรฟ์ USB

การอ้างอิงอื่น ๆ

การติดตั้งดิสก์ USB โดยอัตโนมัติ (มันทำงานอย่างไร) - Unix และ Linux

พื้นหลัง

ต้องการทราบว่าเหตุใด Time Machine ใน Lion และ Mountain Lion จึงไม่สามารถสำรองข้อมูลจากแฟลชไดรฟ์ USB แต่คำถามนี้โดยทั่วไปเกี่ยวกับnodevตัวเลือก

คำตอบ:


17

nodevตัวเลือกบอกระบบที่จะไม่อนุญาตให้มีการสร้างและการเข้าถึงโหนดอุปกรณ์ - /devชนิดของไฟล์พิเศษที่คุณมีใน

ตัวอย่างเช่น/dev/disk0ให้คุณเข้าถึงข้อมูลทั้งหมดที่เก็บไว้ในดิสก์แผ่นแรกโดยตรงโดยไม่ต้องผ่านระดับที่สูงกว่าเช่นระบบไฟล์หรือรหัสการตรวจสอบสิทธิ์ - การตรวจสอบสิทธิ์เท่านั้นคือคุณได้รับอนุญาตให้เปิดโหนดอุปกรณ์นั้นหรือไม่ สำหรับการอ่านหรือการเขียน

ซึ่งหมายความว่าถ้า/dev/disk0ได้รับการทำให้โลกสามารถอ่านได้ผู้ใช้ใด ๆได้อย่างง่ายดายสามารถอ่านไฟล์ผู้ใช้อื่น ๆ บนดิสก์เดียวกัน (ถ้าพวกเขาไม่ได้เข้ารหัส) /dev/sdaโดยเพียงแค่อ่านจาก

ขึ้นอยู่กับระบบปฏิบัติการ/devมักจะมีโหนดอุปกรณ์ประเภทอื่น ๆ มากมายรวมถึง/dev/memที่ให้การเข้าถึงหน่วยความจำ (ฟิสิคัลและ / หรือเสมือน) ทั้งหมดของระบบ - แม้ว่าจะไม่ได้ใช้ระบบที่รันเคอร์เนลที่คอมไพล์ด้วยCONFIG_STRICT_DEVMEM(ยกเว้นรูท )

ด้วยเหตุผลนี้เฉพาะผู้ใช้rootเท่านั้นที่ได้รับอนุญาตให้สร้างโหนดอุปกรณ์ (สำหรับผู้ใช้รายอื่นmknodจะส่งคืน "การทำงานที่ไม่ได้รับอนุญาต") และโหนดอุปกรณ์ที่มีอยู่ทั้งหมดจะถูกเก็บไว้ในที่เดียว ( /dev) ด้วยสิทธิ์ไฟล์ที่เข้มงวด สิทธิ์ในการอ่านหรือเขียน (มีข้อยกเว้นบางประการ) อย่างไรก็ตามในยุคปัจจุบันใคร ๆ ก็สามารถข้ามข้อ จำกัด ของการรูทอย่างเดียวได้อย่างง่ายดายโดยไปที่คอมพิวเตอร์เครื่องอื่นที่พวกเขาสามารถเข้าถึงรูทได้โดยใช้มันเพื่อสร้างโหนดอุปกรณ์บนไดรฟ์ USB และเชื่อมต่อไดรฟ์นั้นเข้ากับคอมพิวเตอร์ของคุณ

นี่คือสิ่งที่nodevตัวเลือกป้องกัน - แม้ว่าบางคนสร้างโหนดอุปกรณ์ที่สามารถอ่านได้ / เขียนได้ทั่วโลกบนไดรฟ์ของตัวเองระบบปฏิบัติการจะปฏิเสธที่จะทำอะไรกับมันเพราะnodevตัวเลือกที่ใช้เมื่อติดตั้ง


เหตุผลเดียวกันนี้ใช้กับnosuidตัวเลือกซึ่งบอกให้ระบบปฏิบัติการไม่สนใจบิตsetuidซึ่งโดยปกติจะทำให้โปรแกรมดำเนินการด้วยสิทธิพิเศษที่แตกต่างจากของผู้ใช้ ตัวอย่างเช่น/usr/bin/sudoมีบิตsetuidและเป็นเจ้าของโดยรูทดังนั้นมันจะมีสิทธิ์เช่นเดียวกับรูท


นี่คือคำตอบที่ดี - ขอบคุณ หากฉันเข้าใจสิ่งต่าง ๆ อย่างถูกต้องคำถามอื่นจะเกิดขึ้น ... ในฟอรัมการสนับสนุน ZEVO: ทำไม ZEVO ZFS ถึงไม่ติดตั้งตัวเลือก nodev (ในขณะนี้ฉันไม่มีฮาร์ดไดรฟ์ USB สำรองเพื่อมอบให้ HFS Plus เพียงอย่างเดียว)
Graham Perrin

@GrahamPerrin: ตัวเลือกดังกล่าวnodevถูกปิดใช้งานโดยค่าเริ่มต้นและจะต้องตั้งค่าอย่างชัดเจนเมื่อทำการติดตั้ง ระบบปฏิบัติการ X ดิสก์แบบถอดชุดอัตโนมัติเมานท์พวกเขาที่เทียบเท่าโปรแกรมบน Linux ทำเกินไป แต่พวกเขาจะไม่ได้รับการตั้งค่าเมื่อวิ่งจากสถานีจนกว่าคุณด้วยตนเองเพิ่มmount (สิ่งนี้ไม่ทำลายการรักษาความปลอดภัยเนื่องจากตัวเองต้องการสิทธิ์รูท)ดังนั้นขึ้นอยู่กับการติดตั้งดิสก์ ZEVO ZFS ของคุณ -o nodevmount
user1686

ด้วย ZEVO Community Edition 1.1.1 การนำเข้าเป็นแบบไดนามิก (อัตโนมัติ) nodevและดูเหมือนว่าเริ่มต้นคือการติดตั้งโดยอัตโนมัติโดยไม่ ทั้งการนำเข้าหรือการติดตั้ง ZFS ไม่ต้องการการรับรองความถูกต้อง ... เรามาดูกันว่าสิ่งที่แฟน ๆ ในพื้นที่ ZEVO
เกรแฮมเพอร์ริน

@grawity: nodevตัวเลือกไม่ถูกต้องบอกให้ปฏิเสธการอ่านและเขียนไปยังไฟล์อุปกรณ์เพื่อให้มีอยู่ด้วย คุณยังสามารถสร้างได้
2284570
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.