Hintergrund

Hintergrund

Ich habe einen Benutzer myuser, der nur über SFTP eine Verbindung zu SSH herstellen darf. Ich möchte, dass dieser Benutzer immer Dateien mit rwx-rwx-rx erstellt und immer der Gruppe Apache gehört. Ich habe versucht, den Teil mit den Dateiberechtigungen mit umask zu erreichen, aber in umask erhalten Dateien und Verzeichnisse unterschiedliche Berechtigungen für dieselbe umask. Hilfe ist willkommen.

Antwort1

Hintergrund

Dies ist ein immerwährendes Problem beim sftpTeilen von Dateien. Dies liegt daran, dass die resultierenden Berechtigungen auf der ursprünglichen Berechtigung der Datei auf der Benutzerseite basieren und das -uArgument umask() solche Berechtigungen nicht erzwingt, sondern nur die unerwünschten Berechtigungen entfernt. Dies bedeutet, dass 0777diese nur angewendet und auf reduziert werden, wenn der Benutzer versucht, eine Datei mit der Berechtigung hochzuladen 0775. Andernfalls bleibt sie einfach so, wie sie war. Wenn der Benutzer beispielsweise eine Datei mit der Berechtigung auf seinem Dateisystem gespeichert hat 0700, wird sie auch nach dem Hochladen als angezeigt 0700.

Lösung

Dieses Problem haben wir kürzlich in Fedora gelöst, indem wir einen Patch angewendet haben, der die genaue Berechtigung für neu hochgeladene Dateien erzwingt, indem er -mauf wechselt sftp-server. Dies basiert auf diesem Upstrem-Fehler:

https://bugzilla.mindrot.org/show_bug.cgi?id=1844

Dies ist verfügbar in aktuellenCentOS 7.2. Aus dem Änderungsprotokoll:

 - Add sftp option to force mode of created files (#1197989)

Problemumgehung

Es gibt keine andere elegante Lösung außer einem regelmäßig ausgeführten Skript (von cron), das die falschen Berechtigungen korrigiert. Es wäre ein Einzeiler in Bash, aber ich denke, Ihnen fällt etwas ein. Ich kann das näher ausführen, wenn Sie interessiert sind.

Oder Sie können verwenden, inotifyum Änderungen früher zu „erfassen“.


Die Gruppe sollte vom übergeordneten Verzeichnis übernommen werden, oder nicht?

verwandte Informationen