0

作为我们审计政策的一部分。我需要在 linux 机器上的所有文件中搜索包含根凭据的任何文件。

此命令将由非 root 帐户运行,因此,结果将包含许多“Permission denied”语句。

任何有关搜索所有文件的正确语法的建议,并过滤结果以仅显示有用的链接!

我试过: grep - “root” / | grep“密码”

但是,由于此命令是使用非 root 帐户运行的,结果的很大一部分是“权限被拒绝”

谢谢

4

4 回答 4

1

你会去:

grep -lir "root" /

开关只输出出现文本的-l文件名(而不是包含文本的每一行),-i开关忽略大小写,并-r下降到子目录中。

编辑1:

只要您不尝试读取其他用户的文件,以非 root 身份运行它就可以了。

编辑2:

要只有有用的链接,请使用:

grep -lir -v "Permission denied" "root" /

-v开关用于反转匹配的感觉,选择不匹配的行。

于 2013-10-13T17:12:04.073 回答
1

权限错误输出到stderr,因此您可以简单地将其重定向到/dev/null/。例如:

grep -R "root" . 2> /dev/null
于 2013-10-13T17:14:59.667 回答
0

但是,由于此命令是使用非 root 帐户运行的,结果的很大一部分是“权限被拒绝”

用来sudo运行这个recursive grep

cd /home
sudo grep -ir 'root' *
于 2013-10-13T17:16:53.987 回答
0

您可以通过重定向到 /dev/null 来抑制警告。

此解决方案使用 find 遍历整个(可访问)文件系统:

find / -readable -exec grep -H root '{}' \; 2>/dev/null | grep password
于 2013-10-13T17:20:59.250 回答