【发布时间】:2014-05-24 16:17:11
【问题描述】:
我正在尝试制作一个基于服务设置变量的脚本。脚本小而简单。从逻辑上讲,它应该可以工作,但是我对自己做错了什么感到迷茫。命令将是: setsebool -P Boolean # 设置布尔值。
#!/bin/bash
read -p "Which service do you wish to see?" serv
IFS=$'\r\n' boolser=($(getsebool -a | grep $serv | cut -d- -f1))
for (( f=0; f <=`echo "${#boolser[@]}"`; f++ ));do
if [ ${boolser[$f]} > /dev/null ];then
boolbleed="${boolser[$f]}"
while true; do
read -p "Set $boolbleed (0/1)" yn
case $yn in
0) setsebool -P $boolbleed 0; break;;
1) setsebool -P $boolbleed 1; break;;
*) echo "$yn is not a 0 or a 1";;
esac
done
else
unset ${boolser[$f]}
fi
done
这些是运行脚本的结果:
[root@testing Downloads]# ./sebool-vsftpd-remove
Which service do you wish to see?ftp
Set allow_ftpd_anon_write (0/1)0
Boolean allow_ftpd_anon_write is not defined
Set allow_ftpd_full_access (0/1)1
Boolean allow_ftpd_full_access is not defined
运行脚本后,剩下的是:
[root@testing Downloads]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> on
ftpd_connect_db --> on
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> on
tftp_anon_write --> on
tftp_use_cifs --> off
tftp_use_nfs --> off
有谁知道为什么没有定义布尔值?手动输入代码时setsebool -P allow_ftpd_anon_write 1 就成功了。
【问题讨论】:
标签: bash loops boolean selinux