ํœด๋Œ€์šฉ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” systemd 245

XNUMX๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ œ์‹œ๋œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค systemd 245. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ ์š”์†Œ systemd-homed ๋ฐ systemd-repart๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ  JSON ํ˜•์‹์˜ ํœด๋Œ€์šฉ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋˜๋ฉฐ systemd-journald์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜๊ณ  "pidfd" ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. . ์™„์ „ํžˆ ์ƒˆ๋กญ๊ฒŒ ๋””์ž์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์›น์‚ฌ์ดํŠธ, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์„œ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ƒˆ ๋กœ๊ณ ๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

ํœด๋Œ€์šฉ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” systemd 245

์ฃผ์š” ๋ณ€๊ฒฝ:

  • ์ถ”๊ฐ€๋œ ์„œ๋น„์Šค ์‹œ์Šคํ…œ ํ™ˆ๋Š” ๋งˆ์šดํŠธ๋œ ์ด๋ฏธ์ง€ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋Š” ํœด๋Œ€์šฉ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋Š” ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. Systemd-homed๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹๋ณ„์ž ๋™๊ธฐํ™” ๋ฐ ๊ธฐ๋ฐ€์„ฑ์— ๋Œ€ํ•œ ๊ฑฑ์ • ์—†์ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„์— ์ „์†ก๋  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋…๋ฆฝํ˜• ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์€ ์‹œ์Šคํ…œ ์„ค์ •์ด ์•„๋‹Œ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. /etc/passwd, /etc/group ๋ฐ /etc/shadow ๋Œ€์‹  ํ˜•์‹์˜ ํ”„๋กœํ•„์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. JSON. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋งˆ์ง€๋ง‰ ๋ฐœํ‘œ ์‹œ์Šคํ…œ ํ™ˆ.
  • systemd-homed ์ปดํŒจ๋‹ˆ์–ธ ๊ตฌ์„ฑ ์š”์†Œ ์ถ”๊ฐ€ "์‚ฌ์šฉ์žDBโ€(โ€œsystemd-userdbโ€)๋Š” UNIX/glibc NSS ๊ณ„์ •์„ JSON ๋ ˆ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋ ˆ์ฝ”๋“œ ์ฟผ๋ฆฌ ๋ฐ ๋ฐ˜๋ณต์„ ์œ„ํ•œ ํ†ตํ•ฉ Varlink API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋œ JSON ํ”„๋กœํ•„์€ ์‚ฌ์šฉ์ž ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ, ์•”ํ˜ธํ™” ํ‚ค, ํ• ๋‹น๋Ÿ‰, ํ”„๋กœ๋น„์ €๋‹๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ž‘์—…์— ํ•„์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ•„์€ ์™ธ๋ถ€ Yubikey ํ† ํฐ์— ์ €์žฅ๋œ ๋””์ง€ํ„ธ ์„œ๋ช…์œผ๋กœ ์ธ์ฆ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ•„์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด "userdbctl" ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. JSON ํ”„๋กœํ•„์— ๋Œ€ํ•œ ์ง€์›์ด systemd-logind ๋ฐ pam-systemd๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ systemd ๊ตฌ์„ฑ ์š”์†Œ์— ์ถ”๊ฐ€๋˜์–ด ํœด๋Œ€์šฉ ๋””๋ ‰ํ„ฐ๋ฆฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ, ๋กœ๊ทธ์ธ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •, ์„ธ์…˜ ์ƒ์„ฑ, ์ œํ•œ ์„ค์ • ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” sssd ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ LDAP์— ์ €์žฅ๋œ ์‚ฌ์šฉ์ž ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ JSON ํ”„๋กœํ•„์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • GPT ํ˜•์‹์œผ๋กœ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋ถ„ํ• ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ƒˆ๋กœ์šด ์œ ํ‹ธ๋ฆฌํ‹ฐ "systemd-repart"๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜ ๊ตฌ์กฐ๋Š” ์–ด๋–ค ํŒŒํ‹ฐ์…˜์ด ์กด์žฌํ•ด์•ผ ํ•˜๋Š”์ง€ ๋˜๋Š” ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” ํŒŒ์ผ์„ ํ†ตํ•ด ์„ ์–ธ์  ํ˜•์‹์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๋ถ€ํŒ…ํ•  ๋•Œ๋งˆ๋‹ค ์‹ค์ œ ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์ด ์ด๋Ÿฌํ•œ ํŒŒ์ผ๊ณผ ๋น„๊ต๋œ ํ›„ ๋ˆ„๋ฝ๋œ ํŒŒํ‹ฐ์…˜์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜, ์„ค์ •์— ์ •์˜๋œ ์ƒ๋Œ€ ๋˜๋Š” ์ ˆ๋Œ€ ํฌ๊ธฐ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ํŒŒํ‹ฐ์…˜์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ฆ๋ถ„์ ์ธ ๋ณ€๊ฒฝ๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐ ์‚ญ์ œ ๋ฐ ์ถ•์†Œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํŒŒํ‹ฐ์…˜ ์ถ”๊ฐ€ ๋ฐ ํ™•๋Œ€๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” initrd์—์„œ ์‹œ์ž‘๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์ •์˜๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์„ ์ œ์™ธํ•˜๊ณ  ์ถ”๊ฐ€ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์ด ์žˆ๋Š” ๋””์Šคํฌ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

    ์‹ค์ œ๋กœ systemd-repart๋Š” ์ฒ˜์Œ์— ์ตœ์†Œํ•œ์˜ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋  ์ˆ˜ ์žˆ๋Š” ์šด์˜ ์ฒด์ œ ์ด๋ฏธ์ง€์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฒซ ๋ฒˆ์งธ ๋ถ€ํŒ… ํ›„์—๋Š” ๊ธฐ์กด ๋ธ”๋ก ์žฅ์น˜์˜ ํฌ๊ธฐ๋กœ ํ™•์žฅ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ํŒŒํ‹ฐ์…˜(์˜ˆ: ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜)์œผ๋กœ ๋ณด์™„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๋””์Šคํฌ๋ฅผ ํฌํ•จํ•˜๋„๋ก ํŒŒํ‹ฐ์…˜์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์ฒ˜์Œ ๋ถ€ํŒ…ํ•œ ํ›„ ์Šค์™‘ ํŒŒํ‹ฐ์…˜ ๋˜๋Š” /home์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์šฉ๋„๋Š” ๋‘ ๊ฐœ์˜ ํšŒ์ „ ํŒŒํ‹ฐ์…˜์ด ์žˆ๋Š” ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ฒซ ๋ฒˆ์งธ ํŒŒํ‹ฐ์…˜๋งŒ ์ œ๊ณต๋˜๊ณ  ์ฒซ ๋ฒˆ์งธ ๋ถ€ํŒ… ์‹œ ๋‘ ๋ฒˆ์งธ ํŒŒํ‹ฐ์…˜์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • ์ด์ œ ๊ฐ๊ฐ ์ž์ฒด ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋กœ๊ทธ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” systemd-journald์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ systemd-journald.service ์™ธ์—๋„ .service ๋””๋ ‰ํ† ๋ฆฌ๋Š” "LogNamespace" ์ง€์‹œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐ”์ธ๋”ฉ๋œ ์ถ”๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋กœ๊ทธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๊ณ ์œ ํ•œ ์„ค์ • ๋ฐ ์ œํ•œ ์ง‘ํ•ฉ์ด ์žˆ๋Š” ๋ณ„๋„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๊ธฐ๋Šฅ์€ ๋Œ€์šฉ๋Ÿ‰ ๋กœ๊ทธ์— ๋Œ€ํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒฉ๋ฆฌ ๊ฐ•ํ™”์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋ฅผ ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ๋งŒ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด "--namespace" ์˜ต์…˜์„ Journalctl์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Systemd-udevd ๋ฐ ๊ธฐํƒ€ systemd ๊ตฌ์„ฑ ์š”์†Œ์—๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€์ฒด ์ด๋ฆ„์„ ํ• ๋‹นํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฌ๋Ÿฌ ์ด๋ฆ„์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ์ตœ๋Œ€ 128์ž๊นŒ์ง€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์ด 16์ž๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ systemd-udevd๋Š” ์ด์ œ ์ง€์›๋˜๋Š” ๋ช…๋ช… ์ฒด๊ณ„์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๋ชจ๋“  ๋ณ€ํ˜• ์ด๋ฆ„์„ ๊ฐ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ .link ํŒŒ์ผ์˜ ์ƒˆ๋กœ์šด AlternativeName ๋ฐ AlternativeNamesPolicy ์„ค์ •์„ ํ†ตํ•ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. systemd-nspawn์€ ํ˜ธ์ŠคํŠธ ์ธก์—์„œ ์ƒ์„ฑ๋œ veth ๋งํฌ์— ๋Œ€ํ•œ ์ „์ฒด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์ฒด ์ด๋ฆ„ ์ƒ์„ฑ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • sd-event.h API๋Š” PID ์žฌ์‚ฌ์šฉ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Linux ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ "pidfd"์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(pidfd๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์ง€๋งŒ PID๋Š” ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ์ดํ›„์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Œ) ์ด์™€ ์—ฐ๊ด€๋˜์–ด ์ด PID๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. PID 1์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ํ˜„์žฌ ์ปค๋„์—์„œ ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ pidfds๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Systemd-logind๋Š” PolicyKit์„ ํ†ตํ•ด ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ๋ณ€๊ฒฝ ์ž‘์—…์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ™•์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑ ํ„ฐ๋ฏธ๋„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์€ ๋กœ์ปฌ ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„์—์„œ ํ•œ ๋ฒˆ ์ด์ƒ ์„ธ์…˜์„ ์‹œ์ž‘ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.
  • systemd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ initrd ์ด๋ฏธ์ง€๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด์ œ PID 1 ํ•ธ๋“ค๋Ÿฌ๋Š” initrd๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ด ๊ฒฝ์šฐ default.target ๋Œ€์‹  initrd.target์„ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด initrd ๋ฐ ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋Š” /etc/initrd-release ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ์ปค๋„ ๋ช…๋ น์ค„ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ "systemd.cpu_affinity"๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” /etc/systemd/system.conf์˜ CPUAffinity ์˜ต์…˜๊ณผ ๋™์ผํ•˜๋ฉฐ PID 1 ๋ฐ ๊ธฐํƒ€ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ CPU ์„ ํ˜ธ๋„ ๋งˆ์Šคํฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "systemctl daemon-reload"์™€ ๊ฐ™์€ ๋ช…๋ น์„ ํ†ตํ•ด PID 1์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด์„œ SELinux ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "systemd.show-status=error" ์„ค์ •์ด PID 1 ํ•ธ๋“ค๋Ÿฌ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค์ •ํ•˜๋ฉด ๋กœ๋”ฉ ์ค‘ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ์‹ฌ๊ฐํ•œ ์ง€์—ฐ๋งŒ ์ฝ˜์†”์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • systemd-sysusers๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋‹ค๋ฅธ ๊ธฐ๋ณธ ๊ทธ๋ฃน ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-growfs๋Š” ์ด์ „์— Ext4 ๋ฐ Btrfs๋ฅผ ํ†ตํ•ด ํŒŒํ‹ฐ์…˜ ํ™•์žฅ์„ ์ง€์›ํ–ˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ /etc/fstab์˜ x-systemd.growfs ๋งˆ์šดํŠธ ์˜ต์…˜์„ ํ†ตํ•ด XFS ํŒŒํ‹ฐ์…˜ ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • initrd ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ ์ž ๊ธˆ ํ•ด์ œ๋œ ์•”ํ˜ธํ™”๋œ ํŒŒํ‹ฐ์…˜์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด x-initrd.attach ์˜ต์…˜์„ /etc/crypttab์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-cryptsetup์—๋Š” PKCS#11 ์Šค๋งˆํŠธ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ํŒŒํ‹ฐ์…˜์„ ์ž ๊ธˆ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›(/etc/crypttab์˜ pkcs11-uri ์˜ต์…˜)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: YubiKeys์— ํŒŒํ‹ฐ์…˜ ์•”ํ˜ธํ™” ์—ฐ๊ฒฐ).
  • local-fs.target ๋ฐ ์›๊ฒฉ ๋Œ€์‹  ํ˜ธ์ถœํ•  ๋งˆ์šดํŠธ ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ์žฅ์น˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋งˆ์šดํŠธ ์˜ต์…˜ "x-systemd.required-by" ๋ฐ "x-systemd.wanted-by"๊ฐ€ /etc/fstab์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fs.target.
  • ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์ƒŒ๋“œ๋ฐ•์‹ฑ ์˜ต์…˜์ธ ProtectClock์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ์Šคํ…œ ์‹œ๊ณ„์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค(์•ก์„ธ์Šค๋Š” /dev/rtc, ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋ฐ CAP_SYS_TIME/CAP_WAKE_ALARM ๊ถŒํ•œ ์ˆ˜์ค€์—์„œ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค).
  • ์‚ฌ์–‘์— ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ํŒŒํ‹ฐ์…˜ ๋ฐ systemd-gpt-auto-generator์— ํŒŒํ‹ฐ์…˜ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    /var ๋ฐ /var/tmp.

  • "systemctl list-unit-files"์—์„œ ์žฅ์น˜ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•  ๋•Œ ์ด ์œ ํ˜•์˜ ์žฅ์น˜์— ๋Œ€ํ•œ ์ œ์กฐ์—…์ฒด์˜ ์‚ฌ์ „ ์„ค์ •์—์„œ ์ œ๊ณต๋˜๋Š” ํ™œ์„ฑํ™” ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ์ƒˆ ์—ด์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
  • "-with-dependents" ์˜ต์…˜์ด "systemctl"์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ์‹œ "systemctl status" ๋ฐ "systemctl cat"๊ณผ ๊ฐ™์€ ๋ช…๋ น์€ ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์žฅ์น˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์žฅ์น˜๊ฐ€ ์˜์กดํ•˜๋Š” ์žฅ์น˜๋„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • systemd-networkd์—์„œ qdisc ๊ตฌ์„ฑ์—๋Š” TBF(Token Bucket Filter), SFQ(Stochastic Fairness Queuing), CoDel(Controlled-Delay Active Queue Management) ๋ฐ FQ(Fair Queue) ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-networkd์—๋Š” IFB ๋„คํŠธ์›Œํฌ ์žฅ์น˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ค‘๊ธ‰ ๊ธฐ๋Šฅ ๋ธ”๋ก).
  • Systemd-networkd๋Š” ๋‹ค์ค‘ ๊ฒฝ๋กœ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด [Route] ์„น์…˜์—์„œ MultiPathRoute ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • DHCPv4 ํด๋ผ์ด์–ธํŠธ์˜ systemd-networkd์—๋Š” SendDecline ์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋œ DHCP ์‘๋‹ต์„ ๋ฐ›์€ ํ›„ ์ค‘๋ณต๋œ ์ฃผ์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ฃผ์†Œ ์ถฉ๋Œ์ด ๊ฐ์ง€๋˜๋ฉด ๋ฐœ๊ธ‰๋œ ์ฃผ์†Œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋„๋ก ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RouteMTUBytes ์˜ต์…˜๋„ DHCPv4 ํด๋ผ์ด์–ธํŠธ์— ์ถ”๊ฐ€๋˜์–ด IP ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ(์ž„๋Œ€)์—์„œ ์ƒ์„ฑ๋œ ๊ฒฝ๋กœ์˜ MTU ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • .network ํŒŒ์ผ์˜ [Address] ์„น์…˜์— ์žˆ๋Š” PrefixRoute ์„ค์ •์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ˜๋Œ€ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” "AddPrefixRoute" ์„ค์ •์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • .network ํŒŒ์ผ์—์„œ "[Route]" ์„น์…˜์˜ ๊ฒŒ์ดํŠธ์›จ์ด ์„ค์ •์— ์ƒˆ ๊ฐ’ "_dhcp"์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค์ • ์‹œ DHCP๋ฅผ ํ†ตํ•ด ๊ตฌ์„ฑ๋œ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •์  ๊ฒฝ๋กœ๊ฐ€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
  • "[RoutingPolicyRule]" ์„น์…˜์˜ .network ํŒŒ์ผ์— ์„ค์ •์ด ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    ์‚ฌ์šฉ์ž ๋ฐ SuppressPrefixLength๋Š” UID ๋ฒ”์œ„ ๋ฐ ์ ‘๋‘์‚ฌ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œ์Šค ๋ผ์šฐํŒ…์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • networkctl์—์„œ "status" ๋ช…๋ น์€ ๊ฐ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ด€๋ จ๋œ ๋กœ๊ทธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • systemd-networkd-wait-online์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž‘๋™ํ•  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‹ค์šด๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„ ์„ค์ •์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "[Match]" ์„น์…˜์ด ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ .link ๋ฐ .network ํŒŒ์ผ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • .link ๋ฐ .network ํŒŒ์ผ์˜ โ€œ[Match]โ€ ์„น์…˜์— ์ƒ์„ฑ๋œ ๋žœ๋ค MAC์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์žฅ์น˜์˜ ์˜๊ตฌ MAC ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก โ€œPermanentMACAddressโ€ ์„ค์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • .network ํŒŒ์ผ์˜ "[TrafficControlQueueingDiscipline]" ์„น์…˜ ์ด๋ฆ„์ด "[NetworkEmulator]"๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉฐ "NetworkEmulator" ์ ‘๋‘์‚ฌ๊ฐ€ ๊ด€๋ จ ์„ค์ • ์ด๋ฆ„์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • DNS-over-TLS๋ฅผ ์œ„ํ•œ systemd-resolved๋Š” SNI ๊ฒ€์‚ฌ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€