Quyền x (thực thi) làm gì trên các ổ cắm unix?


11

Theo kinh nghiệm của tôi, người dùng không có đặc quyền không thể truy cập vào ổ cắm unix mà anh ta / cô ta không sở hữu nếu không có x bit được đặt. Bit này làm gì chính xác? Cảm ơn


Đây có phải là sự cho phép trên các ổ cắm hoặc trên thư mục?
Rui F Ribeiro

Trên một ổ cắm. Thư mục có chế độ 0755, vì vậy người dùng có thể quan sát nội dung. Ổ cắm có chế độ 0644, vì vậy người dùng logic (thuộc về "người khác" vì anh ta / cô ta không sở hữu ổ cắm, thuộc về ổ cắm sở hữu nhóm) nên có thể ghi vào ổ cắm. Nhưng người dùng nhận được thông báo từ chối cấp phép trừ khi chế độ 0777 được áp dụng cho ổ cắm.
Chương trình truyền hình

2
@ Quan điểm của chúng tôi, 0644có nghĩa là chỉ cần đọc quyền cho các thành viên trong nhóm và "những người khác", vì vậy chỉ chủ sở hữu mới có thể truy cập vào ổ cắm (vì quyền ghi kiểm soát nó). 0666hoặc chỉ cần 0222không có quyền đọc là đủ để cung cấp quyền truy cập cho mọi người. Nhưng, thay vì cấp quyền cho mọi người, tôi sẽ xem xét việc sử dụng các nhóm để cho phép truy cập.
ilkkachu

Câu trả lời:


9

Không có gì, như tôi có thể thấy.

Linux man page unix (7) nói rằng các điều khoản của thư mục có chứa một ổ cắm áp dụng bình thường (tức là bạn cần +xvào /foođể kết nối với /foo/sock, và +wtrên /foođể tạo ra /foo/sock) và ghi điều khiển cho phép kết nối với ổ cắm riêng của mình:

Trên Linux, việc kết nối với một đối tượng ổ cắm luồng yêu cầu quyền ghi trên ổ cắm đó; gửi một datagram đến một socket datagram tương tự đòi hỏi phải có quyền ghi trên socket đó.

Rõ ràng một số hệ thống khác hoạt động khác nhau:

POSIX không đưa ra bất kỳ tuyên bố nào về tác dụng của các quyền đối với tệp ổ cắm và trên một số hệ thống (ví dụ: BSD cũ), các quyền của ổ cắm bị bỏ qua. Các chương trình di động không nên dựa vào tính năng này để bảo mật.

unix(4)trên FreeBSD mô tả các yêu cầu tương tự. Trang người dùng Linux không nói nếu truy cập ổ cắm trên một số hệ thống cũng bỏ qua các quyền của thư mục .

Việc loại bỏ xbit khỏi ổ cắm dường như có tác dụng gây ra một lỗi khác khi thử thực thi ổ cắm, nhưng đó không phải là một sự khác biệt thực tế:

$ ls -l test.sock
srwxr-xr-x 1 user user 0 Jun 28 16:24 test.sock=
$ nc -U ./test.sock
Hello
$ ./test.sock
bash: ./test.sock: No such device or address
$ chmod a-x test.sock
$ nc -U ./test.sock
Hello
$ ./test.sock
bash: ./test.sock: Permission denied

(Tôi cũng đã kiểm tra rằng thực sự chỉ có một wchút vấn đề khi truy cập vào ổ cắm trên Linux của Linux 4.9.0.)

Có lẽ các socket mà bạn muốn nói đã loại bỏ tất cả các bit cho phép khỏi người dùng, hoặc bạn có nghĩa là xbit trên thư mục?

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.