linux - Ubuntu按GID删除组
问题描述
我最近使用了ansible的动态库存能力来管理一些ec2s。在开发用于在我的动态清单上创建和验证组的脚本的过程中,我创建了大约 80 个组。由于脚本错误,这些组以安全组、ID、vpc、标签名称等命名。我想删除这些组。
我认识到使用 GID 是最好的删除方式。但是userdel
和deluser
命令都不提供指定 GID 的选项。这导致我繁琐地命名我的动态清单中的所有组以进行删除。
我能够sudo cat /etc/group
并且有些人grep
几乎可以获得名称列表,但我发现为无关组指定一系列 GID 更容易。
我正在寻找一些可以添加到剧本中的 shell 命令或 ansible 模块。提供的任何代码或脚本都非常有价值。
解决方案
只需打印 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 来访问/etc/group
. 它应该是每个人都可以阅读的。
推荐阅读
- javascript - 将 JSON 数据从 Azure SQL DB 迁移到 Cosmos DB 会产生字符串值
- java - 在 Java 中打印缩写名称
- c# - 如何在控制器中编写 SQL 语句以从用户输入 (HTML) 中检索数据并在数据表中进行多重过滤?
- amazon-web-services - og:来自 Digital Ocean space/Amazon S3 的图像无法作为图像处理,因为它具有无效的内容类型
- python - 在 python 中使用 pandas 和 matplot 绘制错误
- java - 如何在 Java 中使用 indexOf 在字符串中找到第二个空格字符?
- woocommerce - 使用备注添加到购物车 (woocommerce)
- javascript - 组件挂载React后如何将数组添加到useState数组
- java - 为什么 IntelliJ 显示未找到依赖项 'org.slf4j:slf4j-simple:1.7.25'?
- tensorflow - SageMaker Predictor 仅输出 0 和 1,我需要介于 0 和 1 之间的浮点数