0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍一个文件权限检测器

阿铭linux 来源:阿铭linux 作者:阿铭 2022-11-04 09:04 次阅读

这里有个简单的需求,需要用shell脚本实现:

检查/data/wwwroot/app目录下所有文件和目录,看是否满足下面条件:

1)所有文件权限为644

2)所有目录权限为755

3)文件和目录所有者为www,所属组为root

如果不满足,改成符合要求,注意,不要直接改权限,一定要有判断的过程。

这个需求并不算难,同样核心命令也是find,关键点在于如何判断。也许你想find出来之后直接修改权限或者修改所有者和所属组,但这是不符合要求的,因为你没有加判断。

先来看find的一个用法:

find  /dir  -type f  -perm 644

这样可以找到权限为644的文件,但需求中要求的是不为644的,那该怎么做呢?

这样做即可:

find  /dir  -type f  ! -perm 644

也就是加一个! 就达到目的了,也可以这样:

find  /dir  -type f  -not  -perm 644

同理,目录权限不是755,可以这样找:

find /dir  -type d -not  -perm  755

find也可以找所属组和所有者:

find  /dir  -group  root
find  /dir  -user root

除了使用find外,我们也可以使用stat命令来获取文件或者目录的权限、属主、属组,stat这样用:

查看文件权限:stat  -c  %a  1.txt
查看文件所属组:stat -c %G  1.txt
查看文件所有者:stat -c %U  1.txt

获取到权限后,再去做比对

p=`stat  -c  %a  1.txt`
if [ $p != '644' ]
then
    chmod 644 1.txt
fi

最终脚本如下:

#!/bin/bash
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

或者:

#!/bin/bash 
find /data/wwwroot/app/ -type d ! -prem 755 -exec chmod 755 {} ; 
find /data/wwwroot/app/ ! -type d ! -prem 644 -exec chmod 644 {} ;
find /data/wwwroot/app/ ! -user www -exec chown www {} ; 
find /data/wwwroot/app/ ! -group root -exec chgrp root {} ;

两个脚本相比,第一个只需要find一次,而第二个需要find四次,如果文件量很大,执行效率很差。






原作者:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 检测器
    +关注

    关注

    1

    文章

    865

    浏览量

    47704
  • Shell
    +关注

    关注

    1

    文章

    366

    浏览量

    23400
  • root
    +关注

    关注

    1

    文章

    86

    浏览量

    21399

原文标题:我想要个文件权限检测器

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    耐用的破损玻璃检测器

    分析结果(通过分析峰值容量、过零数和频率成分等信号特征得出)为基础。通过板载蜂鸣器和 LED 来指示玻璃破裂警报。稳固型玻璃破裂检测器会在实际玻璃破裂检测之前先进行额外的重击声
    发表于 05-06 11:24

    ECD检测器的原理是什么?

    ECD的发现是系列射线电离检测器发展的结果。1952 年首次出现了 β-射线横截面电离检测器;1958 年 Lovelock 提出 β-射线氩电离检测器
    发表于 10-16 09:01

    电流检测器分类和选型

    本帖最后由 uyuway 于 2021-2-19 22:34 编辑 文章介绍了电流检测器原理、分类和选型。包括交流电流检测器、直流电流检测器等。分析了电流
    发表于 02-19 22:30

    一个电线断线断点检测器原理是什么?

    一个电线断线断点检测器,原理是什么?
    发表于 03-17 06:51

    如何自制电磁辐射检测器

    请问如何自制电磁辐射检测器
    发表于 04-09 06:39

    电子俘获检测器检测方法

    电子俘获检测器检测方法 电子俘获检测器(ECD)是灵敏度最高的气相色谱检测器,同时又是最早出现的选择性检测器。它仅对那些能俘
    发表于 11-28 21:00 1529次阅读
    电子俘获<b class='flag-5'>检测器</b>及<b class='flag-5'>检测</b>方法

    检测器,光检测器是什么?

    检测器,光检测器是什么?  光信号经过光纤传输到达接收端后,在接收端有接收光信号的元件。但是由于目前我们对光的认
    发表于 02-27 17:44 1062次阅读

    电荷注入检测器(CID),电荷注入检测器原理

    电荷注入检测器(CID),电荷注入检测器原理 CID检测器发明于1973年。CID 读出方法是将电荷在检测单元内部移动,检测电压的变化。
    发表于 03-02 10:28 5738次阅读

    设计8位序列检测器的资料详细说明

    1.任务和设计要求:设计序列检测器,输入数据01011010的时候,DE2开发板的LED灯将会点亮,其他的情况都是灭掉。 2.序列检测器功能原理:序列
    发表于 09-09 15:33 39次下载
    设计<b class='flag-5'>一</b><b class='flag-5'>个</b>8位序列<b class='flag-5'>检测器</b>的资料详细说明

    NDIR气体检测器解决方案和PID气体检测器解决方案

    这是 ADI 公司关于气体检测器的第二篇文章,包含 NDIR(非色散红外)气体检测器解决方案和 PID(光离子)气体检测器解决方案。第篇文章介绍
    发表于 12-29 18:39 35次下载
    NDIR气体<b class='flag-5'>检测器</b>解决方案和PID气体<b class='flag-5'>检测器</b>解决方案

    什么是过零检测器 过零检测器的原理

    过零检测器检测输入信号过零值或零电压电平的次数。零检测器基本上是比较电路,将输入的正弦信号
    的头像 发表于 03-24 12:46 3104次阅读

    linux文件访问权限怎么设置

    Linux 文件访问权限是操作系统中非常重要的概念。正确地设置文件访问权限可以保护系统的安全
    的头像 发表于 11-23 10:20 1524次阅读

    Linux文件权限及Makefile

    操作系统)中,文件权限用于控制谁可以对文件进行哪些操作。文件权限权限位组合中表示为
    的头像 发表于 11-24 16:06 605次阅读
    Linux<b class='flag-5'>文件</b><b class='flag-5'>权限</b>及Makefile

    微波检测器优缺点 微波检测器的功能和作用

    微波检测器种利用微波技术对物体进行检测的设备。它广泛应用于军事、工业、医疗、交通等领域。本文将详细介绍微波检测器的优缺点、功能和作用。
    的头像 发表于 05-27 15:42 1657次阅读

    微波检测器的原理是什么 微波检测器的工作原理和用途

    微波检测器种利用微波技术进行检测的设备,广泛应用于通信、雷达、遥感、医疗等领域。本文将详细介绍微波检测器的原理、工作原理和用途。
    的头像 发表于 05-27 16:09 1857次阅读