无法在 AWK 中使用 find -print

无法在 AWK 中使用 find -print

我正在尝试组合一个命令来查找 SUID 系统可执行文件,这不是 RHEL 中的默认命令。

为此,我拉出本地文件系统的列表 (df --local -P),将其通过管道传递给 grep 以删除标头 (grep -v ^Filesystem),然后尝试使用 awk 来获取第 6 列,然后根据该文件夹运行搜索以查看是否有任何 SUID 系统可执行文件(awk '{ find $6 -xdev -type f -perm -4000 -print })。

我遇到的问题是,当我在 find 命令上使用 -print 时,出现语法错误,但是当我忽略它时,却没有得到任何输出。我不确定我是否真的了解发生了什么,以及如何解决故障。这就是我需要帮助的地方:-)。

完成此操作后,下一步是获取预定义的可执行文件数组(我知道默认情况下应该设置 SUID),并将它们从输出中删除。

df --local -P | grep -v ^Filesystem | awk '{ find $6 -xdev -type f -perm -4000 -print }'
awk: { find $6 -xdev -type f -perm -4000 -print }
awk:                                      ^ syntax error

答案1

find是可执行文件而不是awk函数。 S,如果您想在 awk 中调用可执行文件,则必须使用该system()函数来执行此操作。

cmd | awk '{system("find " $6 " -xdev -type f -perm -4000 -print")}'

相关内容