Pour être pédant, ce ne sera pas ctrl + c, mais SIGHUP
(plus proche de ctrl + d) qui tue l'application.
Vous pouvez mettre essentiellement ce que vous voulez dans le shell de l'utilisateur /etc/passwd
. Remplacez simplement la valeur par défaut sur la ligne de mot de passe de l'utilisateur (probablement /bin/bash
) par un autre programme. Ce programme peut être un script, tel que /usr/bin/tail_log_file
, avec ces contenus, détenu par root: root, avec umode 0755:
#!/bin/rbash
tail -f /path/to/logfile
Vous pouvez utiliser un interpréteur autre que rbash, mais il est conseillé d'utiliser un shell restreint dans de tels cas.
Pour être extrêmement pédant à ce sujet, vous devez ajouter le chemin du script à /etc/shells
, mais je trouve généralement que cela fonctionne de toute façon.
Gardez également à l'esprit que l'utilisateur pourrait potentiellement mettre le script en arrière-plan, ou utiliser certaines options ( ssh username@host bash
) tout en acquérant un shell. Si vous souhaitez restreindre l'utilisateur de cette manière, de bonnes autorisations de système de fichiers sont la seule vraie solution.
/etc/shells
est de permettre aux utilisateurs qui ont autre chose comme shell de définir leur shell sur ceci; le superutilisateur (root
) peut toujours changer le shell de n'importe qui en ce qu'il veut./etc/shells
car cela permettrait à l'utilisateur de changer son shell (car/usr/bin/tail_log_file
serait alors considéré comme un "shell sans restriction")!Les commandes forcées ssh vous viennent à l'esprit si vous êtes heureux d'utiliser l'authentification basée sur une paire de clés.
la source
Vous pouvez configurer ssh pour exécuter une commande de votre choix lorsque vous vous connectez à l'aide de l'authentification par clé publique. Pour ce faire, générez une paire de clés:
restricted-key.pub
contient une ligne appropriée pour mettre dans le~/.ssh/authorized_keys
fichier des utilisateurs :mais vous pouvez ajouter une commande à cela, et ssh exécutera cette commande lors de la connexion avec la clé:
Ensuite, l'utilisateur peut ssh vers la machine en utilisant
ssh -i restricted-key
.la source