Avez-vous besoin d'un shell pour SCP?

33

J'autorise un ami à un compte local sur ma machine, exclusivement pour SCP. Puis-je spécifier le shell de son compte comme étant /bin/true, ou de toute autre manière, limiter le compte tout en autorisant SCP?

Gilles, arrête de faire le mal
la source

Réponses:

39

Vous pouvez définir le shell de cet utilisateur sur rsshou scponly, conçus précisément à cette fin:

rssh est un shell restreint à utiliser avec OpenSSH, n'autorisant que scp et / ou sftp. Il inclut désormais également le support de rdist, rsync et cvs.

scponly est un «shell» alternatif destiné aux administrateurs système souhaitant donner aux utilisateurs distants accès aux fichiers locaux en lecture et en écriture sans fournir de privilèges d'exécution à distance.

Lorsque vous exécutez scp, le démon OpenSSH déclenche un scpprocessus avec l' -foption. Lorsque vous exécutez sftp, le démon OpenSSH déclenche un sftp-serverprocessus. Dans les deux cas, le sous-processus est exécuté via le shell de l'utilisateur. Ce dernier doit donc prendre en charge au moins ces commandes, avec une syntaxe similaire à Bourne. Tout shell de style Bourne fera l'affaire, de même que csh (je pense que ses règles de citations sont suffisamment compatibles pour ce qui les sshdutilise). Rssh et scponly permettent ces commandes et rien d’autre. /bin/truene serait même pas exécuter ces commandes.

Gilles, arrête de faire le mal
la source
Cela signifie-t-il que / bin / false ou / bin / true ne fonctionnerait pas - ou n'autoriserait que sftp?
Danny Staple le
2
@DannyStaple Si le shell d'un utilisateur est défini sur /bin/falseou si un autre programme ne fait rien, ni scp ni sftp ne fonctionneront. Pour les deux commandes, le démon SSH déclenche une commande shell qui exécute un processus de serveur dédié ( scp -fou sftp-server). Cela nécessite un shell de type Bourne, ou du moins une approximation suffisamment proche (comme par exemple, rsshqui ne laisse passer que ces quelques commandes).
Gilles 'SO- arrête d'être méchant' le
3

Non, tu ne le fais pas. Comme Gilles l'a fait remarquer, rssh fonctionne très bien à cette fin, tout comme le fait scponly . Voir également la discussion dans cette question connexe .

Shadur
la source
1
Ce sont toujours des obus, comme indiqué, /bin/falsecela ne fonctionnera pas, pas plus que chmod 644 ksh .
Steve-o