GNU/Linux >> Znalost Linux >  >> Linux

Sudo Command v Linuxu

Příkaz sudo vám umožňuje spouštět programy jako jiný uživatel, ve výchozím nastavení uživatel root. Pokud trávíte hodně času na příkazovém řádku, sudo je jedním z příkazů, které budete používat poměrně často.

Použití sudo místo přihlášení jako root je bezpečnější, protože můžete udělit omezená administrátorská oprávnění jednotlivým uživatelům, aniž by znali heslo root.

V tomto tutoriálu vysvětlíme, jak používat sudo příkaz.

Instalace Sudo (příkaz sudo nenalezen) #

Balíček sudo je předinstalovaný ve většině distribucí Linuxu.

Chcete-li zkontrolovat, zda je ve vašem systému nainstalován balíček sudo, otevřete konzoli a zadejte sudo a stiskněte Enter . Pokud máte nainstalovaný systém sudo, zobrazí se krátká nápověda. V opačném případě uvidíte něco jako sudo command not found .

Pokud sudo není nainstalováno, můžete jej snadno nainstalovat pomocí správce balíčků vašeho distribuce.

Instalovat Sudo na Ubuntu a Debian #

apt install sudo

Instalovat Sudo na CentOS a Fedoru #

yum install sudo

Přidání uživatele do Sudoers #

Ve výchozím nastavení je u většiny distribucí Linuxu udělení přístupu sudo stejně jednoduché jako přidání uživatele do skupiny sudo definované v sudoers soubor. Členové této skupiny budou moci spouštět jakýkoli příkaz jako root. Název skupiny se může lišit distribuci od distribuce.

V distribucích založených na RedHat, jako je CentOS a Fedora, je název skupiny sudo wheel . Chcete-li přidat uživatele do skupiny, spusťte:

usermod -aG wheel username

Na Debianu, Ubuntu a jejich derivátech členové skupiny sudo jsou uděleny s přístupem sudo:

usermod -aG sudo username

Uživatelský účet root v Ubuntuis je z bezpečnostních důvodů ve výchozím nastavení zakázán a uživatelům se doporučuje provádět úlohy správy systému pomocí sudo. Počáteční uživatel vytvořený instalačním programem Ubuntu je již členem skupiny sudo, takže pokud používáte Ubuntu, je pravděpodobné, že uživatel, pod kterým jste přihlášeni, již má oprávnění sudo.

Chcete-li konkrétnímu uživateli umožnit spouštět pouze určité programy jako sudo, místo přidání uživatele do skupiny sudo přidejte uživatele do sudoers soubor.

Chcete-li například uživateli umožnit linuxize spustit pouze mkdir příkaz jako sudo, zadejte:

sudo visudo

a připojte následující řádek:

linuxize  ALL=/bin/mkdir

Na většině systémů visudo příkaz otevře /etc/sudoers soubor s textovým editorem vim. Pokud s vim nemáte zkušenosti, přečtěte si náš článek o tom, jak uložit soubor a ukončit editor vim.

Můžete také uživatelům umožnit spouštět příkazy sudo bez zadání hesla:

linuxize  ALL=(ALL) NOPASSWD: ALL

Jak používat Sudo #

Syntaxe pro sudo příkaz je následující:

sudo OPTION.. COMMAND

sudo příkaz má mnoho možností, které řídí jeho chování, ale obvykle se používá ve své nejzákladnější podobě bez jakékoli možnosti.

Chcete-li použít sudo, jednoduše před příkazem zadejte sudo :

sudo command

Kde command je příkaz, pro který chcete sudo použít.

Sudo přečte /etc/sudoers soubor a zkontrolujte, zda je volajícímu uživateli uděleno sudo assessment. Při prvním použití sudo v relaci budete vyzváni k zadání uživatelského hesla a příkaz bude spuštěn jako root.

Chcete-li například vypsat všechny soubory v /root adresář, který byste použili:

sudo ls /root
[sudo] password for linuxize:
.  ..  .bashrc	.cache	.config  .local  .profile

Časový limit hesla #

Ve výchozím nastavení vás sudo po pěti minutách nečinnosti sudo požádá o opětovné zadání hesla. Výchozí časový limit můžete změnit úpravou sudoers soubor. Otevřete soubor pomocí visudo :

sudo visudo

Nastavte výchozí časový limit přidáním řádku níže, kde 10 je časový limit zadaný v minutách:

Defaults  timestamp_timeout=10

Pokud chcete změnit časové razítko pouze pro konkrétního uživatele, přidejte následující řádek, kde user_name je dotyčný uživatel.

Defaults:user_name timestamp_timeout=10

Spustit příkaz jako uživatel jiný než root #

Existuje mylná představa, že sudo se používá pouze k poskytnutí oprávnění root běžnému uživateli. Ve skutečnosti můžete použít sudo spustit příkaz jako libovolný uživatel.

-u umožňuje spustit příkaz jako určený uživatel.

V následujícím příkladu používáme sudo ke spuštění whoami příkaz jako uživatel „richard“:

sudo -u richard whoami

whoami příkaz vypíše jméno uživatele spouštějícího příkaz:

richard

Jak přesměrovat pomocí Sudo #

Pokud se pokusíte přesměrovat výstup příkazu do souboru, do kterého váš uživatel nemá oprávnění k zápisu, zobrazí se chyba „Oprávnění odepřeno“.

sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied

K tomu dochází, protože přesměrování „> ” výstupu se provádí pod uživatelem, ke kterému jste přihlášeni, nikoli pod uživatelem zadaným pomocí sudo. K přesměrování dojde před sudo je vyvolán příkaz.

Jedním z řešení je vyvolat nový shell jako root pomocí sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

Další možností je přesměrovat výstup jako běžný uživatel do tee příkaz, jak je znázorněno níže:

echo "test" | sudo tee /root/file.txt

Závěr č.

Naučili jste se používat sudo a jak vytvořit nové uživatele s právy sudo.

Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Linuxový ip příkaz

  1. Linux cd příkaz

  2. Příklady příkazů sudo v Linuxu

  3. Spusťte příkaz cd jako superuživatel v Linuxu

  1. Linux příkaz ifconfig

  2. Linux Time Command

  3. Příkaz Ping v Linuxu