Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
Já sám jsem několik programů z těchto řad vyzkoušel, ale nejvíce si mě získal Pure-FTPd, který je šířen pod licencí GPL. Měl jsem dva základní požadavky - podpora virtuálních uživatelů (nikoliv unixových) umístěných v PostgreSQL nebo MySQL databázi a možnost virtuálních kvót. Obojí Pure-fptd splňuje a umí toho i mnohem více. Tento návod popisuje instalaci Pure-FTPd s podporou PostgreSQL na Debianu. Základním předpokladem je, že máte nainstalovanou PostgreSQL a zvládáte alespoň základní operace s ní (vytvoření databáze, tabulky a její naplnění daty). Pokud preferujete MySQL, můžete tento návod s malými úpravami použít také, protože se jedná o velmi podobnou konfiguraci.
Začneme instalací z repozitářů příkazem:
apt-get install pure-ftpd-postgresql
Nejdříve je třeba nastavit, aby Pure-FTPd běžel trvale jako démon. To provedeme editací souboru /etc/default/pure-ftpd-common
, kde nastavíme parametr STANDALONE_OR_INETD=standalone
. Rovněž je nasnadě zapnout volbu VIRTUALCHROOT=true
, aby nám nikdo nemohl "běhat" po celém filesystému.
Teď přistoupíme k základní konfiguraci, editujeme soubor /etc/pure-ftpd/db/postgresql.conf
. V první řadě musíme programu říci, na kterou databázi a jakým způsobem se má připojit:
PGSQLServer localhost PGSQLPort 5432 PGSQLUser ftpdaemon PGSQLPassword tajneheslo PGSQLDatabase ftp
Nenašel jsem způsob, jak heslo pro přístup k databázi uložit šifrovaně, proto zdůrazňuji, abyste výše zmíněného uživatele ftpdaemon vytvořili pouze s právy pro čtení a souboru postgresql.conf nastavili práva 600.
V dalších odstavcích už konfigurujeme samotné chování FTP. Nastavíme, že uživatelská hesla v databázi jsou pouze MD5 hashe. Můžete také použít volbu cleartext, ale není příliš chytré ukládat hesla v plaintextu.
PGSQLCrypt md5
Následuje SQL dotaz, který při autentizaci hledá platného uživatele s odpovídajícím heslem:
PGSQLGetPW SELECT password FROM users WHERE username='\L' AND active='true'
Další dva dotazy načítají user ID a group ID autentizovaného uživatele, což oceníte zejména při konfiguracích s větším počtem uživatelů:
PGSQLGetUID SELECT uid FROM users WHERE username='\L' PGSQLGetGID SELECT gid FROM users WHERE username='\L'
Pokud je nepotřebujete využívat, můžete nastavit tyto parametry, kterými dosáhneme statického nastavení:
PGSQLDefaultUID 2000 PGSQLDefaultGID 2000
Možná je vhodné poznamenat, že tyto dva parametry přepisují předchozí PGSQLGetUID a PGSQLGetGID
Nyní cesta k adresáři, do kterého bude mít uživatel přístup:
PGSQLGetDir SELECT directory FROM users WHERE username='\L'
A nakonec zde máme volby kvót a omezování uploadu/downloadu:
PGSQLGetQTAFS SELECT quotafiles FROM users WHERE username='\L' PGSQLGetQTASZ SELECT quotasize FROM users WHERE username='\L' PGSQLGetBandwidthUL SELECT uploadbw FROM users WHERE username='\L' PGSQLGetBandwidthDL SELECT downloadbw FROM users WHERE username='\L'
Soubor uložíme a přejdeme k dalšímu kroku.
Nejdříve vytvoříme tabulku users se strukturou odpovídající předchozí konfiguraci:
CREATE TABLE "public"."users" ( "id" SERIAL, "username" VARCHAR(20) NOT NULL, "password" VARCHAR(32) NOT NULL, "active" BOOLEAN DEFAULT true, "uid" INTEGER DEFAULT 2000, "gid" INTEGER DEFAULT 2000, "directory" VARCHAR(100) NOT NULL, "quotasize" INTEGER DEFAULT 0, "quotafiles" INTEGER DEFAULT 0, "downloadbw" INTEGER DEFAULT 0, "uploadbw" INTEGER DEFAULT 0, CONSTRAINT "users_pkey" PRIMARY KEY("id") ) WITH OIDS;
Poté do tabulky přidáme jednoho uživatele na vyzkoušení:
INSERT INTO public.users (username, "password", active, uid, gid, directory, quotasize, quotafiles, downloadbw, uploadbw) VALUES ('test','098f6bcd4621d373cade4e832627b4f6',true,2001,2001,'/var/www/test',10,0,50,0);
Tímto jsme vytvořili uživatele test s heslem test, uživatel je aktivní, jeho UID i GID je 2001, má přístup do složky /var/www/test
, kde má k dispozici 10 MB prostotu, počet souborů pro něj není omezen, stahovat může rychlostí 50 kB/s a uploadovat neomezenou rychlostí.
Nyní spustíme démona #/etc/init.d/pure-ftpd-postgresql start
. Odpovědí by mělo být přibližně toto:
Starting ftp server: Running: /usr/sbin/pure-ftpd-postgresql-virtualchroot -l pgsql:/etc/pure-ftpd/db/postgresql.conf -l pam -u 1000 -E -O clf:/var/log/pure-ftpd/transfer.log -B
Nyní, jestliže jste nikde neudělali chybu, by mělo fungovat připojení přes standardní port 21. V případě neúspěchu si zkontrolujte, zda jste zmíněnou složku uživatele nezapomněli vytvořit, popřípadě při připojování sledujte syslog (tail -F /var/log/syslog
). Pokud funguje vše, kromě omezování rychlosti, popř. i diskových kvót, zkontrolujte si řádně postgresql.conf
, zda v něm jsou stejné názvy sloupců jako v databázi. Pokud se nedaří ani inicializovat spojení, není na škodu pokus o připojení telnetem přímo na stroji s FTP.
telnet localhost 21
Měl by vám odpovědět přibližně takto:
220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 2 of 50 allowed. 220-Local time is now 14:31. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity.
V případě, že se tak nestane, je také možné, že se vám zobrazí nějaká klíčová chybová hláška, která může významně pomoci s hledáním příčiny. Mám zkušenosti, že ani logování na vyšší úrovni nic nezaznamenalo, ale v telnetu mi server odpověděl chybovým hlášením.
Pure-FTPd umí také zobrazovat skryté soubory, neboli soubory, jejichž název začíná tečkou. To ocení zejména provozovatelé webových serverů. Na mnoha hostingách tato funkce chybí, což občas může způsobit spoustu problémů, pokud nevidíte soubor .htaccess. Takže jak na to? Jednoduše!
echo yes > /etc/pure-ftpd/conf/DisplayDotFiles
A restartujeme démona:
/etc/init.d/pure-ftpd-postresql restart
Také vám při větším počtu uživatelů vadí, že má každý svoji vlastní složku a že ji musíte vždy s odpovídajícími právy vytvořit? K tomu je tady možnost existence dalšího konfiguračního souboru:
echo yes > /etc/pure-ftpd/conf/CreateHomeDir
Opět nezapomeňte opět restartovat démona.
Jsou případy, kdy nechceme, aby si uživatel mohl měnit přístupová práva souborů příkazem chmod:
echo yes > /etc/pure-ftpd/conf/NoChmod
Zrychlení FTP lze docílit vypnutím reverzního DNS překladu, který v drtivé většině případů nepotřebujeme:
echo yes > /etc/pure-ftpd/conf/DontResolve
Ve výchozím nastavení Pure-FTPd odpojuje relace neaktivní 15 minut. To můžete změnit takto:
echo 30 > /etc/pure-ftpd/conf/MaxIdleTime
V tomto případě jsme dobu prodloužili na 30 minut.
Pure-FTPd normálně povoluje 50 současných spojení. Pokud jich chcete povolit například 100, zadejte:
echo 100 > /etc/pure-ftpd/conf/MaxClientsNumber
Může dojít i k situacím, kdy nechceme, aby uživatelé mohl zasahovat do souborů začínajících tečkou.
echo yes > /etc/pure-ftpd/conf/ProhibitDotFilesWrite
Podobně funguje také parametr ProhibitDotFilesRead.
Užitečná funkce na veřejných FTP určených k uploadování anonymními uživateli.
echo yes > /etc/pure-ftpd/conf/KeepAllFiles
U této volby jsem se setkal s nemožností uploadu souboru začínajícího tečkou.
Pure-FTPd je mocný nástroj. Umí toho mnohem více, v tomto článku jsem se pokusil o výtah toho všeobecně nejvyužitelnějšího. Jako velké plus vidím možnost postavení si vlastních SQL dotazů pro autentizaci, což nám může umožnit například omezování IP adres, ze kterých se jednotliví uživatelé mohou připojovat. V manuálu naleznete spoustu dalších parametrů týkajících se např. anonymních uživatelů, nastavení globálních diskových kvót, masek pro nové soubory, TLS apod. Věřím, že si u nejednoho uživatele či správce linuxového systému najde domov.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
'; drop table users;(brať iba ako príklad, s pg nemám žiadne skúsenosti). Odporúčam prečítať si minimálne definíciu na wikipedii.
SELECT password FROM users WHERE username='\L' AND active='true'SQL injekce není jen záležitostí webu - týká se každého softwaru, který má nějaké vstupy od uživatele a ty se dostávají do SQL dotazů. Docela bych se divil, kdyby v tomto FTP serveru možnost SQL injekce nebyla ošetřená - to by byl hodně velký amatérismus, ale i to se stává. Parametry dotazů se zásadně mají předávat jako parametry, nikoli slepovat SQL příkaz jako kousky textu!