Nếu bit suid không có tác dụng đối với các thư mục và bit dính không có tác dụng đối với các tệp, tại sao chúng không được kết hợp thành một bit?


18

Điều này sẽ tiết kiệm một bit cho mỗi tệp, hoặc có phần đệm cần thiết phải được sử dụng không? Và ngay cả khi có phần đệm, tại sao vẫn không kết hợp chúng và sử dụng thêm bit cho một tính năng mới?


3
Các bit dính làm một cái gì đó trên các tập tin bình thường. Xem en.wikipedia.org/wiki/Sticky_bit để biết số cách sử dụng.
Joshua

@Joshua Điều đó thật thú vị, và một điểm hay là trên Linux không phải là hành vi khác nhau. Nhưng tôi đã nghĩ đến Linux cho câu hỏi này. Tôi tự hỏi mặc dù ai đó trên kernel Linux có BSD amd và ls vẫn có thể phụ thuộc vào bit tập tin dính? Và tôi đoán các chương trình người dùng khác nhau có thể kiểm tra / hành động trên nó mặc dù tôi không biết bất kỳ chương trình phổ biến nào.
Harry

Câu trả lời:


26

Vì lý do lịch sử. Bit dính ban đầu được sử dụng cho mục đích hoàn toàn khác: nếu nó được đặt trên một tệp thực thi, nó bảo hệ điều hành giữ lại đoạn văn bản trong trao đổi. Do đó, tên "Bit dính".


Cảm ơn bạn, nhưng điều đó có ngăn cản họ vẫn còn "một chút" trong nội bộ không? Hoặc là một khoản tiết kiệm một bit chỉ không đủ đáng kể ở cấp độ mỗi tệp?
Harry

6
Một tập tin thực thi có thể có tất cả bốn kết hợp suid và dính.
Johan Myréen

Vâng, do đó câu hỏi ban đầu. Có thể diễn đạt tốt hơn, tại sao tên (hoặc cách sử dụng trong quá khứ) của bit dính có liên quan gì đến việc kết hợp nó với bit suid ngày hôm nay? Không thể kết hợp các chức năng của cả hai bit thành một bit "dính / suid", chức năng này là suid khi được đặt trên tệp nhưng dính khi được đặt trên thư mục?
Harry

17
Bạn sẽ phá vỡ tính tương thích ngược nếu bạn thay đổi bit xung quanh. chmod 4755 fileđặt bit suid và chmod 1755 dirđặt bit dính. Chúng tôi không muốn phá vỡ các tập lệnh cũ chỉ vì mục đích lưu một bit cho mỗi tệp, phải không? Tất nhiên, bên trong một hệ thống tệp có thể tự do thực hiện tối ưu hóa của bạn, miễn là giao diện bên ngoài giữ nguyên.
Johan Myréen

6
@Johan Myréen: Và tất nhiên bạn sẽ không thực sự lưu bit đó, nó sẽ trở thành một bit không được sử dụng trong trường quyền byte / từ.
jamesqf
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.