![您能删除 Ubuntu 中除指定帐户以外的所有用户吗?](https://linux22.com/image/1407486/%E6%82%A8%E8%83%BD%E5%88%A0%E9%99%A4%20Ubuntu%20%E4%B8%AD%E9%99%A4%E6%8C%87%E5%AE%9A%E5%B8%90%E6%88%B7%E4%BB%A5%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%E5%90%97%EF%BC%9F.png)
我正在尝试找到一种方法来快速删除除我在 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