Odzyskiwanie dostępu do systemu OpenSolaris

Sun 06 September 2009 by admin

System OpenSolaris standardowo nie dopuszcza do zalogowania się bezpośrednio na konto root, zatem aby administrować systemem z uprawnieniami root'a należy skorzystać pośrednio z konta użytkownika, który ma przypisaną ,,rolę'' root. Aby przywrócić ,,stary porządek'' i bezpośrednio logować się na konto root należy:

# rolemod -K type=normal root

Po tej krótkiej wycieczce niewiele związanej z podejmowanym tematem, która jedynie odkrywa, że dostęp do administracji systemem nie musi się odbywać za pośrednictwem konta root, a
odzyskanie uprawnień root'a koncentruje się na wyczyszczeniu hasła użytkownika z przypisaną ,,rolą'' root'a (patrz. /etc/user_attr).

Czas przystąpić do dzieła  i odzyskać to co utracone...

Jedyne co będzie nam potrzebne prócz fizycznego dostępu do maszyny to płyta instalacyjna livecd z system OpenSolaris.
Po wystartowaniu maszyny z płyty livecd należy wykonać następujące czynności.

zaimportować pulę zfs o standardowej nazwie rpool:

$ pfexec zpool import -f rpool

jako, że system root jest montowany ręcznie (typ legacy) należy zmienić lokalizacja punktu montowania z / (zamontowany obraz livecd) na alternatywną:

$ pfexec zfs set mountpoint=/mnt2 rpool/ROOT/<nazwa_BE>

ręcznie zamontować gałąź root'a:

$ pfexec zfs mount rpool/ROOT/opensolaris

wyedytować plik shadow, kasując hasło root'a lub użytkownika z przypisaną ,,rolą'' root (między pierwszymi dwoma dwukropkami):

$ pfexec chmod u+w /mnt2/etc/shadow
$ pfexec vi /mnt2/etc/shadow

odmontować i przywrócić poprzedni punkt montowania:

$ pfexec zfs umount rpool/ROOT/opensolaris
$ pfexec zfs set mountpoint=/ rpool/ROOT/opensolaris

wyeksportować pulę zfs:

$ pfexec zfs export -f rpool

po ponownym wystartowaniu systemu należy z poziomu grub dodać parametr -s do sekcji kernel. Wówczas system wystartuje w trybie single-user jako użytkownika należy wybrać root lub tego z przypisaną rolą root'a, a następnie ustawić nowe hasło.

W celu zalogowania się bez hasła do systemu w trybie multi-user należy wyedytować plik /etc/default/login ustawiając:

PASSREQ=NO

a zaś aby można się zalogować bez hasła przez ssh (co nie jest szczególnie udanym pomysłem) należy w pliku /etc/ssh/sshd_config ustawić:

PermitEmptyPasswords=yes

Comments