Jak jste viděli, je špatnou praxí přihlašovat se k serveru přímo s právy root. Lepší praxí je přihlásit se pomocí standardního uživatelského účtu a poté podle potřeby zvýšit svá oprávnění na root. Jedním ze způsobů, jak zvýšit oprávnění, je „nahradit uživatele“ pomocí příkazu su. Příkaz su bez možnosti umožňuje uživateli přepnout svou identitu na identitu jiného uživatele, ale zachovává původní uživatelský profil a proměnné. Přepnutý uživatel také zůstává v domovském adresáři původního uživatele. Každý, kdo používá su kromě uživatele root, bude vyzván k zadání hesla uživatelského účtu, na který přechází.
Použití su s pomlčkou, která následuje, umožňuje uživateli změnit uživatele a spustit nový shell v kontextu tohoto nového uživatele. To je mnohem lepší praxe. Každý, kdo používá „su –“ kromě uživatele root, bude vyzván k zadání hesla uživatele, na kterého přechází. Nejběžnější je přepnout na uživatele root, ale každý uživatel může přepnout na jakéhokoli jiného uživatele, pokud zná heslo uživatele.
Syntaxe příkazu su je:
$ su [-] [user name]Poznámka :Bez argumentu uživatelského jména bude příkaz „su -“ předpokládat, že se chcete přihlásit jako root.
Pokud při provádění příkazu su narazíte na níže uvedenou chybu:
su: command not found
můžete zkusit nainstalovat balíček util-linux, jak je uvedeno níže, podle vaší volby distribuce.
Distribuce | Příkaz |
---|---|
OS X | brew install util-linux |
Debian | apt-get install util-linux |
Ubuntu | apt-get install util-linux |
Alpine | apk add util-linux |
Arch Linux | pacman -S util-linux |
Kali Linux | apt-get install util-linux |
CentOS | yum install util-linux |
Fedora | dnf install util-linux |
Raspbian | přihlášení k instalaci apt-get |
Příklady příkazů su
1. Přepněte na superuživatele (vyžaduje heslo root):
$ su
2. Přepněte na daného uživatele (vyžaduje heslo uživatele):
$ su username
3. Přepněte se na daného uživatele a simulujte úplný přihlašovací shell:
$ su - username
4. Proveďte příkaz jako jiný uživatel:
$ su - username -c "command"
Poznámka
Při provádění příkazu su je povolena jedna možnost:volba –. Když provedete příkaz su s volbou –, bude poskytnut nový přihlašovací shell. Pokud nepoužíváte znak –, bude poskytnut nepřihlašovací shell.