Hallo *,
leider komme ich mit dem SFV-Checker nicht so zurecht, wie ich es gerne hätte.
Ich würde gerne den ftpexecd im Kontext eines anderen Users laufen lassen. Doch so bald ich
User = root
Group = root
ändere, und z.b. nobody/nogroup angebe, gehen die Probleme schon los.
Hier die wichtigen Auszüge aus meinen Konfigurationsdateien:
proftpd.conf:
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 002
# 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 under which the server will run.
User nobody
Group nogroup
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~
DefaultRoot /srv/ftp/FTP
# Normally, we want files to be overwriteable.
# and allow resume
AllowOverwrite on
#AllowRetrieveRestart on
AllowStoreRestart on
AuthOrder mod_auth_file.c
AuthUserFile /srv/ftp/proftpd/passwd.proftpd
AuthGroupFile /srv/ftp/proftpd/group.proftpd
SystemLog /srv/ftp/proftpd/proftpd.log
ExtendedLog /srv/ftp/proftpd/proftpd.elog
# Enable SFV Checker:
Logformat sfv "%m %f"
ExtendedLog /srv/ftp/proftpd/sfv.fifo WRITE sfv
<Directory /srv/ftp/FTP>
<Limit ALL>
DenyAll
</Limit ALL>
<Limit ALL>
AllowGroup ftpadmin
</Limit>
<Limit DIRS READ>
AllowGroup ftpuser
</Limit>
</Directory>
group.proftpd:
ftpadmin:x:500:
ftpuser:x:501:
passwd.proftpd:
Admin:<kennwort>:500:500::/srv/ftp/FTP:/bin/false
User:<kennwort>:501:501::/srv/ftp/FTP:/bin/false
Mein Wunsch ist es, die Berechtigungen nach Gruppen zu verteilen. So sollen z.b. die Gruppenmitglieder von ftpadmin alles dürfen, ftpuser jedoch erstmal nur lesen. Jedoch sollen diese noch einen eigenen Upload Ordner bekommen, in den sie etwas hochladen können. Und die gleichen Leute einer Gruppe sollen auch die Ordner anderer User dieser Gruppe "bearbeiten" können. Deshalb hab ich als umask 002 gewählt.
Nun die Frage der Berechtigungen:
Ich habe rausgefunden, daß die FIFO Datei sfv.fifo von proftpd und ftpexecd beschreibbar sein muss. Doch wie muss ich die Berechtigungen einstellen, damit der SFV-Checker in die Ordner schreiben darf? Geht das überhaupt, wenn ich virtuelle User verwende?
Loggt sich ein virtueller User ein, so läuft eine proftpd Instanz mit der UID des virtuellen Users und auch mit dieser UID/GID werden die Dateien und Ordner des Users erstellt. Testhalber habe ich die Gruppen mit den gleichen GIDs aus der group.proftpd in die System-Datei group hinzugefügt, und dort dann den User nobody (in dessen Kontext ftpexecd läuft) angefügt. Doch auch wenn die Verzeichnisse mit der umask 002 für die Gruppe schreibbar ist, wird die SFV Datei nicht überprüft, bzw. es werden keine Statusdateien/-verzeichnisse erstellt.
Lasse ich manuell den SFV-Check laufen, funktioniert es:
su nobody -c "ftpsfvcheck.pl testfile.sfv"
Aber auch nur, da nobody in der entsprechenden Gruppe ist. Benutze ich einen anderen User, klappt es aufgrund mangelnder Berechtigungen nicht.
Was hab ich nun übersehen, oder falsch eingestellt? Any help would be appreciated