it-swarm.com.de

Wie setze ich die gewünschte Umask mit SFTP?

Ich habe einen SFTP-Server (openssh/sftp-server) und möchte umask 002 für Benutzer festlegen, die diesen Dienst verwenden. Ich habe versucht, PAM (pam.d/common-session) und .profile für jeden Benutzer festzulegen, aber kein Glück.

Mit SSH-Login ist alles in Ordnung, aber wenn ich es mit SFTP (mit gFTP) versuche, habe ich die 022-Umask eingestellt.

Ich habe bereits versucht, einen Wrapper für den SFTP-Server zu verwenden, der die Umask ändert, bevor ich den SFTP-Server aufrufe, kein Glück.

Irgendeine Hilfe? Vielen Dank!

23
mat_jack1

Nach vielen Stunden beim Versuch, verschiedene Hacks und Fixes anzuwenden, habe ich eine richtige Lösung gefunden!

Es gibt einen Patch für SSH, mit dem Sie die gewünschte Umask für SFTP auswählen können. Sie können es hier herunterladen: http://sftpfilecontrol.sourceforge.net/

Für mich (OpenSSH_5.2p1 + sftpfilecontrol-v1.3, OpenSSL 0.9.8g, 19. Oktober 2007) funktioniert es perfekt!

2
mat_jack1

Seit OpenSSH 5.4p1 können Sie die Option "-u" verwenden, zum Beispiel:

Subsystem sftp /usr/lib/openssh/sftp-server -u 022

Von der Manpage:

 -u umask
         Sets an explicit umask(2) to be applied to newly-created files
         and directories, instead of the user's default mask.
25
Weboide

Ich hoffe, das kann jemand anderem Stunden der Frustration ersparen ...

Wenn Sie eine GUI-SFTP-Anwendung verwenden, überprüfen Sie deren Einstellungen zum Festlegen von Berechtigungen beim Hochladen.

Ich hatte alle oben genannten Lösungen ausprobiert und es stellte sich heraus, dass die Anwendung sie nur überschrieb.

7
Malcolm

In der ssh-Konfigurationsdatei können Sie damit auch den Modus der Datei spezifisch festlegen (überschreiben aller chmods, die der Client möglicherweise festlegen möchte). Hier verwende ich internes SFTP, aber ich denke, es wäre dasselbe für SFTP-Server:

ForceCommand internal-sftp -u 0022   
2
cloudranger

Um zu zitieren diese Nachricht :

Ich habe das in Ordnung gebracht, indem ich in /etc/init.d/ssh eine "umask 007" -Zeile hinzugefügt habe.

Bash verwendet .profile Für interaktive Login-Shells. Ich denke nicht, dass sftp als eins zählt. Möglicherweise können Sie die Umask in /etc/bash.bashrc Oder ~/.bashrc Setzen, wenn der obige Tipp nicht funktioniert oder Sie eine feinkörnigere Steuerung wünschen.

Unter diese Frage finden Sie eine einfache Lösung, für die weder bestimmte OpenSH-Versionen noch benutzerdefinierte Patches erforderlich sind.

0
Unode