Sudo su vs su Linux

24

Jeśli wprowadzę hasło, sugdy zostaniesz o to poproszony, to nie będzie działać sudo su. Ponadto, gdy polecenie jest wykonywane przy użyciu sudo (command), sudo automatycznie wykonuje je domyślnie przez rootowanie (ponieważ strona podręcznika mówisudo, sudoedit - execute a command as another user

michaelxu@michaelxu-server:~$ su
Password:
su: Authentication failure
michaelxu@michaelxu-server:~$ sudo su
[sudo] password for michaelxu:
root@michaelxu-server:/home/michaelxu# exit
agz
źródło

Odpowiedzi:

41

Jest tak, ponieważ supyta o hasło użytkownika, którego się zmieniasz (domyślnie jest to root), a sudopyta o hasło do twojego konta użytkownika i sprawdza, czy możesz uruchomić polecenie.

Podczas uruchamiania sudo suużytkownik prosi sudoo uruchomienie polecenia sujako root, co daje powłokę root. Jeśli używasz tylko su, musisz znać hasło użytkownika docelowego, aby uzyskać dostęp.

Używanie sudobez parametrów oznacza, że ​​chcesz użyć roota. Jeśli chcesz wykonać polecenie jako inny użytkownik, spróbujsudo -u <username> <command>

Renan
źródło
7
Kolejną ważną informacją pozwalającą zrozumieć powiązaną komendę sudo su otheruserjest to, że supozwala rootowi na przełączenie się na dowolnych użytkowników bez wprowadzania hasła, podczas gdy uruchomieni użytkownicy inni niż root sumuszą wprowadzić hasło użytkownika docelowego. sudo sudlatego działa sujako root, co pozwala uzyskać powłokę dla innego użytkownika bez znajomości jego hasła (o ile jest to dozwolone przez sudoers).
Lie Ryan,
Jakie byłoby moje hasło roota dla polecenia „su”? Dlaczego nie ustawiłem hasła na początku instalacji?
agz
Ponieważ Twoja dystrybucja prawdopodobnie tego nie ustawiła. Możesz ustawić hasło roota sudo passwd(najpierw podaj hasło użytkownika, a następnie wybierz nowe hasło roota).
Renan
Więc w tej chwili nie ma hasła? ... więc w zasadzie root to tylko konto, którego sudoers mogą używać do wprowadzania zmian w plikach root?
agz
nie tylko to, istnieje wiele innych usług, które muszą działać jako root (sprawdź ps aux).
Renan
17

suoznacza s witch (or s upstitute) u ser. Bez podania nazwy użytkownika domyślnie przechodzi na root. Wyświetla monit o podanie hasła użytkownika, do którego się przełączasz.

sudosłuży do uruchamiania polecenia jako root (tj. z uprawnieniami roota) lub jako inni użytkownicy. Wyświetla monit o podanie hasła i sprawdza, czy możesz używać sudo.

Podczas wpisywania supojawia się monit o przełączenie na root, a wymagane hasło to hasło root. Kiedy piszesz sudo su, musisz wykonać polecenie, aby przełączyć się na root jako root , więc hasło , o które się prosisz, jest twoje.

ForeverWintr
źródło
1

... i aby rozwiązać problem z niemożnością używania samego „su”, sudo do powłoki roota i ustaw hasło dla roota za pomocą „chpass”.

Nevin Williams
źródło