Jakiego polecenia powinienem użyć do usunięcia użytkownika z grupy w Debianie?
Dodając użytkownika do grupy, można to zrobić za pomocą:
usermod -a -G group user
Nie udało mi się jednak znaleźć podobnego polecenia (akceptującego grupę i użytkownika jako argumenty) w celu usunięcia użytkownika z grupy. Najbliższe, jakie mogłem uzyskać, to:
usermod -G all,existing,groups,except,for,group user
Czy istnieje takie polecenie, jak w usermod OPTION group user
przypadku OPCJI, aby usermod
(lub podobny program) usunąć użytkownika z grupy?
Odpowiedzi:
Możesz użyć
gpasswd
:wtedy nowa konfiguracja grupy zostanie przypisana przy następnym logowaniu, przynajmniej na Debianie. Jeśli użytkownik jest zalogowany, efekty polecenia nie są widoczne natychmiast.
źródło
gpasswd -a user group
dodanie użytkownika do grupy wydaje się również przyjemniejsze, zwłaszcza jeśli literówka się popełniła i-a
opcja została odrzucona.usermod -g user user
następnie spróbuj je usunąć.W Debianie
adduser
pakiet zawieradeluser
program, który usuwa użytkownika z grupy, jeśli podasz oba argumenty:Jeśli Twoja dystrybucja nie ma
adduser
, możesz edytować/etc/group
i/etc/gshadow
ręcznie.źródło
vigr
ivipw
. Bardzo przydatne w przypadku, gdy strony są zbyt daleko :)/etc/group
uruchom,grpconv
aby zaktualizować/etc/gshadow
zamiast go edytować.sudo deluser jenkins admin
/ usr / sbin / deluser: Nie możesz usunąć użytkownika z jego grupy podstawowej.usermod
lub,vipw
aby zmienić grupę podstawową użytkownika. To pytanie dotyczyło grup uzupełniających.adduser $user $group
polecenie zamiastusermod -x -y -z -...
.usuwa wszystkie drugorzędne / dodatkowe grupy z nazwy użytkownika , pozostawiając ich jako członków tylko ich podstawowej grupy. działało to w Solarisie 5.9
źródło
To jest podejście „starej szkoły” ...
Większość systemów * nix przechowuje informacje o grupie w zwykłym pliku tekstowym
/etc/group
, gdziekażda linia zawiera pola
ograniczone przez
:
znak.Załóżmy teraz, że chcesz usunąć użytkownika o nazwie
thisuser
z grupy o nazwiethatgroup
. Zacznij od utworzenia kopii zapasowej/etc/group
, a następnie użyj edytora preferencji z uprawnieniami su do edycji pliku/etc/group
i usunięciathisuser
odwołania z pozycjithatgroup
wiersza, np.oryginalna linia wygląda mniej więcej tak:
thatgroup:x:1274:someuser,thisuser,anotheruser
po edycji należy pozostawić tak:
thatgroup:x:1274:someuser,anotheruser
Podobnie jak w przypadku wszystkich innych odpowiedzi, nie wpłynie to na bieżącą sesję użytkownika, jeśli taka istnieje (tj. Jeśli użytkownik jest aktualnie zalogowany). Zmiana zacznie obowiązywać przy następnym logowaniu użytkownika.
źródło
vigr
został już wspomniany do/etc/group
ręcznej edycji . Moje strony podręcznika mówią, że nazwy użytkowników są oddzielone przecinkami, a nie dwukropkami. Ponowne uruchomienie nie jest konieczne, wystarczy ponownie się zalogować (lub użyćnewgrp
).Możesz użyć poniższego polecenia w dystrybucjach SUSE (i najwyraźniej żadnych innych ).
gdzie
group
jest grupa, z której chcesz usunąć użytkownika iuser_name
użytkownik, którego chcesz usunąć z grupy. Na przykład,źródło
-R
opcję, ale to oznacza coś innego. To chyba nie Linux.-R
: „-R, --roro CHROOT_DIR Zastosuj zmiany w katalogu CHROOT_DIR i użyj plików konfiguracyjnych z katalogu CHROOT_DIR.”sudo usermod -R admin jenkins
usermod: niepoprawna ścieżka chroot 'admin'Rozważać:
abc2
Nazwa grupy:
newgroup11
Zadanie: usunięcie użytkownika
abc2
z grupynewgroup11
** Prosimy o poprawienie mnie, jeśli się mylę. **
źródło
usermod -G newgroup11 abc2
umieści cię w grupie drugorzędnejnewgroup11
. Ponieważ podstawową grupą jestabc2
, skończysz w obu grupach.usermod -g abc2 abc2
powodujenewgroup11
usunięcie z grup drugorzędnych, ponieważ nie jest już wspomniany. Tak więc dla trzech lub więcej różnych grup ta metoda nie będzie działać. Zobacz inne odpowiedzi dotyczącegpasswd
lepszego polecenia.Możesz usunąć użytkownika z grupy, wykonując komendę usermod bez opcji -a. Przykład, wykonując „usermod -G group1 nazwa użytkownika” doda użytkownika do grupy 1 i usunie go z innych grup, w których się znajduje. Pamiętaj, że możesz trzymać użytkownika w różnych grupach, wymieniając nazwy grup oddzielone przecinkami.
źródło
Aby kontynuować używanie usermod w dystrybucji (takiej jak Fedora), która nie ma opcji usuwania, gdzie user = bob i group = deletethisgroup, komenda wyglądałaby następująco:
Potoki (1) pobierają wszystkie wpisy grup, do których należy użytkownik, (2) wyjmują ten, który należy usunąć, (3) zwraca pierwszą kolumnę (nazwę grupy), zastępuje nowy wiersz przecinkiem i usuwa przecinek końcowy.
Oczywiście można to wszystko umieścić w skrypcie bash, który przyjmuje parametry użytkownika i grupy do usunięcia. awk może być użyty do skrócenia końca, ale chciałem trzymać się grep, cut, tr i sed.
źródło
gpasswd -d bob deletethisgroup
jest dostępna. Jest jakiś powód, dla którego go nie używasz?gpasswd
ponieważ jest blisko spokrewniona/etc/passwd
, ale zamiast tego zarządza grupami. W przeciwieństwie do zwykłegopasswd
polecenia, które kontroluje tylko hasła,gpasswd
może być również użyte do zarządzania członkostwem w grupie. Hasło grupy nie jest wymagane, jeśli jesteś rootem lub administratorem grupy.gpasswd $group
możesz ustawić hasło grupy, które powoduje wspomniany problem bezpieczeństwa. Jednak można również nie ma hasła i użyćgpasswd -d $user $group
aby usunąć użytkownika, jak opisano w pierwszym komentarzu i zaakceptowanych odpowiedź. Zauważ, że to polecenie nie monituje o hasło grupy, nie modyfikuje go ani nie wymaga.Załóżmy, że nazwa użytkownika = uczeń i nazwa grupy = badanie , dlatego aby usunąć
student
użytkownika zresearch
grupy, wykonaj następujące czynności:źródło
Rozwiązanie, jeśli używasz CSH, z jakiegokolwiek powodu.
źródło
Aby usunąć użytkownika z grupy, gpasswd jest najlepszym narzędziem dla tego IMO.
Przykład polecenia:
* Informacje o pomocy *
źródło