Proftpd Schreibrechte im Home/Unterverzeichnis

Hallo Zusammen!

Ich versuche seit einigen Tagen Proftpd auf meinem Debian6 Server einzurichten.
Läuft soweit auch alles ganz gut, nur das ich mit meinem FTP-User nicht überall dort schreiben kann wo ich das gerne möchte. Mein FTP-User gehört auch der Gruppe „ftpuser“ an.

Als Home-Verzeichnis des FTP-Users habe ich /var/www eingestellt und kann mich auch darauf verbinden.
Alle Ordner in diesem Verzeichnis haben chmod 0755 und chown www-data:root.
Hier funktioniert auch alles was ich möchte, lesen, schreiben, löschen, erstellen usw.

Sobald ich aber z.B. in ein Unterverzeichnis /var/www/internetseite1 gehe, darf mein User nichts mehr außer lesen. Das Unterverzeichnis /var/www/internetseite1 hat auch chmod 0755, www-data:root.

Wo liegt das Problem? Ich verstehe es nicht und finde die Lösung nach stundenlangem googlen nicht.

Anbei meine Proftpd-Konfig.

/etc/proftpd/proftpd.conf – This is a basic ProFTPD configuration file.

To really apply changes reload proftpd after modifications.

Includes DSO modules

Include /etc/proftpd/modules.conf

Set off to disable IPv6 support which is annoying on IPv4 only boxes.

UseIPv6 on

If set on you can experience a longer connection delay in many cases.

IdentLookups off

ServerName „Debian“
ServerType standalone
DeferWelcome off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

#DisplayLogin welcome.msg
#DisplayChdir .message true
ListOptions „-l“

DenyFilter *.*/

Use this to jail all users in their homes

DefaultRoot ~

Users require a valid shell listed in /etc/shells to login.

Use this directive to release that constrain.

RequireValidShell off

Port 21 is the standard FTP port.

Port 21

AllowOverwrite on

AllowAll

In some cases you have to specify passive ports range to by-pass

firewall limitations. Ephemeral ports can be used for that, but

feel free to use a more narrow range.

PassivePorts 49152 65534

If your host was NATted, this option is useful in order to

allow passive tranfers to work. You have to use your public

address and opening the passive ports used on your firewall as well.

MasqueradeAddress 1.2.3.4

This is useful for masquerading address with dynamic IPs:

refresh any configured MasqueradeAddress directives every 8 hours

DynMasqRefresh 28800

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 proftpd
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

Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:

PersistentPasswd off

This is required to use both PAM-based authentication and local passwords

AuthOrder mod_auth_pam.c* mod_auth_unix.c

Be warned: use of this directive impacts CPU average load!

Uncomment this if you like to see progress and transfer rate with ftpwho

in downloads. That is not needed for uploads rates.

UseSendFile off

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

QuotaEngine off

Ratios off

Delay engine reduces impact of the so-called Timing Attack described in

http://security.lss.hr/index.php?page=details&ID=LSS…

It is on by default.

DelayEngine on

ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock

AdminControlsEngine off

Alternative authentication frameworks

#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

This is used for FTPS connections

#Include /etc/proftpd/tls.conf

Useful to keep VirtualHost/VirtualRoot directives separated

#Include /etc/proftpd/virtuals.con

A basic anonymous configuration, no upload directories.

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

DisplayChdir .message

# Limit WRITE everywhere in the anonymous chroot

DenyAll

# Uncomment this if you’re brave.

# # Umask 022 is a good standard umask to prevent new files and dirs

# # (second parm) from being group and world writable.

# Umask 022 022

# DenyAll

# AllowAll

RequireValidShell off

DenyGroup !ftpuser

Wo liegt das Problem? Ich verstehe es nicht und finde die
Lösung nach stundenlangem googlen nicht.

Was findet sich denn in:
/var/log/proftpd/xferlog
/var/log/proftpd/proftpd.log

?

Gruß,
Stefan

Mein FTP-User gehört auch der Gruppe „ftpuser“ an.

und heisst vermutlich nicht www-data?

Als Home-Verzeichnis des FTP-Users habe ich /var/www
eingestellt und kann mich auch darauf verbinden.
Alle Ordner in diesem Verzeichnis haben chmod 0755 und chown
www-data:root.

der besitzer ist www-data und die gruppe root?
alles mit root sieht komisch aus, in einem verzeichnis fuer web.

Hier funktioniert auch alles was ich möchte, lesen, schreiben,
löschen, erstellen usw.

dann gelten hier aber die rechte von /var/www/.

Sobald ich aber z.B. in ein Unterverzeichnis
/var/www/internetseite1 gehe, darf mein User nichts mehr außer
lesen. Das Unterverzeichnis /var/www/internetseite1 hat auch
chmod 0755, www-data:root.

was erwartest du? 0755 heisst doch, dass nur der besitzer schreiben darf.

Hallo!

Danke für die Antwort!
Ja das mit den Rechten leuchtet mir schon ein, aber es kann doch nicht die Lösung sein entweder alle Dateien/Ordner mit 0777 zu chmodden oder sich mit www-data per FTP einzuloggen. Bei anderen FTP-Servern gehts ja auch. Webspace etc…

ne , arum ist das bei dir denn auch so .

Ich hab einen user ftpuser und der ist in der gruppe www-data .
Der user hat die schreibrechte 0775 .

Wieso also gruppe root bei dir ist , ist mir schleierhaft.
alles was bei mir root ist, kann ich garnicht erst sehen , warum auch .

sollte man auch bei telnet zugriff beachten das man mit dem richtigen user bzw gruppe die verzeichnisse anlegt.

hier nochmal die umask
http://www.proftpd.de/Umask.260.0.html

du kannst dein ftp user auch intern einen anderen user und gruppe zuweisen , dennoch würde ich nicht root empfehlen.

Moin,

hast es mal mit der Directory-Direktive

an Stelle von

probiert?

Grüße

godam

Hallo!

Also zum Stand der Dinge.
Mittlerweile haben die Ordner und Dateien im var/www-Ordner als Besitzer und Gruppe www-data:www-data. Das die Gruppe root war ist wirklich bissel komisch, ist mir vorher gar nicht so aufgefallen.

Außerdem habe ich meinen FTP-User jetz der Gruppe www-data zugeordnet.

Trotzdem habe ich nach wie vor das Problem nur auf oberster Ebene schreiben zu können und im Unterverzeichnis quasi nichts kann.

Du sagtest du hast einem User Schreibrechte zugeordnet? Das ist mir überhaupt nicht bekannt, bisher dachte ich immer nur Dateien und Ordner mit Rechten versehen zu können.
Wie lautet der Befehl um einem User Rechte zuzuordnen?

Du sagtest du hast einem User Schreibrechte zugeordnet? Das
ist mir überhaupt nicht bekannt, bisher dachte ich immer nur
Dateien und Ordner mit Rechten versehen zu können.
Wie lautet der Befehl um einem User Rechte zuzuordnen?

ich meine die UMASK , die angibt mit was für rechten die datei geschrieben wird , dazu war ja auch der link .

Tip , leg mal einen eigenen ordner an, wenn du da reinshreiben kannst, dann ist dein problem anderweitig zu suchen .

welche rechte hast du auf den Ordner mit www-data .

was passiert denn wenn du die umask auf 000 bzw 011 setzte.

standart ist ja 022 das ist dann 644 für Datei und 755 für Verzeichnisse .

6|4|4 =
User lesen und schreiben | gruppe nur lesen |, others nur lesen .

somit darf dein user nicht in die gruppe nicht schreiben schreiben .

Er kann nur in Verzeichnisse die er selber besitzt schreiben .