Obecne ustawienia domyślne konta głównego /etc/passwd
to root:x:0:0:root:/root:/bin/bash
.
Dlaczego nie ustawić root:x:0:0:root:/root:/usr/sbin/nologin
?
Obecne ustawienia domyślne konta głównego /etc/passwd
to root:x:0:0:root:/root:/bin/bash
.
Dlaczego nie ustawić root:x:0:0:root:/root:/usr/sbin/nologin
?
Odpowiedzi:
Gdyby tak było, można by uruchamiać polecenia sudo
pojedynczo, ale nie można uruchomić powłoki roota. Powłoka root jest wygodna w wielu przypadkach, np. Jeśli planujesz uruchamiać wiele poleceń jako root z rzędu.
W szczególności nie można uruchomić sudo -i
, jak zauważył AlexP. Od man sudo
:
-i, --login Run the shell specified by the target user's password database entry as a login shell.
sudo /bin/bash
działa?
sudo -s
myślę (a rootem, ale nie jest to główny logowania shell). To jednak dobra uwaga - i sudo -s
wydaje się, że działa nawet wtedy, gdy jest to skorupa roota/usr/sbin/nologin
-i
, -s
, /bin/bash
, i tak dalej po prostu pozwalając białą listę poleceń, zobacz dokumentację pliku sudoers. Jest to tak drobnoziarniste, że można na przykład zezwolić użytkownikom na uruchamianie się /etc/init.d/someservice restart
jako root bez konieczności uruchamiania /etc/init.d/someservice stop
. Ale domyślnym ubuntu jest po prostu brak hasła root
i zezwalanie administratorom na robienie wszystkiego z sudo. Prawdopodobnie uzasadnieniem jest: a) więcej niż jeden użytkownik admin oraz b) użytkownik admin nie musi pamiętać drugiego hasła do konta root.
Oprócz sudo Alberto Santiniego jest jeszcze jedna (znacznie lepsza) odpowiedź. Jeśli powłoka root jest ustawiona na coś, co nie jest powłoką, uruchamianie pojedynczego użytkownika nie działa. Odzyskiwanie sulogin
dotyczy nieistniejącej powłoki lub całkowicie zepsutej powłoki, ale nie zadziała, jeśli powłoka wydaje się być prawidłową powłoką, ale tak naprawdę nie jest powłoką.
Nadal możesz sudo
bezpośrednio uzyskać powłokę, określając sudo
ją, aby nie była to nawet dobra ochrona.
sudo -i
?