рдлреНрд░реАрдмреАрдПрд╕рдбреАрд╕рд╛рдареА plegde рдЖрдгрд┐ рдЕрдирд╛рд╡рд░рдг рд╕рд╛рд░рдЦреАрдЪ рдПрдХ рдЕрд▓рдЧрд╛рд╡ рдпрдВрддреНрд░рдгрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ

FreeBSD рд╕рд╛рдареА, OpenBSD рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ plegde рдЖрдгрд┐ рдЕрдирд╛рд╡рд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЙрд▓рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреЗрдгрд╛рд░реА, рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдпрд╕реЛрд▓реЗрд╢рди рдореЗрдХреЕрдирд┐рдЭрдордЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╣реЗ. рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реНрд╕рд╡рд░ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реВрди рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрдгрд╛рд░реНтАНрдпрд╛ рд╡реИрдпрдХреНрддрд┐рдХ рдлрд╛рдИрд▓ рдкрд╛рдерд╡рд░ рдирд┐рд╡рдбрдХрдкрдгреЗ рдНрдХреНрд╕реЗрд╕ рдЙрдШрдбреВрди рдЕрдирд╛рд╡рд░рдг рдХрд░реВрди plegde рдордзреНрдпреЗ рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА, рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЖрдгрд┐ рдлрд╛рдИрд▓ рдкрдерд╛рдВрдЪреА рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреА рдкрд╛рдВрдврд░реА рдпрд╛рджреА рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдЗрддрд░ рд╕рд░реНрд╡ рдХреЙрд▓ рдЖрдгрд┐ рдорд╛рд░реНрдЧ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗрдд.

FreeBSD рд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░реЗ plegde рдЖрдгрд┐ unveil рдЪреНрдпрд╛ analogue рдордзреАрд▓ рдлрд░рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░рд╛рдЪреНрдпрд╛ рддрд░рддреБрджреАрдд рдпреЗрддреЛ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рдмрджрд▓ рди рдХрд░рддрд╛ рдХрд┐рдВрд╡рд╛ рдХрдореАрдд рдХрдореА рдмрджрд▓ рди рдХрд░рддрд╛ рд╡реЗрдЧрд│реЗ рдХрд░реВ рджреЗрддреЛ. рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА OpenBSD рдордзреНрдпреЗ, plegde рдЖрдгрд┐ unveil рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╢реА рдШрдЯреНрдЯ рдПрдХреАрдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖реНрдпреЗ рдЬреЛрдбреВрди рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд. рд╕рдВрд░рдХреНрд╖рдгрд╛рдЪреА рд╕рдВрд╕реНрдерд╛ рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдлрд┐рд▓реНрдЯрд░реНрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реИрдпрдХреНрддрд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рддрдкрд╢реАрд▓рд╛рдВрд╕рд╣ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рдЪреЗ рд╡рд░реНрдЧ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд (рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ, рдлрд╛рдЗрд▓реНрд╕ рд╡рд╛рдЪрдгреЗ, рдлрд╛рдЗрд▓реНрд╕ рд▓рд┐рд╣рд┐рдгреЗ, рд╕реЙрдХреЗрдЯреНрд╕, ioctl, sysctl, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЙрдиреНрдЪ, рдЗ.) . рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдз рдХрд╛рд░реНрдпреЗ рдХреЙрд▓ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХрд╛рд░рдг рдХрд╛рд╣реА рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдпрд▓реА рдЙрдШрдбрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд╕реЙрдХреЗрдЯреНрд╕ рдЖрдгрд┐ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдирд╛рдХрд╛рд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдкреЛрд░реНрдЯ рдСрдл рдкреНрд▓реЗрдЧреНрдбреЗрдЪреЗ рд▓реЗрдЦрдХ рдЖрдгрд┐ рдлреНрд░реАрдмреАрдПрд╕рдбреАрдЪреЗ рдЕрдирд╛рд╡рд░рдг рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рдирд╕ рдЖрд╣реЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рдкрдбрджрд╛ рдЙрдкрдпреБрдХреНрддрддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╣реЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рд╡реЗрдЧрд│реНрдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдореВрд▓рднреВрдд рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЕрд╕рд▓реЗрд▓реА рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЬреА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рдЪреЗ рд╡рд░реНрдЧ рдЖрдгрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓ рдкрде (рдзреНрд╡рдиреА, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж, рд▓реЙрдЧрд┐рдВрдЧ рдЗрддреНрдпрд╛рджреАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ), рддрд╕реЗрдЪ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдорд╛рдВрд╕рд╣ рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ.

рдХрд░реНрдЯрди рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪрд╛ рд╡рд╛рдкрд░ рдмрд╣реБрддреЗрдХ рдмрджрд▓ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬ, рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдЕрдЧрджреА рд╕рдВрдкреВрд░реНрдг рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рддреНрд░рд╛рдВрдирд╛ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдЬреЗрд▓ рдЖрдгрд┐ рдХреЕрдкреНрд╕рд┐рдХрдо рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдВрджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрд▓рдЧрд╛рд╡ рдпрдВрддреНрд░рдгреЗрд╕рд╣ рдкрдбрджрд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдиреЗрд╕реНрдЯреЗрдб рдЖрдпрд╕реЛрд▓реЗрд╢рди рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЖрд╣реЗ, рдЬреЗрд╡реНрд╣рд╛ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗрд▓реЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╛рд▓рдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдирд┐рдпрдорд╛рдВрдЪреЗ рд╡рд╛рд░рд╕рд╛ рдШреЗрддрд╛рдд, рддреНрдпрд╛рдВрдирд╛ рд╡реИрдпрдХреНрддрд┐рдХ рдирд┐рд░реНрдмрдВрдзрд╛рдВрд╕рд╣ рдкреВрд░рдХ рдХрд░рддрд╛рдд. рдХрд╛рд╣реА рдХрд░реНрдирд▓ рдСрдкрд░реЗрд╢рдиреНрд╕ (рдбреАрдмрдЧрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛, POSIX/SysV IPC, PTYs) рдЕрддрд┐рд░рд┐рдХреНрддрдкрдгреЗ рдПрдХрд╛ рдЕрдбрдерд│рд╛ рдпрдВрддреНрд░рдгреЗрджреНрд╡рд╛рд░реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЬреЗ рд╡рд░реНрддрдорд╛рди рдХрд┐рдВрд╡рд╛ рдореВрд│ рдкреНрд░рдХреНрд░рд┐рдпреЗрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд░реНрдирд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ.

рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ curtainctl рд▓рд╛ рдХреЙрд▓ рдХрд░реВрди рдХрд┐рдВрд╡рд╛ OpenBSD рдордзреНрдпреЗ рдЖрдврд│рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгреЗрдЪ libcurtain рдЪреНрдпрд╛ plegde() рдЖрдгрд┐ unveil() рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рд╛рдкрд░реВрди рд╕реНрд╡рддрдГрдЪреЗ рдЕрд▓рдЧрд╛рд╡ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддреЗ. рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛ рд▓реЙрдХ рдЯреНрд░реЕрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, sysctl 'security.curtain.log_level' рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗ. рдкрдбрджрд╛ рдЪрд╛рд▓рд╡рддрд╛рдирд╛ "-X"/"-Y" рдЖрдгрд┐ "-W" рдкрд░реНрдпрд╛рдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди X11 рдЖрдгрд┐ Wayland рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд╕рдХреНрд╖рдо рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдкрд░рдВрддреБ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЕрджреНрдпрд╛рдк рдкреБрд░реЗрд╕реЗ рд╕реНрдерд┐рд░ рдЭрд╛рд▓реЗрд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рдЕрдиреЗрдХ рдирд┐рд░рд╛рдХрд░рдг рди рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд ( X11 рд╡рд╛рдкрд░рддрд╛рдирд╛ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рджрд┐рд╕реВрди рдпреЗрддрд╛рдд, рдЖрдгрд┐ Wayland рд╕рдорд░реНрдерди рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ). рд╡рд╛рдкрд░рдХрд░реНрддреЗ рд╕реНрдерд╛рдирд┐рдХ рдирд┐рдпрдо рдлрд╛рдЗрд▓реНрд╕ (~/.curtain.conf) рддрдпрд╛рд░ рдХрд░реВрди рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдмрдВрдз рдЬреЛрдбреВ рд╢рдХрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Firfox рд╡рд░реВрди рдлрдХреНрдд ~/Downloads/ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА тАЬ~/Downloads/ : rw +тАЭ рдпрд╛ рдирд┐рдпрдорд╛рд╕рд╣ тАЬ[рдлрд╛рдпрд░рдлреЙрдХреНрд╕]тАЭ рд╡рд┐рднрд╛рдЧ рдЬреЛрдбреВ рд╢рдХрддрд╛.

рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдгрд╛рд╕рд╛рдареА mac_curtain рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ (MAC, рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг), рдЖрд╡рд╢реНрдпрдХ рд╣рдБрдбрд▓рд░ рдЖрдгрд┐ рдлрд┐рд▓реНрдЯрд░реНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ FreeBSD рдХрд░реНрдирд▓рд╕рд╛рдареА рдкреЕрдЪрдЪрд╛ рд╕рдВрдЪ, plegde рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА libcurtain рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреАрд▓ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреЗ рдЕрдирд╛рд╡рд░рдг, рдкрдбрджрд╛ рдЙрдкрдпреБрдХреНрддрддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЬрд╛рдЧреЗрддреАрд▓ рдХрд╛рд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рд╕рд╛рдареА рдПрдХ рд╕реЗрдЯ рдЪрд╛рдЪрдгреНрдпрд╛ рдЖрдгрд┐ рдкреЕрдЪ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддрд╛рддреНрдкреБрд░рддреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА $TMPDIR рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА). рд╢рдХреНрдп рдЕрд╕реЗрд▓ рддреЗрдереЗ, рдХрд░реНрдирд▓ рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдкреЕрдЪ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмрджрд▓рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХрд░рдгреНрдпрд╛рдЪрд╛ рд▓реЗрдЦрдХрд╛рдЪрд╛ рд╣реЗрддреВ рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛