Was für ein Service? Bestimmte Dienste verfügen über andere Authentifizierungsmethoden, z. B. SSH-Schlüssel für SSH in Verbindung mit dem SSH-Agenten.
Ich würde das Kennwort getrennt vom Skript speichern und sicherstellen, dass alle Pfadkomponenten über die richtigen Berechtigungen verfügen. Zum Beispiel, stellen Sie sicher , dass auf dem Weg /path/to/file
, /
, /path
und /path/to
von einem Benutzer , die Sie vertrauen Besitz ( root
) und dass diese nicht beschreibbar von jemandem, der nicht erlaubt ist , Ihre Dateien zu sehen. Die empfohlenen Berechtigungen für file
sind 600 oder 400.
Das file
könnte so aussehen:
PASSWORD='something that you cannot remember'
Verwenden Sie in Ihrem Skript den folgenden Code, um die Variable zu importieren:
. /path/to/file
Stellen Sie sicher, dass Ihr Skript keine Lücken enthält, die es Angreifern ermöglichen könnten, Code im Skriptkontext auszuführen (z. B. unkontrollierte Umgebung, in der möglicherweise eine beliebige $PATH
Variable festgelegt ist, oder ungültige Verwendung anderer Dateien (z. B. Beschaffung einer von der Welt beschreibbaren Datei). .
Was den eigentlichen Schutz Ihres Passworts angeht, können Sie das nicht. Es muss irgendwie für den anderen Dienst verfügbar sein. Alternativ können Sie die Datei / das Skript mit dem Kennwort verschlüsseln, openssl
oder gpg
Sie müssen ein Kennwort eingeben, bevor die Anmeldeinformationen entsperrt werden. Dies ist besonders nützlich, wenn Sie sich das Passwort Ihres Dienstes nur schwer merken können.