удалить всех пользователей из группы

В ubuntu, как вы удаляете всех пользователей из группы, используя командную строку bash?

Группа называется grp1 и находится в / etc / group. Не имеет значения, остается ли действительная группа или не. Я просто хочу, чтобы участники ушли. (Любой пользователь, который является членом этой группы, должен быть удален из / etc / passwd)

0
задан 2 January 2018 в 18:22

3 ответа

Сначала вы найдете все файлы, принадлежащие указанной группе, и при желании назначите их в новую группу (вероятно, лучше, но не уверены)

https://unix.stackexchange.com/ questions / 159244 / find-files-принадлежащие к группе ,

Затем вы удаляете группу с помощью sed sudo sed -i -e 's/group_to_remove/d' /etc/group

2
ответ дан 2 January 2018 в 18:22

Допустим, значение gid группы равно 2000

Чтобы удалить любого пользователя, для основной группы которого установлено значение 2000

awk -F: "(\$4==2000) { print \$1 }" /etc/passwd | sudo xargs userdel

, некоторые из вас могут быть взволнованы, увидев вместе xargs и userdel вместе. :)

-1
ответ дан 2 January 2018 в 18:22

Неужели так много пользователей, что это нужно автоматизировать? Это одна из тех вещей, где баланс между экономией пары минут и полным разрушением вашей системы нарушается неправильно. Я бы не стал автоматизировать это, если бы мы не говорили о десятках пользователей.

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

grep -Po '^grp1:.*:.*:\K\w+' /etc/group > bad_users

Если это все еще слишком много для обработки, вы можете извлечь их из /etc/passwd , порождая новый.

grep -vFf bad_users /etc/passwd > new_passwd

Просмотрите это (например, diff new_passwd /etc/passwd) и, если вам это нравится, переместите содержимое поверх. Есть еще кое-что, что нужно сделать (домашние каталоги, катушки и т. Д.), В зависимости от того, насколько значительными были пользователи, но, учитывая разницу, я оставлю это вам.

1
ответ дан 2 January 2018 в 18:22

Другие вопросы по тегам:

Похожие вопросы: