我试图找到所有拥有权限的文件" SUID"并将其写入文本文件,但是当我运行以下命令时,文本文件为空:
sudo find / -perm 4000 > suid.txt
我的命令有问题吗?
答案 0 :(得分:2)
正确的语法是:
sudo find / -perm -4000 > suid.txt
或
sudo find / -perm -u+s > suid.txt
例如:
sudo find / -perm -4000 -exec ls -l {} +
给出这个输出:
-rwsr-xr-x 1 root root 30800 May 15 2015 /bin/fusermount
-rwsr-xr-x 1 root root 94792 Sep 2 2015 /bin/mount
-rwsr-xr-x 1 root root 44168 May 7 2014 /bin/ping
-rwsr-xr-x 1 root root 44680 May 7 2014 /bin/ping6
-rwsr-xr-x 1 root root 36936 Jan 27 2016 /bin/su
<truncated>
您的命令的问题在于它正在寻找设置了set uid位且没有其他设置的模式位。添加-
前缀将查找设置了set uid的所有模式,而不管其他位。
来自man find
:
- 精子模式
文件的权限位是精确模式(八进制或符号)。 由于需要完全匹配,如果您想使用此表单 符号模式,您可能必须指定一个相当复杂的模式字符串。 例如-perm g = w只匹配模式为0020的文件(即 是,组写权限是唯一的权限集)。 您更有可能想要使用
/' or
- &#39;形式,为 示例-perm -g = w,它匹配具有组写入的任何文件 权限。-perm -mode
为文件设置了所有权限位模式。象征 这种形式接受模式,这通常是其中的方式 想要使用它们。您必须指定
u',
g&#39;或者“o&#39;如果你使用 符号模式。