脚本代码
#!/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的状态是什么样的,询问用户是否进程重启操作系统。
我的微信
这是我的微信扫一扫
评论