Як змінити первинну групу


11

Я хочу видалити користувача pserverз групи apache.

#deluser pserver apache
/usr/sbin/deluser: You may not remove the user from their primary group.

Тепер я хочу додати нову первинну групу, тому я запустив наступне;

#usermod -G pserver pserver

Що повернуло наступне:

pserver` is now in group `pserver

#groups pserver
pserver : apache pserver

Тепер я хочу знову видалити користувача з групи apache, але я знову отримую ту ж помилку. Як я можу видалити pserverз первинної групи apache?

Відповіді:


18

usermodОпція -Gдодає додаткові групи. Ви хочете, -gщоб змінити основну групу. Тобто ваша команда повинна була бути:

# usermod -g pserver pserver

Зауважте, це також змінить групову власність на файли в домашньому каталозі, але не в іншому місці.

Більш загально, синтаксис зміни користувача "user" на первинну групу "group" є:

# usermod -g group user

Не зрозуміло в цій команді, хто є користувачем, а яка група, оскільки в цій унікальній обставині вони обидва однакові, але це часто не буде таким.
Kzqai

Текст оновлений, щоб відповісти на вищезазначений коментар
StarNamer


1

Питання, поставлене ОП, вводить в оману. У заголовку написано "Як змінити первинну групу", проте в тілі запитання чіткою є мета не просто замінити первинну групу, а й видалити попередню первинну.

У випадку, якщо хтось хоче просто замінити основний, але не видалити його зі списку, потрібно просто додати попередній первинний назад до списку.

Таким чином, після виконання StarNamer «сек поста , один тільки потрібно зробити

adduser user previous-primary-group

тому що команда usermod викине вашу попередню первинну групу зі списку груп, до яких ви належите.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.