Hallo Leute,
ich nutze seit kurzem ProFTPd mit dem MySQL-Modul auf einem Debian-Sarge.
Leider fehlen mir noch ein paar features und vielleicht könnt ihr mir da helfen:
1. Ich habe folgende Dateistruktur:
/FTP
/Download
/Upload
/User1
/User2
Der User1 soll, wenn er sich einloggt, wenn möglich, diese Struktur sehen und nicht höher kommen:
/ (/ftp/Download) (r)
/Upload (/ftp/Upload/User1) (r;w)
Kann man das irgendwie realisieren?
Meine Datenbank sieht wie folgt aus:
FTPGroup:
+-----------+------+---------+
| groupname | gid | members |
+-----------+------+---------+
| ftpgroup | 5500 | ftpuser |
+-----------+------+---------+
FTPUser:
id
userid
passwd
uid
gid
homedir
shell
count
accessed
modified
Außerdem möchte ich einem User, nähmlich mir, außerdem Zugriff auf das Verzeichnis /mnt geben. Wenn möglich r und w. Und dieses Verzeichniss wenn möglich auch in die virtuelle Struktur einbinden.
Ich habe momentan den Fehler, dass ich zwar, wenn ich in der User-Tabelle, Feld Homedir, den Wert /home/ftp/user1 eintrage, er zwar in diesem startet, aber immer noch eine Ebene höher gehen kann.
Ich habe mir eine Möglichkeit im bind-mounten überlegt, aber diese Methode ist, denke ich, ziemlich umständlich.
Kann mir einer ein paar Tipps geben, wie ich die Probleme lösen kann?
Hier noch meine conf:
#
# /etc/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#
ServerName "Debian"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DefaultRoot /home/ftp
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions "-l"
DenyFilter \*.*/
# Uncomment this if you are using NIS or LDAP to retrieve passwords:
#PersistentPasswd off
# Uncomment this if you would use TLS module:
#TLSEngine on
# Uncomment this if you would use quota module:
#Quotas on
# Uncomment this if you would use ratio module:
#Ratios on
# Port 21 is the standard FTP port.
Port 21
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User ftp
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
#DelayEngine off
# A basic anonymous configuration, no upload directories.
# <Anonymous ~ftp>
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayFirstChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
#
# </Anonymous>
RequireValidShell off
AuthOrder mod_sql.c
AuthPAM off
#<Directory /home/ftp>
# HideFiles "^(\.htaccess|\.directory|welcome\.msg)$"
# <Limit WRITE>
# IgnoreHidden on
# DenyAll
# </Limit>
#</Directory>
# MySQL-Konfiguration
SQLAuthTypes Plaintext
SQLAuthenticate users*
SQLConnectInfo proftpd@localhost proftpd hier_passwort_einfuegen PERSESSION
SQLDefaultGID 65534
SQLDefaultUID 65534
SQLMinUserGID 1000
SQLMinUserUID 1000
SQLHomedirOnDemand off
SQLNegativeCache off
#SQLLogFile /var/log/proftpd-sql.log
SQLUserInfo users userid passwd uid gid homedir shell
# Zusaetzliche WHERE Klausel * WHERE ftp_allow = 'Y'
SQLUserWhereClause "ftp_allow = 'Y'"
Danke im voraus...