Cho phép không gian tên người dùng trong kernel Debian


28

Tôi đang cố gắng tìm ra cách kích hoạt khả năng không gian tên người dùng trong kernel của mình (tôi nghĩ rằng CAP_SYS_USER_NS). Tôi đang sử dụng Debian Stretch, kernel 4.6.0-1-amd64.

Giả định của tôi là có một cách để bật không gian tên người dùng và biên dịch lại kernel. Sau vài giờ tìm kiếm, tôi có thể tìm thấy một bài đăng về việc này trong Ubuntu ( https://blog.tutum.co/2013/12/14/eneac-the-user-namespace-in-ub Ubuntu-13-10-saucy / ) nhưng không phải Debian (vấn đề có thể là tôi đang đi sai hướng và vì vậy các tìm kiếm của tôi không đúng).

Trò chơi cuối cùng của tôi là kích hoạt những thứ này để theo kịp Docker và Google sandboxing, thứ dường như yêu cầu không gian tên người dùng được kích hoạt trong kernel (ví dụ: các thùng chứa Chrome của tôi không còn hoạt động nữa).


1
Xem thêm câu hỏi tương tự: unix.stackexchange.com/q/303213/4319
imz - Ivan Zakharyaschev

Câu trả lời:


38

Trên Debian userns được biên dịch nhưng bị tắt theo mặc định. Có một bản vá dành riêng cho Debian với kernel có thêm nút sysctl này: kernel.unprivileged_userns_clone

Vì vậy, bạn phải thêm một mục mới /etc/sysctl.dvà đặt nó thành 1

Thủ công đó sẽ là: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(chỉ để kích hoạt nó cho đến khi khởi động lại)

cho một giải pháp lâu dài:

echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/00-local-userns.conf
service procps restart

Có thể có một tham số tùy chọn khởi động tương đương, tôi chỉ không biết


1
Điều này vẫn hoạt động trên Stretch, kernel 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Reid

1
Có một lý do tại sao nó bị tắt theo mặc định trong Debian?
Melroy

2
Trong lịch sử bảo mật của không gian tên người dùng là không chắc chắn. ví dụ: lwn.net/Articles/673597 . Nếu một người dùng, với quyền root trong không gian tên của chính cô ấy có thể lừa kernel cho phép hoạt động trên máy chủ thực sự, thì có sự leo thang đặc quyền. Các không gian tên người dùng thông thường yêu cầu quyền root rõ ràng (vì vậy quản trị viên) và vì vậy hãy chạy những gì quản trị viên đã chọn: đó là một rủi ro đã biết. Một cơ chế sau này đã được thêm vào trong nhân vanilla: user.max_user_namespaces. Khi được đặt thành 0 không gian tên người dùng bị tắt. Bản vá Debian (thực sự từ Ubuntu) vẫn còn, ngay cả khi có lẽ đã lỗi thời. Có thể vì lý do tương thích
AB

1
Kernel 4.18.3 chưa được phát hành trên Debian, vì vậy kernel của bạn không phải là kernel của thử nghiệm Debian. Bạn có thể bỏ qua hoàn toàn tham số này (cho đến khi bạn cài đặt kernel thực sự từ Debian). Đồng thời nhìn vào nhận xét trước đây của tôi về user.max_user_namespaces
AB

3
Hoặc đơn giản là : sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou
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.