Nach einigen Tagen bei Google kann ich die richtige Antwort auf meine Frage nicht finden. Nachdem Sie viele Skriptmöglichkeiten gelesen haben, ist OpenVPN aktiv.
Ich habe einen Client, auf dem Debian 7.8 mit OpenVPN 2.2.1 x86_64-linux-gnu ausgeführt wird.
Die Verbindung funktioniert hervorragend und alles ist in Ordnung. Aber - ich muss einige NFS-Laufwerke mounten, dann wird die Verbindung hergestellt ("up" - denke ich).
Aber - dann versuche ich ein Skript zu starten, ich stoße auf diesen Fehler:
Tue Jun 23 10:44:55 2015 /usr/share/openvpn/script-to-start.sh tun0 1500 1542 192.168.2.6 192.168.2.5 init
Tue Jun 23 10:44:55 2015 WARNING: Failed running command (--up/--down): could not execute external program
Tue Jun 23 10:44:55 2015 Exiting
Ich habe die Einstellungen in der Konfigurationsdatei hinzugefügt:
script-security 2
up /usr/share/openvpn/script-to-start.sh
down /usr/share/openvpn/script-to-stop.sh
Die vollständige Einstellungsdatei finden Sie hier .
Das Skript, das ich ausführen möchte (nur zum Testen), lautet:
#/bin/bash
grep vpn /var/log/syslog > /home/USERNAME/test.txt
clear
echo "Good morning, world."
( Update 2017: - Die Markierung "!" Fehlt in der Zeile # / bin / bash. Kopieren Sie die oberste Zeile nicht und fügen Sie sie nicht ein, da dies das Problem war.)
Ich habe auch mit "#! / Bin / sh" getestet, nur um sicherzugehen. Immerhin habe ich die Berechtigungen und den Besitz getestet:
Wie Sie sehen können, habe ich "script-security 2" vor den Befehlen "up" und "down" hinzugefügt. OpenVPN wird als root ausgeführt und von einem init.d-Skript gestartet. Selbst wenn ich versuche, es mit dem vollständigen Befehl auszuführen, wird der gleiche Fehler angezeigt.
Siehe das folgende Beispiel (mit und ohne Sudo):
sudo openvpn --remote SERVERDOMAIN --dev tun1 --ifconfig 192.168.2.2 192.168.2.1 --tls-client --ca /etc/openvpn/easy-rsa/keys/ca.crt --cert /etc/openvpn/easy-rsa/keys/TITLE.crt --key /etc/openvpn/easy-rsa/keys/TITLE.key --reneg-sec 60 --verb 5 --script-security 2 --up /usr/share/openvpn/script-to-start.sh
Wenn ich das verdammt kleine Skript mit SU und Sudo alleine ausführe, läuft alles reibungslos und ohne Probleme.
Der Punkt ist, dass ich diesen Befehl ausführen muss, um ein paar NFS-Laufwerke zu mounten, aber im Moment bin ich gesperrt. Also brauche ich hier etwas Hilfe - ich habe ein dänisches Forum ohne Glück ausprobiert.
sudo mount 192.168.2.1:/media/usb1/sync /home/USERNAME/sync
Das Online-Handbuch ist nicht so hilfreich - und jetzt brauche ich Ihre Hilfe.
#/bin/bash
nur ein Kommentar ist, da das Ausrufezeichen fehlt, das ihn in einen Schebang verwandelt:#!/bin/bash
#!/bin/sh
? Ihr einfaches Testskript sollte damit laufen, denke ich.Antworten:
Ich bin auf dasselbe Problem gestoßen, zum Glück habe ich eine Lösung gefunden.
Hier sind Dinge, die ich überprüft habe:
grep
B. sollte sein/bin/grep
; Sie können den vollständigen Pfad finden, indem Siewhich
vor Ihrem Befehl eingeben ).script-security 2 system
stattdessenquelle
system
Methode sollte nicht erforderlich sein. Es ist jedoch auf jeden Fall einen Versuch wert, zu überprüfen, ob das Skript für den Benutzer ausführbar ist.Nur um es klar zu machen: Ich habe das " ! " (Ausrufezeichen) vergessen . Das erklärt alles.
quelle
Überprüfen Sie den Benutzernamen, unter dem der openvp-Dämon ausgeführt wird, und
chown
Ihren Skriptordner oder Ihre Skriptdatei.quelle