Je vous explique rapidement. Je suis amené à me connecter très souvent sur des serveurs windows. J’utilise “rdesktop” et j’ai toute une liste d’alias dans mon fichier .zshrc.
Jusqu’il y a peu, je tapais le mot de passe à chaque fois que je me connectais à un serveur. Mais à raison d’au moins 25 fois par jour, ça commence à devenir lourd…
J’ai donc voulu rajouter le mot de passe dans les alias (je précise que j’ai modifié le code) :
[code]pass=echo XfJg52fFJHgfd7442K | base64 -d
alias rd_LESERVEUR=“rdesktop -u LOGIN -p $pass -d DOMAINE -x lan -g 1280x1000 -r disk:moi=/home/moi/DossiersPartages/LESERVEUR/ IP.DE.MON.SERVEUR > /dev/null 2>&1 &”[/code]
Ça marche, je gagne du temps. Cependant, le password apparait en clair quand je ferme la fenêtre de rdesktop.
Personne n’a une petite idée pour me permettre d’avancer sur ce point ?
J’espère que ce n’est pas parce que j’ai [strike]prononcé[/strike] écrit “windows”… Je préfèrerais aussi me connecter en ssh à des serveurs Debian mais on choisi pas toujours.
L’affichage de ta commande est due à l’utilisation du ‘&’ final lors de son lancement. Mais je ne sais pas comment l’éviter.
EDIT :
[quote]-p
The password to authenticate with. Note that this may have no
effect if “Always prompt for password” is enabled on the server.
WARNING: if you specify a password on the command line it may be
visible to other users when they use tools like ps. Use -p - to
make rdesktop request a password at startup (from standard
input).
[/quote]
Il semblerait que ce soit une limitation du logiciel lui-même. Même si le mot de passe n’est pas affiché lors du lancement du script, il sera facile à trouver pour qui a un accès à ta machine (pas forcément un accès physique, pas forcement un accès priviliégié, même un utilisateur “basique” pourra voir le mot de passe via top/htop/ps/etc.).
Je précise deux trois détails :
Les mots de passe que je cherche à cacher ne sont pas “critiques”. Mes collègues ont accès aux mêmes machines que moi. Je veux surtout éviter qu’ils n’apparaissent en clair sur le terminal… Personne n’a d’accès sur ma machine pour faire un top/ps/autre et le disque dur est chiffré donc même si je suis pas là et que quelqu’un tente de booter sur une clé usb, ça devrait tenir.
Le ‘&’ final me permet de lancer plusieurs rdesktop à la suite sans devoir faire différents onglets/fenêtres dans le terminal. C’est assez pratique… Mais effectivement, si je le retire je n’ai pas le retour de la commande avec le mot de passe en clair.
Quand je mets nohup au début de mon alias, avec ‘&’ à la fin, ça ne change rien. J’ai toujours un message avec le mot de passe en clair quand je ferme la fenêtre rdesktop.
Quand je mets nohup sans ‘&’, je ne récupère par la main sur le terminal après avoir lancé la commande. Peut-être que je loupe quelque chose… Mais jusqu’ici ça ne résout pas mon problème.
Pas mal ! J’ai déjà utilisé screen mais ça fait un moment, je n’y avais pas pensé. Je n’ai pas encore réussis à lancer directement screen avec la commande rdesktop pour que ça quitte automatiquement la session “screen” quand je ferme la fenêtre. Mais il doit y avoir moyen.
Sinon, j’ai trouvé disown qui pourrait convenir à mon besoin :
Je supprime donc ce qui est à la fin ( > /dev/null 2>&1 & ) et je rajoute l’appel à screen au début de l’alias ( screen -S nom-du-screen -d -m ).
Je n’ai plus du tout de message quand je lance ma commande ou quand je quitte la fenêtre et je peux éventuellement voir la session avec un “screen -R” :
$ rd_LESERVEUR
$ screen -ls
There is a screen on:
8651.LESERVEUR (06/08/15 15:02:31) (Detached)
1 Socket in /var/run/screen/S-moi.
$ screen -R LESERVEUR
Quand je quitte la fenêtre, la session screen ferme automatiquement. (Pour ceux qui veulent, on peut utiliser -D à la place de -d si on veut garder le screen ouvert même quand la commande est terminée.)