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