Możesz użyć: usermod -a -G grouptoadd username
Ponieważ jest to o wiele mniej oczywiste, niż myślałem, dlaczego -a -G jest w porządku, podczas gdy -aG nie jest, postaram się to wyjaśnić:
Opcje -G przyjmują jedną wartość lub listę wartości. W przypadku jednej wartości można podać wartość: -WARTOŚĆ, ponieważ nie ma wymogu, aby odstęp między opcją a wartością był wymagany. To tylko powszechna praktyka.
Jeśli masz w systemie grupę o nazwie a, wówczas wywołanie -Ga staje się niejednoznaczne. Czy chcesz, aby użytkownik miał tylko jedną grupę? Dzwonisz -a i -G? Czy zatem „a” ma wartość -G? Gdzie jest reszta wartości (do -G)? Powszechną praktyką jest również to, że każda opcja jednoliterowa może występować przed każdą inną opcją jednoliterową. więc tat -xy == -yz. Jest to jednak dwuznaczne, gdy jedna z opcji może przyjąć jedną wartość, taką jak WARTOŚĆ, lub wiele wartości, takich jak WARTOŚĆ1, WARTOŚĆ2, WAL4 itd.
Aby więc polecenie FAILSAFE działało poprawnie i działało poprawnie dla wszystkich danych wejściowych, musisz oddzielić -a od -G
Od man usermod
:
Imię
usermod - zmodyfikuj konto użytkownika
Streszczenie
usermod [opcje] LOGOWANIE
Opis
Komenda usermod modyfikuje pliki kont systemowych, aby odzwierciedlić zmiany określone w wierszu komend.
Opcje
Opcje mające zastosowanie do komendy usermod to:
-a, --append
Dodaj użytkownika do dodatkowych grup . Używaj tylko z opcją -G .
...
-G, --groups GROUP1 [, GROUP2, ... [, GROUPN]]]
Lista dodatkowych grup, których użytkownik jest również członkiem. Każda grupa jest oddzielona od następnej przecinkiem, bez pośrednich białych znaków. Grupy podlegają tym samym ograniczeniom, co grupa podana z opcją -g .
Jeśli użytkownik jest obecnie członkiem grupy, której nie ma na liście, zostanie on usunięty z grupy. To zachowanie można zmienić za pomocą opcji -a , która dołącza użytkownika do bieżącej dodatkowej listy grup.
...
Jeśli wykonałeś polecenia dokładnie tak, jak pokazano w pytaniu, nie utworzyłeś użytkownika Keith, a jedynie użytkownika John. Aby wykonać polecenia jeden po drugim w wierszu poleceń, musisz je rozdzielić za pomocą
;
lub&&
. W przeciwnym razie uruchomione zostanie tylko pierwsze polecenie:Jeśli ty wykonałeś je poprawnie, uważaj na duże litery. W swoim pytaniu wymieniasz zarówno „John”, jak i „John”. To powinno działać:
źródło
Możesz także edytować pliki konfiguracyjne ręcznie:
Przypisz identyfikator i inne pola.
źródło