Aktifkan ruang nama pengguna di kernel Debian

28

Saya mencoba mencari cara untuk mengaktifkan kemampuan namespace pengguna di kernel saya (saya pikir CAP_SYS_USER_NS). Saya menggunakan Debian Stretch, kernel 4.6.0-1-amd64.

Asumsi saya adalah ada cara untuk mengaktifkan namespace pengguna dan mengkompilasi ulang kernel. Setelah mencari beberapa jam, saya dapat menemukan posting melakukan ini di Ubuntu ( https://blog.tutum.co/2013/12/14/enabling-the-user-namespace-in-ubuntu-13-10-saucy/ ) tetapi bukan Debian (masalah mungkin saya di jalur yang salah dan pencarian saya tidak berjalan).

Permainan akhir saya adalah untuk mengaktifkan ini agar dapat mengikuti Docker dan Google sandboxing yang tampaknya membutuhkan ruang nama pengguna untuk diaktifkan di kernel (misalnya, wadah Chrome saya tidak lagi berfungsi).

Senrabdet
sumber
1
Lihat juga pertanyaan yang sama: unix.stackexchange.com/q/303213/4319
imz - Ivan Zakharyaschev

Jawaban:

38

Pada Debian, pengguna dikompilasi tetapi dinonaktifkan secara default. Ada tambalan khusus-Debian ke kernel yang menambahkan tombol sysctl ini: kernel.unprivileged_userns_clone

Jadi, Anda harus menambahkan entri baru /etc/sysctl.ddan mengaturnya menjadi 1

Secara manual itu adalah: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(hanya untuk mengaktifkannya sampai reboot)

untuk solusi permanen:

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

Mungkin saja ada parameter opsi boot yang setara, saya hanya tidak tahu

AB
sumber
1
Ini masih bekerja pada Stretch, kernel 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Reid
1
Apakah ada alasan mengapa itu dinonaktifkan secara default di Debian?
Melroy
2
Secara historis keamanan namespace pengguna tidak pasti. misalnya: lwn.net/Articles/673597 . Jika seorang pengguna, sebagai root di dalam namespace-nya sendiri dapat menipu kernel agar mengizinkan operasi pada host nyata, ada eskalasi hak istimewa. Ruang nama non-pengguna biasa memerlukan izin root eksplisit (jadi admin) dan jalankan apa yang dipilih admin: itu risiko yang diketahui. Mekanisme selanjutnya ditambahkan dalam kernel vanilla: user.max_user_namespaces. Ketika diatur ke 0 ruang nama pengguna dinonaktifkan. Patch Debian (sebenarnya dari Ubuntu) masih ada, bahkan jika mungkin sudah usang. Mungkin karena alasan kompatibilitas
AB
1
Kernel 4.18.3 belum dirilis di Debian, jadi kernel Anda bukan kernel pengujian Debian. Anda dapat mengabaikan parameter ini sepenuhnya (sampai Anda menginstal kernel sebenarnya dari Debian). Lihat juga komentar saya sebelumnya tentang user.max_user_namespaces
AB
3
Atau hanya: sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou