čtvrtek 2. dubna 2015

Vytvoření a nastavení běžného uživatele na linuxovém serveru

Úvod

Krátký článek věnující se vytvoření účtu pro "běžného" uživatele na linuxovém serveru (postup byl otestován na Debianu a Ubuntu). Postup předpokládá funkční server s Apache2, OpenSSH a vsftpd jako FTP server.

Co chceme aby bylo výsledkem:
  • uživatel bez možnosti shellu
  • uživatel se nemůže připojit přes SSH k serveru
  • uživatel má přístup přes FTP/FTPS ale je zamknutý v domovském adresáři
  • uživatel má vyhrazený adresář pro svoje soukromá data
  • uživatel má svoji veřejnou složku pro www stránky

Postup

Vytvoření uživatele se jménem "uzivatel" + domácí složku.
useradd -d /home/uzivatel -m uzivatel
Přiřadíme nově vytvořeného uživatele do skupiny "uzivatele", kteří nebudou mít přístup k SSH.
usermod -g uzivatele uzivatel
 "Vypneme" uzivateli shell.
usermod -s /bin/false uzivatel
 Nyní nastavíme SSH server. Otevřeme konfigurační soubor.
nano /etc/ssh/sshd_config
A např. na konec přidáme:
DenyGroups uzivatele
 uložíme (Ctrl+X a poté Y).

Restartujeme SSH server
 service ssh restart
Nyní povolíme funkci chroot na FTP serveru.Otevřeme konfiguraci:
nano /etc/vsftpd.conf
 a zde odkomentujeme (odstraníme # na začátku) řádek
chroot_local_user=YES
uložíme (Ctrl+X a poté Y). Restart FTP serveru:
/etc/init.d/vsftpd restart
Změníme vlastníka domácí složky z "uzivatele" na "root" (pro fungující chroot).
chown root:root /home/uzivatel/
 Nyní nám ale nefunguje přihlášení (uživatel totiž nevlastní adresář do kterého se standardně přihlašuje), proto je potřeba následující "trik".

Vytvoříme složku "data" kam si bude uživatel ukládat svoje privátní soubory.
 mkdrir /home/uzivatel/data
A této složce již nastavíme jako vlastníka uživatele "uzivatel".
chown uzivatel:uzivatele /home/uzivatel/data
 Vytvoříme složku "public_html" kam si bude uživatel ukládat svoje veřejné soubory (např. webové stránky)
mkdir /home/uzivatel/public_html
chown uzivatel:uzivatele /home/uzivatel/public_html
Výsledkem je, že "uzivatel" nemůže zapisovat přímo do /home/uzivatel, což je trochu divné, ale na druhou stranu má dvě složky, které jasně oddělují co je veřejné a co ne.

U webového serveru Apache2 aktivujeme modul userdir.
a2enmod userdir
Restartujeme Apache2.
service apache2 restart
Hotovo.  Uživatel má svoje veřejné soubory na adrese http://nazevserveru.domena/~uzivatel. Adresář "data" vidí jen on sám přes FTP.

Podobné články:
Aktualizace:
  • 6.4.2015 - doplněno nastavení vsftpd.
Zdroje:
  1.  http://www.linuxsoft.cz/article.php?id_article=248
  2.  http://forum.ubuntu.cz/index.php?topic=71916.0;prev_next=next#new
  3.  http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-prakticke-rady-pro-zabezpeceni-ssh
  4.  http://www.cyberciti.biz/tips/vsftp-chroot-users-limit-to-only-their-home-directory.html
  5.  http://ubuntuserverguide.com/2012/10/how-to-enable-and-configure-apache2-userdir-module-in-ubuntu-server-12-04.html
  6. http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/