schmittchen-schleicher
Anmeldungsdatum: 11. Dezember 2007
Beiträge: 49
Wohnort: Bonn
|
Hallo, ist mein Passwort in folgendem Skript sicher aufgehoben, oder kommt man über irgendeine history-Funktion an die alten Werte von ${pwd}? user="meinUser"
read -s -p "Passwort für ${user} :" pwd
<sicherheitsrelevanter Aufruf mit ${user} und ${pwd}>
pwd="blabla"
|
schmittchen-schleicher
(Themenstarter)
Anmeldungsdatum: 11. Dezember 2007
Beiträge: 49
Wohnort: Bonn
|
Wahrscheinlich ist nicht die history der Variablen das Problem, sondern vielmehr ein log-File in dem die Aufrufe des Skrips (incl. Klartext-Passwörter) stehen... Gibt es so ein log-file?! Und wenn ja, wird es beim Runterfahren gelöscht? [EDIT] OK, die Aufrufe stehen also mit Klartext-Passwörtern in (einigen) Log-Dateien... Was wäre die Alternative? Ich führe mehrere Anweisungen aus, die das gleiche Passwort brauchen. Übergebe ich dem Aufruf kein Passwort, so muss ich es für jeden Aufruf eingeben... [/EDIT]
|
d1rk
Anmeldungsdatum: 5. April 2006
Beiträge: 2420
|
Viel interessanter ist die Frage, ob und wie man die Passworteingabe innerhalb eines Schellscripts besser lösen kann
|
schmittchen-schleicher
(Themenstarter)
Anmeldungsdatum: 11. Dezember 2007
Beiträge: 49
Wohnort: Bonn
|
Liegt die Lösung vielleicht sogar weniger in der Eingabe und dem Handling des Passwortes im Skript, sonder eher darin, dass die Aufrufe mit den Klartext-Passwörtern gar nicht erst in log-Files geschrieben werden? Ich bin zu sehr Neuling. Gibt es sowas wie stop logging
Befehle
start logging
|
audax
Anmeldungsdatum: 15. September 2006
Beiträge: 1253
|
Mal davon ausgehend, dass du mit der Bash arbeitest:
OLD_HISTFILE="$HISTFILE"
HISTFILE=''
read -p "Enter password: " -s PASSWORD
HISTFILE="$OLD_HISTFILE"
|
d1rk
Anmeldungsdatum: 5. April 2006
Beiträge: 2420
|
Komisch... $ cat .bash_history
[...]
ping *.*.*.*
dig *.*.*.*
$ read -p "Enter password: " -s PASSWORD
Enter password:
$ echo $PASSWORD
blubb
$ cat .bash_history
[...]
ping *.*.*.*
dig *.*.*.* Loggt das ding überhaupt mit?
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4695
Wohnort: Berlin
|
Wahrscheinlich eher nicht, weil ja auch readline gar nicht verwendet wird, solange man nicht die Option -e bei read angibt.
|
jerik
Anmeldungsdatum: 19. August 2006
Beiträge: 425
|
#!/bin/sh
read -p "Username: " uname
stty -echo
read -p "Password: " passw; echo
stty echo Quelle: http://www.peterbe.com/plog/passwords-with-bash cheers – jerik
|
audax
Anmeldungsdatum: 15. September 2006
Beiträge: 1253
|
du hättest zwei Google-Treffer weiter unten schaun müssen... read -s tut dasselbe, wie 'stty -echo', nur eben temporär.
|
schmittchen-schleicher
(Themenstarter)
Anmeldungsdatum: 11. Dezember 2007
Beiträge: 49
Wohnort: Bonn
|
user="meinUser"
read -s -p "Passwort für ${user} :" pwd
<sicherheitsrelevanter Aufruf mit ${user} und ${pwd}>
pwd="blabla" Das Problem ist ja nicht, dass das Passwort bei der Eingabe zu sehen ist. Das regelt ja die Option -s (silent) von read.
Und durch das Überschreiben der Variable pwd am Ende des Skripts kann auch niemand deren ursprünglichen Inhalt über die Shell abrufen. Das eigentliche Prolem ist doch <sicherheitsrelevanter Aufruf mit ${user} und ${pwd}> z.B. ein mount-Befehl. Der steht dann doch im Klartext incl. Passwort in der/den Logdatei(en) [EDIT]audax hat geschrieben: Mal davon ausgehend, dass du mit der Bash arbeitest:
OLD_HISTFILE="$HISTFILE"
HISTFILE=''
read -p "Enter password: " -s PASSWORD
HISTFILE="$OLD_HISTFILE"
In $HISTFILE wird ja nur die History der Shell-Befehle gespeichert - oder irre ich? Die ausgeführten mount Befehle werden doch noch in anderen log-Files gespeichert... [/EDIT]
|
audax
Anmeldungsdatum: 15. September 2006
Beiträge: 1253
|
|
schmittchen-schleicher
(Themenstarter)
Anmeldungsdatum: 11. Dezember 2007
Beiträge: 49
Wohnort: Bonn
|
audax hat geschrieben: Ja in welchen denn? Oo
/var/log/auth.log
|
audax
Anmeldungsdatum: 15. September 2006
Beiträge: 1253
|
$ PASSWORD="foofoo"
$ echo $PASSWORD | sudo -S echo foofoo
$ tail -n3 /var/log/auth.log
Jan 23 11:21:46 grimbold sudo: dax : TTY=pts/3 ; PWD=/home/dax/; USER=root ; COMMAND=/bin/echo foofoo
Jan 23 11:21:47 grimbold sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan 23 11:21:47 grimbold sudo: pam_unix(sudo:session): session closed for user root Das Passwort zumindest nicht 😉
|
schmittchen-schleicher
(Themenstarter)
Anmeldungsdatum: 11. Dezember 2007
Beiträge: 49
Wohnort: Bonn
|
jschmitt@yangtse:~$ pwd="geheim"
jschmitt@yangtse:~$ echo $pwd
geheim
jschmitt@yangtse:~$ sudo mount -t cifs -o rw,user=foo,password=${pwd},uid=foo,gid=users,file_mode=0775,dir_mode=0775 //100.100.100.100 /mnt/foo.bar
bad user name "foo"
jschmitt@yangtse:~$ tail -n1 /var/log/auth.log
Jan 23 11:56:34 yangtse sudo: jschmitt : TTY=pts/0 ; PWD=/home/jschmitt ; USER=root ; COMMAND=/bin/mount -t cifs -o rw,user=foo,password=geheim,uid=foo,gid=users,file_mode=0775,dir_mode=0775 //100.100.100.100 /mnt/foo.bar Hier wohl, weil es Teil des mount-Befehls wird
|
Der_Gestreifte
Anmeldungsdatum: 21. Juni 2007
Beiträge: 1261
Wohnort: Nürnberg
|
Und das Log ist bei Dir für alle Welt lesbar? Davon ab, wieso richtest Du nicht einfach einen sudoer (oder einen entsorechenden User_Alias) ein, der das Skript "NOPASSWD" aufrufen darf?
|