рд▓реЗрдЦ рдХрд╛ рдПрдХ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
SystemD, Docker, рдФрд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЬреИрд╕реЗ Kuberneses рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдзрдиреНрдпрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдкреНрд░рд▓реЗрдЦрди рдХреЛ рд╕рдордЭрдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рд▓реЗрдЦ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдЬреНрдЮрд╛рди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд▓рд┐рдВрдХ
рдХреНрд╖рдорддрд╛рдУрдВ (7) рдореИрди рдкреЗрдЬ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХреНрд╖рдорддрд╛
рдЖрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИрдВ, рдЬрдмрдХрд┐ "рд░реВрдЯ" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИрдВред рдпрджреНрдпрдкрд┐ "рд░реВрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрдХреНрд╕рд░ рд╕рднреА рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, POSIX (POSIX рдХреНрд╖рдорддрд╛рдПрдВ) рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╕рд┐рд╕реНрдЯрдо рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╡реЗ рд╕рднреА "рдореВрд▓" рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рдЪрд╛рд░ 1997 рдореЗрдВ POSIX 1003.1e рдХреЗ рдорд╕реМрджреЗ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд▓рд┐рдирдХреНрд╕ рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдХрд╛рд░реНрдп) рдореЗрдВ
рдкрд╛рдВрдЪ 64-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ (рд╕реЗрдЯ) рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрдорддрд┐ рдмрд┐рдЯреНрд╕ рд╣реЛрддреА рд╣реИрдВ (рд▓рд┐рдирдХреНрд╕ 2.6.25 рд╕реЗ рдкрд╣рд▓реЗ рд╡реЗ 32-рдмрд┐рдЯ рдереЗ), рдЬрд┐рд╕реЗ рдЕрдВрджрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
/ proc / <pid> / рд╕реНрдерд┐рддрд┐
ред
CapInh: 00000000000004c0 CapPrm: 00000000000004c0 CapEff: 00000000000004c0 CapBnd: 00000000000004c0 CapAmb: 0000000000000000
рдпреЗ рд╕рдВрдЦреНрдпрд╛рдПрдБ (рдпрд╣рд╛рдБ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдиреЛрдЯреЗрд╢рди рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВ) рдмрд┐рдЯрдореИрдк рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдХреЗ рдкреВрд░реНрдг рдирд╛рдо рд╣реИрдВ:
- рдЗрдирд╣реЗрд░рд┐рдЯреЗрдмрд▓ - рд╡рдВрд╢рдЬ рдЬреЛ рд╡рдВрд╢рдЬ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- рдЕрдиреБрдордд - рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдкреНрд░рднрд╛рд╡реА - рд╡рд░реНрддрдорд╛рди рдкреНрд░рднрд╛рд╡реА рдЕрдиреБрдорддрд┐
- рдмрд╛рдЙрдВрдбрд┐рдВрдЧ - рд▓рд┐рдирдХреНрд╕ 2.6.25 рд╕реЗ рдкрд╣рд▓реЗ, рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╕реЗрдЯ рдПрдХ рд╕рд┐рд╕реНрдЯрдо-рд╡рд╛рдЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдереА рдЬреЛ рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдереА, рдПрдХ рд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдХреЗ рдЖрдЧреЗ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рддрд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдиреАрдЪреЗ рд╡рд┐рд╡рд░рдгред
- рдкрд░рд┐рд╡реЗрд╢реА (рд▓рд┐рдирдХреНрд╕ 4.3 рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╛рд╣рд░реА) - рд╕реЗрддреБ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ (рдЙрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЕрдзрд┐рдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧреИрд░-рд░реВрдЯ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
рдпрджрд┐ рдХрд╛рд░реНрдп рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдСрдкрд░реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд░реНрдЯ <1024) рд╕реЗ
рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд╣рддрд╛ рд╣реИ , рддреЛ рдХрд░реНрдиреЗрд▓
CAP_NET_BIND_SERVICE рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдСрдкрд░реЗрд╢рди рдЬрд╛рд░реА рд╣реИред рдЕрдиреНрдпрдерд╛, рдСрдкрд░реЗрд╢рди EPERM (рдСрдкрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ) рдХреЗ рд╕рд╛рде рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпреЗ
CAP_
рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ
CAP_
рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЧрд┐рдиреЗ рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП
CAP_NET_BIND_SERVICE
, 10 рдХреЗ рдмрд░рд╛рдмрд░, рдХрд╛ рдЕрд░реНрде рд╣реИ рдмрд┐рдЯ 1 << 10 = 0x400 (рдпрд╣ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЕрдВрдХ "4" рд╣реИ)ред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рдкреВрд░реА рдорд╛рдирд╡-рдкрдардиреАрдп рд╕реВрдЪреА рд╡рд░реНрддрдорд╛рди
рдХреНрд╖рдорддрд╛рдУрдВ (7) рдореИрди рдкреЗрдЬ (рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рд╣реИ
) рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдмрдВрдзрди рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬрд╛рдВрдЪ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реАрдмрдХреИрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдкреАрдЖрдИ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреИрдХреЗрдЬ рдореЗрдВ
рдХреИрдкрд╢ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рд╛рдЦ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдпрд╣рд╛рдБ рдХреБрдЫ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБ рд╣реИрдВ:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд (2) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп,
рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
(7) P'(ambient) = (file is privileged) ? 0 : P(ambient) P'(permitted) = (P(inheritable) & F(inheritable)) | (F(permitted) & P(bounding)) | P'(ambient) P'(effective) = F(effective) ? P'(permitted) : P'(ambient) P'(inheritable) = P(inheritable) [ie, unchanged] P'(bounding) = P(bounding) [ie, unchanged] where: P() denotes the value of a thread capability set before the execve(2) - execve(2) P'() denotes the value of a thread capability set after the execve(2) - execve(2) F() denotes a file capability set -
рдпреЗ рдирд┐рдпрдо рд╕рднреА рдЕрдиреБрдорддрд┐ рд╕реЗрдЯреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ (рдкрд░рд┐рд╡реЗрд╢ / рдЕрдиреБрдорддрд┐ / рдкреНрд░рднрд╛рд╡реА / рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд / рд╕реАрдорд╛)ред рдорд╛рдирдХ C рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ - рддрд╛рд░реНрдХрд┐рдХ AND; рдХреЗ рд▓рд┐рдП - рддрд╛рд░реНрдХрд┐рдХ OR рдХреЗ рд▓рд┐рдП)ред P 'рдПрдХ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред P рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд (2) рдХрд╣рддрд╛ рд╣реИред рдПрдл рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреА рддрдерд╛рдХрдерд┐рдд "рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐" рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА, рд╕реБрд▓рдн рдФрд░ рдХреБрд╢рд▓ рд╕реЗрдЯреЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рд╕реА рднреА рд╕рдордп рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИ:
- рдпрджрд┐ рдХреЙрд▓рд░ рдХреЗ рдкрд╛рд╕
CAP_SETPCAP
рдирд╣реАрдВ рд╣реИ, рддреЛ рдирдП рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджрд┐рдП рдЧрдП рд╕реЗрдЯ рдореЗрдВ P (рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛) рдФрд░ P (рдЙрдкрд▓рдмреНрдз) рдХрд╛ рдПрдХ рдЙрдкрд╕рдореВрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - (рд▓рд┐рдирдХреНрд╕ 2.6.25 рдХреЗ рд╕рд╛рде) рдирдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓рд╛ рд╕реЗрдЯ рдкреА (рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛) рдФрд░ рдкреА (рд╕реАрдорд┐рдд) рдХрд╛ рд╕рдмрд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдирдпрд╛ рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯ P рдХрд╛ рдЙрдкрд╕рдореВрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдкрд▓рдмреНрдз)
- рдирдпрд╛ рдХреБрд╢рд▓ рд╕реЗрдЯ рдкреА рдХрд╛ рд╕рдмрд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдкреНрд░рднрд╛рд╡реА)
рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрдиреБрдорддрд┐
рдХрднреА-рдХрднреА рд╕реАрдорд┐рдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
chmod + s ./executable
рдмрд┐рдЯ (
chmod + s ./executable
) рд╕реЗрдЯ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕реА рдлрд╛рдЗрд▓, рдпрджрд┐ рдпрд╣ рд░реВрдЯ рдХреА рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреВрд░реНрдг рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрдВрдЧреЗред
рд▓реЗрдХрд┐рди рдпрд╣ рддрдВрддреНрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП POSIX рдЕрдиреБрдорддрд┐рдпреЛрдВ рдиреЗ "рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпрд╛рдБ" рдирд╛рдордХ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ "Security.capability" рдирд╛рдордХ рдПрдХ
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдЬреИрд╕реЗ *, XFS, Raiserfs, Brtfs, overlay2, ...) рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП,
CAP_SETFCAP
рдЕрдиреБрдорддрд┐
CAP_SETFCAP
(рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯ рдореЗрдВ)ред
$ getfattr -m - -d `which ping`
рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ
рдмреЗрд╢рдХ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░
рдХреНрд╖рдорддрд╛рдУрдВ (7) рдореИрди рдкреЗрдЬ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдИ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рд╣реИрдВред рд╕рдВрднрд╡рддрдГ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
- рдпрджрд┐ NoNewPrivs рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ nosuid рдХреЗ рд╕рд╛рде рдЖрд░реЛрд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рд╕реЗрдЯ-рдХреЙрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ ptrace рджреНрд╡рд╛рд░рд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рднреА рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд░реНрдиреЗрд▓
no_file_caps
рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде no_file_caps
рд╣реЛрддрд╛ рд╣реИред - рдПрдХ "рдбрдВрдм" рдлрд╝рд╛рдЗрд▓ (рдХреНрд╖рдорддрд╛-рдбрдВрдм) рдПрдХ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдПрдХ рд╕реЗрддреБ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ред рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рдЕрдХреНрд╕рд░ рдЙрди рдкрд░ + ep рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
тАЬsetcap cap_net_bind_service+ep ./binaryтАЭ
ред рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ "рдИ" рд╣реИ - рдкреНрд░рднрд╛рд╡реАред рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпреЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рдФрд░ рдореМрдЬреВрджрд╛ рджреЛрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдВрдЧреА, рдЗрд╕рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ "рдХреНрд╖рдорддрд╛-рд╕реНрдорд╛рд░реНрдЯ" рдлрд╝рд╛рдЗрд▓ рдЬреЛ libcap рдпрд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ , рдХрд┐рд╕реА рднреА рд╕рдордп "рдкреНрд░рднрд╛рд╡реА" рдпрд╛ "рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ" рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП cap_set_proc (3) (рдпрд╛ capset ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рд╡рд╣ рдЕрдиреБрдорддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рд╕рд╕реНрддреА тАЭрдХрд┐рдЯред рдЗрд╕рд▓рд┐рдП, " setcap cap_net_bind_service+p ./binaryтАЭ
рдПрдХ "рд╕реНрдорд╛рд░реНрдЯ" рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдСрдкрд░реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╕реЗрдЯ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдирдореВрдирд╛ рдХреЛрдб рджреЗрдЦреЗрдВред - рд╕реЗрддреБ-рд░реВрдЯ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреА рд╣реИрдВ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧреИрд░-рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╣реА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПрдЧреАред рдЖрдк рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдЦрд╛рд▓реА рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрдЯрд┐рдб рдлрд╝рд╛рдЗрд▓ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреБрдорддрд┐ рдХреЗ рдпреВрдЖрдИрдбреА 0 рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдЧрд╛ред рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдХреЛрдИ рдлрд╛рдЗрд▓ рд╕реЗрдЯреБрдпрдб-рд░реВрдЯ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣реА рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реБрд░рдХреНрд╖рд╛ рдЭрдВрдбреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реА рд╣реИ (рдЖрджрдореА рджреЗрдЦреЗрдВ)ред
- рдПрдХ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╕реЗрдЯ рдорд╛рд╕реНрдХ рдЙрдкрд▓рдмреНрдз рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИрдВред рдкреА '(рдЙрдкрд▓рдмреНрдз) = рдПрдл (рдЙрдкрд▓рдмреНрдз) рдФрд░ рдкреА (рд╕реАрдорд┐рдд) рдпрд╛рдж рд░рдЦреЗрдВред рдпрджрд┐ рдХрд┐рд╕реА рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЙрд╕рдХреЗ рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реЗ рд╕реЗрдЯ рдореЗрдВ рдЕрдиреБрдорддрд┐ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╕реЗрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд╣ рдЕрднреА рднреА рдЕрдкрдиреЗ рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдХрд░ рдпрд╣ рдЕрдиреБрдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЕрдиреБрдорддрд┐ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджрд┐рдП рдЧрдП рд╕реЗрдЯ рдореЗрдВ рд╣реИ - P '(рдЙрдкрд▓рдмреНрдз) = P ( рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА) рдФрд░ рдПрдл (рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА)ред
- рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬреЛ рд╕реЗрдЯ-рдпреВрдЬрд╝рд░-рдЖрдИрдбреА, рд╕реЗрдЯ-рдЧреНрд░реБрдк-рдЖрдИрдбреА рдмрд┐рдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпреВрдЖрдИрдбреА рдпрд╛ рдЬреАрдЖрдИрдбреА тАЛтАЛрдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ , рдкрд░рд┐рд╡реЗрд╢ рд╕реЗрдЯ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧрд╛ ред рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╕реЗрдЯ рдореЗрдВ
PR_CAP_AMBIENT
prctl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PR_CAP_AMBIENT
рдЬрд╛рддреА рд╣реИрдВ ред рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрд▓рдн рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред - рдпрджрд┐ рдпреВрдЖрдИрдбреА рдХреЗ рд╕рд╛рде 0 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд (2) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ , рддреЛ рдЗрд╕рдХреЗ рдЙрдкрд▓рдмреНрдз рдФрд░ рд╕рдХреНрд░рд┐рдп рд╕реЗрдЯ рдХреЗ рд╕рднреА рдЕрдзрд┐рдХрд╛рд░ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
- рдпрджрд┐
SECBIT_KEEP_CAPS
(рдпрд╛ рд╡реНрдпрд╛рдкрдХ SECBIT_NO_SETUID_FIXUP
) рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ UID рдХреЛ 0 рд╕реЗ рдмрджрд▓рдХрд░ SECBIT_NO_SETUID_FIXUP
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА, рдкрд╣реБрдБрдЪ рдпреЛрдЧреНрдп рдФрд░ рдкреНрд░рднрд╛рд╡реА рд╕реЗрдЯ рд╕реЗ рд╕рднреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИрдВ ред
рдЗрд╕рд▓рд┐рдП ...
рдпрджрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ nginx рдХрдВрдЯреЗрдирд░, ingress-nginx рдпрд╛ рдЖрдкрдХреА рд╕реНрд╡рдпрдВ рдХреА рд░реЛрдХ рдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ:
bind() to 0.0.0.0:80 failed (13: Permission denied)
... рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯ 80 рдкрд░ рдПрдХ рдЕрдирдкреНрд░реАрд╡рд┐рд▓рд╛рдЗрдЬреНрдб (0 рдирд╣реАрдВ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдерд╛, рдФрд░ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдорддрд┐
CAP_NET_BIND_SERVICE
рдореЗрдВ рдХреЛрдИ
CAP_NET_BIND_SERVICE
рдирд╣реАрдВ рдереАред рдЗрди рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо
cap_net_bind_service+ie
nginx рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП xattr рдФрд░ рд╕реЗрдЯ (
setcap
рдХрд╛ рдЙрдкрдпреЛрдЧ
setcap
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрдиреБрдорддрд┐ рдХреЛ рд▓реАрдЧреЗрд╕реА рд╕реЗрдЯ (рдкреЙрдб рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреАрдХреЙрдиреНрдЯреЗрдХреНрд╕ / рдХреНрд╖рдорддрд╛ / рдРрдб / NET_BIND_SERVICE рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ) рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рднреА рдЙрдкрд▓рдмреНрдз рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдо
cap_net_bind_service+pie
ред
рдпрд╣ рд╕рдм рддрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ SecurityContext / allowPrivilegeEscalation рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ docker / rkt рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ (docker рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВ) xattrs рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ nginx рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯ рдереЗ, рддреЛ
cap_net_bind_service+i
рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рддрдм рд╡рд╣ рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рддрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП libcap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж
cap_net_bind_service+pie
ред
Xattr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЧреИрд░-рд░реВрдЯ рдХрдВрдЯреЗрдирд░ рдореЗрдВ
cap_net_bind_service
рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛
cap_net_bind_service
рдХреЛ рдЕрдкрдиреА рдмрд╛рд╣рд░реА рдХреНрд╖рдорддрд╛рдУрдВ (рдкрд░рд┐рд╡реЗрд╢ рдХреНрд╖рдорддрд╛рдУрдВ) рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рджреЗрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдкреНрд░реИрд▓ 2019 рддрдХ, рдпрд╣ рдЕрднреА рддрдХ
рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
рдПрдХ рдХреБрд╢рд▓ рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рдореЗрдВ CAP_NET_BIND_SERVICE рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
CAP_NET_BIND_SERVICE
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдирдореВрдирд╛ рдХреЛрдб рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ
CAP_BIND_SERVICE+p
рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн (рд╕рдВрд▓рдЧреНрди):