linux shell脚本

刚开始写shell脚本,还不是很熟练:)

题目!

avatar

下面是题目要求检查的

#File Name: first.sh
#!/bin/bash
groupadd grp01
useradd -g grp01 alice
useradd -g grp01 bob

cp /etc/fstab /var/tmp/fstab
#a)
chown -R root:grp01 /var/tmp/fstab
#b)
chmod g-r,o-r,u+x /var/tmp/fstab
#acl
chown -R alice.grp01 /var/tmp/fstab

先自己通过一些命令看看以上是否正确,因为今日主要写下面的检查脚本,所以先保证题设正确

然后就是来检查上述的功能是否都执行正确了

#File Name: cheak.sh

#!/bin/bash
echo "**************************"
echo "* 选项:"
echo "* 1:检查用户及属组"
echo "* 2:检查fstab是否成功复制"
echo "* 3:检查fstab所属组"
echo "* 4:检查fstab权限"
echo "* 5:检查acl配置"
echo "**************************"
read -p "请选择:" option

case "$option" in
        1)
                group_alice=$( groups alice )
                group_bob=$( groups bob )
                echo $group_alice
                echo $group_bob 
                if [[ ${group_alice##* } = 'grp01' ]] && [[ ${group_bob##* } = 'grp01' ]]
                then
                        echo "OK!"
                else
                        echo "NO!"
                fi
        ;;
        2)
                filename=$( ls /var/tmp | grep "fstab" )
                if [[ $filename = 'fstab' ]]
                then
                        echo "/var/tmp/$filename"
                        echo "OK!"
                else
                        echo "NO!"
                fi
        ;;
        3)
                fileinf=$( ll -g /var/tmp/fstab )
                echo ${fileinf:14:5}
                if [[ ${fileinf:14:5} = 'grp01' ]]
                then
                        echo "OK!"
                else
                        echo "NO!"
                fi
        ;;
        4)
                echo "user:${fileinf:1:3} group:${fileinf:4:3} others:${fileinf:7:3}"
              if [[ ${fileinf:3:1} = 'x' ]] && [[ ${fileinf:6:1} = '-' ]] && [[ ${fileinf:9:1} = '-' ]]
                then
                        echo "OK!"
                else
                        echo "NO!"
                fi
        ;;
        5)
                fileacl_alice=$( getfacl /var/tmp/fstab | grep "alice" )
                fileacl_bob=$( getfacl /var/tmp/fstab | grep "bob" )
                echo $fileacl_alice
                echo $fileacl_bob
                if [[ ${fileacl_alice##*:} = 'rw-' ]] && [[ ${fileacl_bob##*:} = '---' ]]
                then
                        echo "OK!"
                else
                        echo "NO!"
                fi
        ;;
esac