Jak dodać użytkowników do innej grupy użytkowników?

9

Mam użytkownika Johna i Keitha użytkownika na serwerze Ubuntu

Dodałem tych użytkowników za pomocą

sudo adduser John 
sudo adduser Keith

Jak mogę teraz dodać Johna do grupy Keitha?

Próbowałem:

sudo usermod -aG Keith john

Ale dostaję:

usermod: group 'Keith' does not exist

Co muszę zrobić, aby rozwiązać ten problem?

Natasha Thapa
źródło

Odpowiedzi:

17

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.

  • ...

Ярослав Рахматуллин
źródło
Może pomóc wyjaśnić, dlaczego podział opcji miałby działać i jakie są opcje.
Journeyman Geek
@JourneymanGeek: Gotowe! działa ...
Tamara Wijsman,
superużytkownicy powinni wiedzieć, jak
obsługiwać
@ ЯрославРахматуллин, superusers powinni rzeczywiście. Jednak większość pytań zadają „osoby nieuprawiające”, a odpowiedzi „superużytkownicy”. Ktoś, kto jest nowy w systemie Linux, nie ma powodu, aby wiedzieć o poleceniu man. W każdym razie wydane przez ciebie polecenie jest takie samo jak polecenie wykonane przez OP, twoja odpowiedź nie wyjaśnia, dlaczego nie zadziałało dla niej. Przynajmniej w moim systemie podział opcji nie ma znaczenia.
terdon
Po pierwsze, nie możesz uruchomić sudo adduser name sudo adduser name2, ponieważ jest to niepoprawna składnia dla useradd . useradd przyjmuje jeden argument nazwy użytkownika. Aby dodać dwóch użytkowników, musisz uruchomić polecenie dwukrotnie. IE useradd arne; useradd kari. Następnie możesz dodać kari do grupy arnes i odwrotnie. Po obejrzeniu kilku z tych pytań i udzieleniu poprawnej odpowiedzi nabieram trochę cierpliwości. obietnica!
Ярослав Рахматуллин
0

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:

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

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ć:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john
terdon
źródło
0

Możesz także edytować pliki konfiguracyjne ręcznie:

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

Przypisz identyfikator i inne pola.

KakashiSan
źródło