Odpowiedzi:
su
oznacza 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ż sudo
nie 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
;-)
$ script
i $ sudo script
? Użytkownik jest taki sam w obu przypadkach.
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.
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.
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