Як додати користувачів до іншої групи користувачів?


9

У мене є користувач john та користувач 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? Ви називаєте -a та -G? Тоді значення "a" до -G? Де решта значення (до -G)? Також є звичайною практикою, що будь-який варіант з однієї літери може перед будь-яким іншим варіантом з однієї літери. так tat -xy == -yz. Але це неоднозначно, коли один із варіантів може приймати або одне значення, як VALUE, або багато значень, таких як VAL1, Val2, val4 тощо.

Отже, щоб зробити команду FAILSAFE і правильно працювати для всіх вхідних даних, ви повинні відокремити -a від -G

Від man usermod:

Ім'я

usermod - зміна облікового запису користувача

Конспект

usermod [параметри] ВХІД

Опис

Команда usermod модифікує файли облікового запису системних даних, щоб відображати зміни, вказані в командному рядку.

Параметри

Параметри, які застосовуються до команди usermod, є:

  • -а, --додавати

    Додайте користувача до додаткової групи . Використовуйте лише опцію -G .

  • ...

  • -G, --групи GROUP1 [, GROUP2, ... [, GROUPN]]]

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

    Якщо користувач наразі є членом групи, яка не вказана в списку, його буде видалено з групи. Цю поведінку можна змінити за допомогою параметра -a , яка додає користувача до поточного додаткового списку груп.

  • ...


Можливо, допоможе пояснити, чому розбиття варіантів спрацює, і які вони варіанти.
Подорожник Geek

@JourneymanGeek: Готово! працює ...
Тамара Війсман

суперруси повинні знати, як людині, імхо ...
Ярослав Рахматуллін

@ ЯрославРахматуллін, суперпослуги справді повинні. Однак більшість питань задаються "неперевіреними споживачами", а відповідями - "суперпользователями". Хтось, хто не знайомий з Linux, не має підстав знати команду man. У будь-якому випадку команда, яку ви дали, така сама, як та, яка виконується ОП, ваша відповідь не пояснює, чому вона не працювала для неї. Щонайменше, у моїй системі розбиття варіантів не має ніякої різниці.
terdon

Ну, по-перше, ви не можете запустити ім'я sudo adduser sudo adduser name2, тому що це недійсний синтаксис для useradd . useradd бере один аргумент імені користувача. Щоб додати двох користувачів, вам слід виконати команду двічі. IE useradd arne; useradd kari. Потім ви можете додати карі до групи арнесів і навпаки. Я зроблю ще трохи терпіння, переглянувши ще кілька цих питань і відповіді належним чином. обіцянка!
Ярослав Рахматуллін

0

Якщо ви виконали команди точно так, як ви показали у своєму запитанні, ви створили не користувача Кіта, а лише користувача Джона. Для виконання команд одна за одною в командному рядку потрібно розділити їх за допомогою ;або &&. В іншому випадку буде виконуватися лише перша команда:

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

Якщо ви зробили виконати їх правильно, бути обережним прописними буквами. У своєму запитанні ви згадуєте і "Джон", і "Джон". Це має працювати:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john

0

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

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

Призначте ідентифікатор та інші поля.

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