Mijn situatie is als volgt. Ik ben bezig met een mailserver op te zetten, hiervoor gebruik ik postfix, postfixadmin en courier, samen met een MySQL database om de users te beheren.
Mijn hele setup werkt prima, maar nu zou ik willen users toevoegen niet alleen via postfixadmin, maar ook via een simpel shellscriptje. Het script dat ik geschreven heb werkt opzich, in de zin dat ik er gegevens mee kan wegschrijven op de juiste plaats in de database, maar het probleem is dat het paswoord dat ik wegschrijf niet in het juiste encryptie is. Postfixadmin schrijft paswoorden weg in md5crypt encryptie, terwijl ik met mijn script niet verder kom dan een gewone MD5 encryptie.
Wat ik dus wil is dat ik met mijn script het paswoord kan omzetten naar een md5crypt'ed paswoord, om het daarna toe te voegen aan de MySQL database, zodat er geen verschil is tussen een user die door postfixadmin toegevoegd werd en een user die door mijn script toegevoegd werd. Ik kan dan wel postfixadmin wijsmaken dat hij een MD5 encryptie moet gebruiken, waardoor het probleem ook zou opgelost zijn, ware het niet dat courier geen gewone MD5 ondersteunt, waardoor pop3 authenticatie dus niet werkt.
Ik ben nog maar pas bezig met linux, dus mijn kennis is behoorlijk beperkt (drie weken geleden wist ik niet wat ls -a deed), maar hier is hoever ik gekomen ben:
(Het script stelt enkele vragen waarvan het antwoord niet gebruikt word, dit is omdat ik van plan ben nog andere dingen er mee te doen, maar dat doet niet ter zake. Verder weet ik dat het waarschijnlijk verre van optimaal werkt, maar ook dat is mijn vraag niet. Het is een WIP.)
Wat ik dus wil is dat de variabele 'userpassword' omgezet word naar een md5crypt'ed paswoord.
Ik heb al heel wat zitten googelen, maar heb niks gevonden.
Mijn hele setup werkt prima, maar nu zou ik willen users toevoegen niet alleen via postfixadmin, maar ook via een simpel shellscriptje. Het script dat ik geschreven heb werkt opzich, in de zin dat ik er gegevens mee kan wegschrijven op de juiste plaats in de database, maar het probleem is dat het paswoord dat ik wegschrijf niet in het juiste encryptie is. Postfixadmin schrijft paswoorden weg in md5crypt encryptie, terwijl ik met mijn script niet verder kom dan een gewone MD5 encryptie.
Wat ik dus wil is dat ik met mijn script het paswoord kan omzetten naar een md5crypt'ed paswoord, om het daarna toe te voegen aan de MySQL database, zodat er geen verschil is tussen een user die door postfixadmin toegevoegd werd en een user die door mijn script toegevoegd werd. Ik kan dan wel postfixadmin wijsmaken dat hij een MD5 encryptie moet gebruiken, waardoor het probleem ook zou opgelost zijn, ware het niet dat courier geen gewone MD5 ondersteunt, waardoor pop3 authenticatie dus niet werkt.
Ik ben nog maar pas bezig met linux, dus mijn kennis is behoorlijk beperkt (drie weken geleden wist ik niet wat ls -a deed), maar hier is hoever ik gekomen ben:
(Het script stelt enkele vragen waarvan het antwoord niet gebruikt word, dit is omdat ik van plan ben nog andere dingen er mee te doen, maar dat doet niet ter zake. Verder weet ik dat het waarschijnlijk verre van optimaal werkt, maar ook dat is mijn vraag niet. Het is een WIP.)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| # Gegevens inlezen echo "Geef de volledige naam in van de user" read fullname echo "Geef de naam in die de user zal gebruiken om in te loggen via FTP, gevolgd door enter" read username echo "Geef het paswoord in dat de user zal gebruiken om in te loggen via FTP, gevolgd door enter" read userpassword echo "Geef de grootte van de voor de user beschikbare webspace in MB" read webspace echo "Geef het domein van de user in in het formaat domein.tld, gevolgd door enter" read userdomain echo "" # Gegevens controleren echo "Je gaf als naam $fullname in" echo "Je gaf als gebruikersnaam $username in" echo "Je gaf als paswoord $userpassword in" echo "Je gaf als grootte van de webspace $webspace MB in" echo "Je gaf als domein $userdomain in" echo "" echo "Zijn bovenstaande gegevens correct? y gevolgd door enter om verder te gaan, n gevolgd door enter om het script te stoppen en opnieuw te beginnen" read confirmation if [ $confirmation == y ] then # Tijdelijke MySQL file maken voor mail echo "INSERT INTO \`postfix\`.\`mailbox\` ( \`username\` , \`password\` , \`name\` , \`maildir\` , \`quota\` , \`local_part\` , \`domain\` , \`created\` , \`modified\` , \`active\` ) VALUES ( '$username@$userdomain', '$username', '$fullname', '$username@$userdomain', '0', '$username', '$userdomain', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '1' );" > mail.sql echo "INSERT INTO \`postfix\`.\`log\` ( \`timestamp\` , \`username\` , \`domain\` , \`action\` , \`data\` ) VALUES ( '0000-00-00 00:00:00', 'dieter@ubuntu.be', 'ubuntu.be', 'create_mailbox', '' );" >> mail.sql echo "INSERT INTO \`postfix\`.\`domain\` ( \`domain\` , \`description\` , \`aliases\` , \`mailboxes\` , \`maxquota\` , \`quota\` , \`transport\` , \`backupmx\` , \`created\` , \`modified\` , \`active\` ) VALUES ( '$userdomain', '$username''s domein', '10', '10', '10', '0', 'virtual', '0', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '1' );" >> mail.sql mysql -uroot -ppaswoord postfix < mail.sql rm -rf ./mail.sql mkdir /var/mail/vmail/$username@$userdomain else echo "probeer opnieuw" fi |
Wat ik dus wil is dat de variabele 'userpassword' omgezet word naar een md5crypt'ed paswoord.
Ik heb al heel wat zitten googelen, maar heb niks gevonden.
[ Voor 4% gewijzigd door Verwijderd op 13-02-2009 11:18 ]