【shell一天一练】stat命令

88 阅读1分钟

今日小练题目📢

检查/data/wwwroot/app目录下所有文件和目录,看是否满足下面条件: 1)所有文件权限为644 2)所有目录权限为755 3)文件和目录所有者为www,所属组为root 如果不满足,改成符合要求 注意,不要直接改权限,一定要有判断的过程。

优秀作业🤌🏻

#!/bin/bash
#author:xYLiuuuuuu
#version: v1
#date: 2024-11-16

cd ./data/wwwroot/app
for f in `find .`
do
        f_p=`stat -c %a $f`
        f_u=`stat -c %U $f`
        f_g=`stat -c %G $f`

        if [ -d $f ]
        then
                [ $f_p != '755' ] && chmod 755 $f
        else
                [ $f_p != '644' ] && chmod 644 $f
        fi

        [ $f_u != 'www' ] && chown www $f
        [ $f_g != 'root' ] &&  chown :root $f
done

<<'COMMENT'
哈哈哈哈哈哈哈哈哈
COMMENT

敲黑板📝

  • stat命令
# 查看file权限
stat -c %a file 

# 查看file所属组
stat -c %G file

# 查看file所属用户
stat -c %U file

  • && 可以实现:当前面命令执行成功再执行后面命令
  • || 可以实现:当前面命令不成功再执行后面命令