原文鏈接:https://home.cnblogs.com/blog/
問題描述:
近日,在測試優化腳本的時候遇到一個問題。腳本命令如下
# close selinux
setenforce 0 &&
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinux
當設置完畢后,查看/etc/sysconfig/selinux的確是關閉了,但是當我准備臨時開啟selinux時問題出現:
[slothbear@bear~]$ setenforce 1
setenforce:SELinux is disabled
臨時開啟失敗了。經查詢,網絡大神說當selinux關閉時,臨時開啟是提示關閉的。因此我又修改/etc/sysconfig/selinux,重啟系統后,發現selinux還是關閉狀態的。查看日志提示
系統在運行的時候就將selinux關閉了。但是配置文件中明明是開啟啊。
[slothbear@bear ~]$ cat /etc/selinux/config
# This file controls the state of SELinux on thesystem.
# SELINUX= can take one of these three values:
#enforcing- SELinux security policy is enforced.
#permissive- SELinux prints warnings instead of enforcing.
#disabled - No SELinux policy is loaded.
SELINUX=enforcing 此處設置開啟
# SELINUXTYPE= can take one of these two values:
#targeted -Targeted processes are protected,
#mls -Multi Level Security protection.
SELINUXTYPE=targeted
絞盡腦汁,從開始設置腳本查起,在man sed命令后才發下如下提示
sed –i會破壞原有文件的的軟鏈接或硬鏈接。
搞到這里才徹底明白,原來我在用腳本修改/etc/sysconfig/selinux文件后。它已經不在是/etc/selinux/config的鏈接文件,從而變成了一個普通文件,因此無論你在如何修改/etc/sysconfig/selinux和重啟系統,它都不會生效。
解決辦法:
[root@bear ~]# rm -rf /etc/sysconfig/selinux刪除原軟鏈接文件
[root@bear sysconfig]# ln -s /etc/selinux/config/etc/sysconfig/selinux重新創建軟鏈接文件
[root@bear sysconfig]# ls -li |grep selinux 查看軟鏈接文件是否生效
74 lrwxrwxrwx1 root root19 Mar 23 02:48 selinux -> /etc/selinux/config
[root@bear sysconfig]# cat /etc/sysconfig/selinux查看軟鏈接文件內容是否和源文件一樣
# This filecontrols the state of SELinux on the system.
# SELINUX= can takeone of these three values:
#enforcing - SELinux security policyis enforced.
#permissive - SELinux prints warningsinstead of enforcing.
#disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= cantake one of these two values:
#targeted - Targeted processes areprotected,
#mls - Multi Level Security protection.
SELINUXTYPE=targeted
然后修改SELINUX= enforcing,重啟系統后插敘selinux狀態
[slothbear@bear ~]$getenforce
Enforcing
selinux起來了,說明配置文件生效了。
重啟時會出現如下提示:
***Warning -- SELinux targeted policy relabel is required.
***Relabeling could take a very long time, depending on file
***system size and speed of hard drives.
警告的意思是說,selinux的targeted策略要求重新打標簽,應該是對系統所有的文件打上一個selinux標簽,速度的快慢由系統文件的多少和硬盤的速度決定。
經驗教訓:
從這個事故中讓我認識到了熟知命令參數意義的重要性,之前只是知道sed -i可以修改文件內容,卻忽略了后面的介紹。從而也讓我學到了另一個知識,當你用sed –i來修改文件時,一定要修改源文件,千萬不要修改它的硬鏈接或者軟鏈接文件。防止破壞鏈接文件后,自己還一無所知。
原文鏈接:https://home.cnblogs.com/blog/

