Truy cập viết mà không cần truy cập đọc


15

Người dùng có thể có quyền truy cập ghi vào tệp và không thể đọc được không? Làm thế nào là nó có thể?

Tôi đã thử các lệnh sau:

debianbox@debian:~/posix/io$ touch filetest
debianbox@debian:~/posix/io$ ls -l filetest
-rw-r--r-- 1 debianbox debianbox 0 14 oct.  03:10 filetest

debianbox@debian:~/posix/io$ echo "Hello World" > filetest
debianbox@debian:~/posix/io$ cat filetest
Hello World

debianbox@debian:~/posix/io$ chmod u-r filetest
debianbox@debian:~/posix/io$ cat filetest
cat: filetest: Permission forbidden

debianbox@debian:~/posix/io$

Như bạn có thể thấy ở đây, tôi đã viết nhưng không đọc quyền truy cập vào tập tin này. Làm thế nào điều này có thể có thể? Đây có được coi là một lỗi không? Nếu không, trong tình huống này sẽ hữu ích?

Câu trả lời:


18

Đó không phải là một lỗi, đó là một tính năng TM (Ngoài ra, chỉ là hậu quả của cách tiếp cận unix phổ quát đối với các hoán vị).

Ngoài hành vi giống như dropbox trong trường hợp thư mục (như được mô tả bởi BillThor), truy cập chỉ ghi là cần thiết cho một số tệp đặc biệt (giả) trong /proc/sys. Các tệp như vậy được sử dụng để đặt một số thuộc tính trình điều khiển hoặc kernel hoặc kích hoạt một hành động hệ thống. Bạn không thể đọc chúng, bởi vì chúng chỉ được sử dụng cho báo hiệu một chiều - bạn chỉ có thể lặp lại một số văn bản / dữ liệu cho chúng. Để tìm các tập tin như vậy, bạn có thể sử dụng

find /proc/[^0-9]* /sys -perm /222 ! -perm /444

Lưu ý rằng, vì các tệp này được sử dụng cho cấu hình hệ thống nâng cao (có khả năng gây nguy hiểm), nên chỉ rootcó quyền truy cập ghi vào chúng (trong hầu hết các trường hợp).


21

Lý do chính để cho phép truy cập ghi mà không cần truy cập đọc là vì nó đơn giản hóa việc quản lý các quyền, cả bên trong kernel và trong các chương trình người dùng. Có hai quyền, một để đọc và một cho viết và chúng được quản lý độc lập. Đây không phải là một lỗi vì hành vi được ghi lại trùng khớp với hành vi thực tế và không có lý do chính đáng để yêu cầu một hành vi khác.

Có quyền ghi mà không có quyền đọc không có ý nghĩa nhiều đối với các tệp thông thường. Nó có ý nghĩa cho các tập tin đặc biệt khác nhau.

  • Một số hệ thống cho phép các tập tin chỉ chắp thêm. Điều này rất hữu ích cho các tệp nhật ký, ví dụ. Có thể có ý nghĩa khi cho phép nhiều người dùng tạo các mục nhật ký, nhưng không cho phép họ xóa hoặc ghi đè các mục hiện có (do đó: quyền viết, nhưng thuộc tính chỉ nối thêm), cũng không cho phép họ đọc các mục của người khác (do đó: không đọc quyền).
  • Một chương trình có thể được phép ghi vào một ống có tên mà không được phép đọc từ nó.
  • Một số thiết bị chỉ ghi. Ví dụ: thiết bị phát âm thanh được kết nối với loa nhưng không có micrô nên có quyền ghi nhưng không có quyền đọc.
  • Có nhiều hệ thống tệp đặc biệt khác nhau trong đó việc đọc hoặc ghi vào tệp có hiệu lực ngay lập tức thay vì truy xuất hoặc thêm dữ liệu vào bộ lưu trữ. Ví dụ: trong Linux, có nhiều tệp khác nhau trong/proc/syscho phép các chương trình không gian người dùng gửi lệnh đến kernel bằng cách ghi vào một tệp cụ thể. Nếu lệnh đó không cung cấp bất kỳ phản hồi nào, tệp đặc biệt sẽ được ghi chỉ.

2

Không, đây không phải là một lỗi. Tuy nhiên, tôi không thấy nó thường được áp dụng cho các tập tin.

Tôi thường thấy chỉ truy cập viết trên các thư mục dropbox. Người dùng có thể thêm tệp vào thư mục, nhưng không thể xem tệp nào đang tồn tại.

Đối với một tệp văn bản thông thường, chỉ có quyền truy cập sẽ phù hợp với quyền truy cập loại hộp thả.

Thiết lập quyền truy cập chỉ ghi cho chính bạn sẽ không hữu ích khủng khiếp, nhưng không cho phép nó làm phức tạp mã quyền.

EDIT: Các tập tin Dropbox có thể không hữu ích. Tuy nhiên, nó có thể hữu ích cho các bản ghi không root vì nó sẽ làm cho việc ghi đè các mục nhật ký trở nên khó khăn hơn. Nếu bạn có thể đọc tệp, việc xác định nơi ghi nhật ký thay thế sẽ dễ dàng hơn nhiều. Tuy nhiên, tôi không biết bất cứ ai thiết lập nhật ký của họ như thế này. Người ta thường sử dụng ghi nhật ký từ xa để ngăn chặn sửa đổi cục bộ các mục nhật ký.

Đặt quy tắc cho phép kết hợp quyền là được phép, có thể dẫn đến việc ngăn chặn các quyền hữu ích không lường trước được. Nhiều kết hợp có ý nghĩa hơn ở cấp độ nhóm hoặc thế giới so với cấp độ chủ sở hữu. Bất kỳ nỗ lực nào để ngăn chặn truy cập của chủ sở hữu có thể dễ dàng bị ghi đè. Tuy nhiên, chúng có thể hữu ích để buộc tỉnh táo thứ hai mặc dù.


Một "tập tin dropbox" thực sự sẽ có rất ít ý nghĩa. Nó chỉ có thể được sử dụng để ghi một số dữ liệu và ngay cả khi nó có thể đọc được tại một số điểm, nội dung của nó sẽ không hiển thị dấu vết thực sự của những gì đang xảy ra với nó, bởi vì nó có thể đã bị xóa hoặc xóa trước đó.
rozcietrzewiacz
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.