उपयोगकर्ता नामस्थान को डेबियन कर्नेल में सक्षम करें


28

मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरे कर्नेल में उपयोगकर्ता नामस्थान क्षमता कैसे सक्षम करें (मुझे लगता है कि CAP_SYS_USER_NS)। मैं डेबियन स्ट्रेच, कर्नेल 4.6.0-1-amd64 का उपयोग कर रहा हूं।

मेरी धारणा है कि उपयोगकर्ता नामस्थान को चालू करने और कर्नेल को फिर से जोड़ने का एक तरीका है। कुछ घंटों की खोज के बाद, मैं उबंटू में ऐसा करने का एक पद पा सकता हूं ( https://blog.tutum.co/2013/12/12/14/en enable-the-user-namespace-in-ubuntu-13-10-saucy / ) लेकिन डेबियन नहीं (समस्या हो सकती है कि मैं गलत रास्ते पर हूं और इसलिए मेरी खोजें आधार से दूर हैं)।

मेरा अंत खेल डॉकटर और Google सैंडबॉक्सिंग के साथ बनाए रखने के लिए इन को सक्षम करने के लिए है, जो स्पष्ट रूप से कर्नेल में सक्षम किए जाने वाले उपयोगकर्ता नामस्थान की आवश्यकता होती है (जैसे, मेरे क्रोम कंटेनर अब काम नहीं करते हैं)।


1
एक ही प्रश्न भी देखें: unix.stackexchange.com/q/303213/4319
imz - Ivan Zakharyaschev

जवाबों:


38

डेबियन पर उपयोगकर्ता संकलित हैं, लेकिन डिफ़ॉल्ट रूप से अक्षम हैं। कर्नेल को एक डेबियन-विशिष्ट पैच है जो इस sysctl घुंडी को जोड़ता है: kernel.unprivileged_userns_clone

इसलिए आपको एक नई प्रविष्टि को इसमें जोड़ना होगा /etc/sysctl.dऔर इसे 1 पर सेट करना होगा

मैन्युअल रूप से यह होगा: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(रिबूट तक इसे सक्षम करने के लिए)

एक स्थायी समाधान के लिए:

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

यह संभव है कि एक समान बूट विकल्प पैरामीटर हो, मुझे अभी पता नहीं है


1
यह अभी भी स्ट्रेच, कर्नेल पर काम करता है 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux
रीड

1
क्या कोई कारण है कि यह डिबियन में डिफ़ॉल्ट रूप से अक्षम है?
मेलारो

2
ऐतिहासिक रूप से उपयोगकर्ता नामस्थान की सुरक्षा अनिश्चित थी। उदाहरण के लिए: lwn.net/Articles/673597 । यदि कोई उपयोगकर्ता, अपने स्वयं के नामस्थान के अंदर रूट के रूप में वास्तविक होस्ट पर कार्रवाई की अनुमति देने में कर्नेल को धोखा दे सकता है, तो विशेषाधिकार वृद्धि होती है। सामान्य गैर-उपयोगकर्ता नामस्थानों को स्पष्ट रूट (इसलिए व्यवस्थापक) की अनुमति की आवश्यकता होती है और इसलिए व्यवस्थापक ने जो चुना है उसे चलाएं: यह एक ज्ञात जोखिम है। वेनिला कर्नेल में बाद में एक तंत्र जोड़ा गया: user.max_user_namespaces। जब 0 पर सेट किया जाता है तो उपयोगकर्ता नामस्थान अक्षम हो जाते हैं। डेबियन (वास्तव में उबंटू से) पैच अभी भी आसपास है, भले ही अप्रचलित हो। शायद संगतता कारणों के लिए
एबी

1
कर्नेल 4.18.3 को डेबियन पर अभी तक जारी नहीं किया गया है, इसलिए आपका कर्नेल डेबियन परीक्षण का कर्नेल नहीं है। आप इस पैरामीटर को पूरी तरह से अनदेखा कर सकते हैं (जब तक आप डेबियन से एक वास्तविक कर्नेल स्थापित नहीं करते हैं)। इसके अलावा user.max_user_namespaces
AB

3
या बस sudo sysctl -w kernel.unprivileged_userns_clone=1:।
स्किप्पी ले ग्रैंड गौरू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.