Hi! * Ist sicher (zumindest für mich) eine grundlegende Frage: Ich brauch in einigen Scripts Passwörter für verschiedene User hinterlegt. Dabei stolpere ich immer wieder darüber, die Passwörter im Klartext reinzugriffeln, was ich eigentlich nicht will. Sowas wie "password={MD5}CY9rzUYh03PK3k6DJie09g==" funktioniert in der bash nicht so wirklich. Was gibts da für Lösungen? lg Martin * -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Donnerstag, 8. Juni 2006 11:23 schrieb Martin Hochreiter:
Sowas wie "password={MD5}CY9rzUYh03PK3k6DJie09g==" funktioniert in der bash nicht so wirklich.
Keine Ahnung, ob die Passwörter wirklich in der Datei stehen müssen. Aber wie wäre es mit echo $password | md5sum - Dann mußt Du Dich noch des " -" entledigen. Gruß, Oliver -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Keine Ahnung, ob die Passwörter wirklich in der Datei stehen müssen. Aber wie wäre es mit
echo $password | md5sum -
Dann mußt Du Dich noch des " -" entledigen.
Gruß,
Oliver
Hallo Oliver! Das macht eigentlich genau das verkehrte - ich will nicht den md5 eines Klartextpasswortes, sondern ich will in bash Scripts wo ich Passwörter brauche, diese nicht im Klartext reinschreiben müssen ... lg Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 9. Juni 2006 13:12 schrieb Martin Hochreiter:
sondern ich will in bash Scripts wo ich Passwörter brauche, diese nicht im Klartext reinschreiben müssen ...
warum eigentlich. Es gibt doch auch noch folgende Möglichkeiten: - Wenn das eigentliche Programm als root läuft, und nur Teile als anderer User laufen sollen: su -u user programm - Wenn ein Proggi als anderer user laufen sollen: sudo -u user programm und dann /etc/sudoers entsprechend anpassen - Oder: ssh user@host Programm und key-files arbeiten. Dazu braucht man nirgendwo Passwörter speichern Ok wenn das nicht hilft: - Eine Datei mit User/Passwort-Paaren anlegen. diese mit gpg und einem Master-Passwortverschlüsseln. Dann eben im Script diese Datei entschlüssen. Dazu muss man dann aber irgendwie das _eine_ Masterpasswort angeben. Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Am Freitag, 9. Juni 2006 13:23 schrieb Dr. Jürgen Vollmer:
Ok wenn das nicht hilft: - Eine Datei mit User/Passwort-Paaren anlegen. diese mit gpg und einem Master-Passwortverschlüsseln. Dann eben im Script diese Datei entschlüssen. Dazu muss man dann aber irgendwie das _eine_ Masterpasswort angeben.
Genau das ist das Problem. Ich habe es so gelöst, dass das PW durch mehrere Variablen definiert ist, die sich an vielen Stellen verteilen, sowie Variabelen verwendet werden, die in die Irre führen. Letztlich hängt es also am root-Passwort und sollte da mal was schief laufen, dann muss man zumindest noch in der richtigen Datei entsprechend suchen, das zumindest ziemlich aufwendig ist. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 9. Juni 2006 14:07 schrieb Al Bogner:
Am Freitag, 9. Juni 2006 13:23 schrieb Dr. Jürgen Vollmer:
Ok wenn das nicht hilft: - Eine Datei mit User/Passwort-Paaren anlegen. diese mit gpg und einem Master-Passwortverschlüsseln. Dann eben im Script diese Datei entschlüssen. Dazu muss man dann aber irgendwie das _eine_ Masterpasswort angeben.
Genau das ist das Problem. Ich habe es so gelöst, dass das PW durch mehrere Variablen definiert ist, die sich an vielen Stellen verteilen, sowie Variabelen verwendet werden, die in die Irre führen. Letztlich hängt es also am root-Passwort und sollte da mal was schief laufen, dann muss man zumindest noch in der richtigen Datei entsprechend suchen, das zumindest ziemlich aufwendig ist.
security by obscurity. Das taugt nichts. Was spricht dagegen, das MasterPasswort in eine nur von root leesbare Datei zu schreiben, und diese mittels eines Scriptes "get-passwd" und sudo get-pwasswd nach stdout auszugeben. Die Rechte via sudo so einschänken, daß nur der "richtige" User das Script via sudo ausführen darf. Das macht das ganze dann auch wieder wartbar und vermeidet security by obscurity. Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Am Freitag, 9. Juni 2006 14:18 schrieb Dr. Jürgen Vollmer:
Am Freitag, 9. Juni 2006 14:07 schrieb Al Bogner:
Am Freitag, 9. Juni 2006 13:23 schrieb Dr. Jürgen Vollmer:
Ok wenn das nicht hilft: - Eine Datei mit User/Passwort-Paaren anlegen. diese mit gpg und einem Master-Passwortverschlüsseln. Dann eben im Script diese Datei entschlüssen. Dazu muss man dann aber irgendwie das _eine_ Masterpasswort angeben.
Genau das ist das Problem. Ich habe es so gelöst, dass das PW durch mehrere Variablen definiert ist, die sich an vielen Stellen verteilen, sowie Variabelen verwendet werden, die in die Irre führen. Letztlich hängt es also am root-Passwort und sollte da mal was schief laufen, dann muss man zumindest noch in der richtigen Datei entsprechend suchen, das zumindest ziemlich aufwendig ist.
security by obscurity. Das taugt nichts.
Stimmt schon.
Was spricht dagegen, das MasterPasswort in eine nur von root leesbare Datei zu schreiben, und diese mittels eines Scriptes "get-passwd" und sudo get-pwasswd nach stdout auszugeben. Die Rechte via sudo so einschänken, daß nur der "richtige" User das Script via sudo ausführen darf.
Ich unterstellte, dass sowieso nur root Zugriff auf das Script hat. Deshalb die Anmerkung bzgl. root-pw. Hier geht es um Sicherungen. Die Sicherungen selbst sind symmetrisch gpg-verschlüsselt und das Script zum Zurücksichern auch. Das PW für Rücksicherungsscript hat dann noch mehr als 20 Zeichen, die zufälig sind. Zu guter letzt gibt es dann noch ein bißchen security by obscurity, das schadet ja nicht. Security by obscurity kann IMHO dann Sinn machen, wenn der Anreiz etwas zu entschlüsseln nicht sehr groß ist. Ich denke da an den Fall, wo zB Geschwister ihre Daten gegenseitig schützen und der andere in ein paar Stunden der Abwesenheit keine Chance hat zu neugierig zu sein. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Friday 09 June 2006 14:18 schrieb Dr. Jürgen Vollmer:
Genau das ist das Problem. Ich habe es so gelöst, dass das PW durch mehrere Variablen definiert ist, die sich an vielen Stellen verteilen, sowie Variabelen verwendet werden, die in die Irre führen. Letztlich hängt es also am root-Passwort und sollte da mal was schief laufen, dann muss man zumindest noch in der richtigen Datei entsprechend suchen, das zumindest ziemlich aufwendig ist.
security by obscurity. Das taugt nichts. Was spricht dagegen, das MasterPasswort in eine nur von root leesbare Datei zu schreiben, und diese mittels eines Scriptes "get-passwd" und sudo get-pwasswd nach stdout auszugeben. Die Rechte via sudo so einschänken, daß nur der "richtige" User das Script via sudo ausführen darf.
Was genau hindert den "richtigen" User denn daran das "sudo get-passwd" einfach an der Kommandozeile aufzurufen und die Ausgabe auf einen gelben Zettel auf dem Monitor umzuleiten? Die richtige Sysntax kann er ja recht einfach im Ur-Script lesen. Um das zumindest zu erschweren müsste man im get-passwd Script derart viel Logik und Überprüfungen einbauen, dass die Geschichte nahezu unwartbar wird. Abgesehen davon darf im Ur-Script natürlich das erhaltene Passwort nirgendwo zwischengespeichert werden. Und natürlich auch nicht als Argument an ein anderes Programm übergeben werden.
Das macht das ganze dann auch wieder wartbar und vermeidet security by obscurity.
-- Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 9. Juni 2006 13:12 schrieb Martin Hochreiter:
Keine Ahnung, ob die Passwörter wirklich in der Datei stehen müssen. Aber wie wäre es mit
echo $password | md5sum -
sondern ich will in bash Scripts wo ich Passwörter brauche, diese nicht im Klartext reinschreiben müssen ...
Ich hatte Dich so verstanden: Benutzer geben ein Passwort ein, und das Script vergleicht die beiden hashes. Aber gut, dann nicht. Stattdessen könntest Du einen base64 codierten String im Skript Speichern, den Du bei Bedarf decodierst. Gruß, Oliver -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Ich hatte Dich so verstanden: Benutzer geben ein Passwort ein, und das Script vergleicht die beiden hashes. Aber gut, dann nicht.
Stattdessen könntest Du einen base64 codierten String im Skript Speichern, den Du bei Bedarf decodierst.
Gruß,
Oliver
Hi Oliver! Da kommen wir dem Ganzen schon näher - wie decodiere ich in der shell einen Passwortstring? lg -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
participants (5)
-
Al Bogner
-
Andreas Winkelmann
-
Dr. Jürgen Vollmer
-
Martin Hochreiter
-
Oliver Block