Libseccomp: RFE: рдЕрдЬреНрдЮрд╛рдд syscalls рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдЧре░ 2020  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: seccomp/libseccomp

рд╕рд┐рд╕реНрдЯрдордб-рдбреЗрд╡реЗрд▓ рдкрд░ рдПрдХ рдЪрд░реНрдЪрд╛ ( рдЬреВрди рдФрд░ рдЕрдЧрд╕реНрдд рдореЗрдВ ) рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ ..

systemd-nspawn рдЧреИрд░-рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз syscalls рдХреЗ рд▓рд┐рдП EPERM рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪреБрдирддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ openat2 рдЬреИрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ libc ENOSYS рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ 'рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рд╣реА' рд╕рдорд╛рдзрд╛рди рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рд┐рд╕реНрдХрд▓ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рд┐рд╕реНрдХреЛ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдЖрддреА рд╣реИ рдЬреЛ рдЙрд╕ рд╕рдордп рдореМрдЬреВрдж рдереА рдЬрдм seccomp рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЖрд░реНрдХ рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдЕрдЧрд░ syscalls.csv рдЖрджрд┐ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдЕрдзрд┐рдХрддрдо рдЬреНрдЮрд╛рдд рд╕рд┐рд╕реНрдХрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг #define рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЙрдкрдпреЛрдЧреА?

enhancement prioritmedium

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдКрдкрд░ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ (рд╕рднреА?) рд▓реЛрдЧ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрдХ #11 рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ; рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреА рдЪрд░реНрдЪрд╛ рдХреЛ рдореВрд▓ рдореБрджреНрджреЗ (#11) рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @ srd424ред рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреНрдпрд╛ рдорд╛рдВрдЧ рд░рд╣реЗ рд╣реИрдВ ... /рдПрдмреАрдЖрдИ, рд╣рд╛рдБ?

рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдЗрдЪреНрдЫрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП seccomp_syscall_resolve_name(...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп __NR_SCMP_ERROR рддреЛ syscall libseccomp рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИ, рдпрджрд┐ рдпрд╣ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИ рддреЛ syscall рджреЗрд╢реА рдЖрд░реНрдХ/ABI рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЛрдгрд╛рддреНрдордХ рд╣реИ рддреЛ syscall рджреЗрд╢реА рдЖрд░реНрдХ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ/ рдПрдмреАрдЖрдИред рдХреНрдпрд╛ рдпреЗ рддреБрдореНрд╣рд╛рд░реЗ рд▓рд┐рдП рдХрд╛рд░рдЧрд░ рд╣реИ?

рдпрд╣ рдлрд┐рд▓реНрдЯрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ .. рд▓рдВрдмрд╛-рдЪреМрдбрд╝рд╛!

рдореИрдВ рдЬреЛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдирд┐рдпрдо рдХреА рддреБрд▓рдирд╛ рд╕рд┐рд╕реНрдХрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЙрдЪреНрдЪрддрдо рдЬреНрдЮрд╛рдд рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЕрдзрд┐рдХ рд╣реЛ, рддреЛ ENOSYS рд▓реМрдЯрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ EPERM рд▓реМрдЯрд╛рдПрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рд╕рд┐рд╕реНрдХреЛ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ) рдкрд╣рд▓реЗ рдХреЗ рдирд┐рдпрдо рд╕реЗред)

рд╣рд╛рд▓рд╛рдВрдХрд┐ seccomp_rule_add рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ .. syscall рдирдВрдмрд░ рдХрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ рдПрдХ рдХрдЪреНрдЪрд╛ рдмреАрдкреАрдПрдл рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ libseccomp рдореЗрдВ рдХреБрдЫ рдФрд░ рдЖрдХреНрд░рд╛рдордХ рдкрд░рд┐рд╡рд░реНрддрди - рд╢рд╛рдпрдж рдореЗрд░реЗ рд╡реЗрддрди рдЧреНрд░реЗрдб рд╕реЗ рдКрдкрд░!

рдпрд╣ libseccomp рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдПрдХрд╛рдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддреА рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ (рдмрд╕?) рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╢реНрди рд╣реЛрдЧрд╛ ..

рдпрд╣ рдлрд┐рд▓реНрдЯрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ .. рд▓рдВрдмрд╛-рдЪреМрдбрд╝рд╛!

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ ...? seccomp_syscall_resolve_name(...) рдХреЙрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ syscall рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ libseccomp syscall db рд╕реЗ рдкреВрдЫрддрд╛рдЫ рдХрд░рддреА рд╣реИред рдЖрдк рдЗрд╕реЗ рдПрдХ рдмрд╛рд░, рдПрдХ рд╣рдЬрд╛рд░ рдмрд╛рд░, рдпрд╛ рдХрднреА рдирд╣реАрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ :)

рдореИрдВ рдЬреЛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдирд┐рдпрдо рдХреА рддреБрд▓рдирд╛ syscall рд╕рдВрдЦреНрдпрд╛ рдХреА рдЙрдЪреНрдЪрддрдо рдЬреНрдЮрд╛рдд рд╕реЗ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЕрдзрд┐рдХ рд╣реЛ, рддреЛ ENOSYS рд▓реМрдЯрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ EPERM рд▓реМрдЯрд╛рдПрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╢реНрд╡реЗрддрд╕реВрдЪреА рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдХреЛ рдХреЛ рдкрд╣рд▓реЗ рдХреЗ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдиреЗ рд▓рдЧрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рдХреНрдпрд╛ рдорд╛рдБрдЧ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк syscall libseccomp рдХреЗ рд▓рд┐рдП рдЕрдирдЬрд╛рди рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реНрд╡рдпрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдирд╣реАрдВ (рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ ENOSYS рд▓реМрдЯрд╛рдПрдВ)? рдХреНрдпрд╛ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреВрд╕рд░реЗ рд╕реВрддреНрд░ рдореЗрдВ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдореБрдЭреЗ рдореБрд╕реНрдХреБрд░рд╛ рджрд┐рдпрд╛: +1:

рдореИрдВрдиреЗ libseccomp рдореЗрдВ ENOSYS рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪрд░реНрдЪрд╛ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ
https://github.com/seccomp/libseccomp/issues/286 , рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд╛рдпрдж рдирд╣реАрдВ рд╣реВрдВ
рдмрд╣реБрдд рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ ..

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдзрд╛рдЧреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕реА рдкреГрд╖реНрда рдкрд░ рд╣реВрдБред

рдЕрдЧрд░ рдХреЛрдИ (libseccomp, nspawn, whoever) ENOSYS рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ glibc рдирдП syscall, рдЬреИрд╕реЗ openat2 рд╕реЗ рдкреБрд░рд╛рдиреЗ syscall, рдЬреИрд╕реЗ openat рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред EPERM рдХреЛ glibc рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ glibc рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереА, рдФрд░ glibc рд╣рд╛рд░ рдорд╛рди рд▓реЗрдЧрд╛ред рдХреНрдпрд╛ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЙрдЪрд┐рдд рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЙрдЪрд┐рдд рд╣реИред рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЕрдЧрд░ libseccomp рдЗрди рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд╕рдордп рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрд╡рд╕рд░ рд╣реИрдВред

рдЖрд░рдПрдлрдИ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЕрдЧрд░ рдХреЛрдИ (libseccomp, nspawn, whoever) ENOSYS рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ glibc рдирдП syscall, рдЬреИрд╕реЗ openat2 рд╕реЗ рдкреБрд░рд╛рдиреЗ syscall, рдЬреИрд╕реЗ openat рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред EPERM рдХреЛ glibc рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ glibc рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереА, рдФрд░ glibc рд╣рд╛рд░ рдорд╛рди рд▓реЗрдЧрд╛ред рдХреНрдпрд╛ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЙрдЪрд┐рдд рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИ?

рд╣рд╛рдБ, рдпрд╣ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред рд╕рд┐рд╕реНрдЯрдордб рд▓реЛрдЧреЛрдВ рдХреА рд░рд╛рдп рдпрд╣ рд╣реИ рдХрд┐ EPERM рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдЕрд╕реНрд╡реАрдХреГрдд syscalls рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ, рд╕рдВрднрд╡рддрдГ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ "рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ" рдмрддрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП "рдирдП" рдФрд░ "рдкреБрд░рд╛рдиреЗ" рд╕рд┐рд╕реНрдХреЛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдкрд░рд┐рдЪрд┐рдд рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП ENOSYS рдХрд░рдирд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмреАрдкреАрдПрдл рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рд┐рд╕реНрдХрд▓ рдХреА рдЧрдгрдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬреНрдЮрд╛рдд рд╕рд┐рд╕реНрдХрд▓ рдирдВрдмрд░ рдкреНрд░рддрд┐-рдЖрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдкрд╛рдиреА рдХреЗ рдирд┐рд╢рд╛рди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдПрдХ "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рдпрд╛рд╕" рддрд░реАрдХрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдХрд┐ docker, podman, lxc рдЖрджрд┐ рдЕрдкрдиреЗ seccomp рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдн рд╣реЛрдЧрд╛ред рдЗрд╕ рдмреАрдЪ рдореИрдВрдиреЗ nspawn рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ seccomp рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЙрдЪрд┐рдд рд╣реИред рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЕрдЧрд░ libseccomp рдЗрди рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд╕рдордп рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрд╡рд╕рд░ рд╣реИрдВред

рдЖрд░рдПрдлрдИ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ @drakenclimber рд╕реЗ рд╕рд╣рдордд

рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рд╕реНрддрд░ рдкрд░, рдпрд╣ рдЖрд░рдПрдлрдИ #11 рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИ: рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдзрд┐рдХрддрдо рд╕рдорд░реНрдерд┐рдд рдХрд░реНрдиреЗрд▓ рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП v5.8 (рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдЯреЛрдХрдирдпреБрдХреНрдд), рд╕рд╛рде рд╣реА рдЖрдЧреЗ рдХреА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рджреА рдЧрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рдлрд┐рд░ libseccomp рдмрд╛рдХреА рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ @ srd424?

рдирдорд╕реНрддреЗ, рдЗрд╕ рдкрд░ https://github.com/systemd/systemd/pull/16739 рдореЗрдВ рднреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА

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

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред systemd/systemd-nspawn рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдорддрд┐-рд╕реВрдЪреАрдмрджреНрдз рдФрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░-рд╕реВрдЪреАрдмрджреНрдз syscalls, "рд╕рдорд░реНрдерд┐рдд рдХрд░реНрдиреЗрд▓ API рд╕рдВрд╕реНрдХрд░рдг" рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП EPERM рдФрд░ рдХрд┐рд╕реА рднреА рдирдП рдХреЗ рд▓рд┐рдП ENOSYS рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП amd64 рдХреЗ рд▓рд┐рдП, "рдЬреНрдЮрд╛рдд" syscalls рдХреЛ n <= 181 || 186 <= n <= 235 || 237 <= n <= 334 || 424 <= n <= 439 рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд╡ рдЖрд╕рд╛рдиреА рд╕реЗ syscall рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

94 рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЖрдЬ рд╕реБрдмрд╣ рдХрдо рдХреИрдлреАрдирдпреБрдХреНрдд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ ENOSYS рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╕реЗ рд╣рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдЬреАрдд рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдЫреЛрдЯреЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдорд┐рд▓рддреА рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП amd64 рдХреЗ рд▓рд┐рдП, "рдЬреНрдЮрд╛рдд" syscalls рдХреЛ n <= 181 || . рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ 186 <= n <= 235 || 237 <= n <= 334 || 424 <= n <= 439ред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд╡ рдЖрд╕рд╛рдиреА рд╕реЗ syscall рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреАрдкреАрдПрдл рдЖрд░реНрдХ/рдПрдмреАрдЖрдИ рдФрд░ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рджреЛрдиреЛрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдмреАрдкреАрдПрдл рдХреЗ рдКрдкрд░ x86_64 рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрд╣реБрдд рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдиреНрдп рдореЗрд╣рд░рд╛рдм/рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рднрд▓реЗ рд╣реА, рдпрд╣ рдЕрдм рджреЛ рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ ... рдореИрдВ рдЕрднреА рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреВрджрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрднреА рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ; )

94 рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдВ рдХреА рддрд░рд╣, рдирд╣реАрдВ рдХреА рддрд░рд╣ред рдЗрд╕рдореЗрдВ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди #94 рдХреЙрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реНрдХ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ (рдЬреЛ рдЕрднреА рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдкреАрдЖрд░ рдЕрднреА рдЦрд░рд╛рдм рд╕рдордп рдкрд░ рдЖрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдХреЛ рдХреБрдЫ рдЯреНрд╡рд┐рдХрд┐рдВрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реИ) рдЬрдмрдХрд┐ рд╣рдо рдЬреЛ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рдкрд░реЛрдХреНрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд syscall рдкрд░реНрд╡рддрдорд╛рд▓рд╛ рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рд╣реА рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рддреА рд╣реИрдВред

рдореИрдВ рдЖрдЬ рд╕реБрдмрд╣ рдХрдо рдХреИрдлреАрдирдпреБрдХреНрдд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ ENOSYS рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╕реЗ рд╣рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдЬреАрдд рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдЫреЛрдЯреЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдорд┐рд▓рддреА рд╣реИ?

рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ, рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдордб, рдпрджрд┐ рдЖрдк "рдирдП" рд╕рд┐рд╕реНрдХреЛ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╣рд╛рдБ ... рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)

рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП .. рдлрд┐рд▓рд╣рд╛рд▓ рдХрд┐рд╕реА рдХреЛ рднреА _рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ syscalls рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рдХрд┐ рдПрдХ рдирдпрд╛ рдХрд░реНрдиреЗрд▓ рдХреНрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо libseccomp рдХреЛ рдЕрдЬреНрдЮрд╛рдд syscalls рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рд╕реВрдЪреА рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП .. рдлрд┐рд▓рд╣рд╛рд▓ рдХрд┐рд╕реА рдХреЛ рднреА _рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ syscalls рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рдХрд┐ рдПрдХ рдирдпрд╛ рдХрд░реНрдиреЗрд▓ рдХреНрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо libseccomp рдХреЛ рдЕрдЬреНрдЮрд╛рдд syscalls рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рд╕реВрдЪреА рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдирджрд╛рд░ рдлреАрдЪрд░ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЙрдХрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЕрдиреБрдорддрд┐ рд╕реВрдЪреА рдХреЛ рдирд┐рдпреЛрдЬрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдирдХреА

рдЗрддрдиреА рдмрдбрд╝реА рд╕реВрдЪреА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕реЗ рд╣рдордиреЗ v2.5 рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рдлреАрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП .. рдлрд┐рд▓рд╣рд╛рд▓ рдХрд┐рд╕реА рдХреЛ рднреА _рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ syscalls рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рдХрд┐ рдПрдХ рдирдпрд╛ рдХрд░реНрдиреЗрд▓ рдХреНрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо libseccomp рдХреЛ рдЕрдЬреНрдЮрд╛рдд syscalls рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рд╕реВрдЪреА рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред libseccomp рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рдФрд░ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рдХрд╛ рдЕрд░реНрде рдЖрдорддреМрд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рд╕реЗ рд╣реЛрдЧрд╛ред рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реИрдЪрд╛рд░рд┐рдХ рдореБрджреНрджрд╛ рджреВрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА libseccomp рдХреЗ рдкрд╛рд╕ рд╕рдорд░реНрдерд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреА рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд╕реНрд╡реАрд░ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛред

рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕ рдкрд░ рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП amd64 рдХреЗ рд▓рд┐рдП, "рдЬреНрдЮрд╛рдд" syscalls рдХреЛ n <= 181 || . рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ 186 <= n <= 235 || 237 <= n <= 334 || 424 <= n <= 439ред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд╡ рдЖрд╕рд╛рдиреА рд╕реЗ syscall рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреАрдкреАрдПрдл рдЖрд░реНрдХ/рдПрдмреАрдЖрдИ рдФрд░ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рджреЛрдиреЛрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдмреАрдкреАрдПрдл рдХреЗ рдКрдкрд░ x86_64 рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрд╣реБрдд рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдиреНрдп рдореЗрд╣рд░рд╛рдм/рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рднрд▓реЗ рд╣реА, рдпрд╣ рдЕрдм рджреЛ рдореБрджреНрджреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ ... рдореИрдВ рдЕрднреА рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреВрджрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрднреА рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ; )

рдЯреЗрдмрд▓ рдХрд╛рдлреА рдирд┐рд░рдВрддрд░ рд╣реИрдВ:

>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-x86_64').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([ 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  5,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1, 90,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1])
>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-alpha').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([ 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  3,  1,  2,  1,  1,
        1,  1,  1,  2,  1,  1,  1,  3, 12,  3,  3,  1, 11,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        2,  1,  1,  1,  1,  1,  1,  5,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1, 39,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  3,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        2,  1,  1,  1])
>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-arm').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 2, 1, 2, 3, 4,
       1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 3, 1, 1,
       1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 3,
       1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, 1, 2, 1, 1, 1,
       1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-riscv64').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([  1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,  16,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1, 130,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1])

рдореИрдВрдиреЗ https://github.com/systemd/systemd/pull/16819 рдореЗрдВ systemd-nspawn рдХреЗ рд▓рд┐рдП "рдЬреНрдЮрд╛рдд" syscalls рдХрд╛ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ https://github.com/systemd/systemd/pull/16819/commits/158e30ffd9355a7640a7276276eb9219b6c87914 рдореЗрдВ рдХреБрдЫ libseccomp-рдЬрдирд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХрд╛ рдбрдВрдк рд╣реИред рд╡реЗ рдбрдВрдк рд▓рдВрдмреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдирд╣реАрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди SCMP_FLTATR_CTL_OPTIMIZE рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд▓рдВрдмрд╛ рд╣реИред рд░реЗрдВрдЬ рддреБрд▓рдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреАрдЬреЛрдВ рдХреЛ ~50 рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдХреЗрд╡рд▓ рдпрд╣ рдзрд╛рдЧрд╛ рдорд┐рд▓рд╛ рд╣реИ, рдмрд╕ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рддрд░реНрдЬ рдкрд░ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЙрдХрд░/рд░рди рднреА рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╢рд╛рдпрдж рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд▓реЗрдЦрдХреЛрдВ (рдФрд░ рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдореНрд╕) рдХреЛ рдЖрдЙрдЯ-рдСрдл-рдСрд░реНрдбрд░ рдЬреЛрдбрд╝реЗ рдЧрдП syscalls рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдирд╡реАрдирддрдо syscall рдХреНрдпрд╛ рдерд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ред

рдКрдкрд░ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ (рд╕рднреА?) рд▓реЛрдЧ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрдХ #11 рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ; рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреА рдЪрд░реНрдЪрд╛ рдХреЛ рдореВрд▓ рдореБрджреНрджреЗ (#11) рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mvo5 picture mvo5  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pcmoore picture pcmoore  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alban picture alban  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cgwalters picture cgwalters  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pcmoore picture pcmoore  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ