<body id=bd><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d7145547\x26blogName\x3dESZhang+blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dSILVER\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://zenac.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://zenac.blogspot.com/\x26vt\x3d-3568594152195074986', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

 ESZhang blog

บันทึก ความทรงจำ บ่น ระบาย เหตุบ้านการเมือง ไปๆมาๆ กล้องกับการถ่ายรูป กับงานสุดรัก คอมพิวเตอร์งัย

Squirrelmail - Thai Encoding

หลังจากวันศุกร์ที่แล้วผมได้เริ่มติดตั้งและใช้งาน mail server ตัวใหม่ของบริษัทซึ่งระบบของมันคือ
RHEL4 (NOS) + Exim (MTA) + Spamassasin (Spam fillter) + Dovecot (Mail box IMAP, POP3) + Squirrelmail (Web base client)
ปัญหาที่เจอหลักๆเลยคือ
  • Squirrelmail version 1.4.8 เป็นต้นมาภาษาไทยมีการแปลไม่ถึง 50% ครับเลยถูกตัดออกไป แต่ไม่เป็นไรใช้หน้าจอภาษาอังกฤษได้ ยังไม่รีบ
  • ระบบมีการช้าเป็นพักๆ (บางทีมีตายด้วย) เอ่อหาสาเหตุยากแฮะไม่รู้ว่าเป็นที่ตรงใหนยังสรุปไม่ได้ ผ่านไปก่อนยังเอาสีข้างถูไถให้ตัวมันรอดไปพลางๆก่อนได้
  • หัวข้อ (Subject) ที่เป็นภาษาไทยที่ส่งมาจาก Hotmail หรือ Outlook หรือ Outlook Express อ่านไม่ได้ เวรละครับ Gmail ไม่เป็น Yahoo ไม่เป็น Thunderbird ไม่เป็น มันอะไรกันละเนี่ย (อันนี้เร่งด่วน)
ครับเรื่องเร่งด่วนต้องทำก่อน มาหาสาเหตุกันก่อน เริ่มแรกเปิด Full header ดูกันเลยได้ผลเป็นอย่างนี้
Subject:=?windows-874?B?t7TKzbrgw9fozafL0cfA0snS5LfCIM3RubnV6ajSoSBIb3RtYWls?=
เห็นอะไรมั้ย Subject encode มันเป็น windows-874 ซึ่งจริงๆแล้วก็เป็นตัวเดียวกับ TIS-620 นั่นแหละแต่ไม่รู้ว่าพี่ท่านจะตั้งชื่อมันใหม่ทำไม เอาละสิปัญหามันมีอยู่ว่าเจ้า encode ที่ว่าเนี่ย squirrelmail ไม่มีตัว decode ให้แต่ผมบอกแล้วใช่มั้ยว่ามันตัวเดียวกันกับที่มีอยู่ ก็ง่ายๆครับคือค่าเริ่มต้นของ squirrelmail ที่มีมาให้จะเป็น th_TH.UTF-8 ก็เปลี่ยนเป็น th_TH.TIS-620 ซะซึ่งๆกันอย่างนี้แหละเรียบร้อย ทดสอบแล้วผ่านครับ
Monday, December 11, 2006 at 13:51

LDAP Howto Generate userPassword

หายไปเป็นชาติกับการติดตั้ง LDAP Server ของผมตอนนี้กลับมาแล้วครับอย่างด่วน
เพราพี่ท่านเจ้านายสุดที่รัก สั่งมาว่า "...จะปีนึงแล้วนะน้อง จะได้ใช้หรือยังเนี่ยหา..." T_T
Project ข้ามชาติจริงๆผม เอ้ามาดูความคืบหน้าของวันนี้กัน

คือว่าเจ้า LDAP Server เนี่ยมันเป็นส่วนทำงานเบื้องหลังใช่มั้ย แล้วส่วนใหญ่คนที่จะทำงานกับมัน
ก็แอดมินอย่างผมเนี่ยแหละเพราะฉะนั้น ส่วนติดต่อกับผู้ใช้ มันก็ลำบากสำหรับคนใช้งานทั่วๆไป
เอาละสิปัญหามันอยู่ที่ว่า ผู้ใช้ต้องเปลี่ยนรหัสผ่านได้ด้วยตัวเอง ทำอย่างไรดีหล่ะ มันมีตัวเลือกง่ายๆ
1. ก็สอนผู้ใช้ให้รู้จัก phpLDAPAdmin สิเปลี่ยนเองก็ได้
2. หาที่เค้ามีอยู่แล้วมาใช้
3. สร้างส่วนติดต่อขึ้นมาใหม่ให้ใช้งานได้ง่าย
ข้อแรกแหะๆ ผมว่าผ่านไปเถอะครับ ร้อยพ่อพันแม่ กันซะขนาดนั้น แถมบุญเก่า กรรมใหม่ ของแต่ละคนยังไม่เท่ากัน
ทำใหม่ยังง่ายซะกว่าจริงนะเอ้า ลองอิมพลีเมนท์ระบบใหม่ๆ กับพนักงานเก่าๆ ในโครงสร้างบริษัทขนาดกลางๆดูสิครับ
แล้วจะรู้ว่ามันยากส์จริงๆ
มาดูข้อต่อไปกัน เอ่อแบบว่าพยายามหาแล้วนะ แต่ก็เอาเถอะ หาไม่เจอจริงๆเฮ้อ
เอ้าเขียนกันขึ้นมาใหม่เลยแล้วกัน ก็ไม่มีอะไรยากมากครับ
ทำหน้าจอตรวจสอบรหัสเก่า ต่อเชื่อมกับเครื่องแม่ข่าย แล้วก็ใส่ค่าลงไป
แค่นี้เองไม่ซับซ้อน หน้าจอเดียวทำงานอย่างเดียว จบได้ในตัวมันเอง
Attribute ที่เกี่ยวข้อง
userPassword = {HASH}crypted-string
sambaLMPassword = Digest::MD4
sambaNTPassword = Digest::MD4
sambaPwdMustChange = Unix Time
การจะสร้างค่าของ userPassword เราจะใช้คำสั่ง slappasswd -h {HASH} -s secret อย่างนี้
# slappasswd -h {MD5} -s password

ส่วนค่าของ sambaLMPassword กับ sambaNTPassword นั้นเอามาจากคำสั่ง mkntpwd -L secret -N secret
# mkntpwd -L password -N password

sambaPwdMustChange เป็น Unix Time เริ่มนับกันเป็นวินาทีตั้งแต่ วันที่ 1 มกราคม 1979 เวลา 00:00:00 ครับ
เราหาค่า Unix time ได้ด้วยคำสั่งนี้ date --date="string date" +%s
# date --date="15 Jan 2007" +%s

แต่ช้าก่อนผมมีวิธีที่ง่ายกว่านั้นอิอิอิ
smbldap-passwd สิครับทำให้หมดทุกอย่าง ทั้งคำนวนวันหมดอายุและจัดการเรื่อง Policy แต่ว่ามันต้องรอให้ผู้ใช้ใส่รหัสผ่านเองสองครั้ง
ส่งรหัสผ่านเข้าไปตรงๆไม่ได้ เรามีวิธีแก้ครับง่ายๆ สร้างไฟล์คำสั่งขึ้นมาแบบนี้

#!/bin/bash
smbldap-passwd $1 << EOF
$2
$2
EOF

ผมตั้งชื่อ Shell script นี้ว่า chpwdldap.bash เวลาจะใช้ก็ง่ายๆเรียกกันตรงๆเลย
# chpwdldap.bash username password
เล่นกันซึ่งๆถึกๆแต่สะดวกนะคร้าบ
Friday, December 01, 2006 at 15:46

My Profile

 My name: Zena
My Home: Klongsamwa, Bangkok, Thailand

View my complete profile


Copyright © 2005 for Blogger by Blogger Templates Inc. All rights reserved.