查找已将UID位设置为开启的所有文件

时间:2017-04-01 03:37:29

标签: linux file ubuntu find

我试图找到所有拥有权限的文件" SUID"并将其写入文本文件,但是当我运行以下命令时,文本文件为空:

sudo find / -perm 4000 > suid.txt

我的命令有问题吗?

1 个答案:

答案 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;如果你使用   符号模式。