Kiedy su i sudo używają różnych haseł?

12

Jestem w stanie uruchomić wszystko przy użyciu sudo; moje hasło zostało zaakceptowane. Ale ilekroć próbuję zrobić suz powłoki, kończy się to niepowodzeniem:

su: nieprawidłowe hasło

Jaki może być problem?

Lazer
źródło

Odpowiedzi:

22

suoznacza użytkownika zastępczego, a jeśli zostanie wywołany bez żadnych argumentów, zostaniesz superużytkownikiem. Dlatego musisz wprowadzić hasło roota.

Jest to trochę nieprzydatne, jeśli wiele osób potrzebuje poleceń do administrowania systemem lub podobnych rzeczy z rozszerzonymi prawami użytkownika. Po prostu nie chcesz, aby ludzie mieli nieograniczone prawa, udostępniając to samo hasło roota.

Rozwiązaniem tego rodzaju problemów jest sudo(„ zastępczy użytkownik ”). Umożliwi to określenie poleceń, które ktoś może wywoływać, i zdefiniowanie uprawnień. Ponieważ sudonie musisz wprowadzać hasła roota, ale hasło użytkownika, który próbuje wywołać polecenie sudo.

W niektórych dystrybucjach użytkownik root jest wyłączony ze względów bezpieczeństwa. To może być jedno z wyjaśnień, dlaczego nie możesz użyć su. W takim przypadku, aby uzyskać powłokę z uprawnieniami administratora, użyj sudo -s;-)

echox
źródło
5
Zaleca się wykonanie tego ostatniego bitu, ponieważ sudo su -myślnik oznacza ustawienie środowiska zgodnie z profilem logowania użytkownika (w tym przypadku użytkownika root). Zwykle daje to niewielki wzrost bezpieczeństwa PATH, ale wciąż nie chroni przedecho hi > /dev/my_critical_filesystem
msw
aaah zapomniałem tego :-) dzięki za dodanie!
echox
@echox: Czy jest jakaś różnica między $ scripti $ sudo script? Użytkownik jest taki sam w obu przypadkach.
Lazer,
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.- od człowieka sudo. Zwykle skrypt będzie wywoływany z uprawnieniami administratora. To jest różnica.
echox
1
@Chris: niestety jest to wymagane, jeśli chcesz odziedziczyć całe środowisko użytkownika root, w tym jego PATH. Nawiasem mówiąc, właśnie dowiedziałem się, że „sudo -s”, które skomentowałem powyżej, ale które teraz usunąłem, bardziej odpowiada „sudo su”, bez myślnika: bez zmiany na CWD, bez zmiany na ŚCIEŻKĘ.
Warren Young,
7

Polecenie su bez opcji domyślnie pozwoli ci zostać użytkownikiem root. Nie pyta o twoje hasło, ale hasło roota.

Polecenie sudo zawsze prosi o podanie hasła.

Matthew Brannigan
źródło
2
na marginesie, jeśli używasz Ubuntu, domyślnie hasło roota jest zablokowane, więc możesz nie znać hasła roota help.ubuntu.com/community/RootSudo
phunehehe
3
„Polecenie sudo zawsze prosi o podanie hasła.” W rzeczywistości jest to konfigurowalne. Można go również skonfigurować tak, aby pytał o hasło roota lub hasło użytkownika docelowego (lub w ogóle o brak hasła).
sepp2k