သီးခြားပတ်ဝန်းကျင်များဖန်တီးရန်အတွက် အလွှာတစ်ခုဖြစ်သည့် Bubblewrap 0.4.0 ကို ဖြန့်ချိသည်။

ရနိုင်ပါတယ် toolkit အသစ်ထွက်ရှိခြင်း။ Bubble wrap 0.4.0Linux ရှိ သီးခြားပတ်ဝန်းကျင်များ၏ အလုပ်များကို စုစည်းပြီး အခွင့်ထူးမခံရသော သုံးစွဲသူများ၏ အပလီကေးရှင်းအဆင့်တွင် လည်ပတ်ရန် ဒီဇိုင်းထုတ်ထားသည်။ လက်တွေ့တွင်၊ Bubblewrap ကို ပက်ကေ့ချ်များမှ စတင်သော အပလီကေးရှင်းများကို ခွဲထုတ်ရန် အလွှာတစ်ခုအနေဖြင့် Flatpak ပရောဂျက်မှ အသုံးပြုပါသည်။ ပရောဂျက်ကုဒ်ကို C နဲ့ရေးထားတယ်။ ဖြန့်ဝေသည် LGPLv2+ အောက်တွင် လိုင်စင်ရထားသည်။

အထီးကျန်မှုအတွက်၊ cgroups၊ namespaces၊ Seccomp နှင့် SELinux ကိုအသုံးပြုမှုအပေါ် အခြေခံ၍ ရိုးရာ Linux container virtualization နည်းပညာများကို အသုံးပြုပါသည်။ ကွန်တိန်နာကို configure လုပ်ရန် အခွင့်ထူးခံ လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် Bubblewrap ကို root လုပ်ပိုင်ခွင့် ( suid အလံပါသော executable ဖိုင်တစ်ခု) ဖြင့် စတင်ပြီး ကွန်တိန်နာကို စတင်ပြီးနောက် အခွင့်ထူးများကို ပြန်လည်သတ်မှတ်ပါ။

ကွန်တိန်နာများတွင် သင့်ကိုယ်ပိုင် သီးခြားသတ်မှတ်သတ်မှတ်မှုအစုအဝေးကို အသုံးပြုခွင့်ပြုသည့် namespace စနစ်တွင် အသုံးပြုသူအမည်နေရာများကို အသက်သွင်းခြင်းသည် လုပ်ဆောင်ချက်အတွက် မလိုအပ်သောကြောင့်၊ ၎င်းသည် ဖြန့်ဝေမှုများစွာတွင် ပုံသေဖြင့် အလုပ်မလုပ်သောကြောင့် (Bubblewrap ကို ကန့်သတ် suid အကောင်အထည်ဖော်မှုတစ်ခုအဖြစ် သတ်မှတ်ထားသည်။ အသုံးပြုသူ namespaces စွမ်းရည်၏ အစုခွဲ - လက်ရှိတစ်ခုမှလွဲ၍ အသုံးပြုသူနှင့် လုပ်ငန်းစဉ်ဆိုင်ရာ ခွဲခြားသတ်မှတ်မှုအားလုံးကို ပတ်ဝန်းကျင်မှ ဖယ်ထုတ်ရန်၊ CLONE_NEWUSER နှင့် CLONE_NEWPID မုဒ်များကို အသုံးပြုသည်)။ အပိုကာကွယ်မှုများအတွက်၊ ထိန်းချုပ်မှုအောက်တွင် လုပ်ဆောင်နိုင်သည်။
Bubblewrap ပရိုဂရမ်များကို PR_SET_NO_NEW_PRIVS မုဒ်တွင် လွှင့်တင်ထားပြီး၊ ဥပမာ၊ setuid အလံရှိနေပါက၊ အထူးအခွင့်အရေးအသစ်များရယူခြင်းကို တားမြစ်ထားသည်။

tmpfs ကို အသုံးပြု၍ အချည်းနှီးသော root partition ကိုဖန်တီးထားသည့် ဖိုင်စနစ်အဆင့်တွင် သီးခြားခွဲထားခြင်းသည် mount namespace အသစ်တစ်ခု ဖန်တီးခြင်းဖြင့် ပြီးမြောက်ပါသည်။ လိုအပ်ပါက၊ ပြင်ပ FS အခန်းကန့်များကို "mount —bind" မုဒ်တွင် ဤအခန်းကန့်သို့ ချိတ်ဆက်ထားပါသည် (ဥပမာ၊ "bwrap —ro-bind /usr /usr" ရွေးချယ်မှုဖြင့် စတင်သောအခါ /usr အပိုင်းကို ပင်မစနစ်မှ တစ်ဆင့်ပေးပို့ပါသည်။ ဖတ်ရန်သာမုဒ်တွင်)။ CLONE_NEWNET နှင့် CLONE_NEWUTS အလံများမှတစ်ဆင့် ကွန်ရက်အစုအဝေးကို သီးခြားခွဲထားခြင်းဖြင့် ကွန်ရက်ချိတ်ဆက်နိုင်စွမ်းကို ကန့်သတ်ထားသည်။

အလားတူပရောဂျက်တစ်ခုမှ အဓိကကွာခြားချက် မီးဘေးsetuid launch model ကိုလည်းအသုံးပြုသည့်အချက်မှာ Bubblewrap သည် container ဖန်တီးမှုအလွှာတွင် လိုအပ်သောအနည်းဆုံးစွမ်းရည်များသာပါဝင်ပြီး graphical applications များလည်ပတ်ရန်အတွက်လိုအပ်သောအဆင့်မြင့်လုပ်ဆောင်ချက်များအားလုံးကို desktop နှင့်အပြန်အလှန်တုံ့ပြန်ခြင်းနှင့် Pulseaudio သို့ filtering calls များကို Flatpak မှ outsourced လုပ်ပြီးလုပ်ဆောင်နေခြင်းဖြစ်သည်။ အခွင့်ထူးများ ပြန်လည်သတ်မှတ်ပြီးနောက်။ တစ်ဖက်တွင် Firejail သည် ဆက်စပ်လုပ်ဆောင်နိုင်သော လုပ်ဆောင်ချက်အားလုံးကို ဖိုင်တစ်ခုတည်းတွင် ပေါင်းစပ်ထားပြီး လုံခြုံရေးကို စစ်ဆေးရန်နှင့် ထိန်းသိမ်းရန် ခက်ခဲစေသည်။ သင့်လျော်သောအဆင့်တွင်.

ထုတ်ဝေမှုအသစ်သည် လက်ရှိအသုံးပြုသူအမည်နေရာများနှင့် pid namespaces များလုပ်ဆောင်ရန်အတွက် ပံ့ပိုးမှုအကောင်အထည်ဖော်မှုအတွက် မှတ်သားဖွယ်ဖြစ်သည်။ namespaces များ၏ချိတ်ဆက်မှုကိုထိန်းချုပ်ရန်၊ "--users", "--users2" နှင့် "-pidns" အလံများကိုထည့်သွင်းထားသည်။
ဤအင်္ဂါရပ်သည် setuid မုဒ်တွင် အလုပ်မလုပ်ဘဲ root လုပ်ပိုင်ခွင့်များ မရယူဘဲ လုပ်ဆောင်နိုင်သော သီးခြားမုဒ်ကို အသုံးပြုရန် လိုအပ်သော်လည်း activation လိုအပ်သည်
စနစ်ရှိ user namespaces (Debian နှင့် RHEL/CentOS တွင် မူရင်းအတိုင်းပိတ်ထားသည်) နှင့် ဖြစ်နိုင်ချေကို မပါဝင်ပါ။ ခေါင်းပုံဖြတ်အမြတ်ထုတ်ခြင်း ဖြစ်နိုင်ချေ ကျန် အားနည်းချက်များ "user namespaces" အတွက် ကန့်သတ်ချက်များ အနားကွပ်။ Bubblewrap 0.4 ၏ အင်္ဂါရပ်အသစ်များသည် glibc အစား musl C စာကြည့်တိုက်ဖြင့် တည်ဆောက်နိုင်မှုနှင့် JSON ဖော်မတ်ရှိ စာရင်းဇယားပါသော ဖိုင်တစ်ခုသို့ namespace အချက်အလက်ကို သိမ်းဆည်းရန်အတွက် ပံ့ပိုးမှုလည်း ပါဝင်သည်။

source: opennet.ru

မှတ်ချက် Add