web-dev-qa-db-fra.com

Comment créer un utilisateur qui peut se connecter via SSH, mais ne peut pas utiliser les commandes Shell?

Comment créer un nouvel utilisateur qui peut se connecter via SSH, mais ne peut pas utiliser les commandes Shell? J'ai essayé de définir /bin/false comme shell par défaut pour l'utilisateur, mais je ne peux plus me connecter via SSH.

3
Victoralm

Vous pouvez créer un nouveau petit "Shell" (j'ai utilisé des guillemets car ce n'est pas un vrai Shell) comme suit:

  1. En tant que root, créez un nouveau fichier dans /bin répertoire, disons fakesh.

  2. Ajoutez le code suivant dans /bin/fakesh fichier:

    #!/bin/bash
    echo -n "$ "
    while read cmd ; do 
        if [ "$cmd" = "exit" ]; then break; fi
        if [ "$cmd" != "" ]; then echo "The only one available command is: exit"; fi
        echo -n "$ "
    done
    
  3. Enregistrez le fichier et rendez-le exécutable pour tout le monde:

    chmod +x /bin/fakesh
    

Après cela, définissez simplement /bin/fakesh comme shell par défaut pour votre utilisateur. L'utilisateur sera disponible pour se connecter à son compte via ssh, mais il ne pourra exécuter aucune commande à l'exception de exit.

3
Radu Rădeanu