J'essaie de créer un script qui démarre au démarrage pour se connecter à mon VPN personnel.
J'ai un fichier d'initialisation: /etc/init.d/vpnstartup
qui appelle mon script vpnon.sh au démarrage avec les commandes:
case "$1" in
start)
su username -c $VPN_DIR/vpnon.sh
;;
dans mon script vpnon.sh, certaines commandes nécessitent l'exécution d'autorisations root:
sudo iptables -A INPUT -i pptp -j ACCEPT
sudo iptables -A OUTPUT -o pptp -j ACCEPT
J'accorde les autorisations du fichier vpnstartup init et du script vpnon.sh avec chmod 775 lorsque j'essaie mon fichier init en l'appelant à l'aide de ./vpnstartup start
J'obtiens l'erreur suivante lorsque la commande sudo iptables est appelée
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Ce que je pense, c'est que la commande sudo nécessite un mot de passe, mais ne permet pas de l'obtenir.
La seule solution que j'ai trouvée a été d'ajouter le NOPASSWD :ALL option
fichier au fichier sudoers sous mon nom d'utilisateur.
Pour des raisons de sécurité, je ne souhaite pas utiliser cette méthode s'il existe une meilleure solution.
S'il vous plaît laissez-moi savoir si vous pouvez m'aider avec ce problème; J'ai passé de nombreuses heures dessus.
su
partir de la racine dans votre script d'initialisation pour exécuter un script qui vous oblige àsudo
revenir à la racine: ne pouvez pas vous organiser votre script (s) pour éviter cela?