Ñо¿SELinuxÈýÖÖÕ½ÂÔÀàÐÍ
SELinux£¨Security-Enhanced Linux£©ÊÇLinuxϵͳÖеÄÒ»¸öÇå¾²×Óϵͳ£¬ËüÌṩÁË»á¼û¿ØÖÆÇå¾²»úÖÆ£¬Í¨¹ýÇ¿ÖÆ»á¼û¿ØÖÆ£¨MAC£©À´ÏÞÖƳÌÐòºÍÓû§µÄÐÐΪ£¬ÒÔÌá¸ßϵͳµÄÇå¾²ÐÔ¡£SELinuxµÄ½¹µãÊÇ»ùÓÚÕ½ÂԵĻúÖÆ£¬¿ÉÒÔͨ¹ý²î±ðÀàÐ͵ÄÕ½ÂÔÀ´¿ØÖƲî±ðµÄ»á¼ûȨÏÞ¡£
ÔÚSELinuxÖУ¬ÓÐÈýÖÖÖ÷ÒªµÄÕ½ÂÔÀàÐÍ£¬°üÀ¨£º»ùÓÚ½ÇÉ«µÄ»á¼û¿ØÖÆ£¨RBAC£©¡¢»ùÓÚÀàÐ͵Ļá¼û¿ØÖÆ£¨TE£©¡¢ºÍ»ùÓÚÊôÐԵĻá¼û¿ØÖÆ£¨MLS£©¡£ÏÂÃ潫»®·ÖÆÊÎöÕâÈýÖÖÕ½ÂÔÀàÐÍ£¬²¢¸½ÉÏÏìÓ¦µÄ´úÂëʾÀý¡£
»ùÓÚ½ÇÉ«µÄ»á¼û¿ØÖÆ£¨RBAC£©£º
»ùÓÚ½ÇÉ«µÄ»á¼û¿ØÖÆÊÇSELinuxÖÐÒ»ÖÖ»ù±¾µÄÕ½ÂÔÀàÐÍ£¬Ëüͨ¹ý½ç˵²î±ðµÄ½ÇÉ«À´¸øÓè²î±ðµÄȨÏÞ¡£Ã¿¸ö½ÇÉ«¿ÉÒÔÓµÓÐһϵÁеÄȨÏÞ£¬¶øÓû§Ôòƾ֤×ÔÉíµÄ½ÇÉ«±»ÊÚÓèÏìÓ¦µÄȨÏÞ¡£Í¨¹ý»ùÓÚ½ÇÉ«µÄ»á¼û¿ØÖÆ£¬¿ÉÒÔʵÏÖÔ½·¢Ï¸Á£¶ÈµÄȨÏÞ¿ØÖÆ¡£
ʾÀý´úÂ룺
# ½ç˵һ¸öÃûΪadminµÄ½ÇÉ« semanage login -a -s admin admin_user # ½«½ÇÉ«adminÊÚÓèÄܹ»»á¼ûij¸öÎļþµÄȨÏÞ chcon -R -t admin_t /path/to/file
µÇ¼ºó¸´ÖÆ
»ùÓÚÀàÐ͵Ļá¼û¿ØÖÆ£¨TE£©£º
»ùÓÚÀàÐ͵Ļá¼û¿ØÖÆÊÇSELinuxÖеÄÁíÒ»ÖÖÕ½ÂÔÀàÐÍ£¬ËüÖ÷Ҫͨ¹ý½ç˵²î±ðµÄ¹¤¾ßÀàÐÍÀ´¿ØÖƲî±ð¹¤¾ßÖ®¼äµÄ»á¼ûȨÏÞ¡£Ã¿¸ö¹¤¾ßÀàÐͶ¼ÓÐÆäÏìÓ¦µÄ»á¼û¹æÔò£¬ÒÔ¼°ÔÊÐí»á¼û¸Ã¹¤¾ßÀàÐ͵ÄÖ÷Ì塣ͨ¹ý»ùÓÚÀàÐ͵Ļá¼û¿ØÖÆ£¬¿ÉÒÔʵÏÖ¶ÔÎļþ¡¢Àú³ÌµÈ²î±ð¹¤¾ßµÄ»á¼û¿ØÖÆ¡£
ʾÀý´úÂ룺
# ½ç˵һ¸öÃûΪmyappµÄÀàÐÍ semanage fcontext -a -t myapp_exec_t /path/to/myapp # ½«myapp_exec_tÀàÐ͸¶ÓëmyappÀú³ÌµÄȨÏÞ allow myapp_t myapp_exec_t: file { execute }
µÇ¼ºó¸´ÖÆ
»ùÓÚÊôÐԵĻá¼û¿ØÖÆ£¨MLS£©£º
»ùÓÚÊôÐԵĻá¼û¿ØÖÆÊÇSELinuxÖÐ×îΪÑÏ¿áºÍÎÞаµÄÒ»ÖÖÕ½ÂÔÀàÐÍ£¬ËüÖ÷Ҫͨ¹ý½ç˵¹¤¾ßµÄÇå¾²¼¶±ðÊôÐÔÀ´¿ØÖÆ»á¼ûȨÏÞ¡£Ã¿¸ö¹¤¾ß¶¼ÓÐÆäÏìÓ¦µÄÇå¾²¼¶±ð±êÇ©£¬Ö»ÓÐÓë֮ƥÅäµÄÖ÷Ìå²Å»ª»á¼û¸Ã¹¤¾ß¡£MLSÕ½ÂÔÀàÐÍͨ³£Ó¦ÓÃÓÚÐèÒªÑÏ¿á±£»¤ÐÅÏ¢µÄ³¡¾°£¬Èç¾üÊ¡¢Õþ¸®µÈÁìÓò¡£
ʾÀý´úÂ룺
# ΪÎļþÉèÖÃMLS¼¶±ðÊôÐÔ chcon unconfined_u:system_r:unconfined_t:s0-s0:c0.c1023 /path/to/file # ¼ì²éMLS¼¶±ðÊôÐÔ ls -Z /path/to/file
µÇ¼ºó¸´ÖÆ
ͨ¹ýÒÔÉÏ´úÂëʾÀý£¬¿ÉÒÔ¸üºÃµØÃ÷È·SELinuxÖвî±ðÕ½ÂÔÀàÐ͵ÄÓ¦Ó÷½·¨ºÍ¿ØÖÆÔÀí¡£²î±ðµÄÕ½ÂÔÀàÐÍ¿ÉÒÔƾ֤ÏÖʵÐèÇóÀ´Ñ¡ÔñºÍÉèÖã¬ÒÔʵÏÖϵͳµÄÇå¾²±£»¤ºÍ»á¼û¿ØÖÆ¡£ SELinuxµÄÕ½ÂÔÀàÐͲ»µ«ÌṩÁËÖÜÈ«µÄÇå¾²±£»¤£¬Í¬Ê±Ò²ÎªÏµÍ³ÖÎÀíÔ±ÌṩÁ˸ü¶àÎÞаÐԺͿɶ¨ÖÆÐÔ£¬×ÊÖúËûÃǸüºÃµØÖÎÀíºÍ±£»¤ÏµÍ³¡£
ÒÔÉϾÍÊÇÑо¿SELinuxÈýÖÖÕ½ÂÔÀàÐ͵ÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡