您能删除 Ubuntu 中除指定帐户以外的所有用户吗?

您能删除 Ubuntu 中除指定帐户以外的所有用户吗?

我正在尝试找到一种方法来快速删除除我在 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

相关内容