A root felhasználóval minden művelet korlátozás nélkül fut, így egy elgépelt parancs vagy egy feltört jelszó is súlyos kárt okozhat (lásd: Root hozzáférés: mit jelent és milyen felelősséggel jár?). Ajánlott ezért egy saját felhasználóval dolgozni, és csak a rendszergazdai feladatokhoz, parancsonként sudo-val emelni a jogosultságot.
Az alábbi lépéseket root felhasználóként végezze. A példákban a felhasználó neve janos; ezt cserélje a sajátjára.
1. A felhasználó létrehozása
AlmaLinux, Rocky Linux:
useradd -m janos
passwd janos
A -m létrehozza a felhasználó saját könyvtárát (/home/janos), a passwd pedig bekéri az új jelszót.
Ubuntu, Debian:
adduser janos
Az adduser a könyvtárat is létrehozza, és rögtön bekéri a jelszót, valamint néhány nem kötelező adatot (név, telefonszám), amelyeket Enterrel átugorhat.
2. Sudo jogosultság adása
A sudo jog a megfelelő csoportba való felvétellel adható meg. A csoport neve disztribúciónként eltér:
# AlmaLinux, Rocky Linux
usermod -aG wheel janos
# Ubuntu, Debian
usermod -aG sudo janos
Az -a kapcsoló fontos: nélküle a felhasználó kikerülne az összes többi csoportjából.
Ha Debianon a sudo parancs nem található, előbb telepítse (lásd: Ubuntu/Debian – “sudo: command not found” hiba javítása).
3. Ellenőrzés
Váltson át az új felhasználóra, és próbálja ki a sudo-t:
su - janos
sudo whoami
Az első sudo parancsnál a rendszer a felhasználó saját jelszavát kéri (nem a root jelszavát). Ha a kimenet root, a beállítás működik. Az exit paranccsal léphet vissza a root felhasználóhoz.
4. Az SSH kulcs átmásolása
Ha root felhasználóként SSH kulccsal lép be, a kulcsot az új felhasználónak is be kell állítani. A legegyszerűbb, ha a saját gépéről az ssh-copy-id paranccsal másolja fel:
ssh-copy-id janos@vps.ip.cime
Ha a szerveren jelszavas bejelentkezés nincs engedélyezve, másolja át a root felhasználó kulcsait a szerveren, root felhasználóként:
mkdir -p /home/janos/.ssh
cp /root/.ssh/authorized_keys /home/janos/.ssh/
chown -R janos:janos /home/janos/.ssh
chmod 700 /home/janos/.ssh
chmod 600 /home/janos/.ssh/authorized_keys
A jogosultságok fontosak: ha a .ssh könyvtárat vagy az authorized_keys fájlt más is írhatja, az SSH szerver figyelmen kívül hagyja a kulcsot. A jogosultságokról bővebben: Fájljogosultságok (chmod, chown) Linuxon.
Egy új terminálablakban próbálja ki a bejelentkezést:
ssh janos@vps.ip.cime
5. A root bejelentkezés letiltása
Ha az új felhasználóval be tud lépni, és a sudo is működik, letilthatja a root felhasználó SSH bejelentkezését. Ennek lépéseit az SSH szerver biztonsági beállításai cikk írja le.
A módosítás közben hagyja nyitva a meglévő SSH kapcsolatot, és csak akkor zárja be, ha egy új ablakban sikeresen belépett az új felhasználóval. Így hiba esetén vissza tudja állítani a beállítást.
Egyéb hasznos parancsok
# A felhasználó csoportjai
id janos
# Jelszó módosítása
sudo passwd janos
# Felhasználó zárolása (nem tud belépni), majd feloldása
sudo usermod -L janos
sudo usermod -U janos
# Felhasználó törlése a saját könyvtárával együtt
sudo userdel -r janos
A sudo beállítások szerkesztése
A sudo beállításait a /etc/sudoers fájl és a /etc/sudoers.d/ könyvtár tartalmazza. Ezeket mindig a visudo paranccsal szerkessze, mert mentés előtt ellenőrzi a szintaxist; egy hibás sudoers fájl miatt senki nem tudná használni a sudo-t.
sudo visudo -f /etc/sudoers.d/janos
Például ha egy felhasználó csak egy szolgáltatást indíthat újra, jelszó nélkül:
janos ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx
A NOPASSWD beállítást ne adja meg minden parancsra (ALL), mert ha a felhasználó fiókja vagy SSH kulcsa illetéktelen kézbe kerül, azzal a teljes szerver is.