2021-05-12 14:32:11
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
相關文章