find命令中参数perm的⽤法
按照⽂件权限模式⽤-perm选项,按⽂件权限模式来查⽂件的话。最好使⽤⼋进制的权限表⽰法。
如在当前⽬录下查⽂件权限位为755的⽂件,即⽂件属主可以读、写、执⾏,其他⽤户可以读、执⾏的⽂件,可以⽤:de>$ find . -perm 755 -printde>
还有⼀种表达⽅法:在⼋进制数字前⾯要加⼀个横杠-,表⽰都匹配,如-007就相当于777,-006相当于666
de># ls -l
-rwxrwxr-x    2 sam      adm            0 10⽉ 31 01:f
-rw-rw-rw-    1 sam      adm        34890 10⽉ 31 00:f
-rwxrwxr-x    2 sam      adm            0 10⽉ 31 01:f
drw-rw-rw-    2 gem      group        4096 10⽉ 26 19:48 sam
-rw-rw-rw-    1 root    root        2792 10⽉ 31 20:19 temp
# find . -perm 006
# find . -perm -006
./sam
./f
./tempde>
find查命令的使用
-perm mode:⽂件许可正好符合mode
-perm +mode:⽂件许可部分符合mode
-perm -mode: ⽂件许可完全符合mode
我们⾸先创建下⾯的⼀个例⼦
#ls -l ./testdir
——S— 1 root root 0 2008-05-06 10:39 2000
S—— 1 root root 0 2008-05-06 10:39 4000
—S–S— 1 root root 0 2008-05-06 10:39 6000
-rwS–S— 1 root root 0 2008-05-06 10:39 6600
我创建了4个⽂件,都具有suid/sgid位。
假定我执⾏
find . -type f -perm 6000
那么我们显然可以得到下⾯的结果
./60000
这属于完全匹配。
如果执⾏find . -type f -perm -6000呢,其结果是:
./6000
.
/6600
这⾥的-号表⽰有1的位置⼀定要正确匹配,其他⽆所谓。这⾥要转成⼆进制来说,⾸先6000转成三位的⼆进制是下⾯这个样⼦110 000 000 000
这表⽰前⾯两个1⼀定要匹配,其他⽆所谓。那能匹配的就是6000,6600两个⽂件,其权限⼆进制转换过来分别是
110 000 000 000
110 110 000 000
⽽如果是执⾏find . -type f -perm +6000呢,结果会怎样?
我们看看结果
./6000
./2000
./4000
./6600
+号的意思是,只要有⼀个1匹配就⾏了,也就是说前2位中,只要有⼀个1就⾏,所以上⾯的都符合要求,因为翻译成⼆进制变成110 000 000 000
010 000 000 000
100 000 000 000
110 110 000 000
所以,从上⾯的结果可以看出,命令find . -type f -perm +6000就是指定⽬录下所有具有suid/sgid的程序。
这是在做安全维护的时候,应该常使⽤的⼀个指令。我们⾸先创建下⾯的⼀个例⼦
#ls -l ./testdir
——S— 1 root root 0 2008-05-06 10:39 2000
—S—— 1 root root 0 2008-05-06 10:39 4000
—S–S— 1 root root 0 2008-05-06 10:39 6000
-rwS–S— 1 root root 0 2008-05-06 10:39 6600
我创建了4个⽂件,都具有suid/sgid位。
假定我执⾏
find . -type f -perm 6000
那么我们显然可以得到下⾯的结果
./60000
这属于完全匹配。
如果执⾏find . -type f -perm -6000呢,其结果是:
./6000
./6600
这⾥的-号表⽰有1的位置⼀定要正确匹配,其他⽆所谓。这⾥要转成⼆进制来说,⾸先6000转成三位的⼆进制是下⾯这个样⼦110 000 000 000
这表⽰前⾯两个1⼀定要匹配,其他⽆所谓。那能匹配的就是6000,6600两个⽂件,其权限⼆进制转换过来分别是
110 000 000 000
110 110 000 000
⽽如果是执⾏find . -type f -perm +6000呢,结果会怎样?
我们看看结果
./6000
./2000
./4000
./6600
+号的意思是,只要有⼀个1匹配就⾏了,也就是说前2位中,只要有⼀个1就⾏,所以上⾯的都符合要求,因为翻译成⼆进制变成110 000 000 000
010 000 000 000
100 000 000 000
110 110 000 000
所以,从上⾯的结果可以看出,命令find . -type f -perm +6000就是指定⽬录下所有具有suid/sgid的程序。
这是在做安全维护的时候,应该常使⽤的⼀个指令

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。