Jak usunąć użytkownika z grupy?

107

Dodałem konto użytkownika do admingrupy i odkryłem, że dodałem niewłaściwego użytkownika. Więc teraz muszę usunąć konto z admingrupy.

Jak mogę usunąć konto z grupy bez usuwania użytkownika?

Eonil
źródło

Odpowiedzi:

143

Odpowiedź Portablejim jest dokładna, ale niebezpieczna - jeśli coś wpiszesz, twój system może być bezużyteczny, szczególnie jeśli niewłaściwie zmienisz grupę administracyjną. Jeśli musisz edytować plik grup, użyj poleceń vipw -glub vigr, które sprawdzają składnię przed zapisaniem. Nawet wtedy istnieją lepsze sposoby.

Z wiersza polecenia prawdopodobnie chcesz użyć następującego (jako root):

deluser <username> <groupname>

Spowoduje to usunięcie określonego użytkownika z określonej grupy. Musisz ponownie się zalogować, aby zobaczyć efekt. Nie usunie użytkownika ani grupy, tylko członkostwo. Istnieją również sposoby wykonania tego usermodpolecenia, ale trudniej jest go użyć, ponieważ trzeba zastąpić całą listę grup dla użytkownika, aby usunąć pojedynczą grupę. gpasswdPolecenia jest również w stanie to zrobić (jak sagarchalise zaznacza), ale jest przede wszystkim przestarzałe. Jak zawsze, zobacz strony podręcznika, aby uzyskać więcej szczegółów.

zanfur
źródło
9
gpasswdnie jest przestarzałe. Jego celem jest administrowanie / etc / group i / etc / gshadow. Ponadto, mimo że twoja metoda działa i jest wymieniona na stronie podręcznika administratora, jest to trochę ryzykowne. Jeśli przypadkowo wciśniesz Enter przed wpisaniem nazwy grupy, usuniesz użytkownika. Lepiej mieć nadzieję, że pamiętasz jego identyfikator UID, dzięki czemu możesz szybko go dodać. Bezpieczniej byłoby użyć gpasswd, który jest przeznaczony do tego celu.
Rozgwiazda
1
Myślałem też o tym ryzyku. Wydaje mi się, że zawsze możesz uruchomić takie polecenie za pomocą „#”, nacisnąć Enter, a następnie uruchomić je ponownie, usuwając tylko pierwszą postać.
ezequiel-garzon
„Musisz ponownie się zalogować, aby zobaczyć efekt”. ... lub możesz po prostu napisać: „cat / etc / group”
josh.thomson
Znalazłem deluserpodczas przeszukiwania stron podręcznika (tutaj z Ubuntu 18 w 2018 r.), Ale pierwszy wiersz na stronie podręcznika brzmi: „usuń użytkownika lub grupę z systemu”, więc zacząłem szukać. Oczywiście strona podręcznika musi być lepiej sformułowana.
tim.rohrer
Znalazłem tę odpowiedź w artykule i natychmiast włosy na karku wstały. Nie wiem, dlaczego tak wielu ludzi lubi i akceptuje tę odpowiedź, ale jest to niebezpieczne IMHO; esp jako root. Odpowiedź Anthony'ego Geoghegana jest właściwym rozwiązaniem; tak jak mówi Starfish.
46

Możesz to zrobić:

sudo gpasswd -d username group

Powinieneś także sprawdzić instrukcję gpasswd

sagarchalizować
źródło
4
Jedną z zalet gpasswdjest to, że jest bardziej wieloplatformowy, a także działa na dystrybucjach opartych na Red Hat.
Anthony Geoghegan
To jest właściwa odpowiedź. Gdyby tylko wzrósł na szczyt.
Czy możesz edytować swoją odpowiedź, aby wyjaśnić, co robi flaga -d? (W każdym razie głosowałem na najlepszą odpowiedź! Dziękuję!)
Aerendir
2

Najłatwiejszy i najbezpieczniejszy sposób:

sudo -H gedit /etc/group

i usuń go ręcznie.

vanbran
źródło
Widzę, że to jest w porządku. ssh:x:118: Jakie jest znaczenie liczby 118tutaj?
ankit7540,
zdecydowanie NIE najbezpieczniejszy sposób!
callmebob
2

Zobacz odpowiedź zanfura.

Edytuj /etc/groupplik jako root (tj. gksudo gedit /etc/group) I usuń nazwę użytkownika z wiersza rozpoczynającego się od „admin”

to znaczy

...
admin:x:120:adminuser,adminuser2,userthatshouldnotbeadmin
...

staje się

...
admin:x:120:adminuser,adminuser2
...

Uwaga: literówki w pliku mogą uszkodzić system.

Portablejim
źródło
11
Nie radzę ręcznie edytować tych plików systemowych. W przypadku zepsucia system może stać się niedostępny.
gertvdijk
Albo przynajmniej najpierw wykonaj kopię zapasową. ( Powiązane informacje. )
Eliah Kagan
2
Myślę, że powinieneś to opublikować, ponieważ jest to cenny wgląd w działanie Linuksa. Powinien jednak zawierać ostrzeżenie, że istnieje znacznie bezpieczniejszy sposób
Freedom_Ben