Potřebuji spustit příkaz s oprávněními správce. Někdo řekl, že bych měl spustit příkaz jako root. Jak to udělám?
Přijatá odpověď:
Hlavní dvě možnosti příkazového řádku jsou:
- Použijte
su
a po zobrazení výzvy zadejte heslo uživatele root. - Vložte
sudo
před příkaz a po zobrazení výzvy zadejte své heslo.
Spuštění příkazu shellu jako root
sudo (preferováno, když nepoužíváte grafický displej)
Toto je preferovaná metoda na většině systémů, včetně Ubuntu, Linux Mint, (pravděpodobně) Debianu a dalších. Pokud neznáte samostatné heslo uživatele root, použijte tuto metodu.
Sudo vyžaduje zadání vlastního hesla. (Účelem je omezit poškození, pokud necháte klávesnici bez dozoru a odemčenou, a také zajistit, že skutečně chcete spustit tento příkaz a nebylo to např. překlep.) Často je nakonfigurován tak, aby se na několik minut znovu nezeptal, takže můžete spustit několik sudo
příkazy za sebou.
Příklad:
sudo service apache restart
Pokud potřebujete spustit několik příkazů jako root, před každým z nich uveďte sudo
. Někdy je výhodnější spustit interaktivní shell jako root. Můžete použít sudo -i
za to:
$ sudo -i
# command 1
# command 2
...
# exit
Místo sudo -i
, můžete použít sudo -s
. Rozdíl je v tom, že -i
rei inicializuje prostředí na rozumné výchozí hodnoty, zatímco -s
používá vaše konfigurační soubory k lepšímu i horšímu.
Další informace najdete na webu sudo nebo zadejte man sudo
na vašem systému. Sudo je velmi konfigurovatelné; například může být nakonfigurován tak, aby umožnil určitému uživateli provádět pouze určité příkazy jako root. Přečtěte si sudoers
manuálová stránka pro více informací; použijte sudo visudo
upravit soubor sudoers.
su
su
příkaz existuje na většině unixových systémů. Umožňuje vám spustit příkaz jako jiný uživatel, pokud znáte heslo tohoto uživatele. Při spuštění bez zadaného uživatele su
bude jako výchozí nastaven účet root.
Příklad:
su -c 'service apache restart'
Příkaz ke spuštění musí být předán pomocí -c
volba. Všimněte si, že potřebujete uvozovky, aby příkaz nebyl analyzován vaším shellem, ale předán beze změny kořenovému shellu, který su
běží.
Chcete-li spouštět více příkazů jako root, je pohodlnější spustit interaktivní shell.
$ su
# command 1
# command 2
...
# exit
Na některých systémech musíte být ve skupině číslo 0 (nazývané wheel
) použijte su
. (Jde o to omezit škody, pokud by někomu náhodou uniklo heslo root.)
Přihlášení jako root
Pokud je nastaveno heslo root a vy je vlastníte, můžete jednoduše napsat root
na výzvu k přihlášení a zadejte heslo uživatele root. Buďte velmi opatrní a vyhněte se spouštění složitých aplikací jako root, protože by mohly dělat něco, co jste nezamýšleli. Přihlášení přímo jako root je užitečné hlavně v nouzových situacích, jako je selhání disku nebo když se zablokujete ke svému účtu.
Režim jednoho uživatele
Režim pro jednoho uživatele nebo úroveň běhu 1 vám také poskytuje oprávnění root. To je určeno především pro situace nouzové údržby, kdy není možné zavést systém na úrovni běhu pro více uživatelů. Můžete spustit režim pro jednoho uživatele předáním single
nebo emergency
na příkazovém řádku jádra. Všimněte si, že spuštění v režimu pro jednoho uživatele není totéž jako normální spuštění systému a přihlášení jako root. Systém spíše spustí pouze služby definované pro úroveň běhu 1. Obvykle se jedná o nejmenší počet služeb potřebný k tomu, aby byl použitelný systém.
Do režimu jednoho uživatele se můžete dostat také pomocí příkazu telinit:telinit 1
; tento příkaz však vyžaduje, abyste již získali oprávnění uživatele root prostřednictvím jiné metody, aby bylo možné spustit.
Na mnoha systémech zavádění do režimu jednoho uživatele poskytne uživateli přístup k root shellu bez výzvy k zadání hesla. Zejména systemd
-based systems vás při zavádění tímto způsobem vyzve k zadání hesla uživatele root.
Další programy
Calife
Calife vám umožňuje spouštět příkazy jako jiný uživatel zadáním vlastního hesla, pokud máte oprávnění. Je to podobné jako mnohem rozšířenější sudo (viz výše). Calife je lehčí než sudo, ale také méně konfigurovatelný.
Op
Op umožňuje spouštět příkazy jako jiný uživatel, včetně root. Toto není plnohodnotný nástroj pro spouštění libovolných příkazů:zadáte op
následuje mnemotechnická pomůcka nakonfigurovaný správcem systému ke spuštění konkrétního příkazu.
Skvělé
Super umožňuje spouštět příkazy jako jiný uživatel, včetně root. Příkaz musí být povolen správcem systému.
Spuštění grafického příkazu jako root
PolicyKit (preferovaný při používání GNOME)
Jednoduše zadejte před požadovaný příkaz příkaz pkexec
. Uvědomte si, že i když to ve většině případů funguje, nefunguje to univerzálně.
Viz man pkexec
pro více informací.
KdeSu, KdeSudo (preferováno při používání KDE)
kdesu
a kdesudo
jsou grafická rozhraní pro su
a sudo
resp. Umožňují vám spouštět programy X Window jako root bez potíží. Jsou součástí KDE. Typ
kdesu -c 'command --option argument'
a zadejte heslo uživatele root nebo zadejte
kdesudo -c 'command --option argument'
a zadejte své heslo (pokud máte oprávnění ke spuštění sudo
). Pokud zaškrtnete možnost „zachovat heslo“ v KdeSu, budete muset zadat heslo uživatele root pouze jednou za přihlášení.
Další programy
Ktsuss
Ktsuss („keep the su simple, stupid“) je grafická verze su.
Beesu
Beesu je grafický front-end příkazu su, který nahradil Gksu v operačních systémech založených na Red Hatu. Byl vyvinut hlavně pro RHEL a Fedoru.
Zastaralé metody
gksu
a gksudo
gksu
a gksudo
jsou grafická rozhraní pro su
a sudo
resp. Umožňují vám spouštět programy X Window jako root bez potíží. Jsou součástí Gnome. Typ
gksu command --option argument
a zadejte heslo uživatele root nebo zadejte
gksudo command --option argument
a zadejte své heslo (pokud máte oprávnění ke spuštění sudo
).
gksu
a gksudo
jsou zastaralé. V GNOME je nahradil PolicyKit a mnoho distribucí (například Ubuntu) je již ve výchozím nastavení neinstaluje. Neměli byste se spoléhat na to, že jsou dostupné nebo fungují správně.
Ručně pomocí jedné z metod založených na shellu
Použijte jednu z metod v části „spuštění příkazu shellu jako kořenový adresář“. Budete se muset ujistit, že ani DISPLAY
proměnná prostředí ani XAUTHORITY
prostředí se resetuje během přechodu na root. To může vyžadovat další konfiguraci těchto metod, která je mimo rozsah této otázky.
Celkově je to špatný nápad, hlavně proto, že grafické aplikace budou číst a zapisovat konfigurační soubory jako root, a když se pokusíte tyto aplikace znovu použít jako váš normální uživatel, tyto aplikace nebudou mít oprávnění číst své vlastní konfigurace.
Související:Macos – Spustit příkaz při spuštění terminálu (macOS)?Úprava souboru jako root
Viz Jak upravím soubor jako root?