What does the follwing script do ?
#!/bin/bash
find / -perm +4000 | mail -s "Daily find output" root
A. Emails a report of all guid files to root
B. Emails a report of all important files to root
C. Emails a report of all writeable files to root
D. Emails a report of all suid files to root
E. Corrects permissions on files and emails the results to root
先了解find 的 perm 参数
perm 参数用于文件权限模式匹配查找,
perm 又有三种匹配模式,
-perm mode 完全匹配
-perm -mode 最少匹配
-perm +mode 最大匹配
和尚准备了512个文件名(8*8*8=512)与其属性值一致的文件。
如属性值为777的文件,则文件名为777
下面看例子
-perm mode 完全匹配的例子。显示属性值为754的文件。
# find . -perm 754
./754
再看 -perm -mode 最少匹配的例子。
查找除自己以外的人,可以读写的文件。
# find . -perm -066
./177
./376
./677
./366
./166
./377
./666
./776
./767
./676
./577
./576
./266
./567
./066
./467
./777
./077
./076
./477
./276
./067
./167
./277
./176
./466
./476
./267
./367
./766
./667
./566
例子中使用了权限代码066,其含义是
不管自己的权限,所以第一位匹配数为0,意思是0,1,2,3,4,5,6,7的任意组合,从上面的例子也可以看出,第一位包含0~7,共8种组合。
同一group的成员,至少拥有读写权限rw ,不管是否可以执行,所以4+2+(0 or 1)转换为8进制数最少为6(4+2+0),或者为7(4+2+1),共2种组合。
其他group的成员也至少拥有读写权限rw ,所以属性值也为6 or 7. 同样也有共2种组合。
下面再看一个特殊的例子
#find . -perm -773
./777
./773
结果只有两个文件符合
提问!请回答,774,775,776 这三个属性为什么不符合呢?
(+mode 和尚还没有明白,另外不知何时find 命令多了一个 "-perm /mode" 参数)
注意问题中的权限代码是4位,原因是使用了suid/sgid,问题中的权限第一位是4,说明使用的是suid权限。
(提示,2则是sgid权限,6则是4+2,同时拥有suid sgid 权限) Google linux suid
mail command 的格式为
mail -s mail标题 收件人
公布答案【D】