ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ capsudo, Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ sudo с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Ариадна Конилл (Ariadne Conill), ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проигрыватСля Audacious ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎΠ³ΠΎ сСрвСра Wayback, ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° IRCv3 ΠΈ Π»ΠΈΠ΄Π΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ бСзопасности Alpine Linux, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ инструмСнтарий capsudo для Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ sudo Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ задСйствована модСль прСдоставлСния ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (object-capability). Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

Из нСдостатков sudo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΌ инструмСнтарии, отмСчаСтся поставка Π² Ρ„ΠΎΡ€ΠΌΠ΅ исполняСмого Ρ„Π°ΠΉΠ»Π° с Ρ„Π»Π°Π³ΠΎΠΌ suid root, монолитная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π±Π΅Π· раздСлСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ (вся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ sudo выполняСтся с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root); услоТнённый, нСиСрархичСский ΠΈ Π½Π΅Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ; ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², выполняСмых Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ процСссС; раздутая кодовая Π±Π°Π·Π° с большой ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒΡŽ Π°Ρ‚Π°ΠΊΠΈ.

ВмСсто использования ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ sudo Π² capsudo использован Ρ‚Π°Π½Π΄Π΅ΠΌ ΠΈΠ· ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса capsudod ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ capsudo. ВзаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ capsudod ΠΈ capsudo осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„Π°ΠΉΠ»Π°-сокСта, Π° полномочия запуска ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ сокСту. Волько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ доступ ΠΊ сокСту, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ привязанныС ΠΊ сокСту ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НСдостатком ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ использования ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ запуска ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ reboot с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями, администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сокСт Β«reboot-capabilityΒ», ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊ запуску ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ reboot ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€Π°Π² доступа Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ запись Π² сокСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ПослС этого Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ reboot, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² Β«capsudo -s reboot-capabilityΒ». # capsudod -s /home/user/reboot-capability reboot & # chown user:user /home/user/reboot-capability # chmod 700 /home/user/reboot-capability запускаСм reboot ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ: $ capsudo -s /home/user/reboot-capability

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ sudo ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, входящих Π² Π³Ρ€ΡƒΠΏΠΏΡƒ wheel, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ настройки: # mkdir -p /run/cap # capsudod -s /run/cap/sudo-capability & # chgrp wheel /run/cap/sudo-capability # chmod 770 /run/cap/sudo-capability $ capsudo -s /run/cap/sudo-capability

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настроСк для ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ запуска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ /usr/sbin/mount /dev/sdb1: # capsudod -s /run/user/mountd/cap/mount-dev-sdb1 β€” /usr/sbin/mount /dev/sdb1 … установка ΠΏΡ€Π°Π² доступа ΠΊ сокСту /run/user/mountd/cap/mount-dev-sdb1 ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ /dev/sdb1 Π² /media/usb Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ $ capsudo -s /run/user/mountd/cap/mount-dev-sdb1 β€” /media/usb

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ