ÆÊÎöSELinux£ºÔÀíÓëʵ¼ù
½üÄêÀ´£¬Ëæ×ÅÐÅÏ¢ÊÖÒÕµÄѸÃÍÉú³¤£¬ÍøÂçÇå¾²ÎÊÌâÓú·¢Í¹ÏÔ¡£ÎªÁËÌáÉýϵͳµÄÇå¾²ÐÔ£¬ÖÖÖÖÇå¾²»úÖÆÓ¦Ô˶øÉú¡£ÆäÖУ¬SELinux£¨Security-Enhanced Linux£©×÷ΪһÖÖÇå¾²À©Õ¹Ä£¿é£¬±»ÆÕ±éʹÓÃÓÚLinuxϵͳ£¬ÎªÏµÍ³ÌṩÁ˸ü¸ß¼¶±ðµÄÇå¾²Õþ²ßʵÑé¡£
Ò»¡¢SELinux¹¦Ð§ÔÀí
ÒÔÊÚȨ»á¼ûµÄ·½·¨À´ÏÞÖƳÌÐòµÄȨÏÞºÍÐÐΪÊÇSELinuxµÄ½¹µãÍ·ÄÔ¡£¹Å°åµÄLinuxȨÏÞ»úÖÆ£¨ÈçȨÏÞλ»ò»á¼û¿ØÖÆÁÐ±í£©Í¨³£Ö»ÄܶÔÎļþ»òĿ¼ӦÓ㬶øSELinuxÔÊÐí¶Ôÿ¸ö³ÌÐò£¨¼´Àú³Ì£©¾ÙÐиüϸÄåµÄ¿ØÖÆ¡£
ÔÚSELinuxÖУ¬È¨ÏÞ¿ØÖÆÖ÷ÒªÒÀÀµÓÚ±êÇ©£¨Label£©»úÖÆ£¬¼´¸øÓèÿ¸öÀú³Ì¡¢Îļþ»òÕßÆäËû×ÊÔ´Ò»¸öΨһÎÞ¶þµÄ±êÇ©£¬Åú×¢ÆäÇå¾²ÉÏÏÂÎÄ¡£ÕâЩ±êÇ©±»³ÆΪSELinuxÇå¾²±êʶ·û£¨Security Identifier£¬¼ò³ÆSID£©¡£
SELinux²Ù×÷µÄ»ù±¾ÔªËØ°üÀ¨Ö÷Ì壨Subject£©¡¢¿ÍÌ壨Object£©ºÍ²Ù×÷£¨Operation£©¡£Ö÷Ìå´ú±í²Ù×÷µÄÖ÷Ì壬ºÃ±ÈÀú³Ì£»¿ÍÌå´ú±í±»²Ù×÷µÄ¹¤¾ß£¬ºÃ±ÈÎļþ£»²Ù×÷ÔòÖ¸µÄÊÇÖ÷Ìå¶Ô¿ÍÌåµÄ²Ù×÷ÐÐΪ¡£Í¨¹ý¶ÔÕâЩԪËØÖ®¼äµÄ¹Øϵ¾ÙÐпØÖÆ£¬SELinuxʵÏÖÁ˶Ôϵͳ×ÊÔ´µÄÇå¾²»á¼û¡£
¶þ¡¢SELinuxÏÖʵӦÓÃ
1. SELinuxÕ½ÂÔÖÎÀí
SELinuxµÄÕ½ÂÔÊÇÒ»¸öºÜÊÇÒªº¦µÄ¿´·¨£¬Ëü½ç˵ÁËϵͳÖÐÀú³ÌÄܹ»Ö´ÐÐÄÄЩ²Ù×÷£¬ÒÔ¼°¶ÔÄÄЩ×ÊÔ´¾ßÓлá¼ûȨÏÞ¡£Í¨³££¬ÏµÍ³ÖÎÀíԱƾ֤ϵͳµÄÐèÇóºÍÇå¾²ÒªÇ󣬱àд×Ô½ç˵µÄSELinuxÕ½ÂÔÎļþÀ´ÊµÏÖϸÁ£¶ÈµÄȨÏÞ¿ØÖÆ¡£
2. SELinuxÉÏÏÂÎÄ
SELinuxÉÏÏÂÎÄÉæ¼°µ½¶ÔÎļþ¡¢Àú³ÌµÈ×ÊÔ´¾ÙÐбê¼Ç£¬ÒÔ±ãSELinuxÄܹ»Æ¾Ö¤ÕâЩ±ê¼ÇÀ´×ö³öÇå¾²»á¼û¾öÒé¡£ÔÚLinuxÖУ¬¿Éͨ¹ýÏÂÁîls -ZÉó²éÎļþµÄSELinuxÉÏÏÂÎÄÐÅÏ¢£¬Í¨¹ýps -eZÀ´Éó²éÀú³ÌµÄSELinuxÉÏÏÂÎÄÐÅÏ¢¡£
3. SELinuxÉèÖÃ
ͨ³££¬Í¨¹ýÐÞ¸ÄSELinuxÉèÖÃÎļþ/etc/selinux/configÀ´ÉèÖÃSELinuxµÄÊÂÇéģʽ¡£³£¼ûµÄģʽ°üÀ¨¡°Enforcing¡±£¨Ç¿ÖÆÖ´ÐУ©¡¢¡°Permissive¡±£¨¿íËÉÖ´ÐУ©ºÍ¡°Disabled¡±£¨½ûÓÃSELinux£©µÈ¡£
Èý¡¢SELinuxµÄ´úÂëʾÀý
ÏÂÃ棬ÎÒÃÇͨ¹ýÒ»¸ö¼òÆӵĴúÂëʾÀýÀ´ÑÝʾSELinuxµÄÓ¦Óãº
import os # »ñÈ¡Ä¿½ñÀú³ÌµÄSELinuxÇå¾²ÉÏÏÂÎÄ def get_selinux_context(pid): try: with open(f"/proc/{pid}/attr/current", "r") as f: return f.read().strip() except FileNotFoundError: return "Not found" # »ñÈ¡Ä¿½ñÀú³ÌµÄPID£¬²¢´òÓ¡ÆäSELinuxÉÏÏÂÎÄ pid = os.getpid() selinux_context = get_selinux_context(pid) print(f"PID {pid} µÄSELinuxÉÏÏÂÎÄΪ£º{selinux_context}")
µÇ¼ºó¸´ÖÆ
ͨ¹ýÒÔÉÏ´úÂëʾÀý£¬ÎÒÃÇ¿ÉÒÔ»ñÈ¡Ä¿½ñÀú³ÌµÄSELinuxÇå¾²ÉÏÏÂÎÄ£¬²¢Êä³öµ½¿ØÖÆ̨¡£
½áÓï
×ܵÄÀ´Ëµ£¬SELinux×÷ΪһÖÖÖ÷ÒªµÄÇå¾²À©Õ¹Ä£¿é£¬ÎªLinuxϵͳÌṩÁËÇ¿Ê¢µÄÇå¾²±£»¤»úÖÆ¡£ÔÚÏÖʵӦÓÃÖУ¬ºÏÀíÉèÖúÍʹÓÃSELinux¿ÉÒÔ×ÊÖúÌáÉýϵͳµÄÇå¾²ÐÔ£¬×èֹDZÔÚµÄÇ徲Σº¦¡£Ï£Íû±¾ÎĶÔÄú¶ÔSELinuxµÄ¹¦Ð§ÔÀíºÍÏÖʵӦÓÃÓÐËùÆô·¢£¬²¢ÇÒ¶ÔÄúÓÐËù×ÊÖú¡£
ÒÔÉϾÍÊÇÆÊÎöSELinux£ºÔÀíÓëʵ¼ùµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡