作为我们审计政策的一部分。我需要在 linux 机器上的所有文件中搜索包含根凭据的任何文件。
此命令将由非 root 帐户运行,因此,结果将包含许多“Permission denied”语句。
任何有关搜索所有文件的正确语法的建议,并过滤结果以仅显示有用的链接!
我试过: grep - “root” / | grep“密码”
但是,由于此命令是使用非 root 帐户运行的,结果的很大一部分是“权限被拒绝”
谢谢
你会去:
grep -lir "root" /
开关只输出出现文本的-l
文件名(而不是包含文本的每一行),-i
开关忽略大小写,并-r
下降到子目录中。
只要您不尝试读取其他用户的文件,以非 root 身份运行它就可以了。
要只有有用的链接,请使用:
grep -lir -v "Permission denied" "root" /
该-v
开关用于反转匹配的感觉,选择不匹配的行。
权限错误输出到stderr
,因此您可以简单地将其重定向到/dev/null/
。例如:
grep -R "root" . 2> /dev/null
但是,由于此命令是使用非 root 帐户运行的,结果的很大一部分是“权限被拒绝”
用来sudo
运行这个recursive grep
:
cd /home
sudo grep -ir 'root' *
您可以通过重定向到 /dev/null 来抑制警告。
此解决方案使用 find 遍历整个(可访问)文件系统:
find / -readable -exec grep -H root '{}' \; 2>/dev/null | grep password