www.ProFTPD.de

ProFTPD => ProFTPD - Deutsch => Thema gestartet von: xbs am 28. Juli 2004, 16:32:27



Titel: make findet mysql.h nicht
Beitrag von: xbs am 28. Juli 2004, 16:32:27
hallo.

ich habe von mysql das rpm paket mit den header dateien installiert,
doch wenn ich proftp mit mod_mysql installieren will, kann er die header
dateien von mysql nicht finden, jedenfalls glaube ich das.
das komische ist, dass der fehler erst bei make kommt, ./configure macht keine probleme.

wie kann ich denn bei configure den pfad zu den mysql headern angeben?

liebe grüße, xbs


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 28. Juli 2004, 19:18:49
Idee: mysql-devel installieren :?:

Pfad angeben: --with-includes=/usr/local/include --with-libraries=/usr/local/lib/mysql

Pfad natürlich ggf. anpassen


Titel: make findet mysql.h nicht
Beitrag von: xbs am 29. Juli 2004, 07:58:07
Zitat
ich habe von mysql das rpm paket mit den header dateien installiert


das ist schon das devel-paket :)


Titel: make findet mysql.h nicht
Beitrag von: Anonymous am 29. Juli 2004, 08:24:35
aber danke, mit

./configure --with-modules=mod_ifsession:mod_rewrite:mod_vroot:mod_sql:mod_sql_mysql --with-includes=/usr/include/mysql --with-libraries=/usr/lib/mysql

scheint es geklappt zu haben  :D


Titel: make findet mysql.h nicht
Beitrag von: xbs am 29. Juli 2004, 12:39:51
hallo wörsty.


die installation hat ja soweit gut geklappt.

ich versuche jetzt aber mit dem der config von stonki
http://www.proftpd.de/MySQL_und_Quota.25.0.html

den server zu betreiben, aber es geht net.
den quota-kram hab ich unten rausgemacht, weil ich das modul
nich hab.
wenn ich versuche mit ftp 127.0.0.1 auf den server zu kommen,
krieg ich nur die fehlermeldung
421 Service not available, remote server has closed connection.

obwohl der server läuft.
woran könnte das liegen?  :(


Titel: make findet mysql.h nicht
Beitrag von: Pleitegeier am 29. Juli 2004, 12:45:07
poste doch mal die debug ausgabe


Titel: make findet mysql.h nicht
Beitrag von: xbs am 29. Juli 2004, 12:48:39
wie komm ich denn an die debug ausgabe ran?
muss ich mir die in der shell mit hilfe eines höheren debug-levels ausgeben lassen oder steht irgendwo ein schickes logfile? (wenn ja wo)

liebe güße


Titel: make findet mysql.h nicht
Beitrag von: Pleitegeier am 29. Juli 2004, 15:40:37
guck mal hier (http://www.proftpd.de/index.php?id=13&backPID=13&tx_faq_faq=4)


Titel: make findet mysql.h nicht
Beitrag von: xbs am 30. Juli 2004, 09:39:38
also starten tut der ftp server ja, starten mit debug 5 gibt folgendes aus:


# proftpd n -d5
 - parsing '/usr/local/etc/proftpd.conf' configuration
 - <Directory />: adding section for resolved path '/'
linux.local -
linux.local - Config for localhost:
linux.local - /
linux.local -  AllowOverwrite
linux.local -  Umask
linux.local -  AllowForeignAddress
linux.local -  MaxClientsPerHost
linux.local -  MaxClients
linux.local -  AllowStoreRestart
linux.local -  AllowRetrieveRestart
linux.local -  RequireValidShell
linux.local -  TransferLog
linux.local -  SQLAuthTypes
linux.local -  SQLAuthenticate
linux.local -  SQLConnectInfo
linux.local -  SQLDefaultGID
linux.local -  SQLDefaultUID
linux.local -  SQLMinUserGID
linux.local -  SQLMinUserUID
linux.local -  SQLLog_PASS
linux.local -  SQLNamedQuery_counter
linux.local -  SQLLog_RETR
linux.local -  SQLLog_STOR
linux.local -  SQLNamedQuery_transfer1
linux.local -  SQLLog_ERR_RETR
linux.local -  SQLLog_ERR_STOR
linux.local -  SQLNamedQuery_transfer2
linux.local - ServerIdent
linux.local - DeferWelcome
linux.local - DefaultServer
linux.local - Umask
linux.local - AllowForeignAddress
linux.local - MaxClientsPerHost
linux.local - MaxClients
linux.local - MaxLoginAttempts
linux.local - AllowStoreRestart
linux.local - AllowRetrieveRestart
linux.local - DefaultRoot
linux.local - RequireValidShell
linux.local - TransferLog
linux.local - ExtendedLog
linux.local - ExtendedLog
linux.local - ExtendedLog
linux.local - SQLAuthTypes
linux.local - SQLAuthenticate
linux.local - SQLConnectInfo
linux.local - SQLDefaultGID
linux.local - SQLDefaultUID
linux.local - SQLMinUserGID
linux.local - SQLMinUserUID
linux.local - SQLUserTable
linux.local - SQLUsernameField
linux.local - SQLPasswordField
linux.local - SQLUidField
linux.local - SQLGidField
linux.local - SQLHomedirField
linux.local - SQLShellField
linux.local - SQLLog_PASS
linux.local - SQLNamedQuery_counter
linux.local - SQLLog_RETR
linux.local - SQLLog_STOR
linux.local - SQLNamedQuery_transfer1
linux.local - SQLLog_ERR_RETR
linux.local - SQLLog_ERR_STOR
linux.local - SQLNamedQuery_transfer2

ein  ps aux | grep ftp gibt folgendes wider:

root      2047  0.0  0.4  2692 1244 ?        S    11:36   0:00 proftpd: (accepting connections)


mein usertable in der mysql-tabelle sieht ungefähr so aus:

 userid        passwd        uid        gid        homedir        shell
hans     1acd86d827b3e9ee     1010     NULL     /var/www     NULL


beim connecten mit zum FTP server passiert folgendes:

ftp> open localhost
Trying ::1...
ftp: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
220 localhost
Name (localhost:root): hans
331 Password required for hans.
Password:
421 Service not available, remote server has closed connection.
ftp: Login failed.
ftp>

hm.

 :roll:


Titel: make findet mysql.h nicht
Beitrag von: xbs am 30. Juli 2004, 09:49:55
ich hab noch mal ein proftpd -nd9 gemacht und
da kam folgendes heraus:

# proftpd -nd9
 - parsing '/usr/local/etc/proftpd.conf' configuration
 - FS: using system open()
 - FS: using system read()
 - <Directory />: adding section for resolved path '/'
 - FS: using system read()
 - FS: using system read()
 - FS: using system close()
linux.local -
linux.local - Config for localhost:
linux.local - /
linux.local -  AllowOverwrite
linux.local -  Umask
linux.local -  AllowForeignAddress
linux.local -  MaxClientsPerHost
linux.local -  MaxClients
linux.local -  AllowStoreRestart
linux.local -  AllowRetrieveRestart
linux.local -  RequireValidShell
linux.local -  TransferLog
linux.local -  SQLAuthTypes
linux.local -  SQLAuthenticate
linux.local -  SQLConnectInfo
linux.local -  SQLDefaultGID
linux.local -  SQLDefaultUID
linux.local -  SQLMinUserGID
linux.local -  SQLMinUserUID
linux.local -  SQLLog_PASS
linux.local -  SQLNamedQuery_counter
linux.local -  SQLLog_RETR
linux.local -  SQLLog_STOR
linux.local -  SQLNamedQuery_transfer1
linux.local -  SQLLog_ERR_RETR
linux.local -  SQLLog_ERR_STOR
linux.local -  SQLNamedQuery_transfer2
linux.local - ServerIdent
linux.local - DeferWelcome
linux.local - DefaultServer
linux.local - Umask
linux.local - AllowForeignAddress
linux.local - MaxClientsPerHost
linux.local - MaxClients
linux.local - MaxLoginAttempts
linux.local - AllowStoreRestart
linux.local - AllowRetrieveRestart
linux.local - DefaultRoot
linux.local - RequireValidShell
linux.local - TransferLog
linux.local - ExtendedLog
linux.local - ExtendedLog
linux.local - ExtendedLog
linux.local - SQLAuthTypes
linux.local - SQLAuthenticate
linux.local - SQLConnectInfo
linux.local - SQLDefaultGID
linux.local - SQLDefaultUID
linux.local - SQLMinUserGID
linux.local - SQLMinUserUID
linux.local - SQLUserTable
linux.local - SQLUsernameField
linux.local - SQLPasswordField
linux.local - SQLUidField
linux.local - SQLGidField
linux.local - SQLHomedirField
linux.local - SQLShellField
linux.local - SQLLog_PASS
linux.local - SQLNamedQuery_counter
linux.local - SQLLog_RETR
linux.local - SQLLog_STOR
linux.local - SQLNamedQuery_transfer1
linux.local - SQLLog_ERR_RETR
linux.local - SQLLog_ERR_STOR
linux.local - SQLNamedQuery_transfer2
linux.local - SETUP PRIVS at main.c:2704
linux.local - ROOT PRIVS at main.c:1956
linux.local - RELINQUISH PRIVS at main.c:1962
linux.local - ROOT PRIVS at main.c:2323
linux.local - opening scoreboard '/usr/local/var/proftpd/proftpd.scoreboard'
linux.local - RELINQUISH PRIVS at main.c:2347
linux.local - ROOT PRIVS at inet.c:452
linux.local - RELINQUISH PRIVS at inet.c:510
linux.local - ProFTPD 1.2.9 (stable) (built Wed Jul 28 18:26:31 CEST 2004) standalone mode STARTUP
linux.local - ROOT PRIVS at main.c:2171
linux.local - RELINQUISH PRIVS at main.c:2177
linux.local - FS: using system lstat()

lange pause, dannach kommt wieder das selbe

linux.local - scrubbing scoreboard
linux.local - ROOT PRIVS at mod_core.c:194
linux.local - RELINQUISH PRIVS at mod_core.c:201
linux.local - ROOT PRIVS at mod_core.c:223
linux.local - RELINQUISH PRIVS at mod_core.c:251
linux.local - FS: using system lstat()

lange pause, dannach kommt wieder das selbe

linux.local - scrubbing scoreboard
linux.local - ROOT PRIVS at mod_core.c:194
linux.local - RELINQUISH PRIVS at mod_core.c:201
linux.local - ROOT PRIVS at mod_core.c:223
linux.local - RELINQUISH PRIVS at mod_core.c:251
linux.local - FS: using system lstat()

dieser letzte block wird nach einer pause immer wiederholt,
zur shell kehrt er aber nicht mehr zurück.


Titel: make findet mysql.h nicht
Beitrag von: xbs am 30. Juli 2004, 11:40:27
und hier noch die logfiles aus /var/log/

proftpd.access_log ist leer.

proftpd.auth_log:

localhost [1900] 192.168.2.104 [30/Jul/2004:11:25:31 +0200] "USER anonymous" 331
localhost [1902] 192.168.2.104 [30/Jul/2004:11:25:36 +0200] "USER anonymous" 331
localhost [2024] 192.168.2.104 [30/Jul/2004:11:32:15 +0200] "USER anonymous" 331
localhost [2026] 192.168.2.104 [30/Jul/2004:11:32:20 +0200] "USER anonymous" 331
localhost [2029] localhost [30/Jul/2004:11:32:56 +0200] "USER root" 331
localhost [2031] 192.168.2.107 [30/Jul/2004:11:33:16 +0200] "USER root" 331
localhost [2041] 192.168.2.104 [30/Jul/2004:11:35:03 +0200] "USER hans" 331
localhost [2043] 192.168.2.104 [30/Jul/2004:11:35:10 +0200] "USER warfaewfrawerewa" 331
localhost [2117] localhost [30/Jul/2004:11:38:58 +0200] "USER hans" 331


und proftpd.paranoid_log:

192.168.2.104 UNKNOWN root [30/Jul/2004:11:25:31 +0200] "USER anonymous" 331 -
192.168.2.104 UNKNOWN root [30/Jul/2004:11:25:36 +0200] "USER anonymous" 331 -
192.168.2.104 UNKNOWN root [30/Jul/2004:11:32:15 +0200] "USER anonymous" 331 -
192.168.2.104 UNKNOWN root [30/Jul/2004:11:32:20 +0200] "USER anonymous" 331 -
localhost UNKNOWN root [30/Jul/2004:11:32:56 +0200] "USER root" 331 -
192.168.2.107 UNKNOWN root [30/Jul/2004:11:33:16 +0200] "USER root" 331 -
192.168.2.104 UNKNOWN root [30/Jul/2004:11:35:03 +0200] "USER hans" 331 -
192.168.2.104 UNKNOWN root [30/Jul/2004:11:35:10 +0200] "USER warfaewfrawerewa" 331 -
localhost UNKNOWN root [30/Jul/2004:11:38:58 +0200] "USER hans" 331


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 02. August 2004, 12:31:10
Bitte SQLLogfile in die proftpd.conf einfügen und Testen und Inhalt posten. (Glaube aber nicht, dass es das Problem ist)
Außerdem bitte mal den Host in die /etc/hosts eintragen.
Und ohne die proftpd.conf können wir nur raten.
Wie sehen die Linux Verzeichnisrechte aus?


Titel: make findet mysql.h nicht
Beitrag von: xbs am 02. August 2004, 13:10:07
hallo Wörsty!

vielen dank für deine hilfe, aber ich habe das problem inzwischen gefunden.

im guten glauben, dass die beispiel-config von stonki http://www.proftpd.de/MySQL_und_Quota.25.0.html tatellos funktionieren sollte, hab ich diese übernommen.

doch wie auf http://www.proftpd.de/SQL_Anleitung.11.0.html
unter 5.5) SQLDefaultHomedir: zu lesen ist:

"Falls kein Heimatverzeichnis mit diesen Anweisungen gesetzt wird, scheitert die Anmeldung."

da hat stonki wohl eine zeile vergessen.

jetzt kann man sich auf dem server einloggen.

aber so ganz funzt das mit der homedir bei mir auch nicht.

der abschnitt in der config sieht so aus:


Zitat
SQLAuthTypes Plaintext
SQLAuthenticate users*
SQLConnectInfo proftp@127.0.0.1:3306 root hans
SQLDefaultGID 65533
SQLDefaultUID 65533
SQLDefaultHomedir /var
SQLMinUserGID 100
SQLMinUserUID 500
SQLUserInfo users userid passwd uid gid homedir shell



so weit, so gut.

meine SQL tabelle sieht so aus:

Code:

userid   passwd   uid   gid   homedir   shell
hans   hans   1000   1000   /var/www   /bin/false


wenn ich mich jetzt als hans einlogge, komme ich in das verzechnis  /var und nicht in /var/www , wie in der datanbank angegeben.
woran könnte das liegen?

liebe grüße.


Titel: make findet mysql.h nicht
Beitrag von: xbs am 02. August 2004, 14:09:16
aha!

hier ist das sql-logfile:

Zitat

Aug 02 16:08:10 mod_sql/4.10[2903]: backend module 'mod_sql_mysql/4.04'
Aug 02 16:08:10 mod_sql/4.10[2903]: backend api    'mod_sql_api_v1'
Aug 02 16:08:10 mod_sql/4.10[2903]: >>> sql_getconf
Aug 02 16:08:10 mod_sql/4.10[2903]: entering    mysql cmd_defineconnection
Aug 02 16:08:10 mod_sql/4.10[2903]:  name: 'default'
Aug 02 16:08:10 mod_sql/4.10[2903]:  user: 'root'
Aug 02 16:08:10 mod_sql/4.10[2903]:  host: '127.0.0.1'
Aug 02 16:08:10 mod_sql/4.10[2903]:    db: 'proftp'
Aug 02 16:08:10 mod_sql/4.10[2903]:  port: '3306'
Aug 02 16:08:10 mod_sql/4.10[2903]:   ttl: '0'
Aug 02 16:08:10 mod_sql/4.10[2903]: exiting     mysql cmd_defineconnection
Aug 02 16:08:10 mod_sql/4.10[2903]: entering    mysql cmd_open
Aug 02 16:08:10 mod_sql/4.10[2903]: connection 'default' opened
Aug 02 16:08:10 mod_sql/4.10[2903]: connection 'default' count is now 1
Aug 02 16:08:10 mod_sql/4.10[2903]: exiting     mysql cmd_open
Aug 02 16:08:10 mod_sql/4.10[2903]: backend successfully connected.
Aug 02 16:08:10 mod_sql/4.10[2903]: mod_sql status     : on
Aug 02 16:08:10 mod_sql/4.10[2903]: negative_cache     : off
Aug 02 16:08:10 mod_sql/4.10[2903]: authenticate       : users*
Aug 02 16:08:10 mod_sql/4.10[2903]: usertable          : users
Aug 02 16:08:10 mod_sql/4.10[2903]: userid field       : userid
Aug 02 16:08:10 mod_sql/4.10[2903]: password field     : passwd
Aug 02 16:08:10 mod_sql/4.10[2903]: uid field          : uid
Aug 02 16:08:10 mod_sql/4.10[2903]: gid field          : gid
Aug 02 16:08:10 mod_sql/4.10[2903]: homedir(defaulted) : '/var'
Aug 02 16:08:10 mod_sql/4.10[2903]: shell field        : shell
Aug 02 16:08:10 mod_sql/4.10[2903]: homedirondemand    : false
Aug 02 16:08:10 mod_sql/4.10[2903]: SQLMinUserUID      : 500
Aug 02 16:08:10 mod_sql/4.10[2903]: SQLMinUserGID      : 100
Aug 02 16:08:10 mod_sql/4.10[2903]: <<< sql_getconf
Aug 02 16:08:14 mod_sql/4.10[2903]: >>> cmd_getpwnam
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_escapestring
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_escapestring
Aug 02 16:08:14 mod_sql/4.10[2903]: cache miss for user 'hans'
Aug 02 16:08:14 mod_sql/4.10[2903]: : entering  mysql cmd_select
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_open
Aug 02 16:08:14 mod_sql/4.10[2903]: connection 'default' count is now 2
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_open
Aug 02 16:08:14 mod_sql/4.10[2903]: query "SELECT userid, passwd, uid, gid, shell FROM users WHERE (userid='hans') LIMIT 1"
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_close
Aug 02 16:08:14 mod_sql/4.10[2903]: connection 'default' count is now 1
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_close
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_select
Aug 02 16:08:14 mod_sql/4.10[2903]: NULL shell column value, setting to ""
Aug 02 16:08:14 mod_sql/4.10[2903]: cache miss for user 'hans'
Aug 02 16:08:14 mod_sql/4.10[2903]: user 'hans' cached
Aug 02 16:08:14 mod_sql/4.10[2903]: + pwd.pw_name  : hans
Aug 02 16:08:14 mod_sql/4.10[2903]: + pwd.pw_uid   : 1000
Aug 02 16:08:14 mod_sql/4.10[2903]: + pwd.pw_gid   : 1000
Aug 02 16:08:14 mod_sql/4.10[2903]: + pwd.pw_dir   : /var
Aug 02 16:08:14 mod_sql/4.10[2903]: + pwd.pw_shell :
Aug 02 16:08:14 mod_sql/4.10[2903]: <<< cmd_getpwnam
Aug 02 16:08:14 mod_sql/4.10[2903]: >>> cmd_auth
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_escapestring
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_escapestring
Aug 02 16:08:14 mod_sql/4.10[2903]: cache hit for user 'hans'
Aug 02 16:08:14 mod_sql/4.10[2903]: >>> cmd_check
Aug 02 16:08:14 mod_sql/4.10[2903]: checking auth_type Plaintext
Aug 02 16:08:14 mod_sql/4.10[2903]: 'Plaintext' auth handler reports success
Aug 02 16:08:14 mod_sql/4.10[2903]: cache hit for user 'hans'
Aug 02 16:08:14 mod_sql/4.10[2903]: <<< cmd_check
Aug 02 16:08:14 mod_sql/4.10[2903]: <<< cmd_auth
Aug 02 16:08:14 mod_sql/4.10[2903]: >>> cmd_getpwnam
Aug 02 16:08:14 mod_sql/4.10[2903]: cache hit for user 'hans'
Aug 02 16:08:14 mod_sql/4.10[2903]: <<< cmd_getpwnam
Aug 02 16:08:14 mod_sql/4.10[2903]: >>> log_master
Aug 02 16:08:14 mod_sql/4.10[2903]: >>> _process_named_query
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_escapestring
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_escapestring
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_update
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_open
Aug 02 16:08:14 mod_sql/4.10[2903]: connection 'default' count is now 2
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_open
Aug 02 16:08:14 mod_sql/4.10[2903]: query "UPDATE users SET letzter_zugriff=now(), count=count+1 WHERE username='hans'"
Aug 02 16:08:14 mod_sql/4.10[2903]: entering    mysql cmd_close
Aug 02 16:08:14 mod_sql/4.10[2903]: connection 'default' count is now 1
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_close
Aug 02 16:08:14 mod_sql/4.10[2903]: exiting     mysql cmd_update
Aug 02 16:08:14 mod_sql/4.10[2903]: <<< _process_named_query
Aug 02 16:08:14 mod_sql/4.10[2903]: <<< log_master


auf den ersten blick wird deutlich:

Zitat

Aug 02 16:08:14 mod_sql/4.10[2903]: query "SELECT userid, passwd, uid, gid, shell FROM users WHERE (userid='hans') LIMIT 1"


die homedir wird gar nicht abgefragt. woran könnte das liegen?
was hat es denn mit dem mysteriösem "SQLHomedirField" auf sich, von dem in der Anleitung zweimal die rede ist?


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 02. August 2004, 14:19:15
Bei mir habe ich das so:
Code:
SQLHomedirOnDemand On
SQLUserInfo benutzer loginname passwort NULL NULL concat('/www',verzeichnis) NULL

Die Homedirs liegen in /www/ und in der datenbank steht der Benutzername als "verzeichnis" drin.
Außerdem nutze ich noch SQLHomedirOnDemand On

 :arrow: SQLUserInfo [users userid password uid gid homedir shell]


Titel: make findet mysql.h nicht
Beitrag von: xbs am 02. August 2004, 14:37:57
halllo Wörsty,

danke für deine Hilfe.

ich hatte ja vorher schon gepostet, wie es in meiner config aussieht:

Zitat

SQLAuthTypes Plaintext
SQLAuthenticate users*
SQLConnectInfo proftp@127.0.0.1:3306 root hans
SQLDefaultGID 65533
SQLDefaultUID 65533
SQLDefaultHomedir /var
SQLMinUserGID 100
SQLMinUserUID 500
SQLUserInfo users userid passwd uid gid homedir shell


und homedir heißt auch das feld in der datanbank.

dann hab ich es nochmal so ausprobiert, wie du es geschrieben hast,
nämlich mit

Zitat

SQLHomedirOnDemand On
SQLUserInfo benutzer loginname passwort NULL NULL concat('/www',verzeichnis) NULL


anstatt 'verzechnis' steht bei mir halt 'homedir' und natürlich hab ich
die pfade noch so geändert, dass es klappen sollte. tut es aber nicht :(

nachwievor sieht das sql-error-file so aus wie oben, dass das field gar nicht erst abgfragt wird :(

aber sag mal, wozu ist der befehl  SQLHomedirField vielleicht könnte der was bringen?

und laut userguide gibt es den befehl auch standartmäßig:
http://proftpd.linux.co.uk/localsite/Userguide/linked/config_ref_SQLHomedirField.html

nur leider kommt ein fehler, wenn ich versuche, ihn in die config zu schreiben:

Zitat

 - Fatal: unknown configuration directive 'SQLHomedirField' on line 146 of '/usr/local/etc/proftpd.conf'.


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 02. August 2004, 14:59:59
Das ist eine alte Direktive. Vergiß die.
Aber hier nochmal meine komplette Konfig.
Muß doch gehen.
Code:
SQLAuthenticate users* groups*
SQLAuthTypes Backend  Empty
SQLConnectInfo ftp@localhost:3306 ftp ftp PERSESSION
SQLDefaultGID 502
SQLDefaultUID 502
SQLHomedirOnDemand On
SQLUserInfo benutzer loginname passwort NULL NULL concat('/www',verzeichnis) NULL
SQLNamedQuery history     INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'ok', NULL" history
SQLNamedQuery history_err INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'nicht ok', NULL" history
SQLLog *  history
SQLLOG ERR_* history_err
SQLGroupInfo gruppen name ID mitglieder
SQLLogfile /www/vhosts/administration/logfiles/proftpd_sql.log

Geht es mit 1.2.10 ?
Welches Linux nimmst du?


Titel: make findet mysql.h nicht
Beitrag von: xbs am 02. August 2004, 15:05:36
ich werd jetzt nochmal probieren, meine config an deine anzupassen.

ich habe

ProFTPd
-   Version: 1.2.9 (stable)
 - Scoreboard Version: 01040002

SuSE Linux 9.0 Professional

nimmst du 1.2.9 oder 1.2.10 ?

vielleicht nochmal was zur DefaultUserID, muss das eine gültige sein, die im system existiert? bei mir steht halt 65533, ich weiß aber nicht,  ob das so ohne weiteres geht...


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 02. August 2004, 15:21:27
Ich habe Redhat 8 und noch 1.2.10rc1 :oops:

Aber soweit ich weiß muß die GID nicht existieren, glaub ich.
Lies aber mal lieber nach :)


Titel: make findet mysql.h nicht
Beitrag von: xbs am 02. August 2004, 17:06:15
red hat 8 ist aber auch mutig :)


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 02. August 2004, 17:28:38
Zitat von: "xbs"
red hat 8 ist aber auch mutig :)

Wieso?
Alles up2date :!:
Dank RedHat Network  :arrow: https://rhn.redhat.com/  :wink:


Titel: make findet mysql.h nicht
Beitrag von: xbs am 04. August 2004, 10:06:55
HA HA !

na sie mal einer an, schaut man sich das CHANGELOG des 1.2.10er releases
http://www.proftpd.org/docs/NEWS-1.2.10rc3
an sieht man folgendes

- Bug 2424 - SQLDefaultHomedir overrides column value.

na dann werd ich wohl updaten müssen :)

----

edit: yeah! jetzt funzt alles :) vielen dank an euch


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 04. August 2004, 11:06:39
Zitat von: "xbs"
na dann werd ich wohl updaten müssen

Tu das. Und poste mal das Resultat. :wink:

Da ich das SQLDefaultHomedir nicht nutze, ist mir das nicht aufgefallen :oops:

Und das im Changelog habe ich wohl verdrägt :lol:


Titel: make findet mysql.h nicht
Beitrag von: xbs am 04. August 2004, 11:56:43
ja, jetzt läuft es perfekt. ich schätze ich werd an der einen
oder anderen stelle noch ein bisschen tweaken.

ist es eigentlich auch möglich, dem user über die datenbank
rechte zu vergeben. dass z.b. zwei user in das selbe verzeichnis
reingerootet werden, der eine schreiben, der andere aber nur lesen kann?

und dann hab ich schon mitbekommen, dass der server momentan
noch kein passiv-mode unterstützt. da muss ich mal gucken, wie
ich das noch mit reinkriege.

und nochmal zur SQLDefaultHomeDir .. eurer SQL anleitung steht, dass die datenbank autentifizierung ohne SQLDefaultHomeDir gar nicht funzt, und in der tat war es bei mir auch so.
da wundere ich mich, dass es be dir so ohne weiteres klappt  :?:


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 04. August 2004, 12:11:26
Zitat von: "xbs"
ist es eigentlich auch möglich, dem user über die datenbank
rechte zu vergeben. dass z.b. zwei user in das selbe verzeichnis
reingerootet werden, der eine schreiben, der andere aber nur lesen kann?

Nein. Geht nur über IfUser/IfGroup (mod_ifsession) oder Gruppenrechte denke ich .

Zitat von: "xbs"
da wundere ich mich, dass es be dir so ohne weiteres klappt  :?:

 :?!
Weil ich SQLHomeDirOnDemand benutze?


Titel: make findet mysql.h nicht
Beitrag von: xbs am 04. August 2004, 12:16:53
gruppen-rechte wäre schön, aber in der tabelle der gruppen hat man ja auch nicht die möglichkeit, privilegien zu setzen.

if_sessions hab ich zum glück mit einkompeliert :)

das wäre interessant, wenn folgendes gehen würde:

in der config lege ich für verschiene gruppen, if-blöcke an, in denen
die privilegien stehen.
loggt sich ein user ein, wird aus der datenbank die gruppe gelesen
und aus dem if-block die rechte für die gruppe.

meinst du, das könnte so einfach klappen?


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 04. August 2004, 12:35:59
Ja. Mache ich auch so.
Wenn du willst poste ich ein komplettes Beispiel inkl. SQL Tabellen


Titel: make findet mysql.h nicht
Beitrag von: xbs am 04. August 2004, 12:39:00
ja, das wär schön!

ich hab grad noch ein bödes problem,  die user, die in der DB stehen, bekommen ein permission denied, wenn man schreiben möchte :(
liegt das am chmod und am besitzer des ordners oder an einer ftp-einstellung?


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 04. August 2004, 21:32:01
So. Bin gerade von meiner Moppedtour zurück. :D

Poste das später oder Morgen vormittag. Erstmal inne Wanne gehen. :roll:


Titel: make findet mysql.h nicht
Beitrag von: xbs am 05. August 2004, 07:53:09
ich bin schon ganz gespannt :)


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 05. August 2004, 09:24:46
Code:
ServerType standalone
MaxInstances 30
MultilineRFC2228 On
RootLogin Off
UseReverseDNS Off
PersistentPasswd Off
AllowLogSymlinks Off
RequireValidShell Off
tcpNoDelay On
PidFile /var/run/proftpd/proftpd.pid
ScoreboardFile /usr/local/var/proftpd/proftpd.scoreboard
TransferRate RETR,STOR 4096:52428800
ListOptions +R strict
AllowOverride off
WtmpLog off
SQLLogfile /www/vhosts/administration/proftpd_sql.log

TLSProtocol TLSv1
TLSRSACertificateFile /www/secure/MyFTP.cert
TLSRSACertificateKeyFile /www/secure/MyFTP.key
TLSCACertificateFile /www/secure/MyCA.cert

User www
Group www
LogFormat defaultftp "%h %l %u %t  %r %s %b"
LogFormat ftpqueue "%h %l %u %t %r %s %b"
AccessDenyMsg "Zugriff verweigert! (%u)"
AccessGrantMsg "Herzlich Willkommen %u!"
AllowFilter "^[a-zA-Z0-9]*"
AllowForeignAddress On
AllowOverwrite On
AllowRetrieveRestart On
#AllowStoreRestart On
AuthAliasOnly Off
DeleteAbortedStores On
DirFakeGroup On ftp
DirFakeMode 700
DirFakeUser On ftp
DisplayConnect /www/vhosts/ftp/21/.DisplayConnect.msg
DisplayFirstChdir .DisplayFirstChdir.msg
DisplayGoAway .DisplayGoAway.msg
DisplayQuit .DisplayQuit.msg
ExtendedLog /www/vhosts/administration/proftpd_anonftp.log ALL defaultftp
HiddenStor Off
IdentLookups Off
LoginPasswordPrompt Off
MaxClients 20 "FEHLER: Es sind bereits %m Benutzer      verbunden!"
MaxClientsPerHost 20 "FEHLER: Es sind bereits %m Benutzer       verbunden!"
MaxHostsPerUser 20 "FEHLER: Dieser Benutzer ist bereits von %m Rechnern verbunden!"
MaxLoginAttempts 2
PathDenyFilter "(\\.ftpaccess)|(\\.htaccess)|(\\.welcome.msg)|(\\.dirinfo.msg)|(\\.login.msg)"
Port 21
RequireValidShell Off
ServerAdmin ich@domain.de
ServerIdent On  "Mein - FTP-Server"
ServerName "Mein - FTP-Server"
ShowSymlinks Off
SyslogLevel notice
Umask 0111 0000
SQLAuthenticate users* groups*
SQLAuthTypes Backend  Empty
SQLConnectInfo ftp@localhost:3306 ftp ftp PERSESSION
SQLDefaultGID 502
SQLDefaultUID 502
SQLHomedirOnDemand On
SQLUserInfo benutzer loginname passwort NULL NULL concat('/www',verzeichnis) NULL
SQLNamedQuery history     INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'ok', NULL" history
SQLNamedQuery history_err INSERT "'%U', '%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'nicht ok', NULL" history
SQLLog *  history
SQLLOG ERR_* history_err
SQLGroupInfo gruppen name ID mitglieder
TimeoutIdle 3600
TimeoutLogin 30
TimeoutNoTransfer 3600
TimeoutStalled 3600
TimesGMT Off

<Global>
  DefaultChdir ~
  DefaultRoot ~
  DefaultTransferMode binary
  DeferWelcome Off
  PassivePorts 49152 65534
  UseGlobbing On
  UseFtpUsers Off
</Global>

<IfGroup "AND" !schreibrechte,!administratoren>

  <Directory ~>

    <Limit WRITE SITE_CHMOD     DELE>
      DenyAll
    </Limit>

    <Limit READ DIRS>
      IgnoreHidden On
      AllowAll
    </Limit>
  </Directory>

  <Directory ~/uploads>

    <Limit SITE_CHMOD DELE>
      DenyAll
    </Limit>

    <Limit WRITE READ DIRS>
      AllowAll
      DenyAll
    </Limit>
  </Directory>
</IfGroup>


Code:
USE ftp;

#
# Table structure for table 'benutzer'
#

DROP TABLE IF EXISTS benutzer;
CREATE TABLE `benutzer` (
  `ID` int(11) unsigned NOT NULL default '0',
  `Beschreibung` varchar(30) default NULL,
  `loginname` varchar(32) NOT NULL default '',
  `passwort` varchar(16) NOT NULL default '',
  `Shell` varchar(255) default NULL,
  `verzeichnis` varchar(255) NOT NULL default '/',
  `Anmerkung` text,
  PRIMARY KEY  (`loginname`,`ID`)
) TYPE=MyISAM COMMENT='FTP-Benutzer für den FTP-Server auf Port 21';



#
# Dumping data for table 'benutzer'
#
INSERT INTO benutzer (ID, Beschreibung, loginname, passwort, Shell, verzeichnis, Anmerkung) VALUES("0", "Admin", "ftpadmin", "2009d4fa11e1f29", NULL, "/vhosts/ftp", "Admin");
INSERT INTO benutzer (ID, Beschreibung, loginname, passwort, Shell, verzeichnis, Anmerkung) VALUES("1", "Anonymous", "anonymous", "", NULL, "/vhosts/ftp/21", "Anonymer Zugang");
INSERT INTO benutzer (ID, Beschreibung, loginname, passwort, Shell, verzeichnis, Anmerkung) VALUES("2", "Berta", "berta", "2009eefa11e1f29", NULL, "/vhosts/ftp/21", "Bertas Zugang");
INSERT INTO benutzer (ID, Beschreibung, loginname, passwort, Shell, verzeichnis, Anmerkung) VALUES("3", "Paul", "paul", "30141e3a11e1a24", NULL, "/vhosts/ftp/21", "Bertas Zugang");

#
# Table structure for table 'gruppen'
#

DROP TABLE IF EXISTS gruppen;
CREATE TABLE `gruppen` (
  `ID` tinyint(3) unsigned NOT NULL auto_increment,
  `name` varchar(16) NOT NULL default '',
  `mitglieder` text,
  UNIQUE KEY `ID` (`ID`,`name`)
) TYPE=MyISAM COMMENT='FTP-Benutzergruppen für den FTP-Server auf Port 21';

#
# Dumping data for table 'gruppen'
#
INSERT INTO gruppen (ID, name, mitglieder) VALUES("3", "administratoren", "ftpadmin");
INSERT INTO gruppen (ID, name, mitglieder) VALUES("1", "schreibrechte", "berta,paul");


#
# Table structure for table 'history'
#

DROP TABLE IF EXISTS history;
CREATE TABLE `history` (
  `loginname` varchar(30) default NULL,
  `identname` varchar(30) default NULL,
  `filename` text,
  `size` bigint(20) default NULL,
  `host` varchar(80) default NULL,
  `ip` varchar(16) default NULL,
  `aktion` varchar(255) default NULL,
  `dauer` varchar(10) default NULL,
  `zeit_lokal` datetime default NULL,
  `status` set('ok','nicht ok','test') default NULL,
  `ui` bigint(20) NOT NULL auto_increment,
  PRIMARY KEY  (`ui`)
) TYPE=MyISAM COMMENT='Ausgeführte FTP-Befehle auf FTP-Server auf Port 21';


Titel: make findet mysql.h nicht
Beitrag von: xbs am 05. August 2004, 12:21:23
na mal schauen, was sich damit so machen lässt :)


Titel: make findet mysql.h nicht
Beitrag von: xbs am 06. August 2004, 12:06:14
im übrigen hast du

Zitat

RequireValidShell Off


zweimal drin :)


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 06. August 2004, 12:16:50
Zitat von: "xbs"
im übrigen hast du

Zitat

RequireValidShell Off


zweimal drin :)

Danke  :shock:
Tja. Damit auch ProFTPd es schnallt  :lol:  :roll:


Titel: make findet mysql.h nicht
Beitrag von: xbs am 06. August 2004, 16:34:16
was ich geil finde ist, dass der login jetzt tausendmal schneller geht. cool.

gibts eigentlich auch die möglichkeit, dass ältere einträge in der history-tabelle gelöscht werden, damit sie nicht irgendwann überläuft?

aber eigentlich kann ich den history-log ausschalten und nur bei bedarf benutzen, wenn man fehlern auf die spur kommen will..


Titel: make findet mysql.h nicht
Beitrag von: Wörsty am 06. August 2004, 16:40:33
Eine Möglichkeit wäre die crontab und ein php oder shellscript.
Oder über Proftpd und mod_exec und ein script.
Oder so :roll: