Ich habe ein Verzeichnis, auf das mehrere Benutzer Zugriff haben. Sie ändern, laden und löschen Dateien im Verzeichnis. Sie gehören alle zur selben Benutzergruppe. Die Dateien im Verzeichnis haben Zugriffsrechte von 660.
Das Problem ist, dass die Benutzer die Änderungszeit von Dateien nicht festlegen können, wenn sie nicht der Eigentümer dieser Datei sind.
Beispielsweise lädt Benutzer AAA eine Datei 'EXAMPLE.jpg' hoch, Benutzer BBB lädt sie herunter, ändert sie und lädt sie erneut hoch. Der Zeitstempel der zuletzt geänderten Datei der Datei entspricht dem Zeitpunkt, zu dem BBB sie hochgeladen hat, und nicht zu dem Zeitpunkt, an dem sie tatsächlich zuletzt geändert wurde. Ich habe versucht, die Berechtigungen der Datei auf 777 zu setzen, aber es hat nicht geholfen.
Das Problem zeigt sich in SFTP-Protokollen als:
Dec 5 16:37:08 servername sftp-server[695]: open "/shared_directory/EXAMPLE.jpg" flags WRITE,CREATE,TRUNCATE mode 0666
Dec 5 16:37:08 servername sftp-server[695]: close "/shared_directory/EXAMPLE.jpg" bytes read 0 written 42765
Dec 5 16:37:08 servername sftp-server[695]: set "/shared_directory/EXAMPLE.jpg" modtime 20111205-15:53:31
Dec 5 16:37:08 servername sftp-server[695]: sent status Permission denied
Winscp wird sich über die Situation als beschweren Upload of file 'example.jpg' was successful, but error occurred while setting the permissions and/or timestamp. If the problem persists, turn on 'ignore permission errors'
. Die Warnung kann leicht ignoriert werden, aber was ist, wenn ich meinen Benutzern erlauben möchte, die Zeitstempel zu "bewahren", indem ich sie nach dem Hochladen der Datei bearbeite?
Es gibt bereits eine ähnliche Frage als diese, die jedoch unbeantwortet geblieben ist :(.
quelle