Forum général.général commande remote en ssh qui n'aboutis pas dans un bash restricted

Posté par  .
Étiquettes : aucune
0
9
jan.
2009
Bonjour,
pour des raison de sécurité j'ai mis en place un bash restricted pour un utilisateur distant.

Quand il se connecte en ssh pas de souci, il à son prompt et les commande passées fonctionnent en interactif.
exemple :
ssh toto@mamachine
toto@mamachine's password:***
bash-3.00$ ls
ftp ls ll calc
bash-3.00$

Malheureusement si il cherche à lancer ces même commande directement dans le ssh la commande n'aboutis pas.
exemple :
ssh toto@mamachine ls
toto@mamachine's password:***

( plus rien ne se passe, il faut faire ctrl C pour avoir la main)

pour cet user J'ai fait un shell particulier :
grep toto /etc/passwd
toto::x:60:60::/home/toto:/opt/toto-user.sh

cat /opt/toto-user.sh
#!/bin/bash
exec /bin/bash --restricted

cat /home/toto/.bashrc
export PATH="."

cat .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

si quelqu'un à l'astuce, je suis preneur !
Merci.
  • # /bin/rbash

    Posté par  . Évalué à 2.

    Pour que ça fonctionne, il faut que tu définisses le shell de ton utilisateur comme "/bin/rbash" directement, sans passer par un script.

    (Si par hasard /bin/rbash n'existait pas sur ta distrib, fais juste un lien symbolique vers bash : ln -s /bin/bash /bin/rbash)
    • [^] # Re: /bin/rbash

      Posté par  . Évalué à 3.

      Ou sinon, ajouter "$@" à la commande bash dans le script.
      • [^] # Re: /bin/rbash

        Posté par  . Évalué à 2.

        Je pense que t'as la bonne réponse, car il me semble que ssh fait un truc du genre "$(SHELL) -c 'arguments passés à ssh'", et que donc ici rien n'est passé en paramètre, donc il lance un bash en interactif ... (d'ailleurs, pour vérifier, tu pourrais essayer de taper des commande quand "il ne se passe rien" pour voir).
        • [^] # Re: /bin/rbash

          Posté par  . Évalué à 1.

          Parfait !
          le $@ marche à merveille.
          je vais tester le changement de shell, des fois que ce soit plus simple encore.
  • # résolution :

    Posté par  . Évalué à 2.

    Merci à tous.
    Pour ceux qui prendraient le thread pour leur usage.

    Version sans script en utilisant le rbash :
    ln /bin/bash /bin/rbash
    et en mettant le /bin/rbash en shell de login dans /etc/passwd

    Les commandes à distance passent bien avec arguments.
    Le login en tant que tel generre 2 erreur mais donne la main à un bash restricted.


    Version avec script et bash explicitement restricted :
    En ajoutant "$@" dans le script de login (attention il faut mettre les double quote)

    même résultats pour les commandes à distance et le login se passe sans erreur.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.