Câu trả lời:
Bạn có thể chạy ứng dụng trong một chroot
môi trường tức là /
ứng dụng nhìn thấy không phải là thật /
. Bạn tạo một hệ thống phân cấp hệ thống tệp hoàn chỉnh mới và mount ( --bind
) mọi thứ bạn cần vào nó. Vấn đề liên quan là: Bạn có thể gắn kết thực ~/tmp
đến /tmp
trong chroot
môi trường.
Thay vì sử dụng chroot
(yêu cầu đặc quyền siêu người dùng), bạn có thể thực hiện ít nhiều tương tự với các thùng chứa Linux ( lxc
). Tôi không quen thuộc lxc
nhưng vì đây là một quá trình người dùng bình thường đối với hệ thống máy chủ, bạn không cần phải là siêu người dùng cho các cấu hình như vậy trong container.
chroot
đòi hỏi phải cài đặt bổ sung (bạn đang thay thế toàn bộ /
, không chỉ /tmp
, vì vậy bất kỳ quyền truy cập vào /etc
, /var
, vv, cũng sẽ được bên trong "nhà tù") và tạo ra mối quan tâm an ninh của chương trình riêng ( "bỏ tù" của nó có thể có thể thao tác các phần của hệ thống tệp thường không có giới hạn nếu bạn không cẩn thận với các quyền khi thiết lập giả mạo của mình /
).
/
không bị hạn chế chỉ được ghi bởi root
, người dùng "bị bỏ tù" có thể tạo hoặc thay thế các tệp dường như nằm ở các vị trí hệ thống chính, như /etc/passwd
; điều này sau đó có thể được sử dụng để leo thang đặc quyền mà không thể có bên ngoài chroot
. Nhiều máy chủ FTP Linux, theo truyền thống sử dụng chroot
để ẩn phần còn lại của hệ thống tệp, giờ đây từ chối làm như vậy nếu thư mục có thể ghi bởi người dùng không phải là root.
chroot
hoặclxc
có khả năng làm điều này. Thật tuyệt khi biết có một cách để hoàn thành nó mà không phải là một siêu người dùng.