Я хочу добавить пользователя Apache (www-data) к audio группа. Я прочитал справочную страницу для useradd, но мне что-то не везет. Я использую xubuntu 11.10. Вот что я делаю:
$ sudo useradd -G audio www-datauseradd: user 'www-data' already exists
Если я упущу из виду -G опция, bash, печатает справочную информацию для useradd:
$ sudo useradd audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR base directory for the home directory...
Из справочной страницы мне неясно, какие параметры я должен использовать, чтобы это сработало.
То useradd команда попытается добавить нового пользователя. Поскольку ваш пользователь уже существует, это не то, что вы хотите.
Вместо этого: Чтобы изменить существующего пользователя, например, добавить этого пользователя в новую группу, используйте usermod команда.
Попробуй это:
sudo usermod -a -G groupName userName
То -a (добавить) переключатель необходим. В противном случае пользователь будет удален из любых групп, которых нет в списке.
То -G переключатель принимает (через запятую) список дополнительных групп для назначения пользователя.
В целом (для графического интерфейса или для уже запущенных процессов и т.д.) пользователь вам нужно будет выйти из системы и снова войти в систему чтобы увидеть добавление их новой группы. Для текущего сеанса командной строки вы можете использовать newgrp:
newgrp groupName
newgrp добавляет группу в текущий сеанс командной строки.
Я публикую это в качестве ответа, потому что у меня недостаточно репутации, чтобы комментировать. Как упоминал @dpendolino, чтобы эффекты этой команды сохранялись:
sudo usermod -a -G groupName userName
...вам нужно снова выйти из системы / войти в систему.
Однако, если вам нужен ярлык, чтобы начать использовать свое новое членство в группе немедленно (и у вас есть правильный потеть привилегии) Я нашел этот обходной путь:
$ sudo su -# su [userName]$ groups
Объяснение:
sudo su - даст вам корневую оболочку
su [userName] возвращает вас в оболочку с вашим пользователем
groups при запуске сейчас будет показана группа, которую вы добавили с помощью usermod -aG команда
В моем случае я пытался добавить группу "docker" к своему пользователю
На Ubuntu, так как вход в систему как root не включен, пользователи в sudo группа может повышать привилегии для определенных ограниченных команд. Любая ограниченная команда должна быть дополнена символом sudo чтобы повысить привилегии.
sudo usermod -a -G группапользователь
добавит существующего пользователя user в дополнительную группу с именем group. Основная группа пользователя останется неизменной.
Чтобы навсегда добавить пользователя в группу, выполните эту команду:
sudo usermod -a -G <groupname> <username>
Затем выйдите из системы и снова войдите в систему (или перезагрузитесь, если необходимо).
Объяснение:
То usermod команда изменит /etc/group файл чтобы указать указанное имя пользователя в строке, относящейся к этой группе. Если ты побежишь grep <groupname> /etc/group, вы должны увидеть свое имя пользователя в выходных данных.
В Linux каждый процесс назначается пользователю и группам, и любые дочерние процессы наследуют пользователя и группы родительского процесса. Итак, чтобы это изменение вступило в силу и распространилось, вам необходимо выйти из системы и снова войти в систему (в этот момент /etc/group читается и используется). На Wayland я обнаружил, что необходима полная перезагрузка.
Если вы запустите команду groups, вы можете увидеть, есть ли в текущем процессе ожидаемые группы или нет.