首頁 > 軟體

SELinux一鍵開啟與禁用指令碼

2020-06-16 17:08:38

SELinux是美國國家安全域性(NSA)對於強制存取控制的實現,是 Linux歷史上最傑出的新安全子系統。但是SELinux的並不能與眾多服務很好的相容,有些人會關閉SELinux一了百了。在日常的運維過程中很少去頻繁的開啟關閉SElinux,今天我就寫一個關閉與開啟SELinux的指令碼來鍛鍊我的指令碼能力。

指令碼程式碼

#!/bin/bash  
#  -------------+--------------------   
# * Filename    :       selinux.sh           
# * Revision    :       2.0             
# * Date        :       2017-09-02
# * Author      :       Aubin           
# * Description :                       
#  -------------+---------------------
#       www.shuaiguoxia.com
#

path=/app/selinux
selinux=`sed -rn "/^(SELINUX=).*$/p" $path`

case $1 in
enforcing|en)

        sed -ri "s@^(SELINUX=).*$@1enforcing@g" $path
        if [ $selinux ==  'SELINUX=disabled' ];then
                read -p "SELinux enforcing. you need reboot system ( yes or no ):" input
                [ $input == 'yes' -o $input == 'y' ] && reboot || echo "please Manual operation reboot"
        else
                echo "SELinux enforcing."
        fi
        ;;
permissive|per|pe)
        sed -ri "s@^(SELINUX=).*$@1permissive@g" $path
        if [ $selinux == 'SELINUX=disabled' ];then
                read -p "SELinux permissive. you need reboot system ( yes or no ):" input
                [ $input == 'yes' -o $input == 'y'] && reboot || echo "please Manual operation reboot"
        else
                echo "SELINUX permissive"
        fi
        ;;
disabled|dis|di)
        sed -ri "s@^(SELINUX=).*$@1disabled@g" $path
        if [ $selinux == 'SELINUX=enforcing' ];then
                 read -p "SELinux permissive. you need reboot system ( yes or no ):" input
                [ $input == 'yes' -o $input == 'y' ] && reboot || echo "please Manual operation reboot"
        else
                echo "SELINUX disabled"
        fi
        ;;
l|a)
        echo `sed -nr 's@(^SELINUX=.*)@1@p' $path`
        ;;
help|--help)
        echo "$0 [ enforcing | permissive | disabled  ]"
        ;;
*)
        echo "$0 [ enforcing | permissive | disabled  ]"

        ;;
esac

指令碼測試

叨叨叨

  • 根據case語句對使用者的位置變數(輸入的引數)進行判斷,進而根據不同的引數實現不同的效果。
  • SELinux在enforcing狀態與disabled狀態切換時必須要進行重新啟動才能生效,所以要在指令碼中判斷使用者之前的SELinux的狀態是什麼樣的,詢問使用者是否進程重新啟動作業系統。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-09/146706.htm


IT145.com E-mail:sddin#qq.com