2

Я пытаюсь найти способ быстро удалить все учетные записи пользователей, кроме тех, которые я указал в Ubuntu. Есть ли хороший способ сделать это? Возможно, bash-скрипт, который мог бы выполнять эту функцию? Я искал вокруг и ничего не видел.

Я делаю это как способ укрепить систему, которую я готов взять под контроль, чтобы я мог удалить всех пользователей, кроме тех, кого я указал. Есть несколько пользователей.

1 ответ1

2

Поместите имена учетных записей, которые вы хотите сохранить, по одному имени в строке, в 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .