這里有個(gè)簡(jiǎn)單的需求,需要用shell腳本實(shí)現(xiàn):
檢查/data/wwwroot/app目錄下所有文件和目錄,看是否滿足下面條件:
1)所有文件權(quán)限為644
2)所有目錄權(quán)限為755
3)文件和目錄所有者為www,所屬組為root
如果不滿足,改成符合要求,注意,不要直接改權(quán)限,一定要有判斷的過(guò)程。
這個(gè)需求并不算難,同樣核心命令也是find,關(guān)鍵點(diǎn)在于如何判斷。也許你想find出來(lái)之后直接修改權(quán)限或者修改所有者和所屬組,但這是不符合要求的,因?yàn)槟銢](méi)有加判斷。
先來(lái)看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命令來(lái)獲取文件或者目錄的權(quán)限、屬主、屬組,stat這樣用:
查看文件權(quán)限:stat -c %a 1.txt 查看文件所屬組:stat -c %G 1.txt 查看文件所有者:stat -c %U 1.txt
獲取到權(quán)限后,再去做比對(duì)
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í)行效率很差。
原作者:劉清
-
檢測(cè)器
+關(guān)注
關(guān)注
1文章
948瀏覽量
50137 -
Shell
+關(guān)注
關(guān)注
1文章
375瀏覽量
25494 -
root
+關(guān)注
關(guān)注
1文章
87瀏覽量
22172
原文標(biāo)題:我想要個(gè)文件權(quán)限檢測(cè)器
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
耐用的破損玻璃檢測(cè)器
ECD檢測(cè)器的原理是什么?
電流檢測(cè)器分類和選型
電子俘獲檢測(cè)器及檢測(cè)方法
光檢測(cè)器,光檢測(cè)器是什么?
電荷注入檢測(cè)器(CID),電荷注入檢測(cè)器原理
設(shè)計(jì)一個(gè)8位序列檢測(cè)器的資料詳細(xì)說(shuō)明
NDIR氣體檢測(cè)器解決方案和PID氣體檢測(cè)器解決方案
什么是過(guò)零檢測(cè)器 過(guò)零檢測(cè)器的原理
linux文件訪問(wèn)權(quán)限怎么設(shè)置
Linux文件權(quán)限及Makefile
介紹一個(gè)文件權(quán)限檢測(cè)器
評(píng)論