我最近使用 ansible 的动态 list 功能来管理一些 ec2。在开发用于在我的动态 list 上创建和验证组的脚本的过程中,我创建了大约 80 个组。由于脚本错误,这些组以安全组、id、vpc、标签名称等命名。我想删除这些组。
我知道使用 GID 是最好的删除方法。但是 userdel
和 deluser
命令都没有提供指定 GID 的选项。这导致我乏味地命名我的动态 list 中的所有组以供删除。
我能够 sudo cat/etc/group
并且使用一些 grep
几乎可以获得名称列表,但我发现仅指定一个范围更容易无关组的 GID。
我正在寻找一些可以添加到剧本中的 shell 命令或 ansible 模块。提供的任何代码或脚本都非常有值(value)。
只需打印 gid,每个都转换为组名并在每个组名上调用 groupdel
:
# print gid numbers separated by newlines
printf "%s\n" 2000 2001 2002 $other_gid_number |
# convert gid numbers to group names
xargs -I{} awk -F: '$3 == {}' /etc/group | cut -d: -f1 |
# to delete groups remove the echo
xargs -n1 echo userdel
或单线:
printf "%s\n" 2000 2001 2002 $other_gid_number | xargs -I{} awk -F: '$3 == {}' /etc/group | cut -d: -f1 | xargs -n1 echo userdel
sudo cat /etc/group
您不需要 sudo 来访问 /etc/group
。每个人都应该可以阅读。