Odpowiedzi:
Główne dwie możliwości wiersza poleceń to:
su
Po wyświetleniu monitu użyj i wprowadź hasło roota.sudo
przed poleceniem i po wyświetleniu monitu wprowadź hasło.Jest to preferowana metoda w większości systemów, w tym Ubuntu, Linux Mint, (prawdopodobnie) Debian i innych. Jeśli nie znasz osobnego hasła roota, skorzystaj z tej metody.
Sudo wymaga wpisania własnego hasła. (Celem jest ograniczenie szkód, jeśli pozostawisz klawiaturę bez nadzoru i odblokowania, a także upewnienie się, że naprawdę chcesz uruchomić to polecenie i nie było to np. Literówka.) Często konfiguruje się, aby nie pytać ponownie o kilka minut, aby można było uruchamiać kilka sudo
poleceń kolejno.
Przykład:
sudo service apache restart
Jeśli chcesz uruchomić kilka poleceń jako root, przedrostek każdego z nich za pomocą sudo
. Czasami wygodniej jest uruchomić interaktywną powłokę jako root. Możesz sudo -i
do tego użyć :
$ sudo -i
# command 1
# command 2
...
# exit
Zamiast tego sudo -i
możesz użyć sudo -s
. Różnica polega na tym, że -i
ponownie mogę nitializes środowiska na rozsądnych domyślnych, podczas gdy -s
używa plików konfiguracyjnych na lepsze lub gorsze.
Aby uzyskać więcej informacji, zobacz witrynę sudo lub wpisz man sudo
w swoim systemie. Sudo jest bardzo konfigurowalny; na przykład można go skonfigurować tak, aby pewien użytkownik wykonywał tylko niektóre polecenia jako root. Przeczytaj sudoers
stronę podręcznika, aby uzyskać więcej informacji; służy sudo visudo
do edycji pliku sudoers.
su
Polecenie istnieje w większości systemów Unix. Pozwala uruchomić polecenie jako inny użytkownik, pod warunkiem, że znasz hasło tego użytkownika. Po uruchomieniu bez określonego użytkownika, su
domyślnie będzie to konto root.
Przykład:
su -c 'service apache restart'
Polecenie do uruchomienia należy przekazać przy użyciu -c
opcji. Zauważ, że potrzebujesz cudzysłowów, aby polecenie nie zostało przeanalizowane przez powłokę, ale przekazane w stanie nienaruszonym do uruchomionej powłoki głównej su
.
Aby uruchomić wiele poleceń jako root, wygodniej jest uruchomić interaktywną powłokę.
$ su
# command 1
# command 2
...
# exit
W niektórych systemach musisz być w grupie 0 (nazywany wheel
), aby użyć su
. (Chodzi o to, aby ograniczyć szkody, jeśli hasło roota zostanie przypadkowo wyciekłe do kogoś).
Jeśli masz ustawione hasło roota i jesteś w jego posiadaniu, możesz po prostu wpisać root
polecenie logowania i wprowadzić hasło roota. Bądź bardzo ostrożny i unikaj uruchamiania złożonych aplikacji jako root, ponieważ mogą robić coś, czego nie zamierzałeś. Logowanie bezpośrednio jako root jest przydatne przede wszystkim w sytuacjach awaryjnych, takich jak awarie dysku lub po zablokowaniu konta.
Tryb pojedynczego użytkownika lub poziom uruchamiania 1 daje również uprawnienia roota. Jest to przeznaczone przede wszystkim do sytuacji związanych z konserwacją awaryjną, w których nie jest możliwe uruchomienie z poziomu uruchamiania wielu użytkowników. Możesz uruchomić system w trybie pojedynczego użytkownika, przekazując single
lub emergency
w wierszu poleceń jądra. Pamiętaj, że uruchomienie w trybie pojedynczego użytkownika to nie to samo, co normalne uruchomienie systemu i zalogowanie się jako root. Zamiast tego system uruchomi tylko usługi zdefiniowane dla poziomu uruchamiania 1. Zazwyczaj jest to najmniejsza liczba usług wymaganych do posiadania użytecznego systemu.
Można również dostać się do trybu jednego użytkownika za pomocą polecenia telinit: telinit 1
; jednak to polecenie wymaga, abyś już uzyskał uprawnienia root'a za pomocą innej metody w celu uruchomienia.
W wielu systemach uruchomienie w trybie pojedynczego użytkownika zapewni użytkownikowi dostęp do powłoki roota bez pytania o hasło. W szczególności systemd
systemy oparte na monitach o podanie hasła roota podczas uruchamiania w ten sposób.
Calife pozwala uruchamiać polecenia jako inny użytkownik, wpisując własne hasło, jeśli jest autoryzowane. Jest podobny do znacznie bardziej rozpowszechnionego sudo (patrz wyżej). Calife jest bardziej lekki niż sudo, ale także mniej konfigurowalny.
Op pozwala uruchamiać polecenia jako inny użytkownik, w tym root. To nie jest pełnowartościowe narzędzie do uruchamiania dowolnych poleceń: wpisujesz, op
a następnie mnemonik skonfigurowany przez administratora systemu, aby uruchamiał określone polecenie.
Super pozwala uruchamiać polecenia jako inny użytkownik, w tym root. Polecenie musi zostać dozwolone przez administratora systemu.
Zobacz także Wikipedię .
Po prostu poprzedź żądane polecenie poleceniem pkexec
. Pamiętaj, że chociaż działa to w większości przypadków, nie działa uniwersalnie.
Zobacz man pkexec
więcej informacji.
kdesu
i kdesudo
są graficznymi nakładkami odpowiednio do su
i sudo
. Umożliwiają uruchamianie programów X Window jako root bez żadnych problemów. Są częścią KDE . Rodzaj
kdesu -c 'command --option argument'
i wprowadź hasło roota lub wpisz
kdesudo -c 'command --option argument'
i wprowadź hasło (jeśli masz uprawnienia do uruchamiania sudo
). Jeśli zaznaczysz opcję „zachowaj hasło” w KdeSu, będziesz musiał wpisać hasło roota tylko raz na sesję logowania.
Ktsuss („zachowaj su prosty, głupi”) to graficzna wersja su.
BeesuBeesu to graficzny interfejs do polecenia su, który zastąpił Gksu w systemach operacyjnych opartych na Red Hat. Został opracowany głównie dla RHEL i Fedory.
gksu
i gksudo
gksu
i gksudo
są graficznymi nakładkami odpowiednio do su
i sudo
. Umożliwiają uruchamianie programów X Window jako root bez żadnych problemów. Są częścią Gnome . Rodzaj
gksu command --option argument
i wprowadź hasło roota lub wpisz
gksudo command --option argument
i wprowadź hasło (jeśli masz uprawnienia do uruchamiania sudo
).
gksu
i gksudo
są przestarzałe. Zostały one zastąpione przez PolicyKit w GNOME i wiele dystrybucji (takich jak Ubuntu) nie instaluje ich już domyślnie. Nie powinieneś polegać na tym, że są one dostępne lub działają poprawnie.
Użyj jednej z metod w „uruchamianiu polecenia powłoki jako sekcji głównej”. Musisz upewnić się, że ani DISPLAY
zmienna środowiskowa, ani XAUTHORITY
środowisko nie zostaną zresetowane podczas przejścia na root. Może to wymagać dodatkowej konfiguracji tych metod, które są poza zakresem tego pytania.
Ogólnie rzecz biorąc, jest to zły pomysł, głównie dlatego, że aplikacje graficzne odczytują i zapisują pliki konfiguracyjne jako root, a gdy spróbujesz ponownie użyć tych aplikacji jako zwykłego użytkownika, aplikacje te nie będą miały uprawnień do odczytu ich własnych konfiguracji.
sudo
będzie działać tylko wtedy, gdy (1) jest zainstalowany i (2), jeśli twoje użycie znajduje się w pliku sudoers i pozwala na wykonanie operacji.
pkexec
obecnie zastępuje gksu
/ gksudo
w wielu dystrybucjach.
Użyj su
:
$ su -c command
lub
$ su
# command
# exit
W obu przypadkach zostaniesz poproszony o podanie root
hasła. Aby uzyskać więcej informacji, zobacz stronę podręcznika .
Ponieważ pytanie nie było specyficzne dla Linuksa, oto jak osiągnąć ten sam cel w Solarisie 9+ (lub Trusted Solaris 8):
Solaris, od wersji 9, zawiera zestaw narzędzi pieszczotliwie nazywanych RBAC lub Role Based Access Control.
Istotą RBAC jest to, że poprzez przyznawanie autoryzacji i praw użytkownikom i / lub roli, lub przyznawanie ról użytkownikom, można tworzyć niewiarygodnie drobnoziarniste modele dla tego, kto może uruchamiać, z którymi uprawnieniami.
Zasadniczo identyfikujesz autoryzację w / etc / security / auth_attr, a następnie przyznajesz ją użytkownikom lub rolom w / etc / user_attr.
Definiujesz profile w / etc / security / prof_attr. Następnie kojarzysz polecenia z tymi profilami w / etc / security / exec_attr, a następnie przypisujesz te profile użytkownikom w pliku / etc / user_attr.
Po wykonaniu tych czynności faktycznie uruchomisz pfexec <command>
polecenie z uprawnieniami lub autoryzacjami przyznanymi temu użytkownikowi dla tego polecenia.
Zaletą RBAC jest to, że nie przyznaje się żadnych dodatkowych uprawnień samej komendzie ani użytkownikowi, tylko kombinacji użytkownik + komenda. Jest to więc bezpieczniejsze niż tworzenie plików binarnych + lub używanie sudo, aby użytkownik mógł wykonać prawie wszystko. (Wiem, że możesz zablokować sudo, ale z mojego doświadczenia wynika, że większość ludzi tego nie robi)
Kolejną zaletą RBAC jest to, że możesz ustawić root jako konto roli i przypisać tę rolę użytkownikom, którzy mogą stać się rootem za pomocą polecenia „su” i hasła roota. Użytkownik root będzie mógł także logować się w trybie pojedynczego użytkownika, co jest lepsze (moim zdaniem) niż model Linux, w którym można wyłączyć hasło roota passwd -d root
lub zablokować konto roota passwd -l root
, co powoduje, że logowanie się jako root jest dość trudne, gdy coś pójdzie nie tak.
Ben Rockwood ma świetny post na blogu na temat RBAC, który można przeczytać na stronie Korzystanie z RBAC na (Otwartym) Solarisie .
Lub możesz nadać niektórym poleceniom supermoce. Mówię o specjalnych uprawnieniach, w których polecenia są wykonywane za zgodą właściciela.
Uzyskaj ścieżkę polecenia #which <command>
i ustaw SUID lub SGID dla tej ścieżki.
Bity PS - SUID i SGID należy podawać ostrożnie. Mogą sprawić, że twój system będzie niepewny.