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?
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?
Réponses:
Vous pouvez définir le shell de cet utilisateur sur rssh
ou 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 scp
processus avec l' -f
option. Lorsque vous exécutez sftp, le démon OpenSSH déclenche un sftp-server
processus. 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 sshd
utilise). Rssh et scponly permettent ces commandes et rien d’autre. /bin/true
ne serait même pas exécuter ces commandes.
/bin/false
ou 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 -f
ou sftp-server
). Cela nécessite un shell de type Bourne, ou du moins une approximation suffisamment proche (comme par exemple, rssh
qui ne laisse passer que ces quelques commandes).
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 .
/bin/false
cela ne fonctionnera pas, pas plus que chmod 644 ksh .