Kann mir jemand sagen, wie man umask
für einen einzelnen sftp
Benutzer einstellt? Erwähnenswert ist ein IBM AIX ...
Das Hinzufügen von umask 002
zu% des Benutzers .profile
hat nicht funktioniert ... (das Ziel ist, dass diese Benutzerdateien für Personen aus derselben Gruppe zugänglich sind).
Ich habe irgendwie gesehen, wie ich die sftpd-Konfigurationen bearbeite, obwohl ich es nur für einen Benutzer einstellen möchte, also erwartete ich, etwas zu finden, das keinen Root-Zugriff benötigt.
Danke!
f.
Der Benutzer kann dies selbst ohne Beteiligung von root einrichten, entweder vom Client (per Verbindung) oder vom Server (per öffentlichem Schlüssel).
Vom Client aus können wir den Remote-Befehl, der für die sftp-Interaktion verwendet wird, mit der Option -s
überschreiben:
(Wenn Ihr sftp-server
nicht an einem der oben genannten Orte installiert ist, fügen Sie das dem Pfad hinzu).
Vom Server aus können wir erzwingen, dass ein bestimmter Befehl ausgeführt wird, wenn eine Verbindung mit einem bestimmten öffentlichen Schlüssel hergestellt wird. Dies wird für alle Verbindungen ausgeführt, nicht nur für SFTP, aber wir können die Umgebungsvariable $SSH_ORIGINAL_COMMAND
untersuchen, um zu entscheiden, welche Vorgehensweise zu ergreifen ist. Etwas wie das Folgende zu authorized_keys
hinzuzufügen ist wahrscheinlich ausreichend für Ihre Bedürfnisse:
(ersetzen Sie Ihre interaktive Shell mit der von Ihnen bevorzugten Shell und beachten Sie, dass Sie, wenn Sie tcsh
verwenden, diese an die Shell-Syntax anpassen müssen).
Hat super für mich gearbeitet. Allerdings benötigt ein wenig Forschung, weil Sie einen Auszug aus der Dokumentation zur Verfügung gestellt. Ein spezifisches Beispiel in meinem Fall wäre, zwei aufeinanderfolgende Zeilen am Ende von / etc / ssh / sshd_config
zu setzen %Vor%In meinem Fall wollte ich umask auf '002' (2 in Dezimal) setzen, wenn sich jemand in der Gruppe 'www-data' anmeldet.
Es gibt auch eine Option, um env zu verwenden. Variable SSH_ORIGINAL_COMMAND anstelle von 'internal-sftp', aber ich hatte keine Zeit, das zu verfolgen.
Ich weiß nichts über AIX, aber Sie sollten dies mit OpenSSH tun können, obwohl es root-Berechtigungen benötigen. Sie müssen ein Wrapper-Skript für die Server-Komponente von sftp schreiben. Der Wrapper muss die umask
für den Benutzer und dann exec
den sftp-Server selektiv ändern. Für die Auswahl eines Benutzers bin ich Teil von:
Wenn Sie ein solches Skript wie /usr/local/sbin/sftp-wrapper
erstellen würden, würden Sie dann die Konfiguration für das sftp-Subsystem in /etc/ssh/sshd_config
von:
zu:
%Vor%Neben dem Schreiben des Wrapper-Skripts werden für jeden Schritt Root-Berechtigungen benötigt.
Kommentar: Ich glaube, dass der sftp-Server von root gestartet wird, wenn Sie über sftp eine Verbindung herstellen. Die Umask stammt also von der umask von root. Ich glaube nicht, dass es eine Möglichkeit gibt, dies für einen bestimmten Benutzer innerhalb der Konfiguration dieses Benutzers zu ändern. Wenn Sie die sftp-Umask für alle Benutzer ändern möchten, können Sie die Konfiguration des sftp-Subsystems einfacher ändern:
%Vor%Eine Umask von 111 im Oktal ergibt 73 in Dezimal, was wir wird in diesem Beispiel verwendet.
%Vor%Fügen Sie die folgenden zwei Zeilen am Ende der Datei hinzu, um sftp zu konfigurieren Umask für eine Gruppe von Benutzern.
%Vor%Oder fügen Sie die folgenden zwei Zeilen am Ende der Datei hinzu, um die sftp umask für einen einzelnen Benutzer zu konfigurieren.
%Vor%Starten Sie den sshd-Daemon neu.
%Vor%das wird helfen: Aamod chandra
Ich weiß nicht, warum die folgenden Zeilen für mich nicht funktionieren:
* Übereinstimmungsgruppe
%Vor%Endlich fügen Sie '-u 0002' für das Subsystem hinzu, das für SUSE 11.3 funktioniert:
%Vor%und der angegebene Benutzer kann sich nur mit dem öffentlichen Schlüssel anmelden:
%Vor%