libcap-ng.

Â÷¼¼´ë libcap ¶óÀ̺귯¸®
Áö±Ý ´Ù¿î·Îµå

libcap-ng. ¼øÀ§ ¹× ¿ä¾à

±¤°í

  • Rating:
  • ƯÇã:
  • LGPL v2
  • °¡°Ý:
  • FREE
  • °Ô½ÃÀÚ À̸§:
  • Steve Grubb
  • °Ô½ÃÀÚ À¥»çÀÌÆ®:
  • http://www.redhat.com

libcap-ng. ű×


libcap-ng. ¼³¸í

Â÷¼¼´ë libcap ¶óÀ̺귯¸® libcap-ng´Â POSIX ±â´ÉÀ» »ç¿ëÇÏ¿© ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÈ ¶óÀ̺귯¸®·Î ÀüÅëÀûÀÎ libcap ¶óÀ̺귯¸®º¸´Ù ÈξÀ ½±½À´Ï´Ù. ¿©±â¿¡´Â ÇöÀç ½ÇÇàÁßÀÎ ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥À» ºÐ¼®ÇÏ°í ¸ðµç ±â´ÉÀ» Àμâ ÇÒ ¼öÀÖ´Â À¯Æ¿¸®Æ¼¿Í ¿­·ÁÀÖ´Â Á¾·á µÈ °æ°è ¼¼Æ®°¡ ÀÖ´ÂÁö ¿©ºÎ¸¦ Àμâ ÇÒ ¼ö ÀÖ½À´Ï´Ù. SurectBits "Noroot"Ç÷¡±×°¡¾ø´Â ¿­¸° °æ°è ÁýÇÕÀº execve¸¦ È£ÃâÇÏ¿© UID 0À» À¯ÁöÇÏ´Â ¾Û¿¡ ´ëÇÑ Àüü ±â´É ¿¡½ºÄ÷¹À̼ÇÀ» Çã¿ëÇÕ´Ï´Ù. Æ÷ÇÔ µÈ À¯Æ¿¸®Æ¼´Â °ü¸®ÀÚ¿Í °³¹ßÀÚ°¡ ³Ê¹« ¸¹Àº ±ÇÇÑÀ¸·Î ½ÇÇàµÉ ¼öÀÖ´Â ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î ¾ÛÀ» ½ºÆý ¾ÛÀ» º¸µµ·ÏÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¸ðµç Á¶»ç´Â ħÀÔÀ»À§ÇÑ ÁÖ¿ä ¸ñÇ¥°¡µÇ±â ¶§¹®¿¡ ³×Æ®¿öÅ© Á÷¸é ¾ÛÀ¸·Î ½ÃÀÛÇؾßÇÕ´Ï´Ù. NetCAP ÇÁ·Î±×·¥Àº ½ÇÇàÁßÀÎ ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥À» ¸ðµÎ È®ÀÎÇÏ°í °á°ú¸¦ Ç¥½ÃÇÕ´Ï´Ù. NetCap¿¡¼­ Ãâ·Â µÈ »ùÇà Ãâ·Â : PPID PID ACCT ¸í·É À¯Çü Æ÷Æ® CAPABILITIE12295 ROOT NASD TCP 8000 FULL23232383 ·çÆ® DNSMASQ TCP 53 NET_ADMIN, NET_RAW +12286 ·çÆ® SSHD TCP 2286 ·çÆ® SSHD TCP 22 Full12365 ·çÆ® Cupsd TCP 631 Full12286 ·çÆ® SSHD TCP622 Full12365 ·çÆ® CupsD TCP6631 Full23232383 ·çÆ® DNSMASQ UDP 53 NET_ADMIN, NET_RAW +23232383 ·çÆ® DNSMASQ UDP 67 NET_ADMIN, NET_RAW +12365 ·çÆ® CUPSD UDP 631 Fullbut ´©±º°¡°¡ ½Ã½ºÅÛ¿¡ µé¾î°¡¼­ ºÎºÐÀû ¿ª·® ¸¸ ÀÖÀ¸¸é ´ÙÀ½ ¸ñÇ¥°¡ÀÖÀ» ¼öÀÖ´Â °Í¸¸ÀÌ µÉ °ÍÀÔ´Ï´Ù. °¡µæ Â÷ÀÖ´Â PRIC¸¦ ¾òÀ¸ ½Ê½Ã¿ä? PSCAP ÇÁ·Î±×·¥¿¡¼­´Â ÇöÀç ±ÇÇÑÀÌÀÖ´Â ½Ã½ºÅÛ¿¡¼­ ÇöÀç ½ÇÇàÁßÀÎ ¸ðµç ¾ÛÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ»óÀûÀ¸·Î, UID 0À¸·Î ½ÇÇàÁßÀÎ ¸ðµç ¾ÛÀº ±ÇÇÑÀ» »èÁ¦ÇؾßÇÕ´Ï´Ù. ÀϺδ ³ªÁß¿¡ ¼³¸í µÈ °Íó·³ ÁÁÀº ÀÌÀ¯·Î ÇÒ ¼ö ¾ø½À´Ï´Ù. ±×·¯³ª ¸¹Àº CAN.IF ÀÌÀ¯°¡ ³Ê¹« ¿­½ÉÈ÷ ¶Ç´Â ¾Û °³¹ßÀÚ°¡ º¯°æÀ» ²¨¸®´Â °ÍÀ¸·Î ´À³¢´Â °æ¿ì, ÆÄÀÏ ½Ã½ºÅÛÀÌ È®Àå µÈ ¼Ó¼ºÀÌ ÀÖ°í Ä¿³ÎÀÌ ÆÄÀÏ ½Ã½ºÅÛ ±â¹Ý ±â´ÉÀ» Áö¿øÇÏ´Â °æ¿ì ÆÄÀÏÀ» FileCapÀ» »ç¿ëÇÏ¿© ÆÄÀÏ ±â¹Ý ±â´ÉÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÆÄÀÏ ½Ã½ºÅÛ ±â¹Ý ±â´ÉÀÌÀÖ´Â ½Ã½ºÅÛÀÇ ÆÄÀÏÀ» °Ë»ö ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Beloper Commenti´Â ÆÄÀÏ ½Ã½ºÅÛ ±â¹Ý ±â´ÉÀÇ Àǵµ Áß Çϳª°¡ °ü¸®ÀÚ°¡ º¸¾È À§Çè ÇÁ·ÎÇÊÀ» Á¦¾îÇÏ°í ½Ã½ºÅÛ¿¡ µ¶¸³ÀûÀ¸·Î ¾ÛÀÇ ¾ÛÀÇ ¾ÛÀÇ Æ¯±ÇÀ» »èÁ¦ÇÒ ¼öÀÖ°ÔÇÏ´Â °ÍÀÌ ¾ú½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ°¡ ¼öÇàÇÕ´Ï´Ù. ³ª´Â ±ÇÇÑÀ» ¶³¾î ¶ß¸®´Â °Í¿¡ ´ëÇÑ ³·Àº äÅ÷üÀÌ ³·Àº API°¡ ¸ðµç ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇØ Áö·çÇÏ°í ¾Û °³¹ßÀÚ°¡ ±×°ÍÀ» »ç¿ëÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» »ç¿ëÇÏ·Á¸é ·çÆ®°¡ ÇÊ¿äÇÏ´Ù°í ¸»ÇÏ´Â ¾ÛÀº ¸î °³ÀԴϱî? ÀÌ°ÍÀº ·çÆ® »ç¿ëÀÚÀÎÁö È®ÀÎÇÏ´Â °ÍÀÌ ÇϳªÀÇ ÄÚµå¶ó´Â ÄÚµå ¶óÀÎÀ̱⠶§¹®ÀÔ´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â ¾Æ¸¶ ƯÁ¤ ±â´ÉÀÌ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¾Ë°í ÀÖÁö¸¸ ´ë½Å ¹Ù·Î °¡±â¸¦ ¼±ÅÃÇß½À´Ï´Ù. ³ª´Â »ç¿ëÇϱ⠽±°Ô API¸¦ »ç¿ëÇÏ¿© º¯°æÇÏ°í ½Í¾ú½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ°¡ 20 ÁÙÀÇ Äڵ带 Ãß°¡ÇÏ´Â °Íº¸´Ù 3-4 ¶óÀÎ ÆÐÄ¡¸¦ ¼ö¶ôÇÏ´Â °ÍÀÌ ´õ ½±½À´Ï´Ù. Probabaly 6 »ç¿ë »ç·Ê°¡ ÀÖ½À´Ï´Ù : ¸ðµç ±â´ÉÀ» »èÁ¦, ÇϳªÀÇ ±â´É À¯Áö, ¿©·¯ ±â´É À¯Áö, È®ÀÎ ¸ðµç ±â´ÉÀÌ ÀÖÀ¸¸é ƯÁ¤ ±â´ÉÀ» È®ÀÎÇÏ°í UID º¯°æ¿¡ °ÉÃÄ ±â´ÉÀ» À¯ÁöÇÕ´Ï´Ù. libcap-ng (±×¸®°í Áö±Ý ÆÄÀ̽㿡¼­)¸¦ »ç¿ëÇÏ¿© ¾Æ·¡ °¢°¢À» ¼öÇàÇÏ´Â °ÍÀÌ ¾ó¸¶³ª ½¬¿îÁö¸¦ º¸¿©ÁÙ °ÍÀÔ´Ï´Ù. 1) ¸ðµç ±â´ÉÀ» »èÁ¦ÇÕ´Ï´Ù capng_clear (capng_select_both); capng_apply (capng_select_both); 2) ÇϳªÀÇ ´É·Â capng_clear (capng_select_both)¸¦ À¯ÁöÇÕ´Ï´Ù. CAPNG_UPDATE (capng_add, capng_effective | capng_permitted, cap_chown); capng_apply (capng_select_both); 3) ¿©·¯ ±â´ÉÀ» CAPNG_CLEAR (capng_select_both) À¯Áö; CAPNG_UPDATEV (capng_add, capng_effective | capng_permitted, cap_setuid, cap_setgid, -1); capng_apply (capng_select_both); 4) DO_SOMENTHENTITION (capng_sho_capabilities)> capng_none (capng_none); 5) do_something (); 6) ´É·ÂÀ» À¯ÁöÇÏ´Â °æ¿ì, capng_have_capabilities (capng_have_capabilities); UID CAPNG_CLEAR (capng_select_both); CAPNG_UPDATE (capng_add, capng_effective | capng_permitted, cap_chown); if (capng_change_id (99, 99, capng_drop_supp_grp | capng_clear_bounding)) ¿À·ù (); ÀÌÁ¦ ÈξÀ ´õ °£´ÜÇÏÁö ¾Ê½À´Ï±î? ¸¶Áö¸· ¿¹Á¦´Â ÀÌÀü ±â´É ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ¾à 60 ÁÙÀÇ Äڵ尡 ÇÊ¿äÇÕ´Ï´Ù. 0.6 ¸±¸®½º¿¡¼­´Â AutoTools Config ½Ã½ºÅÛ¿¡ libcap-ng¸¦ Ãß°¡ÇÏ´Â µ¥ µµ¿òÀ̵Ǵ M4 ¸ÅÅ©·Î ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. configure.ac¿¡¼­ libcap_ng_path¸¦ Ãß°¡ÇϽʽÿÀ. ±×·± ´ÙÀ½ makefile.am libcap-ng¿¡ ¸µÅ©ÇÏ´Â ¾ÛÀ» ã¾Æ _DADD Ç׸ñ¿¡ $ (capng_ldadd)¸¦ Ãß°¡ÇϽʽÿÀ. ±×¸®°í ¸¶Áö¸·À¸·Î #ifdef has_libcap_ng.oneÀÇ ¼±ÅÃÀû ±â´É Äڵ带 µÑ·¯½Î´ÂÀÌ ¶óÀ̺귯¸®ÀÇ HAD_LIBCAP_NG.ONE Ãø¸éÀº ´Ù¸¥ Á¾·ùÀÇ ±â´É ¼¼Æ® ÀÎ °Íó·³ °æ°è ¼¼Æ®¸¦ ó¸®ÇÏ´Â °ÍÀÔ´Ï´Ù. È¿°úÀûÀ̰ųª Çã¿ëµÇ°Å³ª »ó¼Ó °¡´ÉÇÑ °Í°ú µ¿ÀÏÇÑ ±â´Éµµ bounding_setÀ» ÃëÇÕ´Ï´Ù. ±×·¯³ª ¶§·Î´Â °æ°è ÁýÇÕÀ» ¸¸Áö°í ½ÍÁö ¾ÊÀ¸¹Ç·Î API´Â ÀüÅëÀûÀÎ ±â´É, °æ°è ¼¼Æ® ¶Ç´Â µÑ ´Ù¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÑ °¡Áö´Â °æ°è ¼¼Æ®¸¦ º¯°æÇÏ·Á´Â °æ¿ì SetPCAP ±â´ÉÀÌ ÀÖ¾î¾ßÇÕ´Ï´Ù. SetPCAP ±â´É ¾øÀ̵µ ¾ðÁ¦µçÁö ÀüÅëÀûÀÎ ±â´ÉÀ» ¶³¾î ¶ß¸± ¼ö ÀÖ½À´Ï´Ù. "´É·Â (7)"¸Ç ÆäÀÌÁö¿¡¼­ ÀÌ°Í¿¡ ´ëÇØ ÀÚ¼¼È÷ ¾Ë¾Æº¸½Ê½Ã¿À.


libcap-ng. °ü·Ã ¼ÒÇÁÆ®¿þ¾î