Przeczytałem go już z instrukcji, ale nie widzę różnicy ..
su
- zmień ID użytkownika lub zostań superużytkownikiem
sudo -s [command]
Opcja -s
(shell) uruchamia powłokę określoną przez zmienną środowiskową SHELL, jeśli jest ustawiona, lub powłokę określoną w passwd (5). Jeśli podano polecenie, jest ono przekazywane do powłoki w celu wykonania. W przeciwnym razie wykonywana jest interaktywna powłoka.
sudo -i
zniknij opis w instrukcji
su user
do logowania z niezaufanych powłok, alesu - user
. Zobacz unix.stackexchange.com/q/7013/8250sudo -i
jest źle, ale z pewnością możesz z niego skorzystać, używając tegoOdpowiedzi:
Główną różnicą między tymi poleceniami jest sposób, w jaki ograniczają dostęp do swoich funkcji.
su
(co oznacza „podmień użytkownika” lub „przełącz użytkownika”) - robi dokładnie to, uruchamia kolejną instancję powłoki z uprawnieniami użytkownika docelowego. Aby mieć do tego uprawnienia, prosi o podanie hasła użytkownika docelowego . Aby zostać rootem, musisz znać hasło roota. Jeśli na twoim komputerze jest kilku użytkowników, którzy muszą uruchamiać polecenia jako root, wszyscy muszą znać hasło roota - pamiętaj, że będzie to to samo hasło. Jeśli musisz odwołać uprawnienia administratora od jednego z użytkowników, musisz zmienić hasło roota i przekazać je tylko tym osobom, które muszą zachować dostęp - niechlujny.sudo
(hmm ... co to jest mnemonik? Super-User-DO?) jest zupełnie inny. Wykorzystuje plik konfiguracyjny (/ etc / sudoers), który wyświetla listę użytkowników, którzy mają prawa do określonych działań (uruchamiaj polecenia jako root, itp.) Po wywołaniu pyta o hasło użytkownika, który go uruchomił - aby upewnić się, że osoba na terminal to tak naprawdę ten sam „Joe”, który jest wymieniony w/etc/sudoers
. Aby odwołać uprawnienia administratora od osoby, wystarczy edytować plik konfiguracyjny (lub usunąć użytkownika z grupy wymienionej w tej konfiguracji). Powoduje to znacznie czystsze zarządzanie uprawnieniami.W rezultacie w wielu systemach opartych na Debianie
root
użytkownik nie ma ustawionego hasła - tzn. Nie można zalogować się bezpośrednio jako root.Ponadto,
/etc/sudoers
pozwala określić dodatkowe opcje - tj użytkownik X jest tylko w stanie uruchomić program, Y itdCzęsto wykorzystywane
sudo su
kombinacja działa w następujący sposób: najpierwsudo
prosi o swoim hasłem, a jeśli masz prawo do tego, powołuje się na następną komendę (su
) jako super-użytkownika. Ponieważsu
jest wywoływany przezroot
, nie wymaga wprowadzania hasła użytkownika docelowego. Tak więc,sudo su
pozwala otworzyć skorupę jako inny użytkownik (w tym root), jeśli masz prawo dostępu super-użytkownika o/etc/sudoers
pliku.źródło
su
jako „przełączającego użytkownika”, ale zawsze jako superużytkownik; domyślne zachowanie bez nazwy użytkownika innej osoby (choć ma to sens). Z wikipedii : „Polecenie su, zwane również superużytkownikiem [1] już w 1974 r., Było również nazywane„ użytkownikiem zastępczym ”,„ fałszowaniem użytkownika ”lub„ ustawieniem użytkownika ”, ponieważ umożliwia zmianę konta powiązanego z bieżącym terminal (okno). ”sudo su
?sudo
umożliwia uruchamianie poleceń na własnym koncie użytkownika z uprawnieniami administratora.su
umożliwia zmianę użytkownika, dzięki czemu jesteś zalogowany jako root.sudo -s
uruchamia powłokę z uprawnieniami roota.sudo -i
nabywa również środowisko użytkownika root.Aby zobaczyć różnicę między
su
isudo -s
, wykonaj,cd ~
a następniepwd
po każdym z nich. W pierwszym przypadku będziesz w katalogu głównym roota, ponieważ jesteś rootem. W drugim przypadku będziesz w swoim własnym katalogu domowym, ponieważ sam jesteś uprawniony do rootowania.Jest więcej omówienie dokładnie to pytanie tutaj .
źródło
cd ~
wyniki są różne, wynika z braku ustawienia sudo -s zmiennej środowiskowej $ HOME.sudoers
plik kontroluje, kto może uruchomić polecenie jako inny użytkownik, ale dzieje się to przed wykonaniem polecenia. Jednak gdy pozwolono ci rozpocząć proces jako, powiedzmy, root, działający proces ma identyfikator użytkownika root i ma pełny dostęp do systemu, sudo nie może tego ograniczyć. Znów jesteś zawsze sobą lub rootem, nie ma „pół-n-pół”. Tak więc, jeślisudoers
plik pozwala na uruchamianie powłoki jako root - uprawnienia w tej powłoce byłyby nie do odróżnienia od „normalnej” powłoki root.Ta odpowiedź jest duplikatem mojej odpowiedzi na duplikacie tego pytania , umieszczonej tutaj na kanonicznej odpowiedzi, aby ludzie mogli ją znaleźć!
Główną różnicą między
sudo -i
isudo -s
jest:sudo -i
daje środowisko root, tzn. twoje~/.bashrc
jest ignorowane.sudo -s
zapewnia środowisko użytkownika, dzięki czemu~/.bashrc
jest szanowany.Oto przykład, możesz zobaczyć, że mam
lsl
w moim~/.bin/
katalogu aplikację, do której można uzyskać dostęp,sudo -s
ale nie można go uzyskać za pomocąsudo -i
. Zauważ też, że zachęta Bash zmienia się zgodniesudo -i
zsudo -s
:Chociaż
sudo -s
jest to wygodne, aby zapewnić środowisko, które znasz, zalecamy korzystanie zsudo -i
dwóch powodów:.bashrc
.źródło
sudo -s
zapewnienie środowiska, które użytkownik zna?su
prosi o hasło użytkownika „root”.sudo
prosi o podanie hasła (a także sprawdza, czy możesz uruchamiać polecenia jako root, który jest konfigurowany przez/etc/sudoers
- domyślnie wszystkie konta użytkowników należące do grup „admin” lub „sudo” mogą używać sudo).sudo -s
uruchamia powłokę jako root, ale nie zmienia katalogu roboczego.sudo -i
symuluje logowanie do konta root: Twój katalog roboczy będzie/root
, a root.profile
itp. będą pozyskiwane jak podczas logowania.źródło
sudo -s
jest prawie równasu
($ HOME jest inny) isudo -i
jest równasu -
W Ubuntu lub pokrewnym systemie nie znajduję większego zastosowania
su
w tradycyjnym sensie superużytkownika.sudo
radzi sobie z tą skrzynką znacznie lepiej. Jednaksu
świetnie nadaje się do zostania innym użytkownikiem w jednorazowych sytuacjach, w których konfiguracja sudoerów byłaby głupia.Na przykład, jeśli naprawiam system z płyty CD / USB na żywo, często podłączam dysk twardy i inne niezbędne rzeczy
chroot
do systemu. W takim przypadku moim pierwszym poleceniem jest ogólnie:W ten sposób działam nie jako root, ale jako mój normalny użytkownik, a następnie używam
sudo
odpowiednio.źródło
su
Pyta o hasło roota, zostaje rootem, otwiera interaktywną powłokę bez logowania.su -
Pyta o hasło roota, zostaje rootem, otwiera interaktywną powłokę logowania.sudo -s
Pyta o hasło, zostaje rootem, otwiera interaktywną powłokę bez logowania.sudo -i
Pyta o hasło, zostaje rootem, otwiera interaktywną powłokę logowania.Najlepszą praktyką jest użycie tych dwóch.
sudo su
Pyta o hasło, staje się rootem na sekundę i działasu
jako root`.sudo su -
Pyta o hasło, staje się rootem na sekundę i działasu -
jako root.Więc w tym przypadku
su
używaszsudo
i nie musisz znać faktycznego hasła roota. Wyniki są takie same jaksu
isu -
.źródło