Как добавить пользователей в другую группу пользователей?

9

У меня есть пользователь Джон и пользователь Keith на сервере Ubuntu

Я добавил этих пользователей, используя

sudo adduser John 
sudo adduser Keith

Как теперь я могу добавить Джона в группу Кейта?

Я старался:

sudo usermod -aG Keith john

Но я получаю:

usermod: group 'Keith' does not exist

Что мне нужно сделать, чтобы решить эту проблему?

Наташа Тапа
источник

Ответы:

17

Ты можешь использовать: usermod -a -G grouptoadd username

Поскольку это гораздо менее очевидно, чем я думал, почему -a -G нормально, а -aG нет, я попытаюсь объяснить это:

Опция -G принимает либо одно значение, либо список значений. В случае одного значения это значение может быть задано следующим образом: -GVALUE, поскольку нет необходимости иметь пробел между параметром и значением. Это просто обычная практика.

Если в вашей системе есть группа с именем a, то вызов -Ga становится неоднозначным. Вы хотите, чтобы у пользователя была только одна группа? Вы звоните -a и -G? Тогда является ли "a" значением для -G? Где остальная часть значения (до -G)? Также распространенной практикой является то, что любой однобуквенный вариант может существовать раньше любого другого однобуквенного варианта so tat -xy == -yz. Но это неоднозначно, когда один из параметров может принимать одно значение, например, VALUE, или несколько значений, таких как VAL1, Val2, val4 и т. Д.

Таким образом, чтобы команда FAILSAFE работала правильно для всего ввода, вы должны отделить -a от -G

От man usermod:

имя

usermod - изменить учетную запись пользователя

конспект

usermod [опции] ВХОД

Описание

Команда usermod изменяет файлы системной учетной записи, чтобы отразить изменения, указанные в командной строке.

Опции

Опции, которые применяются к команде usermod :

  • -a, --append

    Добавьте пользователя в дополнительную группу (ы). Используйте только с опцией -G .

  • ...

  • -G, --groups GROUP1 [, GROUP2, ... [, GROUPN]]]

    Список дополнительных групп, в которые пользователь также входит. Каждая группа отделена от следующей запятой, без пробелов. На группы распространяются те же ограничения, что и на группу, указанную с параметром -g .

    Если пользователь в настоящее время является членом группы, которой нет в списке, он будет удален из группы. Это поведение можно изменить с помощью параметра -a , который добавляет пользователя в текущий список дополнительных групп.

  • ...

Ярослав Рахматуллин
источник
Может помочь объяснить, почему разделение параметров будет работать, и какие варианты они есть.
подмастерье Компьютерщик
@JourneymanGeek: Готово! работает ...
Тамара Вийсман
Суперпользователи должны знать, как мужчина, имхо ...
Ярослав Рахматуллин
@ ЯрославРахматуллин, суперпользователи действительно должны. Тем не менее, большинство вопросов , которые задают «не-суперпользователь» и ответили на «суперпользователь». Тот, кто не знаком с Linux, не имеет оснований знать о команде man. В любом случае, команда, которую вы дали, такая же, как команда, выполняемая OP, ваш ответ не объясняет, почему она не сработала для нее. По крайней мере, в моей системе разделение параметров не имеет значения.
тердон
Ну, во-первых, вы не можете запустить sudo adduser name sudo adduser name2, потому что это неверный синтаксис для useradd . useradd принимает один аргумент имени пользователя. Чтобы добавить двух пользователей, вы должны выполнить команду дважды. IE useradd arne; useradd kari. Затем вы можете добавить Кари в группу Арнес и наоборот. Я наберу немного терпения после просмотра нескольких вопросов и правильного ответа. обещание!
Ярослав Рахматуллин
0

Если вы выполнили команды в точности так, как вы показали в своем вопросе, вы создали не пользователя Keith, а только пользователя John. Для выполнения команд одна за другой в командной строке их необходимо разделять с помощью ;или &&. В противном случае будет выполнена только первая команда:

sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.

Если вы сделали выполнить их правильно, быть осторожным прописными буквами. В своем вопросе вы упоминаете и «Джон» и «Джон». Это должно работать:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john
terdon
источник
0

Вы также можете редактировать файлы конфигурации вручную:

sudo nano /etc/password
sudo nano /etc/group

Назначьте идентификатор и другие поля.

KakashiSan
источник