Jak mogę usunąć użytkowników root (admin), którzy mają ten sam UID (0) co root?

1

To jest mój plik passwd:

root:x:0:0:root:/root:/bin/bash
m:x:0:100::/home/m:/bin/bash
masoudjjgh:x:1000:100:masoudjjgh:/home/masoudjjgh:/bin/bash

Próbuję usunąć użytkownika m że jestem stworzony:

[root@...]# userdel m
[root@...]# userdel: user m is currently used by process 1

A kiedy próbuję zabić m za pomocą tego polecenia:

[root@...]# killall -KILL -u m

pulpit (kde), console i wszystko wyszło i logged mnie automatycznie. Wszystko blisko i muszę login jeszcze raz. userdel ponownie zamknie wszystko. Czy i tak jest do usunięcia m?

Stworzyłem go, ale teraz nie mogę go usunąć.

mlibre
źródło

Odpowiedzi:

3
root:x:0:0:root:/root:/bin/bash  
m:x:0:100::/home/m:/bin/bash
[...]
# userdel: user m is currently used by process 1
# killall -KILL -u m

Procesy i pliki są w rzeczywistości własnością numerów ID użytkowników, a nie nazw użytkowników. m i root mają ten sam UID, więc wszystko, co posiada jeden, jest również własnością drugiego. Na podstawie twojego opisu brzmi to jak oba userdel i killall widziałem każdy proces root (UID 0) jako należący do tego użytkownika „m”.

Według ta przykładowa strona man , userdel ma opcję -f wymusić usunięcie konta, nawet jeśli ma aktywne procesy. I userdel by prawdopodobnie po prostu usuń wpis passwd m i katalog domowy, bez wpływu na rzeczywiste konto roota.

Aby być bezpieczniejszym, mógłbym być skłonny ręcznie edytować plik haseł, aby usunąć wpis m, a następnie ręcznie usunąć katalog domowy m. Możesz nazwać polecenie w swoim systemie vipw, który pozwala bezpiecznie edytować /etc/passwd w edytorze tekstu.

Kenster
źródło
same UID bardzo ważny punkt, który widzisz. niż mogę zmienić m'UID, zrestartować i usunąć m. tak?
mlibre
Tak. Chciałbym rozwinąć sugestię Kenstera, aby powiedzieć: ręcznie edytuj plik haseł zmienić m UID do numeru nieużywanego przez żadnego innego użytkownika , a potem zrób userdel m. Ponowne uruchomienie nie powinno być konieczne.
G-Man
2

Najpierw ręcznie usuń linie z plików passwd i shadow w katalogu / etc. Możesz następnie podać rm -fR katalog domowy tego konta użytkownika. (mw twoim przykładzie)

Dodatkowe pliki nadal będą musiały zostać usunięte. Na przykład:

/ var / spool / mail / m

Jest to bardzo chirurgiczne podejście do użycia, gdy użytkownik odmawia pracy.

Jeff Clayton
źródło
tnx jego praca. ale może niewiele rzeczy nie zostanie skasowanych.
mlibre
tnx. bardzo dobra komenda. próbuję i widzę bardzo dobre pliki, które należy usunąć.
mlibre
find / -user m jest tu naprawdę wątpliwy. Ten „m” użytkownik ma UID 0, który jest również UID roota. Nie ma więc różnicy między plikami należącymi do „m” a plikami należącymi do „root”.
Kenster
1

To sprawi ci jakiś problem, ponieważ niektóre problemy wymagają `root.rootfor running. Mam lepszą sugestię:

  1. Importuj konto do /etc/suders tak jak:

    youraccount   ALL=(ALL) ALL
    
  2. Zmień użytkownika root jako /bin/false jako użytkownik niezalogowany.
PersianGulf
źródło
+1 Dobra odpowiedź, podczas gdy w rzeczywistości nie odpowiadała na zadane pytanie - jak usunąć użytkownika root?
Jeff Clayton
tnx mohsen. przez jeff'command (find -user *) znajduję pliki, które muszę zobaczyć i być może usunąć manulay!
mlibre