Benötigen Sie eine Shell für SCP?

33

Ich erlaube einem Freund ein lokales Konto auf meinem Computer, exklusiv für SCP. Kann ich die Shell seines Kontos als /bin/trueoder auf andere Weise einschränken, ohne SCP zuzulassen?

Gilles 'SO - hör auf böse zu sein'
quelle

Antworten:

39

Sie können die Shell dieses Benutzers auf rsshoder setzen scponly, die genau für diesen Zweck entwickelt wurden:

rssh ist eine eingeschränkte Shell zur Verwendung mit OpenSSH, die nur scp und / oder sftp zulässt. Es enthält jetzt auch Unterstützung für rdist, rsync und cvs.

scponly ist eine alternative "Shell" (von Art) für Systemadministratoren, die Remotebenutzern den Zugriff zum Lesen und Schreiben lokaler Dateien gewähren möchten, ohne Remoteausführungsberechtigungen zu erteilen.

Wenn Sie scp ausführen, löst der OpenSSH-Daemon einen scpProzess mit dieser -fOption aus. Wenn Sie sftp ausführen, löst der OpenSSH-Dämon einen sftp-serverProzess aus. In beiden Fällen wird der Unterprozess über die Shell des Benutzers ausgeführt, sodass die Shell mindestens diese Befehle mit einer Bourne-ähnlichen Syntax unterstützen muss. Jede Bourne-artige Shell wird es tun, ebenso wie csh (ich denke, ihre Anführungsregeln sind kompatibel genug für welche sshdZwecke). Rssh und scponly erlauben diese Befehle und sonst nichts. /bin/truewürde diese Befehle nicht einmal ausführen.

Gilles 'SO - hör auf böse zu sein'
quelle
Heißt das, / bin / false oder / bin / true würde nicht funktionieren - oder nur sftp zulassen?
Danny Staple
2
@DannyStaple Wenn die Shell eines Benutzers auf /bin/falseoder ein anderes Programm eingestellt ist, das nichts tut, funktionieren weder scp noch sftp. Für beide Befehle löst der SSH-Dämon einen Shell-Befehl aus, der einen dedizierten Serverprozess ( scp -foder sftp-server) ausführt. Es benötigt eine Bourne-artige Shell oder zumindest eine hinreichend genaue Annäherung (so rsshdass nur diese wenigen Befehle durchgelassen werden können).
Gilles 'SO - hör auf böse zu sein'
3

Nein, tust du nicht. Wie Gilles betonte, funktioniert rssh zu diesem Zweck sehr gut, ebenso wie scponly . Siehe auch die Diskussion in dieser Frage im Zusammenhang .

Shadur
quelle
1
Sie sind immer noch Muscheln, wie darauf hingewiesen, /bin/falsewird nicht funktionieren, noch wird chmod 644 ksh .
Steve-o