我最近使用了ansible的动态库存功能来管理一些ec2s。在开发一个脚本的过程中,在我的动态清单上创建和验证组时,我创建了大约80个组。由于脚本错误,这些组以安全组、ids、vpcs、标记名等命名。我想删除这些团体。
我认识到使用GIDs是最好的删除方式。但是,userdel和deluser命令都没有提供指定GID的选项。这导致我乏味地将我的动态目录中的所有组命名为删除。
我可以使用sudo cat /etc/group,grep几乎可以得到一个名称列表,但是我发现只为外部组指定一个GID范围就更容易了。
我正在寻找一些shell命令或ansible模块,我可以添加到一个剧本。提供的任何代码或脚本都具有很高的价值。
发布于 2019-09-10 17:12:54
只需打印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 userdelsudo cat /etc/组
您不需要sudo来访问/etc/group。每个人都应该读懂它。
https://stackoverflow.com/questions/57875183
复制相似问题