ಟೂಲ್ಕಿಟ್ನ ಹೊಸ ಬಿಡುಗಡೆ , ಲಿನಕ್ಸ್ನಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಪರಿಸರಗಳ ಕೆಲಸವನ್ನು ಸಂಘಟಿಸಲು ಮತ್ತು ಸವಲತ್ತು ಇಲ್ಲದ ಬಳಕೆದಾರರ ಅಪ್ಲಿಕೇಶನ್ ಮಟ್ಟದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಬಬಲ್ವ್ರ್ಯಾಪ್ ಅನ್ನು ಫ್ಲಾಟ್ಪ್ಯಾಕ್ ಯೋಜನೆಯು ಪ್ಯಾಕೇಜುಗಳಿಂದ ಪ್ರಾರಂಭಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಪದರವಾಗಿ ಬಳಸುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು C ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು LGPLv2+ ಅಡಿಯಲ್ಲಿ ಪರವಾನಗಿ ಪಡೆದಿದೆ.
ಪ್ರತ್ಯೇಕತೆಗಾಗಿ, cgroups, namespaces, Seccomp ಮತ್ತು SELinux ಬಳಕೆಯನ್ನು ಆಧರಿಸಿ ಸಾಂಪ್ರದಾಯಿಕ ಲಿನಕ್ಸ್ ಕಂಟೇನರ್ ವರ್ಚುವಲೈಸೇಶನ್ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಧಾರಕವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಸವಲತ್ತು ಪಡೆದ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಮೂಲ ಹಕ್ಕುಗಳೊಂದಿಗೆ ಬಬಲ್ವ್ರ್ಯಾಪ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ (ಸೂಯಿಡ್ ಫ್ಲ್ಯಾಗ್ನೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್) ಮತ್ತು ನಂತರ ಕಂಟೇನರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದ ನಂತರ ಸವಲತ್ತುಗಳನ್ನು ಮರುಹೊಂದಿಸುತ್ತದೆ.
ನೇಮ್ಸ್ಪೇಸ್ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಬಳಕೆದಾರ ನೇಮ್ಸ್ಪೇಸ್ಗಳ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ, ಕಂಟೈನರ್ಗಳಲ್ಲಿ ನಿಮ್ಮದೇ ಆದ ಪ್ರತ್ಯೇಕ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದು ಕಾರ್ಯಾಚರಣೆಗೆ ಅಗತ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಇದು ಅನೇಕ ವಿತರಣೆಗಳಲ್ಲಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ (ಬಬಲ್ವ್ರ್ಯಾಪ್ ಅನ್ನು ಸೀಮಿತ ಸೂಯ್ಡ್ ಅಳವಡಿಕೆಯಾಗಿ ಇರಿಸಲಾಗಿದೆ. ಬಳಕೆದಾರ ನೇಮ್ಸ್ಪೇಸ್ ಸಾಮರ್ಥ್ಯಗಳ ಉಪವಿಭಾಗ - ಪ್ರಸ್ತುತ ಒಂದನ್ನು ಹೊರತುಪಡಿಸಿ ಎಲ್ಲಾ ಬಳಕೆದಾರ ಮತ್ತು ಪ್ರಕ್ರಿಯೆ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಪರಿಸರದಿಂದ ಹೊರಗಿಡಲು, CLONE_NEWUSER ಮತ್ತು CLONE_NEWPID ಮೋಡ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ). ಹೆಚ್ಚುವರಿ ರಕ್ಷಣೆಗಾಗಿ, ನಿಯಂತ್ರಣದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು
Bubblewrap ಪ್ರೋಗ್ರಾಂಗಳನ್ನು PR_SET_NO_NEW_PRIVS ಮೋಡ್ನಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ, ಇದು ಹೊಸ ಸವಲತ್ತುಗಳನ್ನು ಪಡೆಯುವುದನ್ನು ನಿಷೇಧಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ಸೆಟ್ಯೂಡ್ ಫ್ಲ್ಯಾಗ್ ಇದ್ದರೆ.
ಡೀಫಾಲ್ಟ್ ಆಗಿ ಹೊಸ ಮೌಂಟ್ ನೇಮ್ಸ್ಪೇಸ್ ಅನ್ನು ರಚಿಸುವ ಮೂಲಕ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಮಟ್ಟದಲ್ಲಿ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಸಾಧಿಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಖಾಲಿ ರೂಟ್ ವಿಭಾಗವನ್ನು tmpfs ಬಳಸಿ ರಚಿಸಲಾಗುತ್ತದೆ. ಅಗತ್ಯವಿದ್ದರೆ, ಬಾಹ್ಯ FS ವಿಭಾಗಗಳನ್ನು ಈ ವಿಭಾಗಕ್ಕೆ “ಮೌಂಟ್ —ಬೈಂಡ್” ಮೋಡ್ನಲ್ಲಿ ಲಗತ್ತಿಸಲಾಗಿದೆ (ಉದಾಹರಣೆಗೆ, “bwrap —ro-bind /usr /usr” ಆಯ್ಕೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿದಾಗ, /usr ವಿಭಾಗವನ್ನು ಮುಖ್ಯ ವ್ಯವಸ್ಥೆಯಿಂದ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ಓದಲು-ಮಾತ್ರ ಕ್ರಮದಲ್ಲಿ). ನೆಟ್ವರ್ಕ್ ಸಾಮರ್ಥ್ಯಗಳು CLONE_NEWNET ಮತ್ತು CLONE_NEWUTS ಫ್ಲ್ಯಾಗ್ಗಳ ಮೂಲಕ ನೆಟ್ವರ್ಕ್ ಸ್ಟಾಕ್ ಪ್ರತ್ಯೇಕತೆಯೊಂದಿಗೆ ಲೂಪ್ಬ್ಯಾಕ್ ಇಂಟರ್ಫೇಸ್ಗೆ ಪ್ರವೇಶಿಸಲು ಸೀಮಿತವಾಗಿವೆ.
ಇದೇ ಯೋಜನೆಯಿಂದ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸ , ಇದು ಒಂದು ಸೆಟ್ಯೂಡ್ ಉಡಾವಣಾ ಮಾದರಿಯನ್ನು ಸಹ ಬಳಸುತ್ತದೆ, ಬಬಲ್ವ್ರ್ಯಾಪ್ನಲ್ಲಿ ಕಂಟೇನರ್ ರಚನೆಯ ಪದರವು ಅಗತ್ಯವಾದ ಕನಿಷ್ಠ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಮಾತ್ರ ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಗ್ರಾಫಿಕಲ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಸುಧಾರಿತ ಕಾರ್ಯಗಳು, ಡೆಸ್ಕ್ಟಾಪ್ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಮತ್ತು Pulseaudio ಗೆ ಕರೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು ಫ್ಲಾಟ್ಪ್ಯಾಕ್ ಅನ್ನು ಹೊರಗುತ್ತಿಗೆ ನೀಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಸವಲತ್ತುಗಳನ್ನು ಮರುಹೊಂದಿಸಿದ ನಂತರ. ಫೈರ್ಜೈಲ್, ಮತ್ತೊಂದೆಡೆ, ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಕಾರ್ಯಗಳನ್ನು ಒಂದು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ನಲ್ಲಿ ಸಂಯೋಜಿಸುತ್ತದೆ, ಇದು ಲೆಕ್ಕಪರಿಶೋಧನೆ ಮತ್ತು ಸುರಕ್ಷತೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ .
ಹೊಸ ಬಿಡುಗಡೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬಳಕೆದಾರ ನೇಮ್ಸ್ಪೇಸ್ಗಳು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯ ಪಿಡ್ ನೇಮ್ಸ್ಪೇಸ್ಗಳನ್ನು ಸೇರಲು ಬೆಂಬಲದ ಅನುಷ್ಠಾನಕ್ಕೆ ಗಮನಾರ್ಹವಾಗಿದೆ. ನೇಮ್ಸ್ಪೇಸ್ಗಳ ಸಂಪರ್ಕವನ್ನು ನಿಯಂತ್ರಿಸಲು, “--ಬಳಕೆದಾರರು”, “--ಬಳಕೆದಾರರು2” ಮತ್ತು “-pidns” ಫ್ಲ್ಯಾಗ್ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
ಈ ವೈಶಿಷ್ಟ್ಯವು ಸೆಟ್ಯೂಡ್ ಮೋಡ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಮತ್ತು ರೂಟ್ ಹಕ್ಕುಗಳನ್ನು ಪಡೆಯದೆಯೇ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದಾದ ಪ್ರತ್ಯೇಕ ಮೋಡ್ನ ಬಳಕೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ, ಆದರೆ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ
ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಬಳಕೆದಾರ ನೇಮ್ಸ್ಪೇಸ್ಗಳು (ಡೆಬಿಯನ್ ಮತ್ತು RHEL/CentOS ನಲ್ಲಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ) ಮತ್ತು ಸಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸುವುದಿಲ್ಲ "ಬಳಕೆದಾರ ನೇಮ್ಸ್ಪೇಸ್" ನಿರ್ಬಂಧಗಳ ರಿಮ್ಗಾಗಿ. Bubblewrap 0.4 ನ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು glibc ಬದಲಿಗೆ musl C ಲೈಬ್ರರಿಯೊಂದಿಗೆ ನಿರ್ಮಿಸುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು JSON ಸ್ವರೂಪದಲ್ಲಿನ ಅಂಕಿಅಂಶಗಳೊಂದಿಗೆ ಫೈಲ್ಗೆ ನೇಮ್ಸ್ಪೇಸ್ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಲು ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿವೆ.
ಮೂಲ: opennet.ru
