Do quyền truy cập vào thiết bị bên dưới chỉ được kiểm soát bởi quyền truy cập tệp theo mặc định, do đó, nếu thanh USB của bạn chứa hệ thống tệp POSIX có nút thiết bị có thể ghi thế giới tương ứng với thiết bị thực trong hệ thống, bạn có thể sử dụng nút thiết bị đó để truy cập vào nút tương ứng thiết bị như một người dùng "đơn giản". Tưởng tượng một thiết bị tương ứng với một trong các thiết bị âm thanh, webcam của bạn /dev/sda
(là thiết bị chặn chứ không phải thiết bị ký tự, nhưng đối số là như nhau) ...
Đây là một ví dụ để làm cho mọi thứ rõ ràng hơn. Giả sử bạn muốn truy cập /dev/sda
(sau đó bạn có thể thực hiện bất kỳ điều gì bạn muốn với nội dung của đĩa, bao gồm cả việc tạo chương trình cho phép bạn trở thành root
; đây là một thiết bị khối nhưng vấn đề là giống với các thiết bị ký tự). Trên hệ thống mục tiêu của bạn, ls -l /dev/sda
hiển thị
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
Điều này có nghĩa /dev/sda
là một thiết bị khối ( b
ở đầu dòng), với số chính 8 và số phụ 0 ( 8, 0
ở giữa dòng). Thiết bị chỉ có thể truy cập root
(đọc / ghi) và các thành viên của disk
nhóm (cũng đọc / ghi).
Bây giờ hãy tưởng tượng trên hệ thống này bạn không thể trở thành root
nhưng vì một số lý do, bạn có thể gắn USB như một người dùng mà không cần nodev
. Trên một hệ thống khác, nơi bạn đang ở root
, bạn có thể tạo một tệp đặc biệt tương ứng trên khóa USB của mình:
mknod -m 666 usersda b 8 0
Điều này sẽ tạo ra một tập tin đặc biệt được gọi usersda
, có thể đọc và ghi được bởi mọi người.
Gắn chìa khóa vào hệ thống mục tiêu của bạn và xin chào, bạn có thể sử dụng usersda
thiết bị theo cách tương tự /dev/sda
, nhưng không hạn chế truy cập ...
(Điều này sẽ hoạt động ngay cả với các hệ thống tệp được mã hóa, miễn là bạn có thể truy cập thiết bị ánh xạ được giải mã: tạo thiết bị phù hợp với /dev/mapper
mục nhập phù hợp .)