ΠΠ΅Π½Π½Π°ΡΡ ΠΠΎΡΡΠ΅ΡΠΈΠ½Π³ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΡΡΠΈΠ»ΠΈΡΡ run0, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ²Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ sudo, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π² ΡΠΎΡΠΌΠ΅ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΈ Π½Π°Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ systemd-run ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ»Π°Π³ΠΎΠΌ SUID. Π£ΡΠΈΠ»ΠΈΡΠ° run0 Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠΎΡΡΠ°Π² Π²ΡΠΏΡΡΠΊΠ° systemd 256, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ° Π² ΡΠ΅Π»ΠΈΠ·Ρ.
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΌΠ΅Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π°Π³Π° SUID Π² sudo ΡΠΎΠΏΡΡΠΆΠ΅Π½Π° Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠΊΠ°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ SUID-ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ cgroup. Π§Π°ΡΡΡ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΈΡΠ°Π΅ΡΡΡ Π΄Π»Ρ SUID-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΄ΡΠΎΠΌ, Π° ΡΠ°ΡΡΡ — ΡΠ°ΠΌΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΠ»ΠΎΠΆΠ½ΡΡ SUID-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ sudo, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ Π½Π΅Π°ΠΊΠΊΡΡΠ°ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π run0 Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SUID ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° (PTY) ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ (TTY). ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ssh, ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ sudo. ΠΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ PID 1, Π° Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ.Π΅. Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±ΡΠΎΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ $TERM. ΠΡΠΎΠ±ΡΠΎΡ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΏΠΈΡΠΎΠΊ ΡΠ²Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ).
ΠΠ»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² run0 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Polkit. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» (/etc/sudoers), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² sudo, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ Π²ΡΡΡΠΎΠ΅Π½Π° Π² systemd-run, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° run0 ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° systemd-run, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΡ ΠΎΠΆΠΈΠΉ Ρ sudo ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ run0 Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΊΡΠ°ΡΠ½ΠΎΠ²Π°ΡΠΎΠ³ΠΎ ΡΠΎΠ½Π° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°. ΠΠΎΡΠ»Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΈΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ ΡΠΎΡΠΊΠ° ΠΈΡΡΠ΅Π·Π°Π΅Ρ, Π° ΡΠΎΠ½ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, run0 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ «systemd-run», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «—property», ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² systemd (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «CPUWeight=200 MemoryMax=2G IPAccounting=yes»).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru