Sambapasswort in bash ändern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
therealchcharlie
Beiträge: 25
Registriert: 12.09.2005 17:05:49

Sambapasswort in bash ändern

Beitrag von therealchcharlie » 25.01.2006 09:38:32

Tja, ich arbeite gerade an einem kleinen script, dass automatisch einige Smabapasswörter ändert. nun meine Fragen:
1. Wie erzeuge ich einen zufälligen, 6-stelligen String (quasi das neue Passwort)?
2.Wie führe ich den Befehel smbpasswd mittels bash automatisch aus? Enter drücken geht ja schlecht...*g*
Danke schonmal...
charlie

darkday
Beiträge: 71
Registriert: 03.11.2005 14:58:03

Beitrag von darkday » 25.01.2006 09:47:45

Code: Alles auswählen

#!/usr/bin/expect -f

# Paramter: 0 - der Username
#       1 - das Paßwort im Klartext
set timeout 2

set password [lindex $argv 1]

spawn passwd [lindex $argv 0]
expect "Enter new UNIX password: "
expect "Retype new UNIX password: "
send "$password\r"
# zweimal auf Retype testen, sonst gehts irgendwie net (Expect Version 5.32.2)
expect "Retype new UNIX password: "
send "$password\r"
expect eof
spawn smbpasswd -a [lindex $argv 0]
expect "password:"
send "$password\r"
expect "password:"
send "$password\r"
expect eof

exec smbpasswd -e [lindex $argv 0]
Also wir machen das so, hat allerdings den Nachteil, dass das Skript das Passwort im Klartext ubertragen bekommt!
Habs jetzt aufgrund der geringen Groesse mal direkt gepostet!

therealchcharlie
Beiträge: 25
Registriert: 12.09.2005 17:05:49

Beitrag von therealchcharlie » 25.01.2006 10:00:06

ist schonmal nicht schlecht, danke. Ich bräuchte aber noch einen zufälligen, sechstelligen String....
charlie

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 25.01.2006 11:41:40

pwgen ist ein Tool, mit dem du zufaellige Passwoerter in beliebiger Laenge erzeugen kannst.

Code: Alles auswählen

pwgen -n 6 1
gee5Fa
Eventuell kannst du noch den Schalter -s benutzen. Ausserdem sind 6 Zeichen schon relativ kurz fuer ein Passwort...

therealchcharlie
Beiträge: 25
Registriert: 12.09.2005 17:05:49

Beitrag von therealchcharlie » 25.01.2006 13:16:29

Ja, das tool ist toll, aber ich kann hier leider nix installieren....gibts nicht eine andere Möglichkeit?
charlie

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von jhr-online » 25.01.2006 13:25:26

Probier mal das:

Code: Alles auswählen

head -c 6 /dev/urandom | md5sum | cut -c 4-10
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

therealchcharlie
Beiträge: 25
Registriert: 12.09.2005 17:05:49

Beitrag von therealchcharlie » 25.01.2006 14:11:53

ja, das funktioniert super, aber noch eine frage:
ich würde das Ergebnis gerne i einer variable speichern

Code: Alles auswählen

pw= head -c 6 /dev/urandom | md5sum | cut -c 4-10
gibt leider das pw aus, speichert es aber nicht zwecks weiterverarbeitung in $pw...
charlie

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von jhr-online » 25.01.2006 14:41:57

Code: Alles auswählen

VARIABLE='head -c 6 /dev/urandom | md5sum | cut -c 4-10'
wenn ich das richtig in Erinnerung hab. Siehe auch: http://www.tldp.org/LDP/abs/html/varassignment.html

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

therealchcharlie
Beiträge: 25
Registriert: 12.09.2005 17:05:49

Beitrag von therealchcharlie » 25.01.2006 15:07:08

danke, super, funktioniert einwandfrei. Aber zur Info, es war:

Code: Alles auswählen

pw=$(head -c 6 /dev/urandom | md5sum | cut -c 4-9
charlie

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 25.01.2006 15:19:24

Backticks waeren auch gegangen:

Code: Alles auswählen

pw=`head -c 6 /dev/urandom | md5sum | cut -c 4-10`
echo $pw
e5eb6ac

Antworten