logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 19-08-2018 14:20:37

erbou
Membre
Distrib. : MX-16.1 Metamorphosis
Noyau : 4.7.0-0.bpo.1-amd64
(G)UI : XFCE
Inscription : 31-03-2016

[Résolu] Automatiser la saisie au clavier dans un script de lancement

Bonjour,


J'essaye d'écrire un script pour automatiser le lancement d'un programme non libre qui demande mon identifiant-utilisateur et mon mot de passe.

Mon script intitulé nvnl.sh effectue ainsi le lancement du programme :

sudo openvpn nl15.nordvpn.com.tcp443.ovpn



J'ai essayé en vain plusieurs variantes pour m'épargner une saisie au clavier.

Variante 1 :

printf 'utilisateur\nmotdepasse\n' | ./nvnl.sh



Variante 2 :

echo utilisateur motdepasse | ./nvnl.sh



Variante 3 :

sudo openvpn nl15.nordvpn.com.tcp443.ovpn utilisateur motdepasse
 



Variante 4 :

sudo openvpn nl15.nordvpn.com.tcp443.ovpn << utilisateur motdepasse EOF  
 



Variante 5 :

sudo openvpn nl15.nordvpn.com.tcp443.ovpn << EOF
utilisateur
motdepasse
EOF

 



Je suis conscient qu'enregistrer ce genre de données dans un script est exactement ce qu'il ne faut pas faire mais j'assume le coût d'une telle prise de risque d'autant que ce programme n'offre pas le moindre GUI sous Debian.
Alors si quelqu'un connaît la petite ligne de code qui peut me libérer du clavier, je l'en remercie par avance.

Dernière modification par erbou (21-08-2018 02:05:47)

Hors ligne

#2 20-08-2018 01:32:36

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

bonsoir

tu as peut être simplement la possibilité de modifier le comportement de sudo pour qu'il ne te demande pas de mot de passe pour ce programme

il te suffit de modifier le fichier /etc/sudoers en ajoutant l'option NOPASSWD:/chemin_vers_ton_executable

Hors ligne

#3 20-08-2018 04:26:57

Freemaster
Membre
Lieu : Nord
Distrib. : Debian amd64
Inscription : 31-07-2018
Site Web

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Bonjour,

ou encore mieux, configurer sysdemd, pour qu'il démarre automatiquement au boot du système
openvpn non libre ?

o_O

Hors ligne

#4 20-08-2018 04:36:36

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Freemaster a écrit :

configurer sysdemd, pour qu'il démarre automatiquement au boot du système

Ah ! Intéressant Freemaster !
Pourrais-tu détailler un exemple concret de cette procédure dans le tuto systemd :
https://debian-facile.org/doc:system:systemd
Ou à la suite ici, j'y transcrirai. wink
Je n'y ai pas vu (ou pas compris s'il y est déjà) cette façon de faire ? cool

Dernière modification par smolski (20-08-2018 06:05:45)


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#5 20-08-2018 07:40:54

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Tu devrais regarder du côté de l’option "--auth-user-pass" de OpenVPN.
Un extrait (en anglais) du manuel :

--auth-user-pass [up]
              Authenticate  with  server  using  username/password.  up is a file containing username/password on 2 lines. If the password line is missing, OpenVPN will prompt for one.

              If up is omitted, username/password will be prompted from the console.

              The server configuration must specify an --auth-user-pass-verify script to verify the  username/password provided by the client.


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#6 20-08-2018 11:08:42

Freemaster
Membre
Lieu : Nord
Distrib. : Debian amd64
Inscription : 31-07-2018
Site Web

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

vv222 a écrit :

Tu devrais regarder du côté de l’option "--auth-user-pass" de OpenVPN.


si c'est ça, moi je mets directement dans le fichier conf :

auth-user-pass /etc/openvpn/login.txt
auth-retry nointeract
 


et le login.txt contient juste :

User
password



mais dans son cas, je pense que c'est bien le sudo qui lui demande les identifiants...


o_O

Hors ligne

#7 20-08-2018 11:23:02

Freemaster
Membre
Lieu : Nord
Distrib. : Debian amd64
Inscription : 31-07-2018
Site Web

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

moi je n'ai rien inventé, mais un exemple simple :

pour activer le /opt/monscript.sh au démarrage de debian

Créer le fichier suivant /etc/systemd/system/monscript.service :

# nano /etc/systemd/system/monscript.service



Copier le code suivant dans le fichier créé précédemment :


[Unit]
Description=/opt/monscript.sh Compatibility
ConditionPathExists=/opt/monscript.sh

[Service]
Type=forking
ExecStart=/opt/monscript.sh start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target



Créer le fichier /opt/monscript.sh :

# nano /opt/monscript.sh


coller :

#!/bin/sh -e
# /opt/monscript.sh
commande <argument> <options> <etc>

exit 0



Ajouter l'autorisation d’exécution au script /opt/monscript.sh :

# chmod +x /opt/monscript.sh



Activer le service :

# systemctl enable monscript

Dernière modification par Freemaster (20-08-2018 12:48:16)


o_O

Hors ligne

#8 20-08-2018 11:52:16

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Impec.
Mis dans le wiki là :
https://debian-facile.org/doc:system:sy … ripts-auto

Merci ! big_smile

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#9 20-08-2018 13:54:21

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

dans le cas du lancement d'un service qui demande que la machine soit connecté à internet, il ne faut pas oublier de préciser dans la partie [unit] qu'il faut attendre la connexion internet avant de démarrer

[unit]
...
after=NetworkManager.service
...


(dans le cas où la connexion est gèré par network-manager)

Hors ligne

#10 20-08-2018 13:59:46

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Va falloir être plus précis severian.
Peux-tu faire le copier/coller du script afin de positionner ou se situe exactement :

after=NetworkManager.service


Je teste pas.
big_smile


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#11 20-08-2018 16:20:54

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

smolski a écrit :


Je teste pas.
big_smile


tu veux tester quoi ?? scratchhead.gif
tu as peut être remarqué qu'un fichier .service était séparé en trois blocs
reprenons le fichier de Freemaster

[Unit]
Description=/opt/monscript.sh Compatibility
ConditionPathExists=/opt/monscript.sh

[Service]
Type=forking
ExecStart=/opt/monscript.sh start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
 


tu peux y voir le bloc [Unit] (c'est dans ce bloc que va la commande after=NetworkManager.service )
le bloc [Service]
et le bloc [Install]

plus d'info -> 9.6.1. Comprendre la structure des fichiers d'unité

Hors ligne

#12 20-08-2018 17:02:19

erbou
Membre
Distrib. : MX-16.1 Metamorphosis
Noyau : 4.7.0-0.bpo.1-amd64
(G)UI : XFCE
Inscription : 31-03-2016

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Merci à tous pour le nombre et l'intérêt de vos réponses. Voici une précision et quelques interrogations complémentaires qu'elles suscitent.

Concernant le comportement de sudo, je l'ai adapté depuis un certain temps et c'est bien OpenVPN (logiciel libre ainsi que vous me l'apprenez) qui est à l'origine de mon problème, la preuve :

$ sudo openvpn nl15.nordvpn.com.tcp443.ovpn
Mon Aug 20 19:33:06 2018 OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 26 2017
Mon Aug 20 19:33:06 2018 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08
Enter Auth Username:xxxx
Enter Auth Password:
 



Je souhaite mettre en oeuvre la solution proposée par FreeMaster mais je distingue mal quel fichier de configuration modifier car j'en ai trouvé deux.

Tout d'abord, un fichier /usr/lib/openvpn.conf qui contient :

d /run/openvpn  0755  root  root  - -



Ensuite, un fichier /var/lib/openvpn.config qui contient :

#!/bin/sh
# Copyright 2003 Alberto Gonzalez Iniesta <agi@agi.as>
# Licensed under the GNU General Public License, version 2.  See the file
# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
#
set -e
test $DEBIAN_SCRIPT_DEBUG && set -v -x

# Use debconf
. /usr/share/debconf/confmodule

# Do we want to create /dev/net/tun?
if [ ! -e /run/udev ] && [ ! -e /dev/net/tun ]; then
  db_input medium openvpn/create_tun || true
  db_go
fi

db_stop

exit 0
# vim: set ai et sts=2 sw=2 tw=0:
 



Peux-tu détailler FreeMaster, STP ?

Hors ligne

#13 20-08-2018 17:27:22

Freemaster
Membre
Lieu : Nord
Distrib. : Debian amd64
Inscription : 31-07-2018
Site Web

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

heu, ton fichier de conf pour moi ce serait celui là : nl15.nordvpn.com.tcp443.ovpn
bien que .opvn est une extension pour windows, cela devrait fonctionner sous linux, car simple fichier texte

o_O

Hors ligne

#14 20-08-2018 20:09:33

erbou
Membre
Distrib. : MX-16.1 Metamorphosis
Noyau : 4.7.0-0.bpo.1-amd64
(G)UI : XFCE
Inscription : 31-03-2016

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Yep! J'ai mis en place la méthode et utilisé le fichier .ovpn préconisé par FreeMaster et ça marche.
Merci mille fois smile
----
J'ai cliqué sur Modifier mais je ne trouve pas moyen de mettre [Résolu] devant le titre de la conversation.

Dernière modification par erbou (20-08-2018 20:19:19)

Hors ligne

#15 20-08-2018 20:25:19

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Mis à jour du script dans le wiki avec l'option NetworkManager. smile

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#16 20-08-2018 20:32:39

Debian Alain
Membre
Lieu : Bretagne
Distrib. : sid (unstable) / bullseye (stable)
Noyau : Linux sid 6.4.0-3-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Hors ligne

#17 21-08-2018 05:49:51

Freemaster
Membre
Lieu : Nord
Distrib. : Debian amd64
Inscription : 31-07-2018
Site Web

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

smolski a écrit :

Mis à jour du script dans le wiki avec l'option NetworkManager. smile


dans ce cas faut bien préciser (dans le cas où la connexion est géré par network-manager) 
moi par exemple je n'ai pas ce service... par contre dans le lien de severian, j'y vois

After=network.target


et ça je l'ai bien smile


o_O

Hors ligne

#18 21-08-2018 06:02:29

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Oui, le lien est effectivement très documenté.
L'idéal pour df, c'est que cette documentation soit reprise dans le tuto de manière la plus didactique possible. roll

Comme je ne me sers pas de cette possibilité de systemd, je laisse à ceux qui l'utilisent de compléter/arranger le tuto mis en place pour une première utilisation lambda à compléter par des configurations persos avec quelques explications en créant la page membre df ici :
https://debian-facile.org/utilisateurs:utilisateurs
Et de s'y référer dans le tuto par exemple.

Je reste disponible ensuite pour la mise en page dans le wiki avec les éventuelles corrections ortho et autres si nécessaire.

Tchibâââ... lol

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#19 21-08-2018 06:23:55

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Automatiser la saisie au clavier dans un script de lancement

Freemaster J'ai ajouté ton option dans le tuto :
https://debian-facile.org/doc:system:systemd#exemple

Tu regardes et tu corriges si cela te semble nécessaire.

Merci ! smile

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

Pied de page des forums