Portál AbcLinuxu, 2. května 2025 07:25
Dneska místo popisování co se mi všechno stalo nestalo zkusím popsat strastiplnou cestu instalace a konfigurace pure-ftpd na (X-K-Ed)Ubuntu. Můžete to brát jako návod pro Linux newbie.
Když jsem na linuxu začínal tak jsem jako FTP server využíval proftpd. Obsahuje ho každá slušná distribuce, docela jednoduše se konfiguruje a spravuje. Obsahuje taky prográmky na monitorování a vůbec všechno co má slušný FTP server obsahovat. Jeho jediná nevýhoda je docela strojově a i humáně nepohodlná konfigurace. Pravda, podporuje MySQL databázi, ale já mám radši konfiguráky.
Dneska tedy padla volba na pure-ftpd. Nejdříve jsem zavítal na web projektu a prostudoval dokumentaci. Největší sílu vidím u pure-ftpd ve virtual userech, ale o tom až dále. Pokud Vás pure-ftpd zaujal tak jako mě tak můžeme pokračovat magickou formulí:
sudo apt-get install pure-ftpd
Po instalaci balíčku musíme zprovoznit naše virtuální usery. Virtuální user (dále jen VU) je uživatel, který nemá účet v samotném systému, ale pouze na FTP, takže nemusíme nikde nastavovat shelly a podobné věci. Pokud se chystáme na nějaký komunitní server je to ideální volba, protože má velice jednoduchý konfigurační soubor, kde jsou hodnoty oddělený pouze středníkem. Každému uživately můžeme nastavit jeho ratio, kolik může stahovat a kolik uploadovat, jakou má mít složku a další kupu zajímavých věcí. Problém u (X-K-Ed)Ubuntu je takový, že standardně nejsou virtuální useři zapnutí. Resp. jsou, ale díky tomu, že instalační script "zapoměl" na jeden symlink tak nefungujou. Musíme proto z /etc/pure-ftpd/conf/PureDB udělat symlink do /etc/pure-ftpd/auth/50pure. Tím vnutíme pure-ftpd soubor s usery. V konsoly to vypadá nějak takhle:
cd /etc/pure-ftpd/auth sudo ln -s ../conf/PureDB 50pure
Je to opsané z ubuntu fóra a dalo mi asi 2 hodiny než jsem se k tomu dopídil.
Standardně se k pure-ftpd můžeme přihlásit jako uživatel našeho systému. Tyto ftp účty jsou vytvářeny automaticky a pokud Vám stačí není nutné pokračovat ve čtení dále.
Teď můžeme restartovat náš FTP server...
sudo /etc/init.d/pure-ftpd restart
...a vrhnout se na konfiguraci.
První na co se sběžně podíváme je přidávání usera. Pro práci s uživateli slouží prográmek pure-pw. Dokáže přidávat, upravovat, mazat a zobrazovat informace o uživateli. Pokud do konsole napíšeme jméno tohoto prográmku vyjede nám nápověda podle které se dá nastavení udělat vcelku v pohodě, ale to základní si ukážeme.
Nejdříve musíme do systému přidat jednoho uživatele jehož práva budeme dávat našim virtuálním userům. Těch uživatelů může být víc, ale pro jednoduchost budu používat jednoho. Tomuto uživateli by jsme měly dát do parametru shell prázdný soubor, aby se na něj nikdo nemohl přihlásit přes ssh. Jde nám jen o práva. Takže začneme s tim shellem.
sudo dd if=/dev/null of=/bin/void sudo chmod 775 /bin/void
Přes dd vytvoříme nulový soubor a dáme mu práva ke spuštění. Pak ještě náš nový shell přidáme do /etc/shells třeba takto:
sudo nano /etc/shells a na konec přidáme /bin/void
Teď když máme shell tak vytvoříme uživatele (je jedno jaké si zvolíte jméno, já použil myftp):
sudo adduser myftp --shell /bin/void
a vyplníme k němu potřebné informace. Teď už můžeme přidávat naše virtuální usery. Přidávání se realizuje asi takto:
sudo pure-pw useradd login -d /home/login -u myftp
Toto nám vytvoří uživatele s určitým loginem a home direm. Pokud použijeme -d tak se použije tzv. chroot a při přihlášení se uživatel nedostane za hranice své složky. Pokud použijeme -D tak má uživatel práva jako uživatel myftp včetně přístupu na disk. Přepínač -u slouží k určení, která že to práva má virtual user používat. Existuje asi 30 dalších přepínačů nastavujících různé omezení včetně maximální velikosti složky nebo maximální rychlosti odesílání či příjmání dat. Po odeslání tohoto příkazu se Vás systém zeptá na dvakrát na heslo.
Editace uživatelů funguje podobně jako přidávání. Tak nejdřív příklad:
sudo pure-pw usermod santa -d /home/novy_adresar
Tento příkaz změní home dir uživatele santa na /home/novy_adresar. Podobně se dají nastavit další parametry.
sudo pure-pw passwd santa
Tento příkaz pro změnu změní uživately santa heslo. Pokud se nám uživatel santa přestane líbit tak ho vymažeme:
sudo pure-pw userdel santa
Pokud potřebujeme zjistit informace o uživateli santa tak použijeme:
sudo pure-pw show santa
Samozřejmě než ho vymažeme :)
Pokud jsme udělaly všechny změny, které jsme chtěly tak je potvrdíme (Nemusíme restartovat server!):
sudo pure-pw mkdb
Jako základní návod na vytvoření vlastního FTP server si myslím, že to postačuje. Pro jakékoli další nastavování bude nutné kuknout do manuálu nebo homepage projektu, kde to je moc pěkně popsané včetně návodů (v angličtině). Nebo mi napsat na cx@jabber.cz .
Nakonec pár linků:
Ubuntu fórum pure-ftpd dokumentace pure-ftpd homepage a můj blog :)
Tiskni
Sdílej:
sudo touch /bin/void, ked uz tuto zbytocnost s dd by niekto robil.
sudo dd if=/dev/null of=/bin/voidAle zato tam neni zbytecnej
Tu by snad stacilosudo touch /bin/void, ked uz tuto zbytocnost s dd by niekto robil.
cat
... ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.