Giải thích về gật đầu và nosuid trong fstab


44

Tôi thấy hai tùy chọn đó liên tục được đề xuất trên web khi ai đó mô tả cách gắn tmpfs hoặc ramfs. Thường cũng với noexec nhưng tôi đặc biệt quan tâm đến gật đầu và nosuid. Tôi về cơ bản ghét chỉ lặp đi lặp lại một cách mù quáng những gì ai đó đề nghị, mà không có sự hiểu biết thực sự. Và vì tôi chỉ thấy hướng dẫn sao chép / dán trên mạng về vấn đề này, tôi hỏi ở đây.

Đây là từ tài liệu:
gật đầu - Không diễn giải chặn các thiết bị đặc biệt trên hệ thống tập tin.
nosuid - Chặn hoạt động của các bit suid và sgid.

Nhưng tôi muốn một lời giải thích thực tế những gì có thể xảy ra nếu tôi bỏ hai thứ đó ra. Giả sử tôi đã cấu hình tmpfs hoặc ramfs (không có hai tùy chọn được đề cập này) có thể truy cập (đọc + ghi) bởi một người dùng cụ thể (không phải root) trên hệ thống. Người dùng đó có thể làm gì để gây hại cho hệ thống? Không bao gồm trường hợp tiêu thụ tất cả bộ nhớ hệ thống có sẵn trong trường hợp ramfs


1
Đây là một câu trả lời hay cho Q của bạn: unix.stackexchange.com/questions/188601/NH
Quan điểm hình elip

Câu trả lời:


36

Bạn không cần phải tuân theo điều này một cách mù quáng như một quy tắc cứng. Nhưng lý do cho các tình huống tập trung vào bảo mật hơn là như sau.

  • Tùy chọn mount gật đầu xác định rằng hệ thống tập tin không thể chứa các thiết bị đặc biệt: Đây là một biện pháp phòng ngừa bảo mật. Bạn không muốn một hệ thống tập tin có thể truy cập trên thế giới của người dùng như thế này có tiềm năng tạo ra các thiết bị nhân vật hoặc truy cập vào phần cứng thiết bị ngẫu nhiên.

  • Tùy chọn gắn kết nosuid chỉ định rằng hệ thống tệp không thể chứa các tệp userid. Ngăn chặn các nhị phân setuid trên một hệ thống tập tin có thể ghi trên thế giới có ý nghĩa bởi vì có nguy cơ leo thang gốc hoặc sự khủng khiếp khác ở đó.

Đối với những gì đáng giá, tôi không sử dụng các tham số này thường xuyên ... chỉ trên các hệ thống đối mặt công khai, nơi có những cân nhắc tuân thủ khác.


1
Tôi thực sự có một hệ thống đối mặt công khai vì phần mềm đang chạy dưới tài khoản đó được tiếp xúc với mạng. Vì vậy, tôi tự hỏi về những gì-nếu kịch bản ở đây. Điều gì xảy ra nếu ai đó có được quyền truy cập shell thông qua một số lỗ hổng. Tất nhiên có những thứ khác mà anh ta có thể làm để leo thang quyền lợi nhưng tôi muốn giảm thiểu chúng. Vì vậy, tôi tự hỏi ví dụ cho suid, người dùng vẫn không thể thay đổi cờ đó bất kể hệ thống tập tin có cho phép hay không. Có phải tùy chọn nosuid sau đó chỉ ngăn chặn phần mềm được cấu hình kém tình cờ (bằng một root)? Hoặc một người dùng có thể khai thác nó một mình?
Ivan Kovacevic

1
@IvanKovacevic Bạn không phải sử dụng các tùy chọn gắn kết hệ thống tập tin được đề xuất. Họ ở đó để giảm các vectơ tấn công. Tuy nhiên, xem xét các kịch bản what-if có thể nằm ngoài phạm vi của câu hỏi này.
ewwhite

3
@ewwhite: liên quan đến nosuidbit setuid không được bỏ qua? (thay vì The nosuid mount option specifies that the filesystem cannot contain set userid files)
user2284570
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.