Ich bin ein Bash-Skript für meine Arbeit zu bauen, um die erste Einrichtung und Windows-Domain beitreten für unsere Ubuntu-Maschinen einfach genug für jemanden, der nichts über Linux weiß es tun können. Ich habe viele Leute gefunden, die sagen, dass Sie keine Passwörter durch ein Skript weitergeben sollten, aber um effizient zu sein, muss ich. Das Skript fordert zu Beginn Informationen und Anmeldeinformationen auf und es muss in der Lage sein, seine Arbeit ohne Interaktion auszuführen. Ich kann es nicht durch ps sichtbar machen, wenn ich es passiere, und ich kann es nicht als ungesicherte Variable speichern lassen. Irgendwelche Vorschläge?Passwort sicher durch Bash
Antwort
Wenn Sie dies wirklich tun müssen, können Sie die Anmeldeinformationen früh im Skript in Variablen mit read -s
lesen und diese Werte dann an die Eingabeaufforderungen übergeben. Zum Beispiel:
read -p "Enter your username: " username
read -sp "Enter your password: " password
echo
enthalten ich die leeren echo
weil die -s
Option für read
die Eingabe des Benutzers verhindert im Terminal erscheinen, einschließlich der neuen Linie in der Regel erstellt, nachdem ein BenutzerGeben Sie drückt, wenn eine Aufforderung zu beantworten.
Sie können dann mit den $username
und $password
Variablen für den Rest des Skripts und die Anmeldeinformationen werden nicht außerhalb des Speichers gespeichert werden müssen, was bedeutet, werden sie verloren/zerstört werden, nachdem das Skript abgeschlossen.
Beachten Sie jedoch, dass alle Programme oder Dienstprogramme, die die Anmeldeinformationen als Befehlszeilenargumente verwenden, diese anderen Benutzern auf dem Computer, auf dem das Skript ausgeführt wird, anzeigen. Zum Beispiel, wenn ich eine MySQL-Abfrage mit dieser Methode laufen bin, konnte ich tun:
mysql -u "${username}" -p"${password}" -e "SHOW DATABASES;"
Andere Benutzer auf der Maschine die Anmeldeinformationen sehen können, während die mit so etwas wie ps
ausgeführt wurden:
ps -ef | grep mysql
...
watrudoin 29512 29443 0 12:57 pts/4 00:00:00 mysql -u MyUserName -phunter2 -e SHOW DATABASES
Sie müssen nur darauf achten, dass das, was Sie tun, nicht unbedingt sicher ist, aber es scheint, dass Sie bereits sind.
Einige Befehle ermöglichen das Festlegen des Passworts in einer Konfigurationsdatei und das Lesen der Konfigurationsdatei von stdin, so dass Sie z. das folgende Konstrukt: 'echo" -u user \ n -p $ pw "| curl -K - ... 'damit du es passieren kannst, ohne sichtbar zu sein (nimm nicht die curl config wie sie ist, sie ist von unten nach oben und nur um das Prinzip zu demonstrieren) - du müsstest das überprüfen Befehle, die Sie benötigen oder versuchen, diejenigen auszuwählen, die dies unterstützen –
Ja, viele, wenn nicht die meisten Befehle oder Dienstprogramme enthalten solche Funktionen. Ich habe den Vorbehalt für "alle Programme oder Dienstprogramme, die die Berechtigungsnachweise als Befehlszeilenargumente annehmen" eingefügt. – edaemon
"Ich kann es nicht durch ps sichtbar machen, wenn ich es passiere" – Gilles
- 1. Bash http Proxy-Benutzername Passwort
- 2. Bash-Skripte, die sudo-Passwort erfordern
- 3. Wie sichere Datenbank Passwort in Python sicher?
- 4. Wie sicher Benutzername/Passwort (lokal) zu speichern?
- 5. Passwort sicher auf dem Server speichern
- 6. Bash - Fehlerkorrektur durch Schritte
- 7. Erzeuge Passwort in bash store in Variable
- 8. Windows 10 - Bash (Ubuntu) SU (Root-Passwort)
- 9. Scripting durch Jenkins initiales Passwort
- 10. macht jedes Auftreten von char sicher durch ein anderes Zeichen in bash folgt
- 11. Iterate durch Unterverzeichnisse in bash
- 12. Installieren von Paketen durch Bash-Scripting
- 13. Sudo-Passwort als Variable im Skript speichern - ist das sicher?
- 14. Wie kann man ein Passwort ohne Hashes sicher speichern?
- 15. Möglichkeit, ein Passwort für die R-Anwendung sicher zu vergeben?
- 16. Wie sicher ist das Speichern von Passwort mit Git?
- 17. Web-Anwendung - sicher in einem Passwort geschützten Verzeichnis?
- 18. Wie man ein Passwort in angularjs sicher speichert
- 19. Übergeben Datenbankvariable durch URL wie sicher
- 20. Ändern yii2 Passwort durch das aktuelle Passwort mit dem eingegebenen Passwort
- 21. Schleife durch Unterverzeichnisse explodierenden Dateinamen mit Bash
- 22. Identity 2.0 Passwort zurücksetzen durch Admin
- 23. Laravel 5 Passwort zurückgesetzt durch sendinblue
- 24. apksigner nicht durch ein Passwort zu akzeptieren
- 25. Ich kann kein Passwort in Git Bash eingeben
- 26. das Passwort schützen, wenn Mysql in einem unbeaufsichtigten Bash-Skript
- 27. BASH Schleife durch Ordner und Dateien
- 28. Bash Script Schleife durch Shell-Ausgabe
- 29. Ersetze Strings durch Variable im Bash-Skript
- 30. Bash Schleife durch Ordner und Datei umbenennen
Welchen Befehl (en) benötigen Sie, um das Passwort zu übergeben? – Gilles