Shell实操(四):判断文件和目录的权限并修改

目录

一、需求

二、实现及关键知识点

1、脚本内容

2、关键知识点

三、验证


一、需求

检查指定目录下的所有文件和目录,查看是否满足以下条件:

  1. 所有文件权限为644
  2. 所有目录权限为755
  3. 文件和目录的所属者为www,所属组为root

如果不满足上述条件,改为符合要求,注意:不要直接修改权限,需要有判断前提。

二、实现及关键知识点

1、脚本内容

# cat 4.sh 
#! /bin/bash
cd /usr/local/src/shell/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

2、关键知识点

(1)stat的用法

(2)连接符&&的用法

(3)循环遍历for和条件判断if的用法

三、验证

#准备用户和组
# useradd -G  root  www
#准备文件和目录
# ll
total 0
-rw-r--r-- 1 root root 0 Nov 23 13:35 1.txt
-rw--w--w- 1 root root 0 Nov 23 13:35 2.txt
-rw-r--r-- 1 root root 0 Nov 23 13:35 3.txt
drwxr--r-- 2 root root 6 Nov 23 13:37 test1
drwxr--r-- 2 root root 6 Nov 23 13:37 test2
#执行脚本
# bash 4.sh
#查看结果,文件和目录都改为满足要求权限
# ll data/wwwroot/app/
total 0
-rw-r--r-- 1 www root 0 Nov 23 13:35 1.txt
-rw-r--r-- 1 www root 0 Nov 23 13:35 2.txt
-rw-r--r-- 1 www root 0 Nov 23 13:35 3.txt
drwxr-xr-x 2 www root 6 Nov 23 13:37 test1
drwxr-xr-x 2 www root 6 Nov 23 13:37 test2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值