我正在尝试找到一种方法来快速删除除我在 Ubuntu 中指定的用户帐户之外的所有用户帐户。 有没有好的方法? 也许有一个可以执行此功能的 bash 脚本? 我四处搜索,什么也没看到。
我这样做是为了强化我准备控制的系统,这样我就可以删除除我指定的用户之外的所有用户。有几个用户。
答案1
将您想要保留的帐户名称(每行一个名称)放入文件中keepers
并运行:
cut -d: -f1 /etc/passwd | grep -vFf keepers | while read name ; do deluser "$name" ; done
以上用于cut
从 中获取所有当前用户名/etc/passwd
。该命令grep -vFf keepers
将从该列表中删除除 中列出的用户名之外的所有用户名keepers
。请注意,您需要保留许多系统用户,例如 root、daemon、sys、mail、lp 等。do while 循环将删除每个用户名。
deluser 有很多选项。请参阅man deluser
。
为了安全起见,您可能需要在执行此操作之前备份您的/etc/passwd
、和其他文件。/etc/group
对于谨慎的人来说,两步方法
第一步创建一个文件,列出所有要删除的账户:
cut -d: -f1 /etc/passwd | grep -vFf keepers >goners
应仔细检查该文件goners
以确保其中没有重要帐户。如果需要,可以手动编辑。然后运行:
while read name ; do deluser "$name" ; done <goners