Выпуск Bubblewrap 0.11, прослойки для создания ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° новая вСрсия инструмСнтария для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Bubblewrap 0.11, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для ограничСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Bubblewrap примСняСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Flatpak Π² качСствС прослойки для изоляции запускаСмых ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Для изоляции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ для Linux Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, основанныС Π½Π° использовании cgroups, пространств ΠΈΠΌΡ‘Π½ (namespaces), Seccomp ΠΈ SELinux. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ LGPLv2+.

Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы производится Ρ‡Π΅Ρ€Π΅Π· созданиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ пространства ΠΈΠΌΡ‘Π½ Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования (mount namespace), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ tmpfs создаётся пустой ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π». Π’ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΈ нСобходимости ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ внСшнСй Π€Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «mount —bind» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ запускС c ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «bwrap —ro-bind /usr /usr» Ρ€Π°Π·Π΄Π΅Π» /usr пробрасываСтся ΠΈΠ· основной систСмы Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния). Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ возмоТности ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ доступом ΠΊ loopback-интСрфСйсу с изоляциСй сСтСвого стСка Ρ‡Π΅Ρ€Π΅Π· Ρ„Π»Π°Π³ΠΈ CLONE_NEWNET ΠΈ CLONE_NEWUTS.

Для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх Π»ΠΈΡˆΠ½ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ процСссов ΠΈΠ· создаваСмого ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ окруТСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΠΆΠΈΠΌΡ‹ CLONE_NEWUSER (user namespace) ΠΈ CLONE_NEWPID (PID namespace), Π° для Π·Π°ΠΏΡ€Π΅Ρ‚Π° получСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ примСняСтся Ρ€Π΅ΠΆΠΈΠΌ PR_SET_NO_NEW_PRIVS. На систСмах с «user namespace» Bubblewrap ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π° Π½Π° систСмах Π±Π΅Π· «user namespace» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Ρ„Π»Π°Π³ΠΎΠΌ suid root для выполнСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ окруТСния.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ моногослойная файловая систСма OverlayFS, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π°Ρ нСсколько частСй Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм. Для управлСния использованиСм OverlayFS ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ строки «—overlay», «—tmp-overlay», «—ro-overlay» ΠΈ «—overlay-src».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—level-prefix» для подстановки Π² диагностичСский Π²Ρ‹Π²ΠΎΠ΄ уровня ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π² стилС syslog, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠ°ΠΊ «logger» ΠΈ «systemd-cat».
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборочной систСмы Autotools. Для сборки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ инструмСнтарий Meson.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru