0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹一個(gè)文件權(quán)限檢測器

阿銘linux ? 來源:阿銘linux ? 作者:阿銘 ? 2022-11-04 09:04 ? 次閱讀

這里有個(gè)簡單的需求,需要用shell腳本實(shí)現(xiàn):

檢查/data/wwwroot/app目錄下所有文件和目錄,看是否滿足下面條件:

1)所有文件權(quán)限為644

2)所有目錄權(quán)限為755

3)文件和目錄所有者為www,所屬組為root

如果不滿足,改成符合要求,注意,不要直接改權(quán)限,一定要有判斷的過程。

這個(gè)需求并不算難,同樣核心命令也是find,關(guān)鍵點(diǎn)在于如何判斷。也許你想find出來之后直接修改權(quán)限或者修改所有者和所屬組,但這是不符合要求的,因?yàn)槟銢]有加判斷。

先來看find的一個(gè)用法:

find  /dir  -type f  -perm 644

這樣可以找到權(quán)限為644的文件,但需求中要求的是不為644的,那該怎么做呢?

這樣做即可:

find  /dir  -type f  ! -perm 644

也就是加一個(gè)! 就達(dá)到目的了,也可以這樣:

find  /dir  -type f  -not  -perm 644

同理,目錄權(quán)限不是755,可以這樣找:

find /dir  -type d -not  -perm  755

find也可以找所屬組和所有者:

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

除了使用find外,我們也可以使用stat命令來獲取文件或者目錄的權(quán)限、屬主、屬組,stat這樣用:

查看文件權(quán)限:stat  -c  %a  1.txt
查看文件所屬組:stat -c %G  1.txt
查看文件所有者:stat -c %U  1.txt

獲取到權(quán)限后,再去做比對

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 {} ;

兩個(gè)腳本相比,第一個(gè)只需要find一次,而第二個(gè)需要find四次,如果文件量很大,執(zhí)行效率很差。






原作者:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 檢測器
    +關(guān)注

    關(guān)注

    1

    文章

    857

    瀏覽量

    47630
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    363

    瀏覽量

    23262
  • root
    +關(guān)注

    關(guān)注

    1

    文章

    85

    瀏覽量

    21363

原文標(biāo)題:我想要個(gè)文件權(quán)限檢測器

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    耐用的破損玻璃檢測器

    分析結(jié)果(通過分析峰值容量、過零數(shù)和頻率成分等信號特征得出)為基礎(chǔ)。通過板載蜂鳴器和 LED 來指示玻璃破裂警報(bào)。穩(wěn)固型玻璃破裂檢測器會在實(shí)際玻璃破裂檢測之前先進(jìn)行個(gè)額外的重?fù)袈?/div>
    發(fā)表于 05-06 11:24

    ECD檢測器的原理是什么?

    ECD的發(fā)現(xiàn)是系列射線電離檢測器發(fā)展的結(jié)果。1952 年首次出現(xiàn)了 β-射線橫截面電離檢測器;1958 年 Lovelock 提出 β-射線氬電離檢測器。
    發(fā)表于 10-16 09:01

    電流檢測器分類和選型

    本帖最后由 uyuway 于 2021-2-19 22:34 編輯 文章介紹了電流檢測器原理、分類和選型。包括交流電流檢測器、直流電流檢測器等。分析了電流
    發(fā)表于 02-19 22:30

    一個(gè)電線斷線斷點(diǎn)檢測器原理是什么?

    一個(gè)電線斷線斷點(diǎn)檢測器,原理是什么?
    發(fā)表于 03-17 06:51

    如何自制個(gè)電磁輻射檢測器?

    請問如何自制個(gè)電磁輻射檢測器
    發(fā)表于 04-09 06:39

    電子俘獲檢測器檢測方法

    電子俘獲檢測器檢測方法 電子俘獲檢測器(ECD)是靈敏度最高的氣相色譜檢測器,同時(shí)又是最早出現(xiàn)的選擇性檢測器。它僅對那些能俘
    發(fā)表于 11-28 21:00 ?1452次閱讀
    電子俘獲<b class='flag-5'>檢測器</b>及<b class='flag-5'>檢測</b>方法

    檢測器,光檢測器是什么?

    檢測器,光檢測器是什么?  光信號經(jīng)過光纖傳輸?shù)竭_(dá)接收端后,在接收端有個(gè)接收光信號的元件。但是由于目前我們對光的認(rèn)
    發(fā)表于 02-27 17:44 ?1044次閱讀

    電荷注入檢測器(CID),電荷注入檢測器原理

    電荷注入檢測器(CID),電荷注入檢測器原理 CID檢測器發(fā)明于1973年。CID 讀出方法是將電荷在檢測單元內(nèi)部移動,檢測電壓的變化。
    發(fā)表于 03-02 10:28 ?5640次閱讀

    設(shè)計(jì)個(gè)8位序列檢測器的資料詳細(xì)說明

    1.任務(wù)和設(shè)計(jì)要求:設(shè)計(jì)個(gè)序列檢測器,輸入數(shù)據(jù)01011010的時(shí)候,DE2開發(fā)板的LED燈將會點(diǎn)亮,其他的情況都是滅掉。 2.序列檢測器功能原理:序列
    發(fā)表于 09-09 15:33 ?39次下載
    設(shè)計(jì)<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>8位序列<b class='flag-5'>檢測器</b>的資料詳細(xì)說明

    NDIR氣體檢測器解決方案和PID氣體檢測器解決方案

    這是 ADI 公司關(guān)于氣體檢測器的第二篇文章,包含 NDIR(非色散紅外)氣體檢測器解決方案和 PID(光離子)氣體檢測器解決方案。第篇文章介紹
    發(fā)表于 12-29 18:39 ?35次下載
    NDIR氣體<b class='flag-5'>檢測器</b>解決方案和PID氣體<b class='flag-5'>檢測器</b>解決方案

    什么是過零檢測器 過零檢測器的原理

    過零檢測器檢測輸入信號過零值或零電壓電平的次數(shù)。零檢測器基本上是個(gè)比較電路,將輸入的正弦信號
    的頭像 發(fā)表于 03-24 12:46 ?2960次閱讀

    linux文件訪問權(quán)限怎么設(shè)置

    Linux 文件訪問權(quán)限是操作系統(tǒng)中個(gè)非常重要的概念。正確地設(shè)置文件訪問權(quán)限可以保護(hù)系統(tǒng)的安全
    的頭像 發(fā)表于 11-23 10:20 ?1425次閱讀

    Linux文件權(quán)限及Makefile

    操作系統(tǒng))中,文件權(quán)限用于控制誰可以對文件進(jìn)行哪些操作。文件權(quán)限權(quán)限位組合中表示為
    的頭像 發(fā)表于 11-24 16:06 ?532次閱讀
    Linux<b class='flag-5'>文件</b><b class='flag-5'>權(quán)限</b>及Makefile

    微波檢測器優(yōu)缺點(diǎn) 微波檢測器的功能和作用

    微波檢測器種利用微波技術(shù)對物體進(jìn)行檢測的設(shè)備。它廣泛應(yīng)用于軍事、工業(yè)、醫(yī)療、交通等領(lǐng)域。本文將詳細(xì)介紹微波檢測器的優(yōu)缺點(diǎn)、功能和作用。
    的頭像 發(fā)表于 05-27 15:42 ?1299次閱讀

    微波檢測器的原理是什么 微波檢測器的工作原理和用途

    微波檢測器種利用微波技術(shù)進(jìn)行檢測的設(shè)備,廣泛應(yīng)用于通信、雷達(dá)、遙感、醫(yī)療等領(lǐng)域。本文將詳細(xì)介紹微波檢測器的原理、工作原理和用途。
    的頭像 發(fā)表于 05-27 16:09 ?1262次閱讀