Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
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 »FTP klientů je celá řada, my si vyjmenujeme tři nejzákladnější.
Jeden z nejznámějších FTP klientů vůbec je FileZilla. Pokud používáme explicitní způsob šifrovaného spojení, tak v tomto klientu musíme zadat adresu serveru jako:
ftpes://adresa
Pro implicitní způsob šifrování je:
ftps://adresa
Hojně využívanmým klientem je Krusader aka KDE, aka kio-slaves. Aby nám fungovalo FTP v Krusaderu (Konqueroru apod.), je potřeba doinstalovat kio-ftps. Pro KDE 3 je k dispozici verze 1a, viz: kio-ftps-0.1a.tar.gz. Kdo nemá součástí distribuce, kompiluje se trojčlenkou:
tar xvfz kio-ftps-0.1a.tar.gz ./configure make make install
Poté stačí do Krusaderu zadat ftps://adresa a spojení je navázáno.
Pro KDE 4 je verze 0.2: kio-ftps-0.2.tar.gz, která se kompiluje pomocí CMake.
Pro GNOME je k dispozici gFTP. Pokud dostanete při pokusu o přihlášení na FTPS serveru tuto chybovou hlášku:
error 18:self signed certificate
tak si vypněte ověřování certifikátu v nastavení, nabídka FTP -> Preference -> Engine SSL -> Ověřit protistranu SSL. Další možností by mělo být umístění veřejného certifikátu vaší certifikační autority do adresáře certifikátů OpenSSL. V Debianu je v „/usr/lib/ssl/certs“ V Arch Linuxu jsou v /usr/share/ca-certificates/ a míří na ně symlinky z /etc/ssl/certs/.
Několik drobných tipů, co a jak nastavit.
Všechno šlape, uživatel funguje, ale vše v jeho adresáři jde smazat. Resp. práva se chovají tak, že pokud má adresář práva třeba root:root 755, tak soubor v onom adresáři s root:root 755 nejde smazat. Pokud má ovšem adresář třeba práva ftpuser:ftpgroup 755 a soubor root:root 700, tak lze soubor v klidu smazat a ProFTPD může běžet i pod uživatelem „proftpd“. Myslím si, že za to může mod_sql (měl by se chovat trochu korektněji k fyzickým právům a povolovat manipulaci se soubory těch uživatelů a skupin, které má definované v databázi). Provedeme si příklad řešení práv třeba na testovacím souboru (100 MiB na rychlost) pro download. Vytvoříme si ho takto (adresář ftp má práva třeba ftpuser:ftpgroup 775):
dd if=/dev/zero of=/home/ftp/100MiB.iso bs=1024 count=102400 # práva souboru jsou trochu irelevantní, ale budiž: chown proftpd:proftpd 100MiB.iso chmod 755 100MiB.iso
Nyní nastavíme práva, aby šel jen číst, a ne mazat. Potom upravíme proftpd.conf:
AllowOverride on #DenyFilter \*.*/ PathDenyFilter "(\.ftpaccess)$"
Nesmíme zapomenout na reload serveru:
/etc/init.d/proftpd reload
Tímto jsme si pomocí AllowOverride povolili možnost použití konfiguračního souboru .ftpaccess. Pomocí PathDenyFilter jsme zakázali možnost přepsání onoho souboru uživatelem.
Konečně si vytvoříme soubor .ftpaccess v adresáři uživatele „ftp“ (/home/ftp/.ftpaccess) a v případě, že chceme povolit pouhé čtení na náš testovací soubor, zapíšeme do něj:
PathDenyFilter "(\.ftpaccess|\100MiB.iso)$"
Do PathDenyFilter zapíšeme také zmíněný .ftpaccess. Definování PathDenyFilter v souboru .ftpaccess má za následek nepoužití této direktivy v proftpd.conf. .ftpaccess je načten při příchodu do adresáře, kde se nachází. Nyní mohou uživatelé tyto soubory jen číst. Pokud je klient již přihlášen, tak vytvořením onoho souboru nic nezmůžete, jelikož jej uživatel bude moci třeba smazat. Soubor se korektně načítá až při samotném přihlášení klienta. Resp. se mi zdá, že jen direktiva PathDenyFilter vyžaduje přihlášení klienta (BUG, nebo FEATURE?). Ostatní lze měnit za chodu a klient hned změny pocítí.
Soubor .ftpaccess je určen na řešení drobných restrikcí. Nelze v něm používat direktivu Directory, ač mi to částečně fungovalo. Pravidla se vždy aplikují na samotný adresář a podadresáře. Pokud v podadresáři vytvoříme .ftpaccess, tak budou platit pravidla zapsaná v něm atd.:
# zakaze upload (prepis) souboru 100MiB.iso, .ftpaccess a .htaccess: PathDenyFilter "(\.ftpaccess|\.htaccess|\100MiB.iso)$" # v aktualnim adresari budou vsichni moci cist, ale nikdo zapisovat (krome uzivatele "admin"): <Limit Write> AllowUser admin DenyAll Order allow,deny </Limit> <Limit Read> AllowAll </Limit> # povolime pristup ze vsech IP adres krom jedne: <Limit ALL> Deny 192.168.0.21 Allow all Order deny,allow </Limit> # omezeni rychlosti pro tento adresar a podadresare: TransferRate RETR 20:262144 # maximalni rychlost uploadu (od serveru ke klientu) je 20 KiB/s; do prenosu prvnich 256 KiB dat je rychlost maximalni
Nyní se podíváme na trochu složitější definování práv, zakládání tříd (classes) aj. Třídy lze definovat jen pomocí konfiguračních souborů ProFTPD. Aby nastavení vypadalo trochu přehledněji, vložíme si definice tříd stejně jako třeba nastavení SQL nebo TLS do jiného souboru. Do proftpd.conf doplníme:
Include /etc/proftpd/access.conf
Vytvoříme si soubor /etc/proftpd/access.conf a příklad nastavení by mohl vypadat nějak takto:
### seznam IP adres zlobivych uzivatelu: <Class blacklist> From 192.168.0.5 From 192.168.20.22 From 192.168.30.0/24 From 192.168.40.55 </Class> ### seznam VIP clenu: <Class vip> From 192.168.5.1 From 192.168.10.1 </Class> ### pokud se prihlasi uzivatel tonda, tak bude moci stahovat jen 20b KiB/s # (plati pouze pro adresar ~/pokus/*, vsude jinde to pojede naplno) <IfUser tonda> <Directory ~/pokus/*> TransferRate RETR 20 </Directory> </IfUser> ### kdo neni clenem skupiny vip, tomu pojede stahovani z FTP max. 40 KiB/s # a prvnich 256 KiB dat se bude stahovat plnou rychlosti: <IfGroup !vip> TransferRate RETR 40:262144 </IfGroup> ### kdo je clenem skupiny vip, tomu pojede stahovani 540 KiB/s <IfGroup vip> TransferRate RETR 540 </IfGroup> ### ti, jejichz IP nebo rozsah adres je definovan ve tride "blacklist", # se nebudou moci prihlasit <Limit LOGIN> DenyClass blacklist AllowAll </Limit>
Dávejte si pozor na fyzická práva adresářů. Jak už bylo řečeno, všechny direktivy se nedají používat všude. Pokud vás zajímá nějaká direktiva, tak se na ni podívejte do dokumentace: List of Directives by Name.
Nyní se podíváme na moduly třetích stran, které jsme si ručně zkompilovali spolu s ProFTPD.
Do souboru /etc/proftpd/modules.conf si doplníme následující řádek:
LoadModule mod_md5.c # jako posledni by se mel vzdy nacitat tento modul: LoadModule mod_ifsession.c
Do souboru /etc/proftpd/access.conf si doplníme následující řádky a vše by mělo fungovat:
### Jestlize se uploadne soubor do adresare "upload", tak se k nemu vytvori kontrolni md5 soucet # podadresar test je vynechan (kdyz se tam soubor uploadne, tak se md5 soucet generovat nebude) <IfModule mod_md5.c> MD5Engine on MD5Path ~/upload/ MD5Path !~/upload/test </IfModule> ### md5 soucet se bude generovat jen v pripade, ze bude dany soubor uploadovat uzivatel admin: <Limit SITE_MD5> AllowUser admin DenyAll </Limit>
Funkčnost vytváření md5 hashů můžeme vyzkoušet takto:
#:/# ftp 127.0.0.1 Connected to 127.0.0.1. 220::ffff:127.0.0.1 FTP server ready Name (127.0.0.1:root): admin 331 Password required for admin Password: 230 User admin logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> cd upload 250 CWD command successful ftp> quote SITE MD5 frozenbubble.exe quote site md5 frozenbubble.exe 200-2bbff112066c93871155d4cf1ada5d2d frozenbubble.exe 200 Please contact webmaster@abclinuxu.cz if this digest is inaccurate ftp>
Bohužel, po uploadnutí souboru na FTP server do příslušného adresáře nedojde k vytvoření dalšího souboru s md5 hashem. Takže všechno funguje, ale vlastně nefunguje).
Do /etc/proftpd/modules.conf doplníme:
LoadModule mod_sftp.c LoadModule mod_sftp_sql.c
Do /etc/proftpd/proftpd.conf doplníme řádek:
Include /etc/proftpd/sftp.conf
A do souboru /etc/proftpd/sftp.conf vložíme:
### Nastaveni v pripade, ze bychom chteli mit ulozeny klice v databazi a treba overovat uzivatele ceertifikaty apod. # Osobne nepotrebuji, takze jsem nezkousel. # (museli bychom si zrejme pridat sloupecek do tabulky k uzivatelum, kde by byl klic ulozen): #<IfModule mod_sql.c> # # Other mod_sql configuration here # # # Define a SELECT statement to retrieve users' authorized SSH keys # SQLNamedQuery get-user-authorized-keys SELECT "key FROM sftpuserkeys WHERE name='%U'" # # # Define a SELECT statement to retrieve hosts' authorized SSH keys # SQLNamedQuery get-host-authorized-keys SELECT "key FROM sftphostkeys WHERE host='%{0}'" #</IfModule> ### Velmi jednoduche nastaveni SFTP: <IfModule mod_sftp.c> ### Zapneme podporu SFTP: SFTPEngine on ### Soubor s logem: SFTPLog /var/log/proftpd/sftp.log ### Jelikoz se pouziva rozdilny zpusob prihlasovani, # tak pro debug rezim pouzijeme nasledujici logovani: #TraceLog /var/log/proftpd/sftp-trace.log #Trace scp:20 sftp:20 ssh2:20 ### Cesta ke klicum pro autentizaci (pouzijeme stavajici klice ssh demona): SFTPHostKey /etc/ssh/ssh_host_dsa_key SFTPHostKey /etc/ssh/ssh_host_rsa_key ### Zapneme kompresi: SFTPCompression delayed ### Pokracujeme v prikladu s databazi (osobne nepotrebuji, takze jsem ani nezkousel): # <IfModule mod_sftp_sql.c> # # Instead of using a file-based key store, we tell mod_sftp to use # # the SQL-based key store provided by mod_sftp_sql # SFTPAuthorizedUserKeys sql:/get-user-authorized-keys # SFTPAuthorizedHostKeys sql:/get-host-authorized-keys # </IfModule> </IfModule>
Nyní už stačí jen restart a je hotovo:
/etc/init.d/proftpd restart
Přihlašujeme se na port 21, tzn., že třeba v Krusaderu zadáme sftp://192.168.0.55:21. Poté už je krásně vidět, jak se nám plní soubor se záznamy /var/log/proftpd/sftp.log. Nebuďte ovšem bláhoví. Kdo si myslí, že může provozovat FTP/FTPS/SFTP na jednom portu, tak se mýlí. Pokud nastavíme SFTP, budeme moci používat jen tento protokol.
Do /etc/proftpd/modules.conf doplníme:
LoadModule mod_vroot.c
Do /etc/proftpd/proftpd.conf doplníme řádek:
Include /etc/proftpd/vroot.conf
A do souboru /etc/proftpd/vroot.conf vložíme:
<IfModule mod_vroot.c> VRootEngine on DefaultRoot ~ ### Vsem uzivatelum namapujeme tento adresar # (nefunguje soucasne s direktivou VRootServerRoot): VRootAlias upload /home/ftp/nejakaslozka/tamtaslozka ### Povolit symlinky: VRootOptions allowSymlinks ### Budeme logovat provoz: VRootLog /var/log/proftpd/vroot.log </IfModule>
Bohužel se mi tento modul nepodařilo zprovoznit. Alias se vytvoří, ale do logu se nic nezapisuje a do žádného adresáře nemám přístup. Ani do těch, kam jsem dřív mohl. U ProFTPD hodně záleží na pořadí modulů při kompilování, třeba ho tedy jen neumím správně zkompilovat.
Pokud se nám něco nedaří a chceme ladit, tak spustíme ProFTPD v debug režimu:
proftpd -d9 -n
V případě Debianu stačí upravit soubor /etc/default/proftpd takto:
# Defaults for ProFTPD initscript # Master system-wide ProFTPD switch. The initscript # will not run if it is not set to yes. RUN="yes" # Default options. # For more exhaustive logging, try "-d 3". OPTIONS="-d 9 -n"
A restartovat server:
/etc/init.d/proftpd restart
Nyní máme nainstalovaný a kompletně funkční ProFTPD server. Samotný server běží pod uživatelem a skupinou „profptd“. Uživatelské soubory spadají pod uživatele „ftpuser“ a skupinu „ftpgroup“. ProFTPD není rozhodně dokonalý FTP server, ale není ani nikterak špatný. Konfigurace mi přijde přehledná a práce s direktivami intuitivní. Jeho možnosti a rozšíření jsou velké, ač bohužel někdy ne zcela funkční (ve VirtualBoxu jsem měl i problémy s fitry na IP adresy, což ProFTPD umožňuje). Také by mě zajímalo, zda má někdo zkušenosti s nějakými externími moduly. V případě, že ano, může se o zkušenosti podělit pod článkem. To samozřejmě platí i o tipech na další různé možnosti nastavení.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
ferda si povoli prihlaseni pouze z IP 127.0.0.1 amalka si povoli prihlaseni pouze z IP 192.168.0.6 cmelda si povoli prihlaseni z 2 IP 192.168.0.7 a 192.168.0.8 brumbda se omezovat nehodla vubec
tohle umi treba pureftpd
ono to bolo myslene tak, ze ked nieco v php uploadujes cez tie jeho funkcie(move_uploaded_file....), tak owner/group je ten user pod ktorym bezi www server, a nie ten komu patria skripty... ciastocne riesenie je pouzivat mod_suphp (riesi to len otazku komu ten subor po vytvoreni patri), ale ani to neriesi zapisovanie quoty do databazy... to sa da imho vyriesit len quotami priamo v systeme...