Felhasználó létrehozása és sudo jogosultság adása Linuxon

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.