vault list <vault-path>
将向我显示给定路径中的所有秘密和子目录。
我需要在给定路径中递归搜索秘密,但没有看到任何方法可以单独使用Vault命令来做到这一点。
考虑编写一个 bash 脚本来做到这一点 - 但似乎它需要嵌套数组,这总是让我头疼。
有没有可以搜索的工具?或者有人已经编写了 bash 脚本或者 ansible 剧本?
答案1
解决了!自调用功能:
#!/bin/bash
function walk
{
local PTH="$1"; shift
local ENTRIES=($@)
for ENTRY in ${ENTRIES[@]}; do
if [ $(echo "$ENTRY" | grep -c "$SEARCH") -ne 0 ]; then
echo ${PTH}${ENTRY}
fi
if [ "$(echo $ENTRY | grep "\/$")" != "" ]; then
NEWPTH=${PTH}${ENTRY}
NEWENTRIES=$(vault list ${NEWPTH} 2>/dev/null | tail -n +3)
walk ${NEWPTH} ${NEWENTRIES}
fi
done
}
SEARCH="$2"
PTH="$1"
echo -----------------------------
ENTRIES=$(vault list ${PTH} 2>/dev/null | tail -n +3)
walk ${PTH} ${ENTRIES}