Domyślnie Raspbian jest skonfigurowany tak, że nie można zalogować się do konta root przy użyciu hasła. Odbywa się to od wpisu, w /etc/password
którym zaczyna się:
root:x:0:0:
Pola są oddzielone dwukropkami i wyjaśnione w man 5 passwd
(zwróć uwagę 5
, ponieważ man passwd
da ci stronę podręcznika dla polecenia passwd
; sekcja 5 dotyczy plików konfiguracyjnych, w tym przypadku mają one taką samą nazwę). Tutaj pierwszy to name ( root
), trzeci i czwarty to numeryczny uid i gid (oba 0
), a drugi to hasło. Dla większości wpisów to będzie x
, co wskazuje rzeczywisty hasło znajduje się w innym pliku /etc/shadow
.
Pamiętaj, że „rzeczywiste hasło” nie jest tak naprawdę nigdzie przechowywane. Przechowywany shadow
jest jednokierunkowy skrót rzeczywistego hasła. Hash jednokierunkowy jest wynikiem procesu, który zawsze da to samo (umożliwiając weryfikację hasła), ale jest nieodwracalny. Innymi słowy, jeśli ktoś dostanie w swoje ręce shadow
, nie można wydedukować hasła z skrótu. Jeśli jednak mogą modyfikować shadow
, oczywiście mogą wyłączyć lub zmienić hasło, które będzie działać. Ale nigdy nie będą w stanie odkryć twoich haseł. Dlatego nawet root
nie może tego zrobić (chociaż root może zawsze zmienić je na coś innego bez potrzeby używania oryginału).
W przypadku roota wpis shadow
zaczyna się tak, jak w przypadku większości innych kont systemowych:
root:*:
*
Wskazuje obecnie nie ma możliwości hasło, które mogą być wykorzystane do tego konta.
Użytkownik root może to zmienić za pomocą passwd
polecenia, aby ustawić nowe hasło, które zastąpi *
wspomniany wcześniej skrót (zawsze zaczynają się $n$
tam, gdzie n
jest jakaś losowa wartość, która jest używana jako „sól” skrótu, ale nie trzeba to zrozumieć).
W każdym razie, kiedy ustawiam kartę ze świeżego obrazu, pierwszą rzeczą, którą robię, jest wejście /etc/passwd
i usunięcie x
wpisu roota:
root::0:0
Zauważ, że teraz nie ma drugiego pola. Oznacza to, że nie ma hasła, a wszystko, co musisz zrobić, to wpisać root
polecenie logowania i zalogować się jako root
. Następnie możesz użyć, passwd
aby ustawić jeden.
Masz tutaj dwie możliwości, ale obie wymagają wyjęcia karty z pi i uzyskania dostępu do drugiej partycji z innego systemu (który może odczytywać / zapisywać partycje ext4).
Restore sudoers
. Jeśli masz obraz referencyjny, jest to łatwe, możesz po prostu przywrócić go do poprzedniego stanu, zastępując go. W przeciwnym razie jest to bardziej skomplikowana opcja, ponieważ musisz wiedzieć, co robisz (a twoje osiągnięcia sudoers
nie są tak dobre ...).
Edytuj /etc/passwd
i usuń to, x
jak opisano powyżej, włóż kartę ponownie, zaloguj się jako root
, utwórz hasło. Oczywiście nadal będziesz musiał to naprawić sudoers
, ale próby i błędy będą łatwiejsze, ponieważ jeśli naprawdę root
, zawsze będziesz mógł uzyskać do niego dostęp.
Jeśli nie masz systemu, który może uzyskać dostęp do systemów plików ext4 (dobrym „CD na żywo” Debiana jest tutaj dobrym wyborem), to utkniesz. Musisz przeflashować kartę i zacząć od nowa.