Můžete použít:usermod -a -G grouptoadd username
Protože je mnohem méně zřejmé, než jsem si myslel, proč -a -G je v pořádku, zatímco -aG není, pokusím se to vysvětlit:
Volby -G mají buď jednu hodnotu, nebo seznam hodnot. V případě jedné hodnoty může být hodnota uvedena jako:-GVALUE, protože není požadováno mít mezeru mezi možností a hodnotou. To je prostě běžná praxe.
Pokud máte ve svém systému skupinu s názvem a, pak se volání -Ga stává nejednoznačným. Chcete, aby měl uživatel pouze jednu skupinu a? Voláte -a a -G? Je pak "a" hodnotou -G? Kde je zbytek hodnoty (do -G)? Je také běžnou praxí, že jakákoli jednopísmenná možnost může před jakoukoli jinou jednopísmennou možností. takže tat -xy ==-yz. To je však nejednoznačné, když jedna z možností může mít buď jednu hodnotu, jako je VALUE, nebo mnoho hodnot, jako je VAL1, Val2, val4 atd.
Takže aby byl příkaz FAILSAFE a fungoval správně pro všechny vstupy, musíte oddělit -a od -G
Od man usermod
:
Jméno
usermod - úprava uživatelského účtu
Souhrn
usermod [možnosti] PŘIHLÁSIT SE
Popis
usermod příkaz upraví soubory systémových účtů tak, aby odrážely změny zadané na příkazovém řádku.
Možnosti
Možnosti, které platí pro usermod příkazy jsou:
-a, --append
Přidejte uživatele do doplňkové skupiny (s). Používejte pouze s -G možnost.
...
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
Seznam doplňkových skupin, kterých je uživatel také členem. Každá skupina je od další oddělena čárkou, bez mezer. Skupiny podléhají stejným omezením jako skupina uvedená pomocí -g možnost.
Pokud je uživatel aktuálně členem skupiny, která není uvedena, bude ze skupiny odebrán. Toto chování lze změnit pomocí -a možnost, která připojí uživatele k aktuálnímu seznamu doplňkových skupin.
...