Вопрос: Как добавить существующего пользователя в существующую группу?


Я хочу добавить пользователя Apache (www-data) к audio группа. Я прочитал man-страницу для useradd, но мне не повезло. Я запускаю xubuntu 11.10. Вот что я делаю:

$ sudo useradd -G audio www-data
useradd: user 'www-data' already exists

Если я оставлю -G option, bash, распечатывает справочную информацию для useradd:

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

Мне не ясно, с какой страницы, какие варианты я должен использовать для выполнения этой работы.


565
2017-11-15 18:21


Источник




Ответы:


useradd команда попытается добавить нового пользователя. Поскольку ваш пользователь уже существует, это не то, что вы хотите.

Вместо этого: Чтобы изменить существующего пользователя, например добавить этого пользователя в новую группу, используйте usermod команда.

Попробуй это:

sudo usermod -a -G groupName userName

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

  • -a (append) необходим. В противном случае пользователь будет удален из любых групп, а не из списка.

  • -G коммутатор принимает (список разделенных запятыми) список дополнительных групп для назначения пользователю.


873
2017-11-15 18:33



sudo usermod -a -G [group-name] [user-name] : Просто быстрый для тех, кто только заглядывает в ответ после прочтения заголовка - Programster
Я думаю, что предпочтительным способом является sudo adduser user group, Это более простой и понятный синтаксис. См. Ответ от @Bai. - ctbrown
@wilhil: man usermod: "-a, --append - Добавить пользователя в дополнительную группу (группы). Использовать только с опцией -G .; -G, --группы GROUP1 [, GROUP2, ... [, GROUPN]]] [...] Если пользователь в настоящее время является членом группы, которая не указана в списке, пользователь будет удален из группы. Это поведение можно изменить с помощью опции -a, которая добавляет пользователя в текущий список дополнительных групп ». - Adam Michalik
Есть ли способ обойти часть «выход из системы и обратно»? Может быть, какая-то команда групп обновлений? - con-f-use
@ con-f-use, если вы можете запустить sudo login -f YOURUSERNAME, он запустит новый сеанс оболочки. Использовать id чтобы проверить, что новый сеанс находится в правильном наборе групп. Однако это не «глобально» - оно не распространяется на терминалы, которые уже открыты. Итак, действительно, выход из системы - лучший вариант, где это возможно - Aaron McDaid


Добавление пользователя в группу:

sudo adduser user group

Удаление пользователя из группы:

sudo deluser user group

190
2018-01-12 13:09



не совсем то, что задают этот вопрос - Tejendra
@ Комментарий Tejendra, кажется, предполагает, что использование useradd желательно / обязательно для ответа на вопрос OP; Возможно, в этом ответе просто отсутствуют слова, указывающие, что adduser / deluser - лучшая альтернатива. - sage
Для меня проще интерфейс лучше, вот почему мне это нравится. - Betlista
Это в точку заданный вопрос. @knocte, да, я думаю, что это зависит от Debian - Auspex
@Auspex Я могу подтвердить, что он не работает на Red Hat. - Stibu


После добавления к существующему пользователю:

usermod -a -G group user  

Возможно, вам понадобится выход из системы и вход в систему получить разрешения групп от /etc/group,


46
2018-02-22 17:16



Пожалуйста, сделайте его частью «нужно выйти и войти» полужирным шрифтом. - Jin Kwon
FYI: Я думаю, что id команда должна указать, что вы были добавлены в группу без необходимости ее выхода. id myuser - ficuscr
Для выхода на Ubuntu 14.10 мне понадобился выход и обратно. - A.Danischewski


Я обычно использую

sudo gpasswd -a myuser mygroup

24
2017-11-15 18:47



usermod не был доступен на моей системе ubuntu 14.04. Это здорово! - Drew


На Ubuntu, поскольку вход в систему root не активировано, пользователи в sudo группа может повышать привилегии для определенных ограниченных команд. Любая ограниченная команда должна быть добавлена ​​с помощью sudo для повышения привилегий.

sudo usermod -a -G группа пользователь

добавит существующего пользователя user к дополнительной группе, названной group, Первичная группа пользователя останется без изменений.


4
2018-02-25 21:58





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

sudo usermod -a -G groupName userName

... вам нужно снова выйти / войти.

Однако, если вам требуется ярлык, чтобы начать использовать ваше новое членство в группе немедленно (и у вас есть правильный Судо привилегии) ​​Я нашел эту работу:

$ sudo su -
# su [userName]
$ groups

Объяснение:

  • sudo su - даст вам корневую оболочку
  • su [userName] возвращает вас в оболочку с вашим пользователем
  • groups при запуске теперь отобразится группа, которую вы добавили с помощью usermod -aG команда

В моем случае я пытался добавить группу «докер» к моему пользователю

До:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

После:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

1
2018-03-25 17:49