Как удалить пользователя из группы?

108

Я добавил учетную запись пользователя в adminгруппу и обнаружил, что добавил не того пользователя. Так что теперь я должен удалить учетную запись из adminгруппы.

Как удалить учетную запись из группы, не удаляя пользователя?

Eonil
источник

Ответы:

144

Ответ Portablejim точен, но опасен - если вы что-то опечатаете, ваша система может оказаться непригодной для использования, особенно если вы неправильно изменили группу администраторов. Если вам нужно отредактировать файл групп, используйте команды vipw -gили vigr, которые проверяют синтаксис перед сохранением. Даже тогда есть лучшие способы.

Из командной строки вы, вероятно, захотите использовать следующее (от имени пользователя root):

deluser <username> <groupname>

Это удалит указанного пользователя из указанной группы. Вы должны повторно войти, чтобы увидеть эффект. Это не удалит пользователя или группу, только членство. Есть также способы сделать это с помощью usermodкоманды, но это сложнее в использовании, так как вам нужно заменить весь список групп для пользователя, чтобы удалить одну группу. Команда gpasswdтакже способна сделать это (как указывает sagarchalise), но в основном не рекомендуется. Как всегда, смотрите справочные страницы для более подробной информации.

zanfur
источник
9
gpasswdне считается устаревшим Вся его цель - администрировать / etc / group и / etc / gshadow. Кроме того, хотя ваш метод работает и упоминается на странице руководства deluser, он немного рискован. Если вы случайно нажали клавишу ввода, прежде чем ввести имя группы, вы удалите пользователя. Лучше надеяться, что вы помните его UID, чтобы вы могли быстро добавить его обратно. Было бы безопаснее использовать gpasswd, который предназначен для этой цели.
Морская звезда
1
Я тоже думал об этом риске. Я думаю, что вы всегда можете запустить такую ​​команду с «#», нажать Enter, а затем запустить ее еще раз, просто удалив первый символ.
ezequiel-garzon
«Вы должны повторно войти, чтобы увидеть эффект». ... или вы можете просто написать: 'cat / etc / group'
josh.thomson
Я нашел deluserпри поиске man-страниц (здесь с Ubuntu 18 в 2018 году), но первая строка на man-странице гласит: «удалить пользователя или группу из системы», поэтому я продолжил поиск. Очевидно, что справочную страницу нужно сформулировать лучше.
tim.rohrer
Я нашел этот ответ в статье, и сразу же волосы на затылке встали. Я не знаю, почему так много людей любят и принимают этот ответ, но это опасно, ИМХО; особенно как корень. Ответ Энтони Геогегана - правильное решение; как и морская звезда.
46

Ты можешь сделать это:

sudo gpasswd -d username group

Вы также должны проверить руководство по gpasswd

sagarchalise
источник
4
Одним из преимуществ gpasswdявляется то, что он более кроссплатформенный, а также работает в дистрибутивах на основе Red Hat.
Энтони
Это правильный ответ. Если бы только он поднялся на вершину.
Можете ли вы отредактировать свой ответ, чтобы объяснить, что делает флаг -d? (
Во
2

Самый простой и безопасный способ:

sudo -H gedit /etc/group

и удалите его вручную.

vanbran
источник
Я вижу это enrty. ssh:x:118: Что означает число 118здесь?
ankit7540
определенно НЕ самый безопасный способ!
Callmebob
2

Смотрите ответ Занфура.

Отредактируйте /etc/groupфайл как root (то есть gksudo gedit /etc/group) и удалите имя пользователя из строки, которая начинается с 'admin'

т.е.

...
admin:x:120:adminuser,adminuser2,userthatshouldnotbeadmin
...

становится

...
admin:x:120:adminuser,adminuser2
...

Будьте осторожны, опечатки в файле могут сломать вашу систему.

Portablejim
источник
11
Пожалуйста, не советуйте редактировать эти системные файлы вручную. Если вы облажаетесь, ваша система может стать недоступной.
gertvdijk
Или, по крайней мере, сначала их подкрепить. ( Связанная информация. )
Элия ​​Каган
2
Я думаю, что вы должны опубликовать это, поскольку это ценная информация о том, как работает Linux. Однако следует включить предупреждение о том, что есть гораздо более безопасный путь
Freedom_Ben