Ich weiß, dass diese Frage bereits besprochen wurde, aber beim Lesen der Beiträge konnte ich die Antworten nicht finden, da einige sagten: "Ja, umask kann funktionieren", und andere sagen: "OpenSSH put-Befehl bewahrt immer Berechtigungen".
Vor allem nur um genau zu sein:
- Ich benutze OpenSSH 5.9 auf RHEL 6.2
- Ich habe einen Chroot-SFTP-Server mit
internal-sftp
Subsystem-u 0002
für umask konfiguriert - Ich benutze die Option
-p
oder nicht-P
Zum einen habe ich gelesen: Es gibt viele Möglichkeiten, umask für SFTP-Übertragungen zu definieren:
- Option
-u
voninternal-sftp
(odersftp-server
), seit OpenSSH 5.4 - erstelle einen Wrapper für
sftp-server
(in dem wir die umask explizit setzen - das passt übrigens nicht für chroot-Umgebungen) - Fügen Sie eine bestimmte Konfiguration in die
pam.d/sshd
Datei ein
Andererseits habe ich gelesen:
Der OpenSSH SFTP-Client und -Server übertragen die Berechtigungen (als Erweiterung) und erstellen die Remote-Datei mit den Berechtigungen auf der lokalen Seite. AFAICT, es gibt keine Möglichkeit, dieses Verhalten zu deaktivieren.
Also habe ich folgenden Test gemacht:
Auf meinem Client habe ich eine Datei MYFILE
und ein Verzeichnis MYDIR
mit den Berechtigungen 600 und 700 erstellt.
Dann mit sftp
Befehlen:
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
Wenn ich die Berechtigungen von MYFILE
und MYDIR
auf der Clientseite ändere und erneut hochlade, erhalte ich die neuen Berechtigungen auf der Serverseite.
Ich habe die pam.d
Lösung auch ausprobiert , aber es hat sich nichts geändert.
Jetzt bin ich verwirrt:
Nach dem, was ich getestet habe und einem Teil dessen, was ich gelesen habe, würde ich sagen, dass OpenSSH immer Berechtigungen beibehält. Aber da es viele Posts gibt, die besagen, dass eine Umask definiert werden könnte, kann ich mir vorstellen, dass ich in meinen Testkonfigurationen etwas Falsches mache.
Ich würde mich über erfahrene Rückmeldungen freuen.
Vielen Dank.
The server SHOULD NOT apply a 'umask'
Gilt nur, wenn der Client Berechtigungsinformationen sendet . Wenn der Client keine Berechtigungsinformationen sendet, ist es beabsichtigt, eine umask anzuwenden!