我在 ansible.cfg 中添加了以下行
vault_password_file = /var/tmp/password
我想以只有用户 ID(例如具有 PCuser 组的 abc12 用户)才能访问的方式来保护此文件
/var/tmp/password
。其他人应该无法阅读它。 (连 root 都没有)
以下是我尝试过的:
使用用户 abc12 创建该文件。通过以下命令使用 root 更改权限
chown abc12:pcuser /var/tmp/password
chmod 600 /var/tmp/password
此后,权限发生更改。但 root 仍然可以读取它。 我不想让 root 读取这个文件。请指教。
无论如何磁盘上都不应该有密码。因此,我们将其存储在内存中,使用此脚本在
/run/user/${UID}
中,store_vault_password.sh
:
#!/bin/bash
ANSIBLE_VAULT_PASSWORD_FILE=$( mktemp -p /run/user/${UID} )
read -sp "Enter Vault Password: "
echo "${REPLY}" > ${ANSIBLE_VAULT_PASSWORD_FILE}
echo ${ANSIBLE_VAULT_PASSWORD_FILE}
然后,像这样运行该脚本:
export ANSIBLE_VAULT_PASSWORD_FILE=$( ./store_vault_pass.sh )