Поместите имена учетных записей, которые вы хотите сохранить, по одному имени в строке, в 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 удаляет каждое имя.
Делюзер имеет много вариантов. Смотри man deluser
.
Вы можете сделать резервную копию ваших /etc/passwd
, /etc/group
и других файлов, прежде чем делать это просто для безопасности.
Для осторожного, двухэтапного подхода
Первый шаг создает файл со списком всех учетных записей, которые будут удалены:
cut -d: -f1 /etc/passwd | grep -vFf keepers >goners
Специалисты по goners
файлов должны быть тщательно осмотрены, чтобы убедиться, что в них нет важных учетных записей. При желании его можно отредактировать вручную. Затем запустите:
while read name ; do deluser "$name" ; done <goners