在我的剧本中,我安装了 amavis 包。稍后在一项任务中,我使用 mount 模块设置了一个 ramdisk (tmpfs)。
为了让 tmpfs-ramdisk 由在 amavis 包安装期间创建的 uid 和 gid(amavis-user 和 amavis-group,在 /etc/fstab 中然后使用 options 参数)拥有,我如何找出创建了哪个 uid 和 gid?
目标(类似于):
/dev/shm /var/lib/amavis/tmp tmpfs defaults,noexec,nosuid,nodev,noatime,size=500m,mode=770,uid=112,gid=116 0 0
或者我应该在包安装之前创建用户以通过 Ansible 明确设置 uid 和 gid?
答案1
您应该能够uid=amavis-user,gid=amavis-group
在 /etc/fstab 中指定。Linux 挂载程序将正确地解释它们。
答案2
虽然 Bruce P 的答案在某些情况下通常是一个很好的解决方案,但无法仅提供一个名称。按照 Satish Koppisetty 的方法,这里有一些代码可以做到这一点:
- name: get myuser uid
getent:
database: passwd
key: myuser
- name: get mygroup gid
getent:
database: group
key: mygroup
现在您有两个字典(getent_passwd
和getent_group
),您可以从中检索数据。以下代码仅输出 id:
- debug:
msg:
- "user id {{ getent_passwd.myuser[1] }}"
- "group id {{ getent_group.mygroup[1] }}"
一点背景知识:情况就是这样的,因为getent
返回的字典如下所示:
{
"mygroup": [
"x",
"1004",
"some_group_member"
]
}
答案3
查看 Ansible 模块盖特恩和database=passwd
。