Jak používat sudo na Debian, Ubuntu, CentOS a FreeBSD
V tomto tutoriálu si ukážeme základní kroky pro zakázání přímého uživatelského přístupu, vytvoření uživatele sudo, a nastavení sudo skupiny na CentOS, Debian, Ubuntu a FreeBSD.
CentOS
FreeBSD
Debian / Ubuntu
CentOS
FreeBSD
Poznámka:
V Debian se často vyskytuje sudo skupina namísto skupiny wheel. Přesto však můžete manuálně přidat skupinu wheel pomocí příkazu groupadd. Pro účely tohoto návodu budeme používat skupinu sudo pro Debian.
Debian/Ubuntu
CentOS
FreeBSD
Debian/Ubuntu
CentOS
FreeBSD
Poznámka: Příkaz visudo se otevře
Zahájit kontrolu a editaci tímto řádkem:
V případě, že řádek začínající %sudo v Debianu nebo Ubuntu nebo %wheel v CentOS a FreeBSD není vyjádřeno s prefixem #, tak to znamená, že sudo je již nastaveno a povoleno. Poté můžete přejít k dalšímu kroku.
Debian/Ubuntu
Poznámky:
Whoami příkaz nakombinuje zpět uživatele root se sudo. A budete vyzváni k zadání uživatelského hesla při provádění příkazu sudo, pokud jste nezadali pokyn, aby systém nevyzýval uživatele sudo k zadání jejich hesel. Upozorňujeme, že se to nedoporučuje.
Optional: umožňuje přístu k sudo bez zadání hesla uživatele
Jak ale již bylo vysvětleno, není to doporučená praxe a je to zde zahrnuto pouze pro demonstrační účely.
Pro případ umožnění vašemu sudo uživateli spustit příkaz sudo aniž by byl vyzván k zadání hesla, je tu přípona přístupového řádku v /etc/sudoers s
Nejprve otevřte
Poznámka: Nezapomeňte otestovat vaše změny tím, že se pokusíte připojit přes SSH na serveru jako root. Pokud se nejste schopni takto přihlásit, znamená to, že jste úspěšně dokončili všechny nezbytné kroky.
Předpoklady
- Nově nainstalovaný Linux nebo FreeBDS server. Třeba VPS od nás - hukot.net :)
- Nainstalovaný textový editor na tomto serveru - nano, vi, vim, emacs.
Krok 1 - instalace sudo
Debian / Ubuntuapt-get install sudo -yCentOS
yum install sudo -yFreeBSD
cd /usr/ports/security/sudo/ && make install cleannebopkg_add -rv sudonebopkg_add -r sudoKrok 2 - přidání uživatele sudo
Uživatel sudo je uživatelský účet na Linux nebo Unix.Debian / Ubuntu
adduser mynewusernameCentOS
adduser mynewusernameFreeBSD
adduser mynewusernameKrok 3 - Přidání nového uživatele do skupiny wheel (volitelně)
Skupina wheel je uživatelská skupina, která omezuje počet lidí, s přístupem ke kořenovému adresáři. Přidání sudo uživatele do skupiny wheel je zcela volitelné.Poznámka:
V Debian se často vyskytuje sudo skupina namísto skupiny wheel. Přesto však můžete manuálně přidat skupinu wheel pomocí příkazu groupadd. Pro účely tohoto návodu budeme používat skupinu sudo pro Debian.
Rozdíl mezi wheel a sudo
V CentOS a Debian/Ubuntu, uživatel patřící do skupiny wheel může spustit su a přímo se dostat ke kořenovému adresáři. Mezitím co uživatel sudo bude muset použít jako první sudo su. V podstatě neexistuje žádný skutečný rozdíl s výjimkou verze použití, aby se stal uživatelem root. Pro uživatelé patřící do obou skupin lze použít příkaz sudo.Debian/Ubuntu
usermod -aG sudo mynewusernameCentOS
usermod -aG wheel mynewusernameFreeBSD
pw group mod wheel -m mynewusername4. Ujištění se, zda je Váš soubor sudoers správně nastaven
Je důležité zajistit, aby soubor sudoers byl umístěn v/etc/sudoersbyl nastaven správně. A to vše s cílem umožnit uživatelům sudo efektivně použít příkaz sudo. Za účelem zobrazení obsahu souboru /etc/sudoers a případně jeho úpravu.Debian/Ubuntu
vim /etc/sudoersnebovisudoCentOS
vim /etc/sudoersnebovisudoFreeBSD
vim /etc/sudoersnebovisudoPoznámka: Příkaz visudo se otevře
/etc/sudoerspomocí systémem upřednostňovaného textového editoru (obvykle vi nebo vim).Zahájit kontrolu a editaci tímto řádkem:
# Allow members of group sudo to execute any command/etc/sudoers často vypadá takto:# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALLV některých systémech, můžete najít %wheel namísto %sudo; v tom případě by to byl řádek, pod kterým začnete modifikaci.V případě, že řádek začínající %sudo v Debianu nebo Ubuntu nebo %wheel v CentOS a FreeBSD není vyjádřeno s prefixem #, tak to znamená, že sudo je již nastaveno a povoleno. Poté můžete přejít k dalšímu kroku.
Krok 5 - Povolení uživateli, který nepatří do skupiny wheel ani do skupiny sudo, spustit příkaz sudo
Je možné, aby uživatel, který není v žádné z uživatelských skupin, spustil příkaz sudo pouhým přidáním:anotherusername ALL=(ALL) ALLdo/etc/sudoersKrok 6 - Restartování SSH serveru
Aby bylo možno použít provedené změny v/etc/sudoersje nutné restartovat sshd server. To provedťe takto:Debian/Ubuntu
/etc/init.d/sshd restartCentOS 6/etc/init.d/sshd restartCentOS 7systemctl restart sshd.serviceFreeBSD/etc/rc.d/sshd startKrok 7 - testování
Po restartování SSH serveru, se odhlašte a zpět přihlašte jako sudo uživatel, poté se pokuste spustit některé testovací příkazy:sudo uptime
sudo whoamiNěkterý z níže uvedených příkazů umožní uživateli sudo, aby se stal root.sudo su -
sudo -i
sudo -SPoznámky:
Whoami příkaz nakombinuje zpět uživatele root se sudo. A budete vyzváni k zadání uživatelského hesla při provádění příkazu sudo, pokud jste nezadali pokyn, aby systém nevyzýval uživatele sudo k zadání jejich hesel. Upozorňujeme, že se to nedoporučuje.
Optional: umožňuje přístu k sudo bez zadání hesla uživatele
Jak ale již bylo vysvětleno, není to doporučená praxe a je to zde zahrnuto pouze pro demonstrační účely.
Pro případ umožnění vašemu sudo uživateli spustit příkaz sudo aniž by byl vyzván k zadání hesla, je tu přípona přístupového řádku v /etc/sudoers s
=12.6pxNOPASSWD: ALL%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALLPoznámka: Je třeba restartovat sshd server, aby se změny projevily.Krok 8 - Zakázat přímý přístup root
Nyní, když jste potvrdili, že můžete použít sudo zadání hesla, musíte zakázat přímý přístup uživatele root.Nejprve otevřte
/etc/ssh/sshd_configpomocí vašeho oblíbeného textového editoru a najděte řádek, který obsahuje následující řetězec. Může být i označen znakem #.PermitRootLoginBez ohledu na předpony nebo hodnoty v souboru/etc/ssh/sshd_configje nutné změnit tento řádek za následující:PermitRootLogin noA nakonec, restartujte sshd server.Poznámka: Nezapomeňte otestovat vaše změny tím, že se pokusíte připojit přes SSH na serveru jako root. Pokud se nejste schopni takto přihlásit, znamená to, že jste úspěšně dokončili všechny nezbytné kroky.