nmcli funktioniert nicht mit Bash-Skripten (funktioniert aber woanders)

0

Ich habe dieses knifflige Problem beim Versuch, eine Verbindung zu einem VPN zu automatisieren. Ich muss jedes Mal, wenn ich eine Verbindung herstellen möchte, nach einem Passwort fragen, aber es ist mir bereits gelungen, es anzufordern und zu analysieren. Das Problem ist jetzt, wenn ich nmcli ausführe, um eine Verbindung zum VPN herzustellen, wird mir dieser Fehler angezeigt

Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/11
state: VPN connecting (need authentication) (2)
state: VPN connecting (3)
state: VPN connecting (getting IP configuration) (4)
Error: Connection activation failed: unknown reason.

Wenn ich dies jedoch als Befehl von einem Terminal ausführe, funktioniert es einwandfrei. Das macht mich wirklich verrückt, weil ich keine Ahnung habe, woran es möglicherweise liegen könnte. Hier ist die Quelle des Skripts:

# [...] fetch $password
sed -i 's/^password=.*$/password=$password/g' $VPNFILE
sudo grep password $VPNFILE  # $password is actually modified on the file
sudo nmcli con up id $VPN

$ VPNFILE ist die mit / etc / NetworkManager / system-connections verknüpfte Datei. Den Fehler googeln Ich fand diesen Thread mit einem ähnlichen Problem, bei dem der Fehler ein falsches Passwort war, aber das ist hier nicht das Problem, da grep die erwartete Ausgabe liefert.

Irgendwelche Ideen zu der Logik hinter diesem Problem und / oder wie man es behebt?

Vielen Dank für Ihre Zeit.

cronos2
quelle
Ich bin zu dem Schluss gekommen, dass das Problem gelöst ist. Aus irgendeinem Grund funktioniert es nur, wenn ich im Skript einen Schlafmodus anstelle von sed einsetze und das Kennwort in $ VPNFILE über sed in einem anderen Terminal ersetze. Ich denke, das ist wirklich seltsam, aber ich weiß immer noch nicht, warum es genau fehlschlägt, eine Verbindung
herzustellen oder das Problem zu
Ist das Ändern Ihrer Verbindungsdatei /etc/NetworkManager/system-connections/eine Option? Sie können das Passwort in diese [vpn-secrets]Zeile einprogrammieren: (neue Zeile) password=xxxxxxx. Funktioniert gut für mich.
nhee