Sobes.tech
Middle

Linux ядросының қай технологияларына негізделген контейнеризация? Файл жүйесінде SUID, SGID және Sticky биттері дегеніміз не?

sobes.tech AI

AI-дан жауап

Linux-те контейнерлеу бірнеше негізгі ядро технологияларына негізделген:

  • Namespaces — процестерді әртүрлі аспектілер бойынша оқшаулайды (PID, желі, файл жүйесі, пайдаланушы және басқа), жеке атау кеңістіктерін құрады.
  • Control Groups (cgroups) — процестер топтарына ресурстарды (CPU, жад, диск) шектейді және бақылайды.
  • Union файл жүйелері (OverlayFS, AUFS) — файл жүйесінің қабаттарын құруға мүмкіндік береді, бұл контейнерлерді құру мен басқаруды жеңілдетеді.

Файл жүйесінің атрибуттарына келетін болсақ:

  • SUID (Set User ID) — бұл битпен файлды іске қосқанда процесс файл иесінің құқықтарын алады, яғни бағдарламаны іске қосқан пайдаланушы емес, файл иесі құқықтарын алады. Бұл жоғары құқықтарды талап ететін бағдарламалар үшін пайдаланылады.

  • SGID (Set Group ID) — файлды іске қосқанда процесс файл тобының құқықтарын алады. Каталогтар үшін бұл бит жаңа файлдардың каталог тобына мұрагерлік етуін қамтамасыз етеді.

  • Sticky бит — каталогтарда файлдарды жою немесе қайта атауды тек файл иесі, каталог иесі немесе root қолданушы ғана жасай алады. Бұл қауіпсіздік үшін /tmp сияқты каталогтарда жиі пайдаланылады.

SUID орнату мысалы:

chmod u+s /usr/bin/passwd

Бұл әдеттегі пайдаланушыларға парольді өзгертуге мүмкіндік береді, иесінің (root) құқықтарын пайдалана отырып, қажетті операцияларды орындау үшін.