Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: CT1108 20 Října 2008, 18:41:10
-
Zdravím vás,
Chtěl bych vás poprosit o radu a to ohledně proFTPd mám ho nainstalovanej a ted potřebuji konfiguraci vím že se to provádí v v souboru proftpd.conf Stím že hostuji více domén nebo spíš mám to v plánu , je nainstalovaný jako samostatná služba. Stím že mám všechny data na ty dané domény uloženy v var/www/danádoména a ve složce var jsou domény které jse jmenuji tak jak doména která je tam nasměrovaná. Potřebuji to tedy nastavit tak že když někdo má nakou doménu tak aby se rovnou nalogoval do té své dané domény.
Děkuju za každou radu.
-
http://www.lanax.net/view.php?cisloclanku=2007010002 (http://www.lanax.net/view.php?cisloclanku=2007010002)
-
No pročetl jsme si to, ale furt mi to není jasné v etc/proftpd/proftpd.conf jsme mají provádět nastavení to vím. Já potřebuju aby to ftp fungoval ona více domén tedy virtualhost ale jak na to. Na googlu jsme zjísti lže to má být nak takto:
<VirtualHost nazevdomeny.cz>
DefaultChdir var/www/nazevdomeny.cz
#DefaultChdir var/www/nazevdomeny
#DefaultRoot ~
#RootLogin on
#UserAlias nazevdomeny.cz nazevdomeny.cz
#UserPassword nazevdomeny.cz 12Y5k5tR9gDvI
#ServerName "nazevserveru.cz"
</VirtualHost>
Jsem vděčný za každé rady.
-
No tady přesně nevím jak to je... je potřeba vytvořit pro každou doménu zase uživatele s jeho root adresářem nastaveným na správnou adresu. Také nejspíše nastavit quotu. Ale přesně jak vypadá konfigurák nevím. Chce to pročíst dokumentaci. ;)
-
mohl by jsi mi zase hodit psl nakej odkaz. trochu mě nasměrovat pls
-
http://www.jiljiklen.com/linux/proftpd.html
-
btw. na fóru se ode mne někde válí kompletní návod na virtual hosting s proftpd s uživatelema v DB. Dá se to docela dobře svázat s mail systémem atp. Uživatelé vůbec nemusí být v systému zadaní (menší šance na hack), existují pouze virtuálně.
-
Bylo myšleno toto?
http://forum.ubuntu.cz/index.php/topic,8978.0.html
-
Pavel: jojo, nechtělo se mi to hledat :D
Chce to asi lehce upravit, už je to lehce zastaralé, jak tak koukám, ale základní idea je jasná a stejná.
-
no tak celý den tápám a udělal nebo tedy konkretně jsem překopiroval tento proftpd.conf soubor
##ServerType urcuje, zda se jedna o server bezici jako daemon (standalone), nebo jako sluzba superserveru (inetd/xinetd)
ServerType standalone
##DefaultRoot - kam ma byt uzivatel chrootovan (kde bude jeho "/" adresar)
DefaultRoot ~
##CharsetLocal - lokalni znakova sada (pravdepodobne UTF-8)
##CharsetRemote - znakova sada vzdaleneho klienta, pokud predpokladate wokna, pak CP1250
CharsetLocal UTF-8
CharsetRemote UTF-8
##AllowOverwrite - zda lze prepisovat soubory
##AllowRetrieveRestart - zda lze navazat na castecne stazeny soubor
##AllowStoreRestart - zda lze navazat na castecne nahrany soubor
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
##ServerName - vpodstate hlaska po pripojeni k serveru
##Port - kde ma server poslouchat - 21 je vychozi (a bezny) port pro FTP
##PassivePorts
##------------
##FTP pouziva vychozi port 21 pro "prikazovou radku", kudy posila informace jako je stor, put, ls ... proste bezne prikazy
##Dale pak pouziva datovy kanal, kudy tecou vlastni data (obsah vypisu adresare, up/download vlastniho souboru
##Existuji dve moznosti, jak datovy kanal muze fungovat
##
##1) Active - znamena, ze server ma otevren jen port 21 a 20 (datovy port),
##Komunikace mezi klientem a serverem pak probiha tak, ze klient z libovolneho portu (N>1023) vysle pozadavek na komunikacni kanal (port 21),
##pokud se mu dostane odpovedi, zacne poslouchat na dalsim (volnem) portu (N+1) a posle toto cislo serveru. Server se pak pripoji ke klientovi
##na oznameny port z portu 20 a zacne odesilat data. Z hlediska serveru je to nejjednodussi mozna konfigurace, protoze ve firewallu staci povolit
##prichozi porty 20 a 21, ale z hlediska klienta uz to tak snadne neni - problem nastava u klientu s neverejnou IP (za NAT nebo PROXY) a zapnutym
##firewallem, ktery neumi povolit prichozi smer pro vsechny porty otevrene FTP klientem. Osobne active mod u serveru nepouzivam, uz jen proto, ze
##hodne nejbeznejsich www klientu (napr. firefox, ie) odesila ihned po prihlaseni prikaz PASV (prepni mne do passive modu) a navic se nelze spolehat
##na to, ze uzivatel bude vzdy "prvni na rane" tj. ze bude mit verejnou IP a pruchozi firewall
##
##2) Passive - znamena, ze server ma otevreny port 21 a urcite mnozstvi dalsich portu, ktere nasledne pouziva pro prenos dat mezi klientem a
##serverem tj. kdy klient po prihlaseni na server obdrzi od serveru cislo prideleneho otevreneho port, na kterem data na klienta cekaji. Z hlediska
##konfigurace firewallu na serveru je to pomerne problem, nastesti proftpd podporuje vynuceni urciteho bloku volnych portu, kdy se uz firewall
##da upravit tak, aby propustil presne a jen toto mnozstvi. Doporucuji otevrit i port 20, protoze pak bude server fungovat v obou modech
ServerName "My ProFTPd server"
Port 21
PassivePorts 5103 5189
##MultilineRFC2228 - Jedna se o urcitou "kompatibilitu rozsirujici" featuru. Vpodstate pri komunikaci klienta se serverm
##kazdy radek zacina urcitym kodem (2xx,4xx,6xx) ktery urcuje o jakou hlasku se jedna - diky tomu je zaruceno, ze klientska
##aplikace bude vedet, co je spatne(nebo dobre) a zaroven to server dokaze rici i cloveku srozumitelnou formou
##Standardne server posle kod odpovedi a pak vysype spousty radku bez kodu, coz muze vest k tomu, ze je protejsi klient zmateny,
##proto je MultilineRFC2228 dulezity - kazdy radek ma svuj jednoznacny kod
MultilineRFC2228 on
##DefaulServer je zalezitost pouzivana hlavne v pripade VirtualServeru, kdy pokud prijde pozadavek na IP (a ne na dns nazev), nevi
##server, kam jej priradit, pokud by tato direktiva chybela, klient obdrzi hlasku "no server available to service your request"
DefaultServer on
##ShowSymlinks - Rekne, zda maji byt zobrazeny (a zda jsou aktivni) symbolicke odkazy. Muze to byt uzitecne v pripade, ze pozadujete nejaky
##ucet, skrz ktery se lze podivat treba do adresaru dalsich uzivatelu bez toho, aby bylo nutne pouzivat nejakou obecnejsi variantu (napr. mount --bind)
ShowSymlinks on
##IdentLookups urcuje, zda ma byt uzivatelske jmeno ziskano pres ident (RFC1413), defaultne je on, vypinam to, protoze to znacne zpomaluje
##prihlasovaci proces
IdentLookups off
##Jedna se o zalezitost, kdy server po navazani spojeni zjistuje reverzni DNS zaznam klienta, pouziva se to treba pro
##bezpecnejsi autorizaci (dany uzivatel se smi prihlasit jen z dane domeny), default je on, vypinam to --> pomale
UseReverseDNS off
##TimeoutNoTransfer urcuje, jak dlouho (v sekundach) muze byt uzivatel necinny bezprostredne po prihlaseni na server bez pozadavku
##TimeoutStalled urcuje, jak dlouho (v sekundach) bude proces prenosu dat (bez prenosu dat) povazovan za aktivni
##TimeoutIdle urcuje, jak dlouho (v sekundach) muze uzivatel zustat necinny (po prenosu dat)
TimeoutNoTransfer 900
TimeoutStalled 600
TimeoutIdle 1800
##Vpodstate klasicky linuxovy umask noveho adresare a souboru (maska se odecita od plne hodnoty tj. 777-022=755 ~ rwxr-xr-x)
Umask 022 022
##DisplayLogin rika, ze ktereho souboru se nacte uvodni hlaska po prihlaseni na server (Vitejte na serveru blablablablabla)
##Zajimava je snad jen moznost, ze si uzivatel hlasku definuje sam - tj. tato konfigurace, kdy se soubor hleda v chrootu
##uzivatele, pokud soubor neexistuje, nevznikne zadna chyba, jen se uzivateli nic nevypise
DisplayLogin welcome.msg
##DisplayFirstChdir definuje, ktery soubor bude po prvnim otevreni adresare vypsan jako hlaska (neco ve smyslu "V tomto adresari se nachazi to
##a to a nelze mazat"), tato direktiva je oznacena za zastaralou, castecne ji nahrazuje DisplayChdir, ale asi stejne nema moc smysl, protoze vetsina
##www prohlizecu (nejcastejsi navstevnici FTP - alespon u mne) tyto hlasky stejne ignoruje
DisplayFirstChdir .message
##ListOptions ma jako hodnotu parametr, ktery udava, jak bude vypadat vypis adresare (v klasickem terminalu). Moznosti jsou
## -l Jedna radka pro jeden soubor
## -A Vypis vsechny soubory vyjma "." a ".."
## -a Vypis vsechny soubory vcetne tech skrytych (tj. zacinajicich "." - napriklad .htaccess)
## -C Vypis do kolonek
## -d Vypis jen adresare (misto jejich obsahu)
## -F V pripade, ze dany soubor obsahuje identifikator souboru ("*", "/", "=", "@" or "|"), vypise jej take
## -h Vypisuje velikosti souboru v "citelnejsi" podobe (1K, 10MB, 2,4GB atd.)
## -L Vypisuje soubory, na ktere ukazuje symbolicky odkaz
## -l Pouzije tzv. "podrobny vypis"
## -n Pri vypisu ukaze jen cisla GID a UID pro skupiny/uzivatel misto jejich nazvu
## -R Bude prochazet adresare rekurzivne
## -r Vypise soubory v obracenem poradi
## -S Seradi a vypise soubory podle velikosti
## -t Seradi a vypise soubory podle data posledni upravy
ListOptions "-l"
##RootLogin rika, zda uzivatel root muze pristoupit na server pres FTP, tak jak tak by to melo byt vypnuto pomoci /etc/ftpusers, ale jistota je jistota
##RequireValidShell - normalne proftpd pouziva uzivateli definovany shell, v tomto pripade ale vlastne nechceme, aby uzivatel shell mel, takze jej
##nepozadujeme
RootLogin off
RequireValidShell off
##DenyFilter - zabezpeceni proti nastaveni nebezpecnych filtru na masku regularniho vyrazu
DenyFilter \*.*/
##AuthOrder rika v jakem poradi se ma pristupovat k overeni daneho uzivatele, pokud je nastavena takto,
##dojde k overeni jen na zaklade mysql (virtual user), tj. zadny bezny uzivatel (vlastnici shell) nebude overen
AuthOrder mod_sql.c
##SQLAuthenticate povoluje modul SQL overeni uzivatele
SQLAuthenticate on
##SQLAuthTypes urcuje, jak jsou hesla ulozena v databazi
SQLAuthTypes Crypt Plaintext
##SQLConnectInfo obsahuje informace potrebne pro prihlaseni k databazi, je dobre mit pro proftpd vlastniho uzivatele
SQLConnectInfo databaze@localhost uzivatel_proftpd prisne_tajne_heslo
##SQLUserInfo rika, ktera tabulka a ktere zaznamy budou pouzity pro operace s uzivateli
SQLUserInfo ftpuser userid passwd uid gid homedir shell
##SQLGroupInfo rika, ktera tabulka a ktere zaznamy budou pouzity pro operace se skupinami
SQLGroupInfo ftpgroup groupname gid members
##Minimalni UID A GID uzivatele v SQL databazi, ktery ma opravneni se prihlasit
SQLMinID 500
##Umoznuje zalozit domovskou slozku uzivatele (definovanou v databazi) v pripade jeji neexistence
SQLHomedirOnDemand on
##Pricteme pocet prihlaseni uzivatele po kazdem jeho prihlaseni (prikaz PASS)
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
##Definice posledniho up/downloadu/smazani souboru uzivatele v databazi (prikaz STOR,DELE,GET)
SQLLog STOR,DELE,GET modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
## Uzivatelske kvoty
## =================
QuotaEngine on #Zapnuti kvot
QuotaDirectoryTally on #Maji se zapocitavat i adresare
QuotaDisplayUnits Mb #Zobrazovane jednotky
QuotaShowQuotas on #A maji se zobrazovat kvoty uzivatelum
##Nacita z databaze kvoty daneho uzivatele
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
##Pocita jiz zaplnenou kvotu
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
##Aktualizuje kvotu
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
##Vytvareni zaznamu kvoty pro uzivatele
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
##Toto je pouzito pro zobrazeni hlasky uzivateli, kolik z kvoty mu jeste zbyva
SQLNamedQuery gettally SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
SQLNamedQuery getlimit SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
SQLNamedQuery getfree SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"
##Zobrazime hlasku do pri prikazu LIST
SQLShowInfo LIST "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."
##Tady definujeme, ze se kvoty pro uzivatele budou nacitat z databaze
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally[/shadow][/shadow][/shadow]
[b]pak jsem udělal uživatele proftpd a databázi proftpd s těmi to tabulkami:[/b]
-- Struktura tabulky `ftpgroup`
--
CREATE TABLE `ftpgroup` (
`groupname` varchar(16) NOT NULL default '',
`gid` smallint(6) NOT NULL auto_increment,
`members` varchar(16) NOT NULL default '',
PRIMARY KEY (`gid`),
KEY `groupname` (`groupname`)
) AUTO_INCREMENT=2004 ;
--
-- Struktura tabulky `ftpquotalimits`
--
CREATE TABLE `ftpquotalimits` (
`name` varchar(30) default NULL,
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`per_session` enum('false','true') NOT NULL default 'false',
`limit_type` enum('soft','hard') default 'hard',
`bytes_in_avail` int(10) unsigned NOT NULL default '0',
`bytes_out_avail` int(10) unsigned NOT NULL default '0',
`bytes_xfer_avail` int(10) unsigned NOT NULL default '0',
`files_in_avail` int(10) unsigned NOT NULL default '0',
`files_out_avail` int(10) unsigned NOT NULL default '0',
`files_xfer_avail` int(10) unsigned NOT NULL default '0'
)
--
-- Struktura tabulky `ftpquotatallies`
--
CREATE TABLE `ftpquotatallies` (
`name` varchar(30) NOT NULL default '',
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`bytes_in_used` int(10) unsigned NOT NULL default '0',
`bytes_out_used` int(10) unsigned NOT NULL default '0',
`bytes_xfer_used` int(10) unsigned NOT NULL default '0',
`files_in_used` int(10) unsigned NOT NULL default '0',
`files_out_used` int(10) unsigned NOT NULL default '0',
`files_xfer_used` int(10) unsigned NOT NULL default '0'
)
--
-- Struktura tabulky `ftpuser`
--
CREATE TABLE `ftpuser` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` varchar(32) NOT NULL default '',
`passwd` varchar(32) NOT NULL default '',
`uid` smallint(6) NOT NULL default '5500',
`gid` smallint(6) NOT NULL default '5500',
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(16) NOT NULL default '/sbin/nologin',
`count` int(11) NOT NULL default '0',
`accessed` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `userid` (`userid`)
)
a ted momentálně důmám nadtím co dále mám udělat na netu jsem našel nake ty návody ale moc to znich nechá jako nechápu co přesně mám udělat.
-
bylodána rada že pravděpodobně nezavadim modul sql, nebo nemam nastavenou autentifikaci pomoci sql
Mohli by jste mi prosím poradit co tím je myšleno nebo spíš jak to mám napravit. Dík moc za každou radu.
-
AuthOrder mod_sql.c jste během úprav náhodou nevypustil?
-
No nevim kde to AuthOrder mod_sql.c najdu??
Sem už docela dost zoufalý. Už v tom tápu dost dlouho a rád bych to měl z krku.
Dík za každou radu.
-
.. njn .. ty jsi dalsi z tech expertu, co potrebuji hostovat nekolik domen, ale si schopni nastavit pitomeho ftp demona?
kdyz napises synku do guglu "proftpd howto", tak ti na prvnim miste vyjede odkaz, ze ktereho by to zvladla nastavit i moje kocka ..
nehostuj .. nemas na to .. akorat budes mit spousta trablu .. budes muset resit horsi veci ;)
-
no nejde jen o hostování jde oto se to naučit,ne
-
ja spíš řeším problém podle návodu jsem to vytvořil ale tedto nešlape takže oto de.
-
nettezzaumana ty ses nakej dost velkej podivím co?
-
nettezzaumana ty ses nakej dost velkej podivím co?
jj
-
nettezzaumana ty ses nakej dost velkej podivím co?
Root má svýho Bleka, Ábíčko svůj otazník u zpráviček o nových verzích Wine, no a my tu máme Ntz. :D
-
nettezzaumana ty ses nakej dost velkej podivím co?
Root má svýho Bleka, Ábíčko svůj otazník u zpráviček o nových verzích Wine, no a my tu máme Ntz. :D
... a pak dalšího fantoma fóra, kterého nikdo neviděl ... dozajista krásnou Aničku :D
-
pls potřeboval bych stím opravdu pomoct stím FTP
-
no už vážně nevím
takto vypadá můj soubor proftpd.conf
##ServerType urcuje, zda se jedna o server bezici jako daemon (standalone), nebo jako sluzba superserveru (inetd/xinetd)
ServerType standalone
##DefaultRoot - kam ma byt uzivatel chrootovan (kde bude jeho "/" adresar)
DefaultRoot ~
##AllowOverwrite - zda lze prepisovat soubory
##AllowRetrieveRestart - zda lze navazat na castecne stazeny soubor
##AllowStoreRestart - zda lze navazat na castecne nahrany soubor
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
##ServerName -pokus
##Port - kde ma server poslouchat - 21 je vychozi (a bezny) port pro FTP
##PassivePorts
##------------
##FTP pouziva vychozi port 21 pro "prikazovou radku", kudy posila informace jako je stor, put, ls ... proste bezne prikazy
##Dale pak pouziva datovy kanal, kudy tecou vlastni data (obsah vypisu adresare, up/download vlastniho souboru
##Existuji dve moznosti, jak datovy kanal muze fungovat
##
##1) Active - znamena, ze server ma otevren jen port 21 a 20 (datovy port),
##Komunikace mezi klientem a serverem pak probiha tak, ze klient z libovolneho portu (N>1023) vysle pozadavek na komunikacni kanal (port 21),
##pokud se mu dostane odpovedi, zacne poslouchat na dalsim (volnem) portu (N+1) a posle toto cislo serveru. Server se pak pripoji ke klientovi
##na oznameny port z portu 20 a zacne odesilat data. Z hlediska serveru je to nejjednodussi mozna konfigurace, protoze ve firewallu staci povolit
##prichozi porty 20 a 21, ale z hlediska klienta uz to tak snadne neni - problem nastava u klientu s neverejnou IP (za NAT nebo PROXY) a zapnutym
##firewallem, ktery neumi povolit prichozi smer pro vsechny porty otevrene FTP klientem. Osobne active mod u serveru nepouzivam, uz jen proto, ze
##hodne nejbeznejsich www klientu (napr. firefox, ie) odesila ihned po prihlaseni prikaz PASV (prepni mne do passive modu) a navic se nelze spolehat
##na to, ze uzivatel bude vzdy "prvni na rane" tj. ze bude mit verejnou IP a pruchozi firewall
##
##2) Passive - znamena, ze server ma otevreny port 21 a urcite mnozstvi dalsich portu, ktere nasledne pouziva pro prenos dat mezi klientem a
##serverem tj. kdy klient po prihlaseni na server obdrzi od serveru cislo prideleneho otevreneho port, na kterem data na klienta cekaji. Z hlediska
##konfigurace firewallu na serveru je to pomerne problem, nastesti proftpd podporuje vynuceni urciteho bloku volnych portu, kdy se uz firewall
##da upravit tak, aby propustil presne a jen toto mnozstvi. Doporucuji otevrit i port 20, protoze pak bude server fungovat v obou modech
ServerName "My ProFTPd server"
Port 21
PassivePorts 5103 5189
##MultilineRFC2228 - Jedna se o urcitou "kompatibilitu rozsirujici" featuru. Vpodstate pri komunikaci klienta se serverm
##kazdy radek zacina urcitym kodem (2xx,4xx,6xx) ktery urcuje o jakou hlasku se jedna - diky tomu je zaruceno, ze klientska
##aplikace bude vedet, co je spatne(nebo dobre) a zaroven to server dokaze rici i cloveku srozumitelnou formou
##Standardne server posle kod odpovedi a pak vysype spousty radku bez kodu, coz muze vest k tomu, ze je protejsi klient zmateny,
##proto je MultilineRFC2228 dulezity - kazdy radek ma svuj jednoznacny kod
MultilineRFC2228 on
##DefaulServer je zalezitost pouzivana hlavne v pripade VirtualServeru, kdy pokud prijde pozadavek na IP (a ne na dns nazev), nevi
##server, kam jej priradit, pokud by tato direktiva chybela, klient obdrzi hlasku "no server available to service your request"
DefaultServer on
##ShowSymlinks - Rekne, zda maji byt zobrazeny (a zda jsou aktivni) symbolicke odkazy. Muze to byt uzitecne v pripade, ze pozadujete nejaky
##ucet, skrz ktery se lze podivat treba do adresaru dalsich uzivatelu bez toho, aby bylo nutne pouzivat nejakou obecnejsi variantu (napr. mount --bind)
ShowSymlinks on
##IdentLookups urcuje, zda ma byt uzivatelske jmeno ziskano pres ident (RFC1413), defaultne je on, vypinam to, protoze to znacne zpomaluje
##prihlasovaci proces
IdentLookups off
##Jedna se o zalezitost, kdy server po navazani spojeni zjistuje reverzni DNS zaznam klienta, pouziva se to treba pro
##bezpecnejsi autorizaci (dany uzivatel se smi prihlasit jen z dane domeny), default je on, vypinam to --> pomale
UseReverseDNS off
##TimeoutNoTransfer urcuje, jak dlouho (v sekundach) muze byt uzivatel necinny bezprostredne po prihlaseni na server bez pozadavku
##TimeoutStalled urcuje, jak dlouho (v sekundach) bude proces prenosu dat (bez prenosu dat) povazovan za aktivni
##TimeoutIdle urcuje, jak dlouho (v sekundach) muze uzivatel zustat necinny (po prenosu dat)
TimeoutNoTransfer 900
TimeoutStalled 600
TimeoutIdle 1800
##Vpodstate klasicky linuxovy umask noveho adresare a souboru (maska se odecita od plne hodnoty tj. 777-022=755 ~ rwxr-xr-x)
Umask 022 022
##DisplayLogin rika, ze ktereho souboru se nacte uvodni hlaska po prihlaseni na server (Vitejte na serveru blablablablabla)
##Zajimava je snad jen moznost, ze si uzivatel hlasku definuje sam - tj. tato konfigurace, kdy se soubor hleda v chrootu
##uzivatele, pokud soubor neexistuje, nevznikne zadna chyba, jen se uzivateli nic nevypise
DisplayLogin welcome.msg
##DisplayChdir definuje, ktery soubor bude po prvnim otevreni adresare vypsan jako hlaska (neco ve smyslu "V tomto adresari se nachazi to
##a to a nelze mazat"), tato direktiva je oznacena za zastaralou, castecne ji nahrazuje DisplayChdir, ale asi stejne nema moc smysl, protoze vetsina
##www prohlizecu (nejcastejsi navstevnici FTP - alespon u mne) tyto hlasky stejne ignoruje
DisplayChdir .message
##ListOptions ma jako hodnotu parametr, ktery udava, jak bude vypadat vypis adresare (v klasickem terminalu). Moznosti jsou
## -l Jedna radka pro jeden soubor
## -A Vypis vsechny soubory vyjma "." a ".."
## -a Vypis vsechny soubory vcetne tech skrytych (tj. zacinajicich "." - napriklad .htaccess)
## -C Vypis do kolonek
## -d Vypis jen adresare (misto jejich obsahu)
## -F V pripade, ze dany soubor obsahuje identifikator souboru ("*", "/", "=", "@" or "|"), vypise jej take
## -h Vypisuje velikosti souboru v "citelnejsi" podobe (1K, 10MB, 2,4GB atd.)
## -L Vypisuje soubory, na ktere ukazuje symbolicky odkaz
## -l Pouzije tzv. "podrobny vypis"
## -n Pri vypisu ukaze jen cisla GID a UID pro skupiny/uzivatel misto jejich nazvu
## -R Bude prochazet adresare rekurzivne
## -r Vypise soubory v obracenem poradi
## -S Seradi a vypise soubory podle velikosti
## -t Seradi a vypise soubory podle data posledni upravy
ListOptions "-l"
##RootLogin rika, zda uzivatel root muze pristoupit na server pres FTP, tak jak tak by to melo byt vypnuto pomoci /etc/ftpusers, ale jistota je jistota
##RequireValidShell - normalne proftpd pouziva uzivateli definovany shell, v tomto pripade ale vlastne nechceme, aby uzivatel shell mel, takze jej
##nepozadujeme
RootLogin off
RequireValidShell off
##DenyFilter - zabezpeceni proti nastaveni nebezpecnych filtru na masku regularniho vyrazu
DenyFilter \*.*/
##AuthOrder rika v jakem poradi se ma pristupovat k overeni daneho uzivatele, pokud je nastavena takto,
##dojde k overeni jen na zaklade mysql (virtual user), tj. zadny bezny uzivatel (vlastnici shell) nebude overen
AuthOrder mod_sql.c
<Global>
RootLogin on
</Global>
a takto sql.conf
##SQLAuthenticate povoluje modul SQL overeni uzivatele
SQLAuthenticate on
##SQLAuthTypes urcuje, jak jsou hesla ulozena v databazi
SQLAuthTypes Crypt Plaintext
##SQLConnectInfo obsahuje informace potrebne pro prihlaseni k databazi, je dobre mit pro proftpd vlastniho uzivatele
SQLConnectInfo proftpd@localhost proftpd zkusene
##SQLUserInfo rika, ktera tabulka a ktere zaznamy budou pouzity pro operace s uzivateli
SQLUserInfo ftpuser userid passwd uid gid homedir shell
##SQLGroupInfo rika, ktera tabulka a ktere zaznamy budou pouzity pro operace se skupinami
SQLGroupInfo ftpgroup groupname gid members
##Minimalni UID A GID uzivatele v SQL databazi, ktery ma opravneni se prihlasit
SQLMinID 500
##Umoznuje zalozit domovskou slozku uzivatele (definovanou v databazi) v pripade jeji neexistence
SQLHomedirOnDemand on
##Pricteme pocet prihlaseni uzivatele po kazdem jeho prihlaseni (prikaz PASS)
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
##Definice posledniho up/downloadu/smazani souboru uzivatele v databazi (prikaz STOR,DELE,GET)
SQLLog STOR,DELE,GET modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
## Uzivatelske kvoty
## =================
QuotaEngine on #Zapnuti kvot
QuotaDirectoryTally on #Maji se zapocitavat i adresare
QuotaDisplayUnits Mb #Zobrazovane jednotky
QuotaShowQuotas on #A maji se zobrazovat kvoty uzivatelum
##Nacita z databaze kvoty daneho uzivatele
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
##Pocita jiz zaplnenou kvotu
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
##Aktualizuje kvotu
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
##Vytvareni zaznamu kvoty pro uzivatele
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
##Toto je pouzito pro zobrazeni hlasky uzivateli, kolik z kvoty mu jeste zbyva
SQLNamedQuery gettally SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
SQLNamedQuery getlimit SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
SQLNamedQuery getfree SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"
##Zobrazime hlasku do pri prikazu LIST
SQLShowInfo LIST "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."
##Tady definujeme, ze se kvoty pro uzivatele budou nacitat z databaze
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
jsme vděčný za každé rady
-
A konfigurák, kde načítáte dané moduly je kde?
tj. /etc/proftpd/modules.conf ?
-
no tady promiňte :
#
# This file is used to manage DSO modules and features.
#
# This is the directory where DSO modules reside
ModulePath /usr/lib/proftpd
# Allow only user root to load and unload modules, but allow everyone
# to see which modules have been loaded
ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *
LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c
LoadModule mod_sql.c
LoadModule mod_ldap.c
#
# 'SQLBackend mysql' or 'SQLBackend postgres' directives are required
# to have SQL authorization working. You can also comment out the
# unused module here, in alternative.
#
LoadModule mod_sql_mysql.c
LoadModule mod_sql_postgres.c
LoadModule mod_radius.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_quotatab_ldap.c
LoadModule mod_quotatab_sql.c
LoadModule mod_quotatab_radius.c
LoadModule mod_wrap.c
LoadModule mod_rewrite.c
LoadModule mod_load.c
LoadModule mod_ban.c
LoadModule mod_wrap2.c
LoadModule mod_wrap2_file.c
LoadModule mod_wrap2_sql.c
# keep this module the last one
LoadModule mod_ifsession.c
-
ok, a v proftpd.conf jej includujete kde?
Chybí Vám tam řádek
Include /etc/proftpd/modules.conf
-
aha no to tam nemá
a kde to má být zhruba vložené
-
Ideálně hned na začátku
-
takže třea takhle
Include /etc/proftpd/modules.conf
##ServerType urcuje, zda se jedna o server bezici jako daemon (standalone), nebo jako sluzba superserveru (inetd/xinetd)
ServerType standalone
##DefaultRoot - kam ma byt uzivatel chrootovan (kde bude jeho "/" adresar)
DefaultRoot ~
##AllowOverwrite - zda lze prepisovat soubory
##AllowRetrieveRestart - zda lze navazat na castecne stazeny soubor
##AllowStoreRestart - zda lze navazat na castecne nahrany soubor
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
##ServerName -pokus
##Port - kde ma server poslouchat - 21 je vychozi (a bezny) port pro FTP
##PassivePorts
##------------
##FTP pouziva vychozi port 21 pro "prikazovou radku", kudy posila informace jako je stor, put, ls ... proste bezne prikazy
##Dale pak pouziva datovy kanal, kudy tecou vlastni data (obsah vypisu adresare, up/download vlastniho souboru
##Existuji dve moznosti, jak datovy kanal muze fungovat
##
##1) Active - znamena, ze server ma otevren jen port 21 a 20 (datovy port),
##Komunikace mezi klientem a serverem pak probiha tak, ze klient z libovolneho portu (N>1023) vysle pozadavek na komunikacni kanal (port 21),
##pokud se mu dostane odpovedi, zacne poslouchat na dalsim (volnem) portu (N+1) a posle toto cislo serveru. Server se pak pripoji ke klientovi
##na oznameny port z portu 20 a zacne odesilat data. Z hlediska serveru je to nejjednodussi mozna konfigurace, protoze ve firewallu staci povolit
##prichozi porty 20 a 21, ale z hlediska klienta uz to tak snadne neni - problem nastava u klientu s neverejnou IP (za NAT nebo PROXY) a zapnutym
##firewallem, ktery neumi povolit prichozi smer pro vsechny porty otevrene FTP klientem. Osobne active mod u serveru nepouzivam, uz jen proto, ze
##hodne nejbeznejsich www klientu (napr. firefox, ie) odesila ihned po prihlaseni prikaz PASV (prepni mne do passive modu) a navic se nelze spolehat
##na to, ze uzivatel bude vzdy "prvni na rane" tj. ze bude mit verejnou IP a pruchozi firewall
##
##2) Passive - znamena, ze server ma otevreny port 21 a urcite mnozstvi dalsich portu, ktere nasledne pouziva pro prenos dat mezi klientem a
##serverem tj. kdy klient po prihlaseni na server obdrzi od serveru cislo prideleneho otevreneho port, na kterem data na klienta cekaji. Z hlediska
##konfigurace firewallu na serveru je to pomerne problem, nastesti proftpd podporuje vynuceni urciteho bloku volnych portu, kdy se uz firewall
##da upravit tak, aby propustil presne a jen toto mnozstvi. Doporucuji otevrit i port 20, protoze pak bude server fungovat v obou modech
ServerName "My ProFTPd server"
Port 21
PassivePorts 5103 5189
##MultilineRFC2228 - Jedna se o urcitou "kompatibilitu rozsirujici" featuru. Vpodstate pri komunikaci klienta se serverm
##kazdy radek zacina urcitym kodem (2xx,4xx,6xx) ktery urcuje o jakou hlasku se jedna - diky tomu je zaruceno, ze klientska
##aplikace bude vedet, co je spatne(nebo dobre) a zaroven to server dokaze rici i cloveku srozumitelnou formou
##Standardne server posle kod odpovedi a pak vysype spousty radku bez kodu, coz muze vest k tomu, ze je protejsi klient zmateny,
##proto je MultilineRFC2228 dulezity - kazdy radek ma svuj jednoznacny kod
MultilineRFC2228 on
##DefaulServer je zalezitost pouzivana hlavne v pripade VirtualServeru, kdy pokud prijde pozadavek na IP (a ne na dns nazev), nevi
##server, kam jej priradit, pokud by tato direktiva chybela, klient obdrzi hlasku "no server available to service your request"
DefaultServer on
##ShowSymlinks - Rekne, zda maji byt zobrazeny (a zda jsou aktivni) symbolicke odkazy. Muze to byt uzitecne v pripade, ze pozadujete nejaky
##ucet, skrz ktery se lze podivat treba do adresaru dalsich uzivatelu bez toho, aby bylo nutne pouzivat nejakou obecnejsi variantu (napr. mount --bind)
ShowSymlinks on
##IdentLookups urcuje, zda ma byt uzivatelske jmeno ziskano pres ident (RFC1413), defaultne je on, vypinam to, protoze to znacne zpomaluje
##prihlasovaci proces
IdentLookups off
##Jedna se o zalezitost, kdy server po navazani spojeni zjistuje reverzni DNS zaznam klienta, pouziva se to treba pro
##bezpecnejsi autorizaci (dany uzivatel se smi prihlasit jen z dane domeny), default je on, vypinam to --> pomale
UseReverseDNS off
##TimeoutNoTransfer urcuje, jak dlouho (v sekundach) muze byt uzivatel necinny bezprostredne po prihlaseni na server bez pozadavku
##TimeoutStalled urcuje, jak dlouho (v sekundach) bude proces prenosu dat (bez prenosu dat) povazovan za aktivni
##TimeoutIdle urcuje, jak dlouho (v sekundach) muze uzivatel zustat necinny (po prenosu dat)
TimeoutNoTransfer 900
TimeoutStalled 600
TimeoutIdle 1800
##Vpodstate klasicky linuxovy umask noveho adresare a souboru (maska se odecita od plne hodnoty tj. 777-022=755 ~ rwxr-xr-x)
Umask 022 022
##DisplayLogin rika, ze ktereho souboru se nacte uvodni hlaska po prihlaseni na server (Vitejte na serveru blablablablabla)
##Zajimava je snad jen moznost, ze si uzivatel hlasku definuje sam - tj. tato konfigurace, kdy se soubor hleda v chrootu
##uzivatele, pokud soubor neexistuje, nevznikne zadna chyba, jen se uzivateli nic nevypise
DisplayLogin welcome.msg
##DisplayChdir definuje, ktery soubor bude po prvnim otevreni adresare vypsan jako hlaska (neco ve smyslu "V tomto adresari se nachazi to
##a to a nelze mazat"), tato direktiva je oznacena za zastaralou, castecne ji nahrazuje DisplayChdir, ale asi stejne nema moc smysl, protoze vetsina
##www prohlizecu (nejcastejsi navstevnici FTP - alespon u mne) tyto hlasky stejne ignoruje
DisplayChdir .message
##ListOptions ma jako hodnotu parametr, ktery udava, jak bude vypadat vypis adresare (v klasickem terminalu). Moznosti jsou
## -l Jedna radka pro jeden soubor
## -A Vypis vsechny soubory vyjma "." a ".."
## -a Vypis vsechny soubory vcetne tech skrytych (tj. zacinajicich "." - napriklad .htaccess)
## -C Vypis do kolonek
## -d Vypis jen adresare (misto jejich obsahu)
## -F V pripade, ze dany soubor obsahuje identifikator souboru ("*", "/", "=", "@" or "|"), vypise jej take
## -h Vypisuje velikosti souboru v "citelnejsi" podobe (1K, 10MB, 2,4GB atd.)
## -L Vypisuje soubory, na ktere ukazuje symbolicky odkaz
## -l Pouzije tzv. "podrobny vypis"
## -n Pri vypisu ukaze jen cisla GID a UID pro skupiny/uzivatel misto jejich nazvu
## -R Bude prochazet adresare rekurzivne
## -r Vypise soubory v obracenem poradi
## -S Seradi a vypise soubory podle velikosti
## -t Seradi a vypise soubory podle data posledni upravy
ListOptions "-l"
##RootLogin rika, zda uzivatel root muze pristoupit na server pres FTP, tak jak tak by to melo byt vypnuto pomoci /etc/ftpusers, ale jistota je jistota
##RequireValidShell - normalne proftpd pouziva uzivateli definovany shell, v tomto pripade ale vlastne nechceme, aby uzivatel shell mel, takze jej
##nepozadujeme
RootLogin off
RequireValidShell off
##DenyFilter - zabezpeceni proti nastaveni nebezpecnych filtru na masku regularniho vyrazu
DenyFilter \*.*/
##AuthOrder rika v jakem poradi se ma pristupovat k overeni daneho uzivatele, pokud je nastavena takto,
##dojde k overeni jen na zaklade mysql (virtual user), tj. zadny bezny uzivatel (vlastnici shell) nebude overen
AuthOrder mod_sql.c
<Global>
RootLogin on
</Global>
-
Proč se ptáte a nevyzkoušíte to? Co tak strašného se může stát? Umře pár lidí?
-
no nevím furt mi ty píše toto když to dám do terminálu:
Connected to idospower.eu.
220 FTPU ready.
Name (idospower.eu:webcentre): test
331 Password required for test.
Password:
530 Login incorrect.
Login failed.
Remote system type is Ignored.
ftp>
a toto je zase v var/log/syslog
Oct 28 13:00:01 webcentre /USR/SBIN/CRON[10124]: (root) CMD ([ -f /var/lib/gforge/bind/dns.head ] && [ -x /usr/lib/gforge/bin/dns_conf.pl ] && /usr/lib/gforge/bin/dns_conf.pl && /usr/sbin/invoke-rc.d --quiet bind9 reload )
Jsem vděčný za každé rady a nápady.
-
a toto je zase v var/log/syslog
Oct 28 13:00:01 webcentre /USR/SBIN/CRON[10124]: (root) CMD ([ -f /var/lib/gforge/bind/dns.head ] && [ -x /usr/lib/gforge/bin/dns_conf.pl ] && /usr/lib/gforge/bin/dns_conf.pl && /usr/sbin/invoke-rc.d --quiet bind9 reload )
Jsem vděčný za každé rady a nápady.
Tenhle řádek z LOGu nemá s FTP nic společného.
-
no nevím no je to divé
Oct 28 13:22:13 webcentre proftpd[10665]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - FTP session opened.
Oct 28 13:22:13 webcentre proftpd[10665]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - no such user 'anonymous'
Oct 28 13:22:17 webcentre proftpd[10668]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - FTP session opened.
Oct 28 13:22:17 webcentre proftpd[10668]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - no such user 'test'
-
Zkuste si v systému založit uživatele test a uvidíte - pokud se Vám podaří se přihlásit, znamená to, že autentifikace neproběhla z mysql DB, ale z PAM.
-
vytvořil jsme tedy uživatele test a restart proFTPd
a syslogu mám
Oct 28 13:47:06 webcentre proftpd[11305]: webcentre - ProFTPD 1.3.1 (stable) (built Thu Feb 21 04:21:14 UTC 2008) standalone mode STARTUP
Oct 28 13:47:16 webcentre proftpd[11311]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - FTP session opened.
Oct 28 13:47:16 webcentre proftpd[11311]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - no such user 'anonymous'
Oct 28 13:47:25 webcentre proftpd[11314]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - FTP session opened.
Oct 28 13:47:25 webcentre proftpd[11314]: webcentre (::ffff:85.160.98.62[::ffff:85.160.98.62]) - no such user 'test'
je to pravdu nake divné
-
Ověřte přes phpmyadmin, že ten uživatel je skutečně v DB zanesený.
-
Dle vašeho názorného příkladu jsem tento kod vložil do sql okna
INSERT INTO `ftpgroup` VALUES ('ftpgroup', 2001, '');
INSERT INTO `ftpuser` VALUES (1, 'test','test', 2001, 2001, '/home/ftp', '/sbin/nologin', 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00');
INSERT INTO `ftpquotalimits` VALUES ('test', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);
a vzápěti přižel tento výpis:
Chyba
SQL-dotaz:
INSERT INTO `ftpgroup`
VALUES (
'ftpgroup', 2001, ''
);
MySQL hlásí: Dokumentace
#1062 - Duplicate entry '2001' for key 1
-
No, ale tak s tímhle snad nepotřebujete poradit... ::) Prostě jen hlásí chybu SQL, tak tu snad jednoduše opravíte ;)
-
no nevím. Mohl by jste mi poradit nebo nak nasměrovat.
-
Dokumentace #1062
nejspíš to hlásí, že ta skupina již existuje a má unique ID.
Nevím proč se ale nepodíváte na výpis těch tabulek a jen jste nenapsal buď ano mám tam toho uživatele a správně a nebo ne nemám a potom ho tam teda nevložil.
-
nevím jak a neví kde?
-
jak to tedy můžu zjístit
-
je tady někdo kdo tomu rozumí??
-
na jakém portu může být ta databáze??
-
* Stopping ftp server proftpd [ OK ]
* Starting ftp server proftpd - warning: the SQLHomedirOnDemand directive is deprecated, and will be removed in the next release
[ OK ]
stím že toto mě vypsla var/log/syslog
Oct 28 21:18:48 webcentre proftpd[13500]: webcentre (85.160.74.199[85.160.74.199]) - notice: unable to open SQLLogFile: No such file or directory
Oct 28 21:18:48 webcentre proftpd[13500]: webcentre (85.160.74.199[85.160.74.199]) - FTP session closed.
jo a udělal jsme pár změn v configuráku co vy na to??
#
# Připojení modulů
#
Include /etc/proftpd/modules.conf
# Nastavení autentifikace
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
# Informace o připojené databázy, kde:
# ftp = jméno databáze
# localhost = IP nebo domena databáze
# 3306 = port na kterém běí databáze
# NAME= jméno uivatele
# PASSWORD= heslo administrátora databáze MySQL
SQLConnectInfo ftp@localhost:3306 NAME PASSWORD
# Nastavení parametrů uivatelů
# ftpuser = jméno virtuálního systémového uivatele pod kterým funguje FTP
# Zbylé hodnoty jsou defaultní a určují parametry jednotlivých uivatelů
SQLUserInfo ftpuser userid passwd uid gid homedir shell
# Nastavení parametrů skupiny
# ftpgroup = jméno virtuální systémové skupiny pod kterou funguje FTP
# Zbylé hodnoty jsou defaultní a určují parametry jednotlivých skupin
SQLGroupInfo ftpgroup groupname gid members
# Určuje hodnotu uid od které se začne přiřazovat
SQLMinID 500
# v případě vytvoření nového uivatele a neexistenci jeho domovského adresáře se tento adresář automaticky vytvoří
# po připojení
SQLHomedirOnDemand on
# Po kadém přihláení uivatele zvedne počítadlo
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
# Nastavení logovacího souboru pro komunikaci proftpd s MySQL v systému
SQLLogFile /zaloha/sqllog.txt
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery get_quota_tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
ServerName "testserver"
ServerType standalone
RootLogin off
RequireValidShell off
UseIPv6 off
Port 21
DefaultServer on
AuthOrder mod_sql.c
#Povolí přepisovat soubory
AllowOverwrite On
# Zruí překlad adres (urychlí přístup)
UseReverseDNS off
IdentLookups off
# Nastavení domovských adresářů (uivatelé budou mít přístup jen do svého adresáře)
DefaultRoot ~
-
nevím jak a neví kde?
PhpMyAdmin ;)
-
nevím jak a neví kde?
Ojojoj, když jste dokázal vložit ty INSERTy do databáze, tak už snad výpis zvládnete ...
SELECT * FROM ftpgroup;
je tady někdo kdo tomu rozumí??
Nepochybně je, ale nepočítejte s tím, že to udělá za Vás.
na jakém portu může být ta databáze??
Může být třeba na portu 3306 ;)
-
Už jsem mu to zprovoznil ;) měl tam špatný logy na db ;)
-
Martin - ViPEr*CZ*: já jsem to po dvou dnech snahy něco naučit a asi milionté zprávě "pls pls pls" vzdal. :)
K+