一、文件查找
常用命令:locate,find
1、locate
locate:在全系统查找文件的命令。非实时,模糊匹配,查找事根据全系统文件数据库进行的。
#updatedb:手动生成文件数据库
优点:速度快
2、find
find:遍历指定目录中的所有文件完成查找,速度慢。
find特点:实时查找;精确查找、支持众多查找标准
find: 查找路径 查找标准 查找到以后的处理动作。
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理运作:默认为显示
3、匹配标准:
-name ‘FILENAME’:对文件名作精准匹配
文件名通配:
*:任意长度的任意字符
? :
[] :
-iname 'FILENAME':文件名匹配时不区分大小写
-regex PATTERN :基于正则表达式进行文件名匹配
-user USERNAME:根据属主进行查找
-group GROUPNAME:根据属组进行查找
-uid UID:根据UID进行查找
-gid GID :根据GID进行查找
-nouser :查找没有属主的文件
-nogroup:查找没有属组的文件
- type 根据文件类型查找
f:普通文件 d:目录文件 c:字符文件 b:块设备 l:链接文件 p:管道设备文件 s:套接设备文件
-size
[+|-] #K (M G) +表示大于#k -表示 小于#K
组合条件
-a:表示两个条件都符合,才显示 与条件 ; -o : 表示两个条件符合一个就显示 ,或条件 ; -not :表示非条件
给出两个条件,没有说明逻辑关系。默认是与条件
-mtime :修改时间
-ctime:改变时间
-atime:访问时间
都可后缀多少天, [+|-] # +号:表示至少#天 -号:表示#号天内 #:表示刚好#天。
-mmin:修改时间 -cmin:改变时间 -amin; 访问时间
都可后缀多少分钟, [+|-] # +号:表示至少#分钟 -号:表示#分钟内 #:表示刚好#分钟。
-perm MODE :根据权限进行查找
/MODE :只要有一项匹配就可以查找
-MODE:文件权限能够完全包含的情况下可以查找
运作:
-print :显示
-ls :类似ls -l 的形式显示每一个文档的详细
-ok :COMMAND\;每一次操作都需要用户确认
-exec COMMAND {}\;
练习题:
1、查找/var目录下属主为root,并且属组为mail的所有文件:
find /var -user root -guoup mail
2、查找/usr 目录下不属于root bin 或student的文件:
find /usr -not -user root -a -not -user student
find /usr -not \( -user root -o -user student\)
3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件:
find /etc -mtime -7 -not -user root -a -not -user student
find /etc -mtime -7 -not \( -user root -o -user student\)
4、查找当前系统上没有属主或属组且最近一天内曾被访问过的文件,并将其属主属组均修改为root:
find / \(-nouser -o -nogroup\) -a -atime -1 -exec chown root:root {}\;
5、查找 /etc 目录下大于1M的文件,并将其文件名写入 /tmp/etc.largefiles文件中:
find /etc -size +1M -exec ehco {}>> /tmp/etc.largefiles
find /etc -size +1M | xargs echo {} >> /tmp/etc.largefiles
6、查找/etc目录下所有用户都没有写权限的文件,显示其详细信息:
find /etc -not -perm /222 -ls
二、特殊权限
passwd:s
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者。
chmod u+s FILE
chmod u-s FILE
如果FILE本身原来就有执行权限,则SUID显示为s;否则显示S;
SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组。
chmod g+s FILE
chmod g-s FILE
Sticky:在一个公共目录,每个可以创建文件,删除自己的文件,但不能删除别人的文件;
chmod o+t DIR
chmod o-t DIR