Linux Shared FTP: Eine Datei darf nicht gelöscht werden

Linux Shared FTP: Eine Datei darf nicht gelöscht werden

Zwei Benutzer:

A1:x:1001:1002::/home/A1:/bin/sh
A2:x:1002:1002::/home/A1:/bin/sh

Eine Gruppe:

A1:x:1002:

FTP-Server: Neuinstallation von ProFTPd OS: Neuinstallation von Ubuntu Server 12.04

Ein Ordner (/home/A1), den ich für A1 und A2 freigeben möchte:

/home/A1: A1:A1 rwxrwxr-x
/home/A1/B1.txt: A1:A1 rw-rw-r--
/home/A2/B2.txt: A1:A1 rw-r--r--

Was ich möchte:

  • B1.txt kann von A1 und A2 geändert werden
  • B1.txt kann von A1 geändert werden, aber nicht von A2, sodass A2 es nur lesen kann.

Wenn ich mich jetzt mit FTP verbinde, kann A2 alles ändern, und das verstehe ich nicht wirklich. Wenn ich die Gruppenschreibberechtigung von /home/A1 entferne (also rwxr-xr-x), kann A2 nichts ändern.

Was mache ich falsch?

Antwort1

Beim Hochladen einer Datei wird eine neue temporäre Datei erstellt und an den richtigen Ort verschoben. Die vorhandene Datei wird nicht überschrieben. Denn wenn die Verbindung während des Überschreibens verloren geht, bleibt die Datei unvollständig.

Zum Hochladen einer neuen Datei, zum Entfernen einer vorhandenen Datei und zum Hochladen einer neuen Version einer vorhandenen Datei ist nur Schreibzugriff auf das Verzeichnis erforderlich. Die Berechtigungen für die vorhandene Datei (sofern vorhanden) spielen keine Rolle. Daher kann A2 gleichermaßen ändern B1.txtund B2.txt

Wenn Sie zum Aktualisieren dieser beiden Dateien unterschiedliche Berechtigungen benötigen, legen Sie sie in verschiedenen Verzeichnissen mit unterschiedlichen Berechtigungen ab.

Wenn die beiden Dateien im selben Verzeichnis verfügbar sein müssen, erstellen Sie B1.txteinen symbolischen Link zu writable-by-A2/B1.txteinem writable-by-A2Verzeichnis, für das A2 Schreibberechtigung hat.

Antwort2

Welche Fehlermeldung erhalten Sie?

Wenn der Fehler „Überschreibberechtigung verweigert“ lautet, müssen Sie das Überschreiben in Ihrem Programm aktivieren proftpd.conf– standardmäßig ist es deaktiviert.

Fügen Sie dazu Folgendes hinzu:

AllowOverwrite yes

entweder auf den <Global>Abschnitt (dies ermöglicht das Überschreiben überall dort, wo die Dateiberechtigungen dies zulassen) oder auf einen <Directory /home/A1>Abschnitt (dies erlaubt das Überschreiben nur in diesem Verzeichnis und nur, wenn die Dateiberechtigungen dies zulassen).

Falls dies nicht die Fehlermeldung ist, fügen Sie Ihrer Frage bitte weitere Details hinzu – zumindest die Fehlermeldung und vorzugsweise einen Protokollauszug.

verwandte Informationen