В ubuntu, как вы удаляете всех пользователей из группы с помощью командной строки bash?
Группа называется grp1, и она находится в / etc / group. Неважно, остается ли фактическая группа или нет. Я просто хочу, чтобы участники ушли. (Любой пользователь, который является членом этой группы, должен быть удален из / etc / passwd)
Предположим, что gid группы - это 2000
. Для удаления любого пользователя, у которого первичная группа установлена в 2000
awk -F: "(\$4==2000) { print \$1 }" /etc/passwd | sudo xargs userdel
, некоторые из вас могут перестать видеть xargs и userdel вместе:)
Действительно ли так много пользователей, что это необходимо автоматизировать? Это одна из тех вещей, где баланс между сохранением пары минут и полным разрушением вашей системы неверен. Я бы не стал автоматизировать это, если бы мы не говорили о десятках пользователей.
Если это так, я бы предложил начать с создания списка пользователей, которых вы хотите удалить:
grep -Po '^grp1:.*:.*:\K\w+' /etc/group > bad_users
Если это еще слишком много для обработки, вы можете вывести их из /etc/passwd, создавая новый.
grep -vFf bad_users /etc/passwd > new_passwd
Просмотрите это (например, diff new_passwd /etc/passwd), и если вам это нравится, переместите содержимое. У вас все еще есть очистка, чтобы избавиться от этого (домашние каталоги, катушки и т. Д.) В зависимости от того, насколько существенны пользователи, но с учетом дисперсии, я оставлю это вам.
Сначала вы найдете все файлы, принадлежащие указанной группе, и назначьте их новой группе, если вы этого захотите (возможно, лучше всего, но не уверены)
https://unix.stackexchange.com/questions/ 159244 / find-files-owned-to-group,
Затем вы удаляете группу с помощью sed sudo sed -i -e 's/group_to_remove/d' /etc/group
Предположим, что gid группы - это 2000
. Для удаления любого пользователя, у которого первичная группа установлена в 2000
awk -F: "(\$4==2000) { print \$1 }" /etc/passwd | sudo xargs userdel
, некоторые из вас могут перестать видеть xargs и userdel вместе:)
Действительно ли так много пользователей, что это необходимо автоматизировать? Это одна из тех вещей, где баланс между сохранением пары минут и полным разрушением вашей системы неверен. Я бы не стал автоматизировать это, если бы мы не говорили о десятках пользователей.
Если это так, я бы предложил начать с создания списка пользователей, которых вы хотите удалить:
grep -Po '^grp1:.*:.*:\K\w+' /etc/group > bad_users
Если это еще слишком много для обработки, вы можете вывести их из /etc/passwd, создавая новый.
grep -vFf bad_users /etc/passwd > new_passwd
Просмотрите это (например, diff new_passwd /etc/passwd), и если вам это нравится, переместите содержимое. У вас все еще есть очистка, чтобы избавиться от этого (домашние каталоги, катушки и т. Д.) В зависимости от того, насколько существенны пользователи, но с учетом дисперсии, я оставлю это вам.
Сначала вы найдете все файлы, принадлежащие указанной группе, и назначьте их новой группе, если вы этого захотите (возможно, лучше всего, но не уверены)
https://unix.stackexchange.com/questions/ 159244 / find-files-owned-to-group,
Затем вы удаляете группу с помощью sed sudo sed -i -e 's/group_to_remove/d' /etc/group