Jak mogę zmienić domyślną grupę użytkownika w systemie Linux?

41

Będąc nowym administratorem Linuksa, jestem trochę zdezorientowany następującymi poleceniami:

useradd
usermod
groupadd
groupmod

Właśnie skończyłem czytać książkę administracyjną użytkownika w podręczniku administratora Linux / Unix, ale niektóre rzeczy są nadal trochę mgliste.

Zasadniczo useraddwydaje się dość prosty:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Mogę dodać „David Hilbert” z nazwą użytkownika hilbert, ustawiając jego domyślny katalog, powłokę i grupy. I myślę, że -gto jego podstawowa / domyślna grupa i -Gsą to jego inne grupy.

Oto moje następne pytania:

  1. Czy ta komenda nadal działać, jeśli grupy facultyi famousnie istnieje? Czy to po prostu je stworzy?
  2. Jeśli nie, jakiego polecenia używam do tworzenia nowych grup?
  3. Jeśli usunę użytkownika hilberti nie będzie w nim innych użytkowników, czy nadal będą istnieć? Czy powinienem je usunąć?
  4. Po uruchomieniu useraddpowyższego polecenia, jak usunąć Davida z famousgrupy i ponownie przypisać jego podstawową grupę, do hilbertktórej jeszcze nie istnieje?
cwd
źródło

Odpowiedzi:

27

usermodKomenda pozwoli Ci zmienić grupę podstawową użytkownika, grupę uzupełniających lub szereg innych atrybutów. -gPrzełącznik kontroluje grupę pierwotną.

W przypadku innych pytań ...

  1. Jeśli określisz grupę, groupnamektóra nie istnieje podczas useraddetapu, pojawi się błąd - useradd: nieznana grupa nazwa grupy

  2. groupaddPolecenie tworzy nowe grupy.

  3. Grupa pozostanie, jeśli usuniesz wszystkich zawartych w niej użytkowników. Nie musisz koniecznie usuwać pustej grupy.

  4. Utwórz hilbertgrupę przez groupadd hilbert. Następnie przenieś główną grupę Davida za pomocą usermod -g hilbert hilbert. (Pamiętaj, że pierwsza hilbertto nazwa grupy, a druga hilbertto nazwa użytkownika. Jest to ważne w przypadkach, gdy przenosisz użytkownika do grupy o innej nazwie)

Możesz jednak nieco komplikować sytuację. W wielu dystrybucjach Linuksa prosty useradd hilbertutworzy użytkownika hilberti grupę o tej samej nazwie co podstawowa. Dodałbym dodatkowe grupy określone razem za pomocą -Gprzełącznika.

ewwhite
źródło
1
dzięki. jeśli to zrobię, usermod -g hilbert hilbertczy to usunie inne grupy Hilberta? Jeśli tak, jak mam zachować te inne grupy? Jeśli nie, wow, czy usunę go z innych grup?
cwd
Przetestuj to i sprawdź, czy Twoje środowisko jest odpowiednie.
ewwhite
Odpowiedź @ MIcka zyskuje moje poparcie, ponieważ zwraca uwagę, że musisz użyć opcji -a z opcją -G (w przeciwnym razie każda grupa, którą opuścisz, zostanie usunięta )
Jeff
9

Musisz przeczytać to, man usermodco wyjaśnia, co dzieje się z różnymi opcjami:

usermod -g hilder hilder

zastąpi twoją grupę logowania z „wydziału” na „hilder”, o ile istnieje grupa „hilder”. Jeśli nie istnieje, najpierw musisz go utworzyć za pomocą groupadd.

Korzystając z -Gopcji, należy również użyć -aopcji, aby dołączyć nowe grupy do bieżącej listy grup dodatkowych, do których należy użytkownik „hilder”. Bez tej -aopcji zastąpisz bieżące grupy dodatkowe nowym zestawem grup. Dlatego używaj tego ostrożnie.

Mick
źródło
5

Aby zmienić grupę podstawową użytkownika w systemie Linux:

  • usermod -g new_group user_name
  • zakończ wszystkie aktywne sesje nazwy użytkownika

Aby przetestować zmiany, uruchom idi sprawdź wartośćgid=

Jeśli polecenie działa bez błędów, ale gid się nie zmienił, przegapiłeś pogrubioną część kroku 2.

ndemou
źródło
1

odpowiedź nr 1 jest dobra, nadal możesz również wydać następujące polecenie, aby dodać nową grupę:

# nano /etc/group

Minusem /etc/groupbezpośredniej edycji jest to, że będziesz musiał wymyślić nieużywany GID (numer identyfikacyjny grupy).

Poniższe pozwoli ci zmienić podstawową grupę użytkownika. # nano /etc/passwd

Lokalizujesz wiersz użytkownika i zmieniasz GID (numer grupy, sprawdź go /etc/group), pamiętaj, że składnia jest następująca:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Nie ma minusem mogę myśleć o tego podejścia (pod warunkiem znasz GID), to jest to, co często wykorzystują do użytkowników lokalnych, głównie dlatego, że korzystać z wielu różnych systemów UNIX z różnymi usermod, adduseri useraddopcji polecenia.

Jest to jednak nieco bardziej ręczne, jednak spełnia swoje zadanie. Pamiętaj, że możesz użyć viiso nanodo edycji plików, jeśli wiesz vi.

Nikołaj Aleksandrow Georgiew
źródło
0

Aby trwale zmienić podstawową grupę użytkownika, wykonaj:

  • usermod -g polecenie nazwa_grupy nazwa_użytkownika

Lub możesz użyć newgrpdo małego środowiska i sytuacji tymczasowej.

Utwórz nowego użytkownika bob i nową grupę dodo.

useradd bob

Tak więc w RedHat / Centos mamy UID = (ID_number) bob; GID = (ID_number) bob jako domyślnie grupa podstawowa

groupadd dodo

Dodaj bob użytkownika do dodogrupy:

usermod -aG dodo bob -make sure to use "a"

Następnie użyj, newgrpaby zmienić własność:

newgrp dodo

Uważaj na swoje konto, aby mieć hasło i być członkiem przyszłej grupy podstawowej. A newgrp otwiera nową powłokę; tak długo, jak użytkownik pozostaje w tej powłoce, podstawowa grupa się nie zmieni. Aby przełączyć grupę podstawową z powrotem na oryginał, możesz opuścić nową powłokę, uruchamiając polecenie exit.

Dragos Alexe
źródło