Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在Linux文件中搜索字符串(即根凭据)_Bash_Grep - Fatal编程技术网

Bash 在Linux文件中搜索字符串(即根凭据)

Bash 在Linux文件中搜索字符串(即根凭据),bash,grep,Bash,Grep,作为我们审计政策的一部分。我需要搜索linux计算机上的所有文件,以查找包含根凭据的任何文件 此命令将由非根帐户运行,因此,结果将包括许多“权限被拒绝”语句 任何关于搜索所有文件和过滤结果的正确语法的建议都只显示有用的链接 我试过: grep-“根”/| grep“密码” 但是,由于此命令是使用非根帐户运行的,因此大部分结果是“权限被拒绝” 谢谢您可以: grep -lir "root" / -l开关仅输出出现文本的文件名(而不是包含文本的每一行),-i开关忽略大小写,而-

作为我们审计政策的一部分。我需要搜索linux计算机上的所有文件,以查找包含根凭据的任何文件

此命令将由非根帐户运行,因此,结果将包括许多“权限被拒绝”语句

任何关于搜索所有文件和过滤结果的正确语法的建议都只显示有用的链接

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

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

谢谢

您可以:

grep -lir "root" /
-l
开关仅输出出现文本的文件名(而不是包含文本的每一行),
-i
开关忽略大小写,而
-r
则下降到子目录中

编辑1: 只要您不试图读取其他用户的文件,以非root身份运行它就可以了

编辑2: 要仅提供有用的链接,请使用:

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

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

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

grep -R "root" . 2> /dev/null
但是,由于此命令是使用非根帐户运行的,因此 结果是“权限被拒绝”

使用
sudo
运行此
递归grep

cd /home
sudo grep -ir 'root' *

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

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

find / -readable -exec grep -H root '{}' \; 2>/dev/null | grep password

但是显示这一行本身是非常有益的,因为我需要验证它是否为假阳性。艾哈迈德,如果你喜欢某人的答案,你应该接受它:或者向上投票。