$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash
$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::
W drugim polu pliku cienia !
oznacza , że użytkownik root nie może się zalogować, ale dlaczego mogę się zalogować do użytkownika root sudo su
?
Dlaczego nie mogę się zalogować do użytkownika root za pomocą su root
lub su -
?
permissions
sudo
passwd
shadow
Sinoosh
źródło
źródło
Odpowiedzi:
W
!
polushadow
zaszyfrowanego hasła wpisu oznacza, że żadne hasło nie może zostać uwierzytelnione w stosunku do niego. Odman shadow
:Jak mówi instrukcja, nie oznacza to, że nie możesz zalogować się jako root. Oznacza to po prostu, że nie możesz zalogować się jako root przy użyciu hasła do konta root. (Możesz zalogować się jako root za pośrednictwem SSH za pomocą kluczy SSH, na przykład, jeśli wcześniej go skonfigurowałeś, nawet jeśli konto jest zablokowane.)
sudo
normalnie uwierzytelnia ze swoim hasłem, a nie root. Można to zmienić poprzez ustawienie jednegotargetpw
,rootpw
lubrunaspw
wsudoers
. Jeśli ustawisz jedną z tych opcji i spróbujesz użyć hasła, gdy hasło jest zablokowane, to się nie powiedzie .źródło
Teraz spójrzmy odpowiednio na polecenia:
sudo su
:sudo
uruchamia poleceniesu
(użytkownik zastępczy) z uprawnieniami administratora, więc nawet jeśli/etc/shadow
powiedzą lub maroot:!:17179:0:99999:7:::
, nadal będzie uruchamiać polecenia z uprawnieniami administratora.su -
lubsu root
:/etc/shadow
pliku nie może się zalogować, więc użycie tych poleceń nie będzie działać. Jeśli chcesz, aby działały, konto root musi zostać odblokowane poprzez podanie hasła.Podsumowanie:
su -
0rsu root
przełącza się na root użytkownika , nie istnieje, więc nie może się zdarzyć, alesudo su
uruchamia polecenie switch zroot
uprawnieniami, więc w tym przypadku przejdzie, jeśli jesteś wsudo
grupie. W tym przypadku nie logujesz się jako root, tylko działasz jako root, więc przejdzie.Źródło: Jaka jest różnica między „su -” a „su root”?
źródło
sudo su
że nie widzi pól przejścia w pliku cienia?sudo su
to zły sposób uruchamianiasudo sh
lubsudo bash
.