Làm thế nào là các quyền thư mục rv được cho là hoạt động trên Linux?


11

Tôi đã tạo thư mục được tạo có các quyền này - người dùng khác có

drwxr - r-- 5 người dùng 4096 2012-09-15 19:30 trang web

Khi làm một ls -l trên thư mục là người dùng khác

ls -l / nhà / người dùng / trang web

đây là đầu ra thư mục. Tôi nghĩ rằng không có bit x được đặt trong thư mục đó thì tên tệp sẽ không hiển thị.

d????????? ? ? ? ?                ? dev.user.com  
-????????? ? ? ? ?                ? user.20120914_082804.sql.gz   
d????????? ? ? ? ?                ? shared  
-????????? ? ? ? ?                ? shared.tar.gz  
-????????? ? ? ? ?                ? www.20120914_083256.tar.gz
d????????? ? ? ? ?                ? www.user.com

Có một số mâu thuẫn ở đây?

Câu trả lời:


16

xcung cấp cho bạn quyền thực sự có trong thư mục và truy cập các tệp trong thư mục, rcho phép bạn xem nội dung của thư mục.

Nếu bạn đảo ngược tình huống bằng cách cung cấp cho thư mục xbit và loại bỏ rbit, thì người dùng có thể mở shared.tar.gz(giả sử quyền phù hợp trên chính tệp đó) nhưng chỉ khi anh ta biết trước tên tệp lsthì sẽ không thể liệt kê các tệp trong thư mục .


1
Tôi sẽ kiểm tra điều này và lấy lại cho bạn. Tôi luôn thấy khía cạnh này của việc chia sẻ tệp Linux khó hiểu.
vfclists

Hành vi đó không phải là duy nhất đối với Linux; nó bắt nguồn từ những ngày đầu tiên của UNIX - Linux, là một hệ thống tương thích với UNIX, hoạt động theo cách đó - và các mục ACL của Windows NT có các bit cho phép tương tự.

2

Việc giải thích các quyền này bắt nguồn từ các hệ thống tệp Unix đầu tiên. Ban đầu, chỉ có các tập tin. (Chà, thiết bị, và đường ống, và ... nhưng tôi đang cố kể một câu chuyện ở đây, không hoàn toàn chính xác 100%; bên cạnh đó, tất cả đều đúng với các thiết bị và đường ống và mọi thứ khác bởi vì mọi thứ đều là một tệp, thậm chí thư mục).

Các thư mục chỉ là các tệp mà hệ thống tệp sử dụng để chứa siêu dữ liệu mô tả cây thư mục và các tệp chứa trong đó. Mỗi tệp trong một thư mục được mô tả bằng cấu trúc dữ liệu đơn giản chứa chỗ cho tên tệp (ban đầu là 14 ký tự, IIRC) cùng với số inode nơi dữ liệu được lưu trữ, kích thước của tệp, dấu thời gian và từ quyền . Mỗi thư mục bắt đầu với hai mục được đặt tên ..., mục đầu tiên chỉ vào nút của chính thư mục này và mục thứ hai ở nút của thư mục mẹ.

Từ quyền có chín bit để mô tả cách đối xử của chủ sở hữu, các thành viên khác trong cùng nhóm và thế giới. Ba bit cho mỗi cờ cho dù người dùng có liên quan có thể đọc, ghi hoặc thực thi tệp. . bit vẫn còn khá giống nhau trong tất cả các hậu duệ của Unix đầu tiên, bao gồm cả Linux.)

Vì vậy, nếu một thư mục thực sự chỉ là một loại tệp đặc biệt và được mô tả bởi một mục trong một thư mục nào đó, thì rõ ràng nó cũng có các bit cho phép, và các bit đó có thể có ý nghĩa gì đó. Nhưng câu hỏi là những gì, chính xác. Cách dễ nhất để gán ý nghĩa cho các bit đó là không thay đổi ý nghĩa của chúng ở vị trí đầu tiên. Và đó thực chất là những gì đã được thực hiện.

Vì vậy, bit đọc có nghĩa là người dùng có thể tự đọc thư mục. Điều đó cung cấp cho người đọc quyền truy cập vào tên tệp, dấu thời gian, kích thước và số inode của dữ liệu của mỗi tệp. Cụ thể, với rbộ bạn có thể sử dụng lsđể xem tên của tất cả các tệp trong thư mục, nhưng điều đó không đủ để mở (hoặc sử dụng theo bất kỳ cách nào) bất kỳ tệp nào được liệt kê.

Bit thực thi có nghĩa là người dùng có thể "thực thi" thư mục. Vì các thư mục là đặc biệt, thực thi có nghĩa là tìm kiếm một mục theo tên và sử dụng nó. Điều đó có nghĩa là bạn có thể cố gắng mở các tệp nếu xđược đặt, nhưng không có rbạn không thể khám phá tên của chúng. Tất nhiên, quyền của tệp được yêu cầu cũng ảnh hưởng đến quyền truy cập, vì vậy ngay cả với xthư mục bạn sẽ không thể đọc tệp trừ khi nó cũng cung cấp cho bạn r.

Bit ghi có nghĩa là người dùng có thể ghi vào thư mục, nhưng tự nhiên chỉ được trung gian bởi chính hệ thống tệp. Điều đó có nghĩa là với wtập hợp, bạn có thể tạo các tệp mới trong thư mục đó hoặc chỉnh sửa các mục nhập thư mục của các tệp hiện có. Nhưng không có xthiết lập, bạn thực sự không thể sử dụng bất kỳ tệp nào và rbạn cũng không thể nhìn thấy chúng.

Khi các mô hình phức tạp hơn về nhận dạng người dùng đã phát triển trong Unix và hậu duệ của nó, các mô tả cơ bản tương tự này đã được quản lý để giữ nguyên đáng kể.

Nói tóm lại, rcó nghĩa là bạn có thể xem nội dung của nó, xcó nghĩa là bạn có thể sử dụng nó và wcó nghĩa là bạn có thể sửa đổi nó ngay cả đối với các thư mục.


Tôi cho rằng bạn có thể giải thích mode_tthêm một chút nữa (phần đặc biệt là quyền và loại tệp được lưu trữ trong cùng một trường 32 bit)
SaveTheRbtz

1
Tôi đã tích cực trở thành người dùng và nhà phát triển unix trở lại trong thập niên 80. Tôi đã không cố gắng kể câu chuyện hoàn chỉnh về những gì là sự thật ngày hôm nay nhiều như đặt nó vào bối cảnh lịch sử, và phơi bày niềm vui của tôi rằng câu hỏi hóc búa tương tự mà tôi phải đối mặt khi học unix đầu tiên có thể được hỏi ngày hôm nay, và trả lời bằng cách cùng một lời giải thích tôi đã nhận được từ các bậc thầy địa phương vào khoảng năm 1983. Càng nhiều thứ thay đổi, chúng càng giữ nguyên ....
RBerteig
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.