Как добавить существующего пользователя в существующую группу?
Я хочу добавить пользователя Apache (www-data
) к audio
группа. Я прочитал справочную страницу для 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...
Мне не ясно со страницы руководства, какие варианты я должен использовать, чтобы сделать эту работу.
8 ответов
useradd
Команда попытается добавить нового пользователя. Поскольку ваш пользователь уже существует, это не то, что вы хотите.
Вместо этого: чтобы изменить существующего пользователя, например добавить его в новую группу, используйте usermod
команда.
Попробуй это:
sudo usermod -a -G groupName userName
Пользователь должен будет выйти и снова войти в систему, чтобы увидеть добавленную им новую группу.
-a
(добавить) переключатель имеет важное значение. В противном случае пользователь будет удален из любых групп, которых нет в списке.-G
Коммутатор принимает (разделенный запятыми) список дополнительных групп для назначения пользователя.
Добавление пользователя в группу:
sudo adduser user group
Удаление пользователя из группы:
sudo deluser user group
После добавления к существующему пользователю:
usermod -a -G group user
Вам может потребоваться выйти из системы и войти, чтобы получить права доступа групп /etc/group
,
Я публикую это как ответ, потому что у меня недостаточно репутации, чтобы комментировать. Как уже упоминалось в @ dpendolino, эффект этой команды сохранится:
sudo usermod -a -G groupName userName
... вам нужно выйти / войти снова.
Однако, если вам нужен ярлык, чтобы сразу начать использовать новое членство в группе (и у вас есть правильные права sudo), я нашел этот обходной путь:
$ 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
sudo usermod -a -G groupName userName
будет работать нормально, но мне пришлось полностью перезагрузиться, просто выйдите из системы и войдите снова, не сделав работу...
На Ubuntu, так как вход в систему как root
не включен, пользователи в sudo
группа может повысить привилегии для определенных запрещенных команд. Любая ограниченная команда должна начинаться с sudo
повысить привилегию.
sudo usermod -a -G group user
добавит существующего пользователя user
к дополнительной группе по имени group
, Основная группа пользователя останется неизменной.
Чтобы навсегда добавить пользователя в группу, выполните следующую команду:
sudo usermod -a -G <groupname> <username>
Затем выйдите из системы и войдите снова (или перезагрузитесь, если необходимо).
Объяснение:
The usermod
Команда изменит файл , чтобы указать указанное имя пользователя в строке, относящейся к этой группе. Если вы запустите
grep <groupname> /etc/group
, вы должны увидеть свое имя пользователя в выводе.
В Linux каждый процесс назначается пользователю и группе, а любые дочерние процессы наследуют пользователя и группы родительского процесса. Таким образом, чтобы это изменение вступило в силу и распространилось, вам необходимо выйти из системы и снова войти в систему (после чего
/etc/group
читается и используется). На Wayland я обнаружил, что необходима полная перезагрузка.
Если вы запустите команду
groups
, вы можете увидеть, есть ли у текущего процесса ожидаемые группы или нет.