Hiểu về tùy chọn gắn kết gật đầu và việc sử dụng nó với các ổ đĩa flash USB


10

mount (8) Trang hướng dẫn OS X mô tả nodevtùy chọn:

Không giải thích ký tự hoặc chặn các thiết bị đặc biệt trên hệ thống tệp. Tùy chọn này hữu ích cho một máy chủ có hệ thống tệp chứa các thiết bị đặc biệt cho các kiến ​​trúc khác ngoài kiến ​​trúc của nó.

Điều đó một mình, tôi không hiểu đầy đủ 

Đối với tôi, phần quan trọng hơn của câu hỏi này - có thể giúp tôi hiểu tùy chọn - là:

Tại sao các ổ flash USB được gắn với tùy chọn gật đầu?

Thí dụ:

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)

Trong ví dụ đó, bốn tập với nodev:

  1. thử nghiệm - trên ổ flash USB
  2. LaCie Little Big Disk - trên ổ đĩa cứng trên FireWire 400, tập này bao gồm Máy thời gianBackups.backupdb
  3. WANO - tích hợp hệ thống tệp sử dụng FUSE cho OS X
  4. Sao lưu máy thời gian

Nói một cách lỏng lẻo, tôi có thể hiểu rằng 2, 3 và 4 là đặc biệt. Tuy nhiên:

  • Tôi không thể hiểu sự liên quan của nodevổ đĩa flash USB.

Tài liệu tham khảo khác

Tự động gắn đĩa USB (Cách thức hoạt động) - Unix và Linux

Lý lịch

Muốn hiểu tại sao Time Machine trong Lion và Mountain Lion không thể sao lưu từ ổ flash USB. Nhưng câu hỏi này nói chung là về nodevtùy chọn.

Câu trả lời:


17

Các nodevtùy chọn cho hệ thống không cho phép tạo và truy cập vào các nút thiết bị - các loại tập tin đặc biệt mà bạn có trong /dev.

Ví dụ: /dev/disk0cung cấp cho bạn quyền truy cập trực tiếp vào tất cả dữ liệu được lưu trữ trên đĩa đầu tiên mà không phải thông qua các cấp cao hơn như hệ thống tệp hoặc mã kiểm tra quyền - quyền duy nhất được kiểm tra là liệu bạn có được phép mở nút thiết bị cụ thể đó không để đọc hoặc viết.

Điều này có nghĩa là nếu /dev/disk0được làm cho dễ đọc trên thế giới, bất kỳ người dùng nào cũng có thể dễ dàng đọc bất kỳ tệp nào của người dùng khác trên cùng một đĩa (nếu chúng không được mã hóa), chỉ bằng cách đọc từ đó /dev/sda.

Tùy thuộc vào HĐH, /devthường sẽ có nhiều loại nút thiết bị khác bao gồm cả /dev/memquyền truy cập vào toàn bộ bộ nhớ (vật lý và / hoặc ảo) của hệ thống - mặc dù không phải với các hệ thống chạy kernel được biên dịch CONFIG_STRICT_DEVMEM(trừ khi root ).

Vì lý do này, chỉ root thường được phép tạo các nút thiết bị (đối với người dùng khác, mknodsẽ trả về "Thao tác không được phép") và tất cả các nút thiết bị hiện có được giữ ở một vị trí ( /dev) với quyền truy cập tệp nghiêm ngặt không cung cấp cho người dùng bình thường đọc hoặc viết truy cập. (Với một số ngoại lệ.) Tuy nhiên, trong thời hiện đại, bất kỳ ai cũng có thể dễ dàng vượt qua giới hạn chỉ root bằng cách đến một máy tính khác mà họ có quyền truy cập root, sử dụng nó để tạo một số nút thiết bị trên ổ USB, thiết lập quyền rất mở, và kết nối ổ đĩa đó với máy tính của bạn .

Đây là những gì nodevtùy chọn ngăn chặn - ngay cả khi ai đó tạo nút thiết bị có thể đọc được / có thể ghi trên thế giới trên ổ đĩa của riêng họ, HĐH sẽ từ chối làm bất cứ điều gì với nó vì nodevtùy chọn được sử dụng khi gắn.


Những lý do tương tự áp dụng cho nosuidtùy chọn, yêu cầu HĐH bỏ qua bit setuid , thông thường sẽ khiến chương trình được thực thi với các đặc quyền khác với các đặc quyền của người dùng. Ví dụ, /usr/bin/sudocó bit setuid và được sở hữu bởi root, vì vậy nó sẽ luôn có các đặc quyền giống như root.


Đây là một câu trả lời tuyệt vời - cảm ơn. Nếu tôi hiểu chính xác mọi thứ, một câu hỏi khác sẽ xuất hiện trên diễn đàn hỗ trợ ZEVO: Tại sao các ZEVO ZFS gắn kết mà không có tùy chọn gật đầu? (Hiện tại tôi không có ổ đĩa cứng USB dự phòng để cung cấp cho HFS Plus một mình.)
Graham Perrin

@GrahamPerrin: Các tùy chọn như nodevbị tắt theo mặc định và phải được đặt rõ ràng khi gắn. Trình tự động phát hiện đĩa di động OS X đặt chúng, các chương trình tương đương trên Linux cũng vậy, nhưng chúng sẽ không được đặt khi chạy mounttừ thiết bị đầu cuối trừ khi bạn thêm thủ công -o nodev. (Điều này không ảnh hưởng đến bảo mật vì mountbản thân nó yêu cầu quyền root.) Vì vậy, nó phụ thuộc vào cách đĩa ZEVO ZFS của bạn được gắn.
dùng1686

Với ZEVO Community Edition 1.1.1, nhập là động (tự động) và có vẻ như mặc định là tự động gắn kết mà không có nodev. Cả việc nhập và gắn kết ZFS đều không yêu cầu xác thực, hãy xem mọi thứ diễn ra như thế nào trong khu vực ZEVO.
Graham Perrin

@grawity: Sai, nodevtùy chọn yêu cầu từ chối đọc và ghi vào tệp thiết bị để người dùng hiện tại cũng quan tâm. Bạn vẫn có thể tạo chúng.
dùng2284570
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.