<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SpaLinux.com &#187; ldap</title>
	<atom:link href="http://spalinux.com/category/ldap/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>Resources for Relaxing Linux System Administrators</description>
	<lastBuildDate>Mon, 26 Jul 2010 09:51:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ติดตั้ง OpenLDAP Server บน Fedora 13</title>
		<link>http://spalinux.com/2010/07/install_openldap_server_on_fedora_13</link>
		<comments>http://spalinux.com/2010/07/install_openldap_server_on_fedora_13#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:19:45 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[fedora 13]]></category>
		<category><![CDATA[openldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1126</guid>
		<description><![CDATA[การเปลี่ยนแปลงอย่างหนึ่งใน Fedora เวอร์ชั่นหลังๆ คือการเปลี่ยนวิธีการคอนฟิก OpenLDAP ซึ่งจะเป็นรูปแบบใหม่ที่มีมาตั้งแต่ OpenLDAP เวอร์ชั่น 2.3 เป็นต้นมา แต่ทาง Fedora เพิ่งเริ่มนำมาใช้ แบบเก่าไฟล์คอนฟิกหลักจะอยู่ในไฟล์ /etc/openldap/slapd.conf แต่แบบใหม่คอนฟิกจะถูกเก็บแยกเป็นไฟล์ LDIF เป็นโครงสร้างอยู่ในไดเร็คทอรี /etc/openldap/slapd.d/ และเมื่อรันเซอร์วิส ไฟล์เหล่านี้จะถูกอ่านเข้าไปใน LDAP เลย ซึ่งทำให้เราสามารถแก้ไขคอนฟิกเซิร์ฟเวอร์ ได้ เหมือนกับการแก้ไขข้อมูลอื่นๆ ใน LDAP รายละเอียดเพิ่มเติมหาอ่านได้จาก ข้อมูลอ้างอิง Configuring slapd เพื่อความสะดวก ทางทีมพัฒนา OpenLDAP ได้สร้างคำสั่ง slaptest เพื่อใช้ในการเปลี่ยนคอนฟิกแบบเก่าไฟล์เดียว ให้เป็นรูปแบบใหม่ได้ ในบทความนี้จะแสดงขั้นตอนการติดตั้งและคอนฟิก OpenLDAP บนเครื่อง Fedora 13 (x86_64) ติดตั้ง openldap ใช้คำสั่ง rpm เพื่อตรวจสอบการติดตั้ง openldap ว่ามีอยู่แล้วหรือไม่ [root@fc13-64a ~]# rpm [...]]]></description>
			<content:encoded><![CDATA[<p>การเปลี่ยนแปลงอย่างหนึ่งใน Fedora เวอร์ชั่นหลังๆ คือการเปลี่ยนวิธีการคอนฟิก OpenLDAP ซึ่งจะเป็นรูปแบบใหม่ที่มีมาตั้งแต่ OpenLDAP เวอร์ชั่น 2.3 เป็นต้นมา แต่ทาง Fedora เพิ่งเริ่มนำมาใช้</p>
<p>แบบเก่าไฟล์คอนฟิกหลักจะอยู่ในไฟล์ /etc/openldap/slapd.conf แต่แบบใหม่คอนฟิกจะถูกเก็บแยกเป็นไฟล์ LDIF เป็นโครงสร้างอยู่ในไดเร็คทอรี /etc/openldap/slapd.d/ และเมื่อรันเซอร์วิส ไฟล์เหล่านี้จะถูกอ่านเข้าไปใน LDAP เลย ซึ่งทำให้เราสามารถแก้ไขคอนฟิกเซิร์ฟเวอร์ ได้ เหมือนกับการแก้ไขข้อมูลอื่นๆ ใน LDAP</p>
<p>รายละเอียดเพิ่มเติมหาอ่านได้จาก ข้อมูลอ้างอิง Configuring slapd</p>
<p>เพื่อความสะดวก ทางทีมพัฒนา OpenLDAP ได้สร้างคำสั่ง slaptest เพื่อใช้ในการเปลี่ยนคอนฟิกแบบเก่าไฟล์เดียว ให้เป็นรูปแบบใหม่ได้</p>
<p>ในบทความนี้จะแสดงขั้นตอนการติดตั้งและคอนฟิก OpenLDAP บนเครื่อง Fedora 13 (x86_64)</p>
<p><span id="more-1126"></span></p>
<h4>ติดตั้ง openldap</h4>
<p>ใช้คำสั่ง rpm เพื่อตรวจสอบการติดตั้ง openldap ว่ามีอยู่แล้วหรือไม่</p>
<pre>[root@fc13-64a ~]# <strong>rpm -qa | grep openldap
</strong>openldap-2.4.21-4.fc13.x86_64</pre>
<p>เพื่อจะคอนฟิกเป็นเซิร์ฟเวอร์ได้ ต้องติดตั้งไฟล์ rpm เพิ่มเติม บางไฟล์หาได้จากแผ่นดีวีดีติดตั้ง</p>
<pre>[root@fc13-64a ~]# <strong>mount /dev/scd0 /media
</strong>mount: block device /dev/sr0 is write-protected, mounting read-only
[root@fc13-64a ~]# <strong>cd /media/Packages/</strong></pre>
<pre>[root@fc13-64a Packages]# <strong>rpm -i libtool-ltdl-2.2.6-20.fc13.x86_64.rpm
</strong>[root@fc13-64a Packages]# <strong>rpm -i openldap-clients-2.4.21-4.fc13.x86_64.rpm</strong></pre>
<p>ดาวน์โหลดไฟล์เพิ่มเติมจาก fc13 Everything แล้วติดตั้ง</p>
<pre>[root@fc13-64a Everything]# <strong>rpm -i openldap-servers-2.4.21-4.fc13.x86_64.rpm</strong></pre>
<p>ไฟล์คอนฟิกดีฟอลต์ของ OpenLDAP จะถูกติดตั้งอยู่ใน /etc/openldap/</p>
<pre>[root@fc13-64a ~]# <strong>cd /etc/openldap/</strong></pre>
<pre>[root@fc13-64a openldap]# <strong>ls -l
</strong>total 24
drwxr-xr-x. 2 root root 4096 Feb 24 16:19 cacerts
-rw-r--r--. 1 root root  245 Feb 24 16:19 ldap.conf
drwxr-xr-x  3 root root 4096 Jul 16 20:37 schema
-rw-r-----  1 root ldap 4153 Feb 24 16:19 slapd.conf.bak
drwx------  3 ldap ldap 4096 Jul 16 20:37 slapd.d</pre>
<h4>รันเซอร์วิส</h4>
<p>ใช้คำสั่ง service เพิ่มรัน slapd (OpenLDAP server)</p>
<pre>[root@fc13-64a ~]# <strong>service slapd start
</strong>/var/lib/ldap/__db.004<span style="color: #ff0000;"> is not owned by "ldap" </span>             [WARNING]
/var/lib/ldap/__db.001 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.002 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.006 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.005 is not owned by "ldap"              [WARNING]
/var/lib/ldap/alock is not owned by "ldap"                 [WARNING]
/var/lib/ldap/__db.003 is not owned by "ldap"              [WARNING]
ln: accessing `/var/run/openldap/slapd.pid': No such file or directory</pre>
<p>มีข้อผิดพลาดฟ้องเรื่อง permission ไม่ถูกต้อง</p>
<pre>[root@fc13-64a ~]# <strong>ls -l /var/lib/ldap/
</strong>total 884
-rw------- 1 <span style="color: #ff0000;">root root</span>   2048 Jul 16 20:37 alock
-rw------- 1 root root  24576 Jul 16 20:37 __db.001
-rw------- 1 root root 212992 Jul 16 20:37 __db.002
-rw------- 1 root root 270336 Jul 16 20:37 __db.003
-rw------- 1 root root 163840 Jul 16 20:37 __db.004
-rw------- 1 root root 802816 Jul 16 20:37 __db.005
-rw------- 1 root root  32768 Jul 16 20:37 __db.006</pre>
<p>ใช้คำสัง chown เพื่อเปลี่ยนเจ้าของไฟล์ (owner)</p>
<pre>[root@fc13-64a ldap]# <strong>chown ldap.ldap *
</strong>[root@fc13-64a ldap]# <strong>ls -l
</strong>total 884
-rw------- 1 <span style="color: #0000ff;">ldap ldap   </span>2048 Jul 16 20:37 alock
-rw------- 1 ldap ldap  24576 Jul 16 20:37 __db.001
-rw------- 1 ldap ldap 212992 Jul 16 20:37 __db.002
-rw------- 1 ldap ldap 270336 Jul 16 20:37 __db.003
-rw------- 1 ldap ldap 163840 Jul 16 20:37 __db.004
-rw------- 1 ldap ldap 802816 Jul 16 20:37 __db.005
-rw------- 1 ldap ldap  32768 Jul 16 20:37 __db.006</pre>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิสอีกครั้ง</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd start
</strong>Starting slapd:                                            [  OK  ]</pre>
<p>ใช้คำสั่ง ps เพื่อตรวจสอบ process</p>
<pre>[root@fc13-64a ldap]# <strong>ps -ef | grep ldap
</strong>ldap     22636     1  0 21:18 ?        00:00:00 /usr/sbin/slapd -h  ldap:/// -u ldap</pre>
<p>ใช้คำสั่ง service เพื่อปิดเซอร์วิส</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<p>แล้วทดลองรันเซอร์วิสอีกครั้ง จะมีข้อความฟ้องเรื่อง performance</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd start
</strong>Checking configuration files for slapd:                    [WARNING]
<span style="color: #ff0000;">bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=my-domain,dc=com".
</span>config file testing succeeded
Starting slapd:                                            [  OK  ]</pre>
<p>ปิดเซอร์วิสอีกครั้ง</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<p>เพื่อปรับปรุงเรื่อง performance ต้องสร้างไฟล์ DB_CONFIG  จากตัวอย่างไฟล์ใน /usr/share/doc/openldap-servers-2.4.21/</p>
<pre>[root@fc13-64a ldap]# <strong>cp /usr/share/doc/openldap-servers-2.4.21/DB_CONFIG.example DB_CONFIG
</strong>[root@fc13-64a ldap]# <strong>chown ldap.ldap DB_CONFIG
</strong>[root@fc13-64a ldap]# <strong>chmod 600 DB_CONFIG</strong></pre>
<p>ทดสอบการเปิด/ปิด เซอร์วิส ครั้งแรกจะมีฟ้องว่า มีการปรับเปลี่ยนคอนฟิก แล้วหลังจากนั้นก็สามารถรันได้ตามปกติ</p>
<pre>[root@fc13-64a ldap]# <strong>service slapd start
</strong>Checking configuration files for slapd:                    [WARNING]
<span style="color: #0000ff;">bdb_db_open: DB_CONFIG for suffix "dc=my-domain,dc=com" has changed.
Performing database recovery to activate new settings.
</span>bdb_db_open: database "dc=my-domain,dc=com": recovery skipped in read-only mode. Run manual recovery if errors are encountered.
config file testing succeeded
Starting slapd:                                            [  OK  ]</pre>
<pre>[root@fc13-64a ldap]# <strong>service slapd stop</strong>
Stopping slapd:                                            [  OK  ]</pre>
<pre>[root@fc13-64a ldap]# <strong>service slapd start</strong>
Starting slapd:                                            [  OK  ]</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2009/05/install_openldap_server_on_fedora_10">ติดตั้ง OpenLDAP Server บน Fedora 10</a></li>
<li><a href="http://www.openldap.org/doc/admin24/slapdconf2.html" target="_blank">OpenLDAP Software 2.4 Administrator&#8217;s Guide: Configuring slapd</a></li>
<li><a href="http://www.mirror.in.th/osarchive/fedora/releases/13/Everything/x86_64/os/Packages/" target="_blank">Fedora 13 x86_64 Everything</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/07/install_openldap_server_on_fedora_13/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง OpenLDAP Server บน Fedora 10</title>
		<link>http://spalinux.com/2009/05/install_openldap_server_on_fedora_10</link>
		<comments>http://spalinux.com/2009/05/install_openldap_server_on_fedora_10#comments</comments>
		<pubDate>Fri, 15 May 2009 17:40:15 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[ldap]]></category>
		<category><![CDATA[openldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=649</guid>
		<description><![CDATA[บทความนี้ขอปรับปรุงเนื้อหาการติดตั้ง OpenLDAP Server เพื่อติดตั้งบน Fedora 10 ที่ ติดตั้ง Fedora 10 แบบประหยัดพื้นที่สุด  และเตรียมความพร้อมคอนฟิกบางส่วของเซิร์ฟเวอร์สำหรับติดตั้ง Samba และคอนฟิกเป็น Domain Controller ต่อไป จากการติดตั้งแบบประหยัดพื้นที่สุดจะมี openldap ที่เป็นเฉพาะในส่วน library ที่จำเป็นในการใช้งานเท่านั้น สามารถตรวจสอบ package openldap ได้โดยใช้คำสั่ง rpm [root@fc10-pdc ~]# rpm -qa &#124; grep openldap openldap-2.4.12-1.fc10.x86_64 เพื่อจะทำหน้าที่เป็น OpenLDAP Server จำเป็นต้องลง package เพิ่มเติม ไฟล์ rpm สองไฟล์มีอยู่ในแผ่น DVD ติดตั้งแล้ว สามารถ mount แล้วติดตั้งได้เลย [root@fc10-pdc ~]# mount /dev/scd0 /media/ mount: block device [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้ขอปรับปรุงเนื้อหาการติดตั้ง OpenLDAP Server เพื่อติดตั้งบน Fedora 10 ที่ <a href="http://spalinux.com/2008/12/install_minimal_fedora_10">ติดตั้ง Fedora 10 แบบประหยัดพื้นที่สุด</a>  และเตรียมความพร้อมคอนฟิกบางส่วของเซิร์ฟเวอร์สำหรับติดตั้ง Samba และคอนฟิกเป็น Domain Controller ต่อไป</p>
<p><span id="more-649"></span></p>
<p>จากการติดตั้งแบบประหยัดพื้นที่สุดจะมี openldap ที่เป็นเฉพาะในส่วน library ที่จำเป็นในการใช้งานเท่านั้น สามารถตรวจสอบ package openldap ได้โดยใช้คำสั่ง rpm</p>
<pre>[root@fc10-pdc ~]# <strong>rpm -qa | grep openldap</strong>
openldap-2.4.12-1.fc10.x86_64</pre>
<p>เพื่อจะทำหน้าที่เป็น OpenLDAP Server จำเป็นต้องลง package เพิ่มเติม ไฟล์ rpm สองไฟล์มีอยู่ในแผ่น DVD ติดตั้งแล้ว สามารถ mount แล้วติดตั้งได้เลย</p>
<pre>[root@fc10-pdc ~]# <strong>mount /dev/scd0 /media/
</strong>mount: block device /dev/sr0 is write-protected, mounting read-only</pre>
<pre>[root@fc10-pdc ~]# <strong>rpm -i  /media/package/openldap-clients-2.4.12-1.fc10.x86_64.rpm
</strong>[root@fc10-pdc ~]# <strong>rpm -i  /media/package/libtool-ltdl-1.5.26-4.fc10.x86_64.rpm</strong></pre>
<pre>[root@fc10-pdc ~]# <strong>umount /media/</strong></pre>
<p>อีก package หนึ่ง ที่จำเป็นคือ openldap-servers ต้องดาวน์โหลดมาจาก Fedora 10 Everything  ไฟล์ชื่อ openldap-servers-2.4.12-1.fc10.x86_64.rpm</p>
<p>ใช้คำสั่ง rpm เพื่อติดตั้ง openldap-servers</p>
<p>จะมีข้อความขึ้นบนหน้าจอ ซึ่งเป็นการสร้างคีย์ต่างๆ เพื่อความปลอดภัยของข้อมูล</p>
<pre>[root@fc10-pdc ~]# <strong>rpm -i openldap-servers-2.4.12-1.fc10.x86_64.rpm
</strong>/etc/pki/tls/certs /
umask 77 ; \
        PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        /usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
        cat $PEM1 &gt;  slapd.pem ; \
        echo ""    &gt;&gt; slapd.pem ; \
        cat $PEM2 &gt;&gt; slapd.pem ; \
        rm -f $PEM1 $PEM2
Generating a 1024 bit RSA private key
..................++++++
....................++++++
writing new private key to '/tmp/openssl.QqH8Pr'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:State or Province Name (full name) [Berkshire]:Locality Name (eg, city) [Newbury]:Organization Name (eg, company) [My Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []:/</pre>
<p>หลังจากติดตั้งแล้ว สามารถตรวจสอบเวอร์ชั่นของไฟล์ rpm ที่ติดตั้งได้ ดังนี้</p>
<pre>[root@fc10-pdc ~]# <strong>rpm -qa | grep openldap
</strong>openldap-2.4.12-1.fc10.x86_64
openldap-clients-2.4.12-1.fc10.x86_64
openldap-servers-2.4.12-1.fc10.x86_64</pre>
<h4>แก้ไขคอนฟิกไฟล์ /etc/openldap/slapd.conf</h4>
<p>ก่อนที่จะเริ่มแก้ไขไฟล์คอนฟิก ต้องรันคำสั่ง spappasswd เพื่อเข้ารหัส Root PW แล้วนำผลลัพธ์ที่ได้ไปใส่ไว้ส่วนของคอนฟิก rootpw ในไฟล์ slapd.conf โดยรหัสนี้จะใช้เมื่อต้องการแก้ไขข้อมูลที่อยู่ใน LDAP เช่นเพิ่ม แก้ไข ลบ ข้อมูล</p>
<p>ตัวอย่างการรันคำสั่ง spappasswd</p>
<pre>[root@fc10-pdc ~]# <strong>slappasswd
</strong>New password:
Re-enter new password:
<span style="color: #0000ff;">{SSHA}fFeU/EgRu6B9dbg7dlo4sxcUu19IMWJ2</span></pre>
<p>ไฟล์คอนฟิกหลักของ OpenLDAP Server คือไฟล์ /etc/openldap/slapd.conf ในเบื้องต้นจะต้องมีการแก้ไขบางส่วนก่อนที่จะเริ่มใช้งานได้ ในที่นี้จะสมมติข้อมูลเบื้องต้นสำหรับการคอนฟิก OpenLDAP Server เป็นดังนี้ โดยแสดงเฉพาะส่วนที่เพิ่มเติมเท่านั้น</p>
<pre>[root@fc10-pdc ~]# <strong>cat /etc/openldap/slapd.conf
</strong>...
include         /etc/openldap/schema/samba.schema
...
database        bdb
suffix          "dc=fc10-ldap,dc=com"
rootdn          "uid=root,ou=People,dc=fc10-ldap,dc=com"
rootpw          <span style="color: #0000ff;">{SSHA}fFeU/EgRu6B9dbg7dlo4sxcUu19IMWJ2
</span>...</pre>
<h4>รันเซอร์วิส ldap</h4>
<p>ใช้คำสั่ง service start เพื่อรันเซอร์วิส openldap</p>
<pre>[root@fc10-pdc ~]# <strong>service ldap start
</strong>Starting slapd:                                            [  OK  ]</pre>
<p>ตรวจสอบ process ที่รัน</p>
<pre>[root@fc10-pdc ~]# <strong>ps -ef | grep ldap
</strong>ldap      3064     1  0 17:13 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -u ldap</pre>
<p>ถึงจุดนี้ OpenLDAP Server สามารถใช้งานได้แล้ว แต่ที่จริงต้องมีไฟล์คอนฟิกเพิ่มเติม เพื่อเพิ่มประสิทธิภาพในการค้นหาข้อมูลใน LDAP</p>
<p>ทดสอบโดยใช้คำสั่ง service stop เพื่อปิดเซอร์วิส openldap และใช้คำสั่ง service start อีกครั้ง จะมีข้อความฟ้องเตือนเรื่องเกี่ยวกับ performance</p>
<pre>[root@fc10-pdc ~]# <strong>service ldap stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<pre>[root@fc10-pdc ~]# <strong>service ldap start
</strong>Checking configuration files for slapd:                    [WARNING]
<span style="color: #ff0000;">bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=fc10-ldap,dc=com".
</span>config file testing succeeded
Starting slapd:                                            [  OK  ]</pre>
<pre>ตรวจสอบไฟล์ที่อยู่ใน /var/lib/ldap/</pre>
<pre>[root@fc10-pdc ~]# c<strong>d /var/lib/ldap/
</strong>[root@fc10-pdc ldap]# <strong>ls -l</strong>
total 964
-rw-r--r-- 1 ldap ldap     2048 2009-05-15 17:14 alock
-rw------- 1 ldap ldap    24576 2009-05-15 17:13 __db.001
-rw------- 1 ldap ldap   188416 2009-05-15 17:13 __db.002
-rw------- 1 ldap ldap   270336 2009-05-15 17:13 __db.003
-rw------- 1 ldap ldap    98304 2009-05-15 17:13 __db.004
-rw------- 1 ldap ldap   729088 2009-05-15 17:13 __db.005
-rw------- 1 ldap ldap    32768 2009-05-15 17:13 __db.006
-rw------- 1 ldap ldap     8192 2009-05-15 17:13 dn2id.bdb
-rw------- 1 ldap ldap    32768 2009-05-15 17:13 id2entry.bdb
-rw------- 1 ldap ldap 10485760 2009-05-15 17:14 log.0000000001</pre>
<p>ถึงแม้จะใช้งาน OpenLDAP Server ได้ แต่แนะนำให้ copy ไฟล์ DB_CONFIG มาใส่ไว้ใน /var/lib/ldap/ ด้วย ซึ่งมีตัวอย่างไฟล์อยู่แล้วใน /usr/share/doc/openldap-servers-2.4.12/</p>
<p>ใช้คำสั่ง service stop เพื่อปิดเซอร์วิส openldap ก่อน copy ไฟล์</p>
<pre>[root@fc10-pdc ldap]# <strong>service ldap stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<p>copy ไฟล์ DB_CONFIG.sample และเปลี่ยนชื่อไฟล์เป็น DB_CONFIG พร้อมเปลี่ยน owner, group, permission ของไฟล์ด้วย</p>
<pre>[root@fc10-pdc ldap]# <strong>cp /usr/share/doc/openldap-servers-2.4.12/DB_CONFIG.example DB_CONFIG
</strong>[root@fc10-pdc ldap]# <strong>chown ldap.ldap DB_CONFIG
</strong>[root@fc10-pdc ldap]# <strong>chmod 600 DB_CONFIG</strong></pre>
<p>ใช้คำสั่ง service start เพื่อรันเซอร์วิส openldap อีกครั้ง ก็ยังมีข้อความฟ้องเตือนอีก เพราะมีการสร้างไฟล์ index ใหม่</p>
<pre>[root@fc10-pdc ldap]# <strong>service ldap start
</strong>Checking configuration files for slapd:                    [WARNING]
bdb_db_open: DB_CONFIG for suffix "dc=fc10-ldap,dc=com" has changed.
<span style="color: #ff0000;">Performing database recovery to activate new settings.
bdb_db_open: database "dc=fc10-ldap,dc=com": recovery skipped in read-only mode. Run manual recovery if errors are encountered.
</span>config file testing succeeded
Starting slapd:                                            [  OK  ]</pre>
<p>วิธีการแก้ไขคือ stop แล้ว start ใหม่อีกครั้ง ข้อความคำเตือนก็จะหายไป</p>
<pre>[root@fc10-pdc ldap]# <strong>service ldap stop
</strong>Stopping slapd:                                            [  OK  ]</pre>
<pre>[root@fc10-pdc ldap]# <strong>service ldap start
</strong>Starting slapd:                                            [  OK  ]</pre>
<p>ตรวจสอบไฟล์ที่อยู่ใน /var/lib/ldap/ จะมีไฟล์ index ขึ้นมาเพิ่มอีกหลายไฟล์ เพื่อทำให้การค้นหาข้อมูลใน LDAP ได้เร็วขึ้น</p>
<pre>[root@fc10-pdc ldap]# <strong>ls -l
</strong>total 22132
-rw-r--r-- 1 ldap ldap      2048 2009-05-16 00:09 alock
-rw------- 1 ldap ldap     16384 2009-05-15 18:55 cn.bdb
-rw------- 1 ldap ldap     24576 2009-05-15 17:15 __db.001
-rw------- 1 ldap ldap   9093120 2009-05-15 17:15 __db.002
-rw------- 1 ldap ldap 335552512 2009-05-15 17:15 __db.003
-rw------- 1 ldap ldap   2359296 2009-05-15 17:15 __db.004
-rw------- 1 ldap ldap    729088 2009-05-15 17:15 __db.005
-rw------- 1 ldap ldap     32768 2009-05-15 17:15 __db.006
-rw------- 1 ldap ldap       921 2009-05-15 17:15 DB_CONFIG
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 dn2id.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 gidNumber.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:45 givenName.bdb
-rw------- 1 ldap ldap     65536 2009-05-15 18:55 id2entry.bdb
-rw------- 1 ldap ldap  10485760 2009-05-16 00:09 log.0000000001
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 loginShell.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:30 memberUid.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 objectClass.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:30 ou.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:45 sn.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 uid.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 uidNumber.bdb</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/12/install_minimal_fedora_10">ติดตั้ง Fedora 10 แบบประหยัดพื้นที่สุด</a></li>
<li><a href="ftp://www.mirror.in.th./fedora/releases/10/Everything/x86_64/os/Packages/" target="_blank">ดาวน์โหลด Fedora 10 Everything (x86_64)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/05/install_openldap_server_on_fedora_10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คอนฟิกเซอร์วิส nscd</title>
		<link>http://spalinux.com/2008/11/configure_nscd</link>
		<comments>http://spalinux.com/2008/11/configure_nscd#comments</comments>
		<pubDate>Fri, 28 Nov 2008 09:13:12 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[cache]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=348</guid>
		<description><![CDATA[ในกรณีที่คอนฟิกให้ลีนุกซ์ตรวจสอบ user, group (authenticate) จาก LDAP Server ทุกครั้งที่มีการอ้างอิง เช่นการสร้างไฟล์ หรือแสดงรายชื่อไฟล์ด้วยคำสั่ง ls ของ user หรืออื่นๆ ที่เกี่ยวข้องกับ user, group เครื่องจะต้องมีการสอบถามจาก LDAP ทุกครั้ง ทำให้บางครั้งอาจเพิ่มโหลดมากเกินไปบนตัว LDAP Server เพื่อเพิ่มประสิทธิภาพในการตรวจสอบ user, group จาก LDAP แนะนำให้รันเซอร์วิส nscd (name service cache daemon) บนเครื่อง โดยโปรแกรมนี้จะทำหน้าที่เก็บข้อมูล cache ไว้บนเครื่องตัวเอง ถ้าถามซ้ำกับข้อมูลเดิมที่มีอยู่ใน cache แล้ว ภายในระยะเวลาที่กำหนดไว้ (time to live) จะไม่มีการส่งไปถาม LDAP Server อีก ข้อเสียของการรันเซอร์วิส nscd อย่างหนึ่งคือ เรื่องการตั้งค่าเวลา (time to [...]]]></description>
			<content:encoded><![CDATA[<p>ในกรณีที่คอนฟิกให้ลีนุกซ์ตรวจสอบ user, group (authenticate) จาก LDAP Server ทุกครั้งที่มีการอ้างอิง เช่นการสร้างไฟล์ หรือแสดงรายชื่อไฟล์ด้วยคำสั่ง ls ของ user หรืออื่นๆ ที่เกี่ยวข้องกับ user, group เครื่องจะต้องมีการสอบถามจาก LDAP ทุกครั้ง ทำให้บางครั้งอาจเพิ่มโหลดมากเกินไปบนตัว LDAP Server</p>
<p>เพื่อเพิ่มประสิทธิภาพในการตรวจสอบ user, group จาก LDAP แนะนำให้รันเซอร์วิส nscd (name service cache daemon) บนเครื่อง โดยโปรแกรมนี้จะทำหน้าที่เก็บข้อมูล cache ไว้บนเครื่องตัวเอง ถ้าถามซ้ำกับข้อมูลเดิมที่มีอยู่ใน cache แล้ว ภายในระยะเวลาที่กำหนดไว้ (time to live) จะไม่มีการส่งไปถาม LDAP Server อีก</p>
<p>ข้อเสียของการรันเซอร์วิส nscd อย่างหนึ่งคือ เรื่องการตั้งค่าเวลา (time to live) ทำให้บางครั้งอาจไม่ได้ข้อมูลที่ล่าสุด เช่นดีฟอลต์เวลาที่ cache ไว้สำหรับการเก็บข้อมูลของ user คือ 600 วินาที สำหรับการค้นหาข้อมูลที่สำเร็จ (positive-time-to-live) ถ้ามีการเปลี่ยนแปลงข้อมูลของ user บน LDAP Server จะต้องรอจนเวลานี้ผ่านไป  ข้อมูล cache ใน nscd ถึงจะปรับปรุงเป็นข้อมูลใหม่</p>
<p><span id="more-348"></span></p>
<h4>ปรับปรุงเวอร์ชั่น nscd</h4>
<p>ใช้คำสั่ง rpm เพื่อตรวจสอบเวอร์ชั่นของ nscd ที่ติดตั้งอยู่</p>
<pre>[root@ldap-client ~]# <strong>rpm -q nscd</strong>
nscd-2.8-3.i386</pre>
<p>คำแนะนำ ก่อนที่จะรันเซอร์วิส nscd แนะนำให้ปรับปรุงเป็นเวอร์ชั่นล่าสุด เช่น Fedora 9 เวอร์ชั่นล่าสุดที่เขียนบทความนี้คือ nscd-2.8-8</p>
<pre>[root@ldap-client ~]# <strong>rpm -Uvh nscd-2.8-8.i386.rpm
</strong>Preparing...                ########################################### [100%]
   1:nscd                   ########################################### [100%]</pre>
<h4>คอนฟิกไฟล์ /etc/nscd.conf</h4>
<p>ไฟล์คอนฟิกจากการติดตั้ง nscd จะเก็บ cache ของ passwd, group, hosts, services ในที่นี้เราจะเปลี่ยนคอนฟิกเพื่อให้เก็บ cache เฉพาะ passwd, group จาก LDAP</p>
<pre>[root@ldap-client ~]# <strong>cat /etc/nscd.conf
</strong>#
# /etc/nscd.conf
#
server-user             nscd
debug-level             0
paranoia                no</pre>
<pre>enable-cache            passwd          yes
positive-time-to-live   passwd          600
negative-time-to-live   passwd          20
suggested-size          passwd          211
check-files             passwd          yes
persistent              passwd          yes
shared                  passwd          yes
max-db-size             passwd          33554432
auto-propagate          passwd          yes</pre>
<pre>enable-cache            group           yes
positive-time-to-live   group           3600
negative-time-to-live   group           60
suggested-size          group           211
check-files             group           yes
persistent              group           yes
shared                  group           yes
max-db-size             group           33554432
auto-propagate          group           yes</pre>
<pre>enable-cache            hosts           <strong>no</strong>
enable-cache            services        <strong>no</strong></pre>
<p><strong>คำแนะนำการคอนฟิกไฟล์ nscd.conf</strong></p>
<ul>
<li>ดีฟอลต์คอนฟิกจากการติดตั้ง จะเป็บ cache ของ user (passwd) เป็นเวลา 600 วินาที สำหรับข้อมูลที่ค้นหาได้สำเร็จ (positive-time-to-live) แต่จะเก็บ cache ของ user ที่ค้นหาไม่สำเร็จ (ไม่มีข้อมูลใน LDAP) เป็นเวลา 20 วินาที</li>
<li>ดีฟอลต์คอนฟิกจากการติดตั้ง จะเป็บ cache ของ group เป็นเวลา 3600 วินาที สำหรับข้อมูลที่ค้นหาได้สำเร็จ (positive-time-to-live) แต่จะเก็บ cache ของ group ที่ค้นหาไม่สำเร็จ (ไม่มีข้อมูลใน LDAP) เป็นเวลา 60 วินาที</li>
<li>ต้องรอเวลา time-to-live เหล่านี้หมดไป จนกว่า nscd จะทำการตรวจสอบข้อมูลจาก LDAP ใหม่อีกครั้ง ก่อนการใช้งานจริงแนะนำให้ทดลองปรับค่าแล้วดูผลลัพธ์ที่ได้</li>
</ul>
<h4>รันเซอร์วิส nscd</h4>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิส nscd</p>
<pre>[root@fc9-k2 ~]# <strong>service nscd start</strong>
Starting nscd:                                             [  OK  ]</pre>
<p>ข้อมูล cache ของ nscd จะถูกเก็บไว้ใน /var/db/nscd/</p>
<pre>[root@fc9-k2 ~]# <strong>ls -l /var/db/nscd/
</strong>total 432
-rw------- 1 root root 217016 2008-11-28 15:39 group
-rw------- 1 root root 217016 2008-11-28 15:39 passwd</pre>
<h4>ทดสอบ nscd cache</h4>
<p>ใช้คำสั่ง time เพื่อเปรียบเทียบความเร็ว ระหว่างการดึงข้อมูล user จาก LDAP ในครั้งแรก และครั้งที่สอง ดึงข้อมูลจาก cache ของ nscd</p>
<pre>[root@fc9-k2 ~]# <strong>time id user01</strong>
uid=1011(user01) gid=513(Domain Users) groups=513(Domain Users)</pre>
<pre>real    0m0.046s
user    0m0.000s
sys     0m0.007s</pre>
<pre>[root@fc9-k2 ~]# <strong>time id user01</strong>
uid=1011(user01) gid=513(Domain Users) groups=513(Domain Users)</pre>
<pre>real    0m0.007s
user    0m0.000s
sys     0m0.005s</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/10/add_user_into_openldap">เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP</a> </li>
<li><a href="http://spalinux.com/2008/07/authenticate_user_on_fedora_directory_server">คอนฟิกให้ authenticate จาก Fedora Directory Server</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/11/configure_nscd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ไฟล์คอนฟิก openldap สำหรับ smbldap-tools</title>
		<link>http://spalinux.com/2008/11/openldap_configuration_for_smbldap-tools</link>
		<comments>http://spalinux.com/2008/11/openldap_configuration_for_smbldap-tools#comments</comments>
		<pubDate>Thu, 27 Nov 2008 16:25:07 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[ldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=334</guid>
		<description><![CDATA[ไฟล์คอนฟิก /etc/openldap/slapd.conf สำหรับ คอนฟิก Samba เป็น Domain Controller โดยปรับปรุงเพิ่มเติมคุณสมบัติดังนี้ กำหนดคีย์ (index) ที่ใช้ในการค้นหาข้อมูล อนุญาตให้ผู้ใช้สามารถเปลี่ยน password โดยใช้คำสั่ง smbldap-passwd ด้วยตัวเองได้ ไม่ต้องใช้ rootdn ซ่อนรหัสผ่าน (password) ไม่ให้สามารถอ่านได้โดยตรง แต่ใช้ในการตรวจสอบสิทธิ (authenticate) ได้ # ------------------------ # /etc/openldap/slapd.conf # ------------------------ include     /etc/openldap/schema/corba.schema include     /etc/openldap/schema/core.schema include     /etc/openldap/schema/cosine.schema include     /etc/openldap/schema/duaconf.schema include     /etc/openldap/schema/dyngroup.schema include     /etc/openldap/schema/inetorgperson.schema include     /etc/openldap/schema/java.schema include     /etc/openldap/schema/misc.schema include     /etc/openldap/schema/nis.schema include     /etc/openldap/schema/openldap.schema include     /etc/openldap/schema/ppolicy.schema include     /etc/openldap/schema/collective.schema # [...]]]></description>
			<content:encoded><![CDATA[<p>ไฟล์คอนฟิก /etc/openldap/slapd.conf สำหรับ <a href="http://spalinux.com/2008/10/configure_samba_domain_controller">คอนฟิก Samba เป็น Domain Controller</a> โดยปรับปรุงเพิ่มเติมคุณสมบัติดังนี้</p>
<ul>
<li>กำหนดคีย์ (index) ที่ใช้ในการค้นหาข้อมูล</li>
<li>อนุญาตให้ผู้ใช้สามารถเปลี่ยน password โดยใช้คำสั่ง smbldap-passwd ด้วยตัวเองได้ ไม่ต้องใช้ rootdn</li>
<li>
<pre>ซ่อนรหัสผ่าน (password) ไม่ให้สามารถอ่านได้โดยตรง แต่ใช้ในการตรวจสอบสิทธิ (authenticate) ได้</pre>
</li>
</ul>
<p><span id="more-334"></span></p>
<pre># ------------------------
# /etc/openldap/slapd.conf
# ------------------------
include     /etc/openldap/schema/corba.schema
include     /etc/openldap/schema/core.schema
include     /etc/openldap/schema/cosine.schema
include     /etc/openldap/schema/duaconf.schema
include     /etc/openldap/schema/dyngroup.schema
include     /etc/openldap/schema/inetorgperson.schema
include     /etc/openldap/schema/java.schema
include     /etc/openldap/schema/misc.schema
include     /etc/openldap/schema/nis.schema
include     /etc/openldap/schema/openldap.schema
include     /etc/openldap/schema/ppolicy.schema
include     /etc/openldap/schema/collective.schema</pre>
<pre># Samba Schema
include     /etc/openldap/schema/samba.schema</pre>
<pre># Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2</pre>
<pre>pidfile     /var/run/openldap/slapd.pid
argsfile    /var/run/openldap/slapd.args</pre>
<pre># Enable Monitoring
database monitor</pre>
<pre># ldbm and/or bdb database definitions
database    bdb
suffix      "dc=test-ldap,dc=com"
rootdn      "uid=root,ou=People,dc=test-ldap,dc=com"
rootpw      {SSHA}xxx
directory   /var/lib/ldap</pre>
<pre># Indices to maintain for this database
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub
index uniqueMember                      eq</pre>
<pre># required to support pdb_getsambapwrid()
index displayName                       pres,sub,eq
index sambaSID                          eq
index sambaPrimaryGroupSID              eq
index sambaDomainName                   eq
index sambaSIDList                      eq
index sambaGroupType                    eq
index default                           sub</pre>
<pre># users can authenticate and change their password
# hide password fields
access to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdMustChange,sambaPwdLastSet
      by self write
      by anonymous auth
      by * none</pre>
<pre>access to attrs=shadowLastChange,shadowMax
      by self write
      by * read</pre>
<pre># all others attributes are readable to everybody
access to *
      by * read</pre>
<pre># loglevel stats stats2</pre>
<pre># EOF.</pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/11/openldap_configuration_for_smbldap-tools/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คอนฟิก Samba เป็น Domain Controller</title>
		<link>http://spalinux.com/2008/10/configure_samba_domain_controller</link>
		<comments>http://spalinux.com/2008/10/configure_samba_domain_controller#comments</comments>
		<pubDate>Sat, 18 Oct 2008 11:21:54 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[File Sharing]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[domain controller]]></category>
		<category><![CDATA[smbldap-tools]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=284</guid>
		<description><![CDATA[จากบทความ ติดตั้ง smbldap-tools บน Fedora 9 นั้นเป็นการคอนฟิกให้ Samba ทำหน้าที่เป็น file sharing อย่างเดียว โดยผู้ใช้งานสามารถ map drive เข้ามาแล้ว authenticate จาก LDAP ได้ ในบทความนี้จะคอนฟิกเพิ่มเติมเพื่อให้ Samba ทำหน้าที่เป็น Domain Controller ของ Windows client ได้ แก้ไขไฟล์ /etc/samba/smb.conf ต้องแก้ไขไฟล์ smb.conf เพิ่มเติมโดยในที่นี้จะแสดงคอนฟิกทั้งหมดของไฟล์นี้เลย เพื่อคอนฟิกให้ Samba ทำหน้าที่เป็น Domain Controller [global] workgroup = SMBLDAP server string = Samba Server Version %v passdb backend = ldapsam:ldap://127.0.0.1/ passwd [...]]]></description>
			<content:encoded><![CDATA[<p>จากบทความ <a href="http://spalinux.com/2008/10/install_smbldap-tools_on_fedora_9">ติดตั้ง smbldap-tools บน Fedora 9</a><a href="http://spalinux.com/wp-content/uploads/2008/10/windows_join_domain.png"></a> นั้นเป็นการคอนฟิกให้ Samba ทำหน้าที่เป็น file sharing อย่างเดียว โดยผู้ใช้งานสามารถ map drive เข้ามาแล้ว authenticate จาก LDAP ได้</p>
<p>ในบทความนี้จะคอนฟิกเพิ่มเติมเพื่อให้ Samba ทำหน้าที่เป็น Domain Controller ของ Windows client ได้</p>
<p><span id="more-284"></span></p>
<h4>แก้ไขไฟล์ /etc/samba/smb.conf</h4>
<p>ต้องแก้ไขไฟล์ smb.conf เพิ่มเติมโดยในที่นี้จะแสดงคอนฟิกทั้งหมดของไฟล์นี้เลย เพื่อคอนฟิกให้ Samba ทำหน้าที่เป็น Domain Controller</p>
<pre>[global]
 workgroup = SMBLDAP
 server string = Samba Server Version %v</pre>
<pre> passdb backend = ldapsam:ldap://127.0.0.1/
 passwd program = /usr/sbin/smbldap-passwd -u "%u"
 passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n"
 unix password sync = Yes
 log file = /var/log/samba/log.%U
 max log size = 50
 time server = Yes
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192</pre>
<pre> add user script = /usr/sbin/smbldap-useradd -m "%u"
 delete user script = /usr/sbin/smbldap-userdel "%u"
 add group script = /usr/sbin/smbldap-groupadd -p "%g"
 delete group script = /usr/sbin/smbldap-groupdel "%g"
 add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
 delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
 set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
 add machine script = /usr/sbin/smbldap-useradd -t 0 -w "%u"</pre>
<pre> logon script = logon.bat
 logon path = \\%L\profiles\%u
 logon drive = H:
 domain logons = Yes
 os level = 65
 preferred master = Yes
 domain master = Yes
 wins support = Yes</pre>
<pre> ldap admin dn = uid=root,ou=People,dc=test-ldap,dc=com
 ldap group suffix = ou=Group
 ldap idmap suffix = ou=Idmap
 ldap machine suffix = ou=Computers
 ldap suffix = dc=test-ldap,dc=com
 ldap user suffix = ou=People
 cups options = raw</pre>
<pre>[homes]
 comment = Home Directories
 read only = No
 browseable = No</pre>
<pre>[profiles]
 path = /home/profiles
 read only = No
 guest ok = Yes
 browseable = No</pre>
<p>คำแนะนำ รันคำสั่ง testparm ทุกครั้งเพื่อตรวจสอบความถูกต้องของคอนฟิกไฟล์ หลังการแก้ไขไฟล์ /etc/samba/smb.conf</p>
<h4>สร้างไดเร็คทอรีสำหรับเก็บ profiles ของ user</h4>
<p>เพื่อให้ user สามารถล็อกอินจาก Windows หลายๆ เครื่องแล้วมี profiles เหมือนกัน เช่น desktop ต้องสร้างไดเร็คทอรี่บนลีนุกซ์ที่รัน Samba สำหรับเก็บ profiles ของ user</p>
<p>ตัวอย่างการสร้างไดเร็คทอรี สำหรับเก็บ profiles ของ user</p>
<pre>[root@fc9-min ~]# <strong>cd /home
</strong>[root@fc9-min home]# <strong>mkdir profiles
</strong>[root@fc9-min home]# <strong>chgrp "Domain Users" prof</strong>iles
[root@fc9-min home]# <strong>chmod 770 profil</strong>es
[root@fc9-min home]# <strong>ls -ld profiles
</strong>drwxrwx--- 2 root Domain Users 4096 2008-10-19 00:27 profiles</pre>
<h4>รันเซอร์วิส Samba</h4>
<p>เพื่อให้ Samba ทำหน้าที่เป็น Domain Controller ได้นั้น จำเป็นต้องรัน 2 เซอร์วิสคือ smb และ nmb ตามตัวอย่าง</p>
<pre>[root@fc9-min ~]# <strong>service smb start
</strong>Starting SMB services:                                     [  OK  ]</pre>
<pre>[root@fc9-min ~]# <strong>service nmb start</strong>
Starting NMB services:                                     [  OK  ]</pre>
<h4>คอนฟิก Windows ให้ join Domain</h4>
<p>ล็อกอินเป็น Administrator บนเครื่องไคลเอนต์ Windows ที่จะ join Domain คลิ้กขวาที่ My Computer แล้วเลือก Properties คลิ้กที่ Computer Name แล้วกดปุ่ม Change ใส่ชื่อ Domain ที่ต้องการ join ในที่นี้คือ SMBLDAP</p>
<p>หน้าจอ &#8220;Computer Name Changes&#8221; จะให้ใส่ User Name และ Password ที่จะใช้ join domain ให้ใส่ User Name เป็น root และใส่ password ตามที่ระบุใน rootpw</p>
<p><img title="Windows join domain" src="http://spalinux.com/wp-content/uploads/2008/10/windows_join_domain.png" alt=""/ border="1"></p>
<p>ถ้าถูกต้องจะมีหน้าจอขึ้นข้อความ &#8220;Welcome to the SMBLDAP domain.&#8221; กดปุ่ม Ok แล้วก็รีสตาร์ตเครื่อง</p>
<p><img title="Welcome to the SMBLDAP domain" src="http://spalinux.com/wp-content/uploads/2008/10/welcome_to_the_smbldap_domain.png" alt=""/ border="1"></p>
<p>หลังจากบู๊ตเครื่องเสร็จ หน้าจอ Log On to Windows จะสามารถเลือก Log on to เป็น SMBLDAP ได้ ใส่ user ที่เพิ่มจากคำสั่ง smbldap-useradd ในตัวอย่างคือ user01</p>
<p><img title="Windows Log On" src="http://spalinux.com/wp-content/uploads/2008/10/windows_log_on.png" alt="" /></p>
<p>เมื่อล๊อกออก (Log Off) จาก user01 จะมีการเก็บ profiles ของ user เข้าไปในไดเร็คทอรี บนลีนุกซ์ที่ตั้งไว้ด้วย</p>
<p>ตัวอย่างไฟล์ profiles ที่ถูกสร้างขึ้น ของ user01</p>
<pre>[root@fc9-min ~]# <strong>ls -l /home/profiles/user01/
</strong>total 568
drwx--x--x+ 4 user01 Domain Users   4096 2008-10-18 17:48 Application Data
drwx--x--x+ 2 user01 Domain Users   4096 2008-05-03 16:20 Cookies
drwx------+ 2 user01 Domain Users   4096 2008-05-03 23:12 Desktop
drwx--x--x+ 3 user01 Domain Users   4096 2008-10-18 17:49 Favorites
drwx--x--x+ 4 user01 Domain Users   4096 2008-10-18 17:49 My Documents
drwx--x--x+ 2 user01 Domain Users   4096 2008-05-03 23:12 NetHood
-rwx------  1 user01 Domain Users 524288 2008-10-18 17:54 NTUSER.DAT
-rwx------  1 user01 Domain Users   1024 2008-10-18 17:54 NTUSER.DAT.LOG
-rw-------  1 user01 Domain Users    268 2008-10-19 00:55 ntuser.ini
drwx--x--x+ 2 user01 Domain Users   4096 2008-05-03 23:12 PrintHood
drwx--x--x+ 2 user01 Domain Users   4096 2008-10-18 17:49 Recent
drwx--x--x+ 2 user01 Domain Users   4096 2008-10-18 17:48 SendTo
drwx--x--x+ 3 user01 Domain Users   4096 2008-05-03 23:12 Start Menu
drwx--x--x+ 2 user01 Domain Users   4096 2008-05-03 16:17 Templates</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/10/install_smbldap-tools_on_fedora_9">ติดตั้ง smbldap-tools บน Fedora 9</a></li>
<li><a href="http://spalinux.com/2008/10/using_smbldap-tools">การใช้งานคำสั่งของ smbldap-tools</a></li>
<li><a href="http://spalinux.com/2008/11/openldap_configuration_for_smbldap-tools">ไฟล์คอนฟิก openldap สำหรับ smbldap-tools</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/configure_samba_domain_controller/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>การใช้งานคำสั่งของ smbldap-tools</title>
		<link>http://spalinux.com/2008/10/using_smbldap-tools</link>
		<comments>http://spalinux.com/2008/10/using_smbldap-tools#comments</comments>
		<pubDate>Sat, 18 Oct 2008 10:11:53 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[File Sharing]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[smbldap-tools]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=271</guid>
		<description><![CDATA[ในบทความนี้จะกล่าวถึงการใช้งานโปรแกรม smbldap-tools (เวอร์ชั่น 0.9.5) สำหรับเพิ่ม แก้ไข ลบข้อมูลของ user หรือ group ที่อยู่ใน LDAP เพื่อใช้งานร่วมกับ Samba หมายเหตุ ทุกคำสั่งของ smbldap-tools สามารถที่จะดูวิธีการใช้งานโดยย่อได้ จากการรันคำสั่งที่ต้องการแล้วต่อท้ายด้วยออปชั่น &#8216;-h&#8217; หรือ &#8216;-?&#8217; หรือไม่ก็อ่านรายละเอียดการใช้งานได้จาก man page ของแต่ละคำสั่ง smbldap-useradd เพิ่ม user คำสั่ง smbldap-useradd ใช้เพิ่ม user เข้าไปใน LDAP ตัวอย่างการเพิ่ม user01 เข้าไปใน LDAP [root@fc9-min ~]# smbldap-useradd -a -m -P user01 Changing UNIX and samba passwords for user01 New password: [...]]]></description>
			<content:encoded><![CDATA[<p>ในบทความนี้จะกล่าวถึงการใช้งานโปรแกรม smbldap-tools (เวอร์ชั่น 0.9.5) สำหรับเพิ่ม แก้ไข ลบข้อมูลของ user หรือ group ที่อยู่ใน LDAP เพื่อใช้งานร่วมกับ Samba</p>
<p>หมายเหตุ ทุกคำสั่งของ smbldap-tools สามารถที่จะดูวิธีการใช้งานโดยย่อได้ จากการรันคำสั่งที่ต้องการแล้วต่อท้ายด้วยออปชั่น &#8216;-h&#8217; หรือ &#8216;-?&#8217; หรือไม่ก็อ่านรายละเอียดการใช้งานได้จาก man page ของแต่ละคำสั่ง</p>
<p><span id="more-271"></span></p>
<hr />
<h4>smbldap-useradd เพิ่ม user</h4>
<p>คำสั่ง smbldap-useradd ใช้เพิ่ม user เข้าไปใน LDAP</p>
<p>ตัวอย่างการเพิ่ม user01 เข้าไปใน LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-useradd -a -m -P user01
</strong>Changing UNIX and samba passwords for user01
New password:
Retype new password:</pre>
<p>ออปชั่นของคำสั่ง smbldap-useradd ที่ใช้ เพื่อให้ใช้งานร่วมกับ Samba ได้มีดังนี้</p>
<ul>
<li>-a    เพิ่มข้อมูล Samba ของ user</li>
<li>-m   สร้างไดเร็คทอรี่ Home ของ user ด้วย</li>
<li>-P    ให้เรียกคำสั่ง smbldap-passwd หลังจบคำสั่ง เพื่อตั้งรหัสให้ user</li>
</ul>
<p>หลังจากที่เพิ่ม user เข้าในระบบแล้ว สามารถใช้คำสั่ง id หรือ getent เพื่อตรวจสอบข้อมูลของ user ได้</p>
<pre>[root@fc9-min ~]# <strong>id user01</strong>
uid=1001(user01) gid=513(Domain Users) groups=513(Domain Users)</pre>
<pre>[root@fc9-min ~]# <strong>getent passwd user01</strong>
user01:x:1001:513:System User:/home/user01:/bin/bash</pre>
<hr />
<h4>smbldap-passwd เปลี่ยนรหัสผ่านของ user</h4>
<p>คำสั้ง smbldap-passwd ใช้เพื่อเปลี่ยนรหัสผ่านของ user ที่อยู่ใน LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-passwd user01</strong>
Changing UNIX and samba passwords for user01
New password:
Retype new password:</pre>
<hr />
<h4>smbldap-userlist แสดงรายชื่อ user</h4>
<p>คำสั่ง smbldap-userlist ใช้เพื่อแสดงรายชื่อ user ทั้งหมดที่อยู่ใน LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-userlist
</strong>uid  |username</pre>
<pre>   0 |root                 |
 999 |nobody               |
1001 |user01               |</pre>
<hr />
<h4>smbldap-usershow แสดงรายละเอียด user</h4>
<p>คำสั่ง smbldap-usershow ใช้เพื่อตรวจสอบข้อมูลทั้งหมดของ user ที่อยู่ใน LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-usershow user01</strong>
dn: uid=user01,ou=People,dc=test-ldap,dc=com
objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
uid: user01
uidNumber: 1001
gidNumber: 513
homeDirectory: /home/user01
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: user01
sambaSID: S-1-5-21-3697236364-1357617849-1956783867-3002
sambaPrimaryGroupSID: S-1-5-21-3697236364-1357617849-1956783867-513
sambaProfilePath: \\fc9-min\profiles\user01
sambaHomePath: \\fc9-min\user01
sambaHomeDrive: H:
sambaLMPassword: C53C042BF139A7D9AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: 152E0323FE05645650DD50FD31C2FCDF
sambaPwdLastSet: 1224343354
sambaPwdMustChange: 1228231354
userPassword: {SSHA}d+ZTyu7BhUarCaM2Ifu9bk/RS0lkSi80
shadowLastChange: 14170
shadowMax: 45
gecos: System User,,,,
cn: System User
sn: User
givenName: System
loginShell: /bin/bash</pre>
<hr />
<h4>smbldap-userinfo แก้ไขข้อมูลเบื้องต้นของ user</h4>
<p>คำสั่ง smbldap-userinfo ใช้เพื่อแก้ไขข้อมูลเบื้องต้นของ user เช่น User Shell, Full Name ถ้าต้องการแก้ไขข้อมูลอื่นๆ ต้องใช้คำสั่ง smbldap-usermod</p>
<pre>[root@fc9-min ~]# <strong>smbldap-userinfo user01
</strong>Changing the user information for user01
Enter the new value, or press ENTER for the default
 User Shell [/bin/bash]:
 Full Name [System User]: <strong>User01 Full Name</strong>
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
LDAP updated</pre>
<p>ตรวจสอบ Full Name หลังการแก้ไขด้วยคำสั่ง getent</p>
<pre>[root@fc9-min ~]# <strong>getent passwd user01</strong>
user01:x:1001:513:User01 Full Name,,,,:/home/user01:/bin/bash</pre>
<hr />
<h4>smbldap-usermod แก้ไขข้อมูลของ user</h4>
<p>คำสั่ง smbldap-usermod ใช้เพื่อแก้ข้อมูลของ user ที่อยู่ใน LDAP โดยต้องระบุออปชั่นที่ต้องการแก้ไข</p>
<p>ตัวอย่างการใช้คำสั่ง smbldap-usermod เพื่อแก้ไข Home ของ user01</p>
<pre>[root@fc9-min ~]# <strong>smbldap-usermod -d /new-home/user01 user01</strong></pre>
<p>ตรวจสอบหลังการแก้ไข</p>
<pre>[root@fc9-min ~]# <strong>getent passwd user01
</strong>user01:x:1001:513:User01 Full Name,,,,:/new-home/user01:/bin/bash</pre>
<p>เปลี่ยนข้อมูลกลับ</p>
<pre>[root@fc9-min ~]# <strong>smbldap-usermod -d /home/user01 user01
</strong>[root@fc9-min ~]# <strong>getent passwd user01
</strong>user01:x:1001:513:User01 Full Name,,,,:/home/user01:/bin/bash</pre>
<hr />
<h4>smbldap-userdel ลบ user</h4>
<p>คำสั่ง smbldap-userdel ใช้เพื่อลบ user ออกจาก LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-userdel -r user02</strong></pre>
<hr />
<h4>smbldap-groupadd เพิ่ม group</h4>
<p>คำสั่ง smbldap-groupadd ใช้เพื่อเพิ่ม group ใหม่เข้าไปใน LDAP</p>
<p>ตัวอย่างการเพิ่ม newgroup เข้าไปใน LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupadd newgroup</strong></pre>
<hr />
<h4>smbldap-groupshow ดูข้อมูลของ group</h4>
<p>คำสั่ง smbldap-groupshow ใช้เพื่อดูข้อมูลรายละเอียดของ group ที่อยู่ใน LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupshow newgroup</strong>
dn: cn=newgroup,ou=Group,dc=test-ldap,dc=com
objectClass: top,posixGroup
cn: newgroup
gidNumber: 1000</pre>
<hr />
<h4>smbldap-groupmod แก้ไขข้อมูลของ group</h4>
<p>คำสั่ง smbldap-groupmod ใช้เพื่อแก้ไขข้อมูลของ group เช่น การเพิ่ม user เข้าไปอยู่ใน group</p>
<p>ตัวอย่างการเพิ่ม user01 เข้าไปอยู่ใน newgroup</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupmod -m user01 newgroup</strong>
adding user user01 to group newgroup</pre>
<pre>[root@fc9-min ~]# <strong>id user01
</strong>uid=1001(user01) gid=513(Domain Users) groups=513(Domain Users),1000(newgroup)</pre>
<p>ตัวอย่างการเพิ่มหลายๆ user เข้าไปใน newgroup</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupmod -m user02,user03,user04,user05 newgroup
</strong>adding user user02 to group newgroup
adding user user03 to group newgroup
adding user user04 to group newgroup
adding user user05 to group newgroup</pre>
<p>ตรวจสอบข้อมูลของ newgroup</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupshow newgroup
</strong>dn: cn=newgroup,ou=Group,dc=test-ldap,dc=com
objectClass: top,posixGroup
cn: newgroup
gidNumber: 1000
memberUid: user01,user02,user03,user04,user05</pre>
<p>ตัวอย่างการลบ user ออกจาก group</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupmod -x user01 newgroup</strong>
deleting user user01 from group newgroup</pre>
<pre>[root@fc9-min ~]# <strong>id user01
</strong>uid=1001(user01) gid=513(Domain Users) groups=513(Domain Users)</pre>
<hr />
<h4>smbldap-groupdel ลบ group</h4>
<p>คำสั่ง smbldap-groupdel ใช้เพื่อลบ group ออกจาก LDAP</p>
<p>ตัวอย่างการลบ newgroup ออกจาก LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbldap-groupdel newgroup</strong></pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li> <a href="http://spalinux.com/2008/10/install_smbldap-tools_on_fedora_9">ติดตั้ง smbldap-tools บน Fedora 9</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/using_smbldap-tools/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง smbldap-tools บน Fedora 9</title>
		<link>http://spalinux.com/2008/10/install_smbldap-tools_on_fedora_9</link>
		<comments>http://spalinux.com/2008/10/install_smbldap-tools_on_fedora_9#comments</comments>
		<pubDate>Sat, 18 Oct 2008 09:09:07 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[File Sharing]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[smbldap-tools]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=266</guid>
		<description><![CDATA[บทความนี้จะอธิบายการติดตั้งโปรแกรม smbldap-tools เพื่อช่วยในการคอนฟิกให้ Samba สามารถที่จะตรวจสอบ (authenticate) user จาก OpenLDAP ได้ โดยจะอ้างอิงจากการ ติดตั้ง OpenLDAP Server บน Fedora 9 ปรับปรุง samba เป็นเวอร์ชั่นล่าสุดใน Fedora 9 ในบทความนี้จะถือว่าเป็นการติดตั้ง OpenLDAP ใหม่เลย โดยไม่มีข้อมูลใดๆ อยู่ใน LDAP ติดตั้ง Perl Module ที่จำเป็น โปรแกรม smbldap-tools เขียนด้วยภาษา Perl จะเรียกใช้ Perl Module ต่างๆ ดังนั้นก่อนที่จะใช้งานได้ ต้องติดตั้ง Perl Module เหล่านี้ก่อน สำหรับ Fedora 9 สามารถดาวน์โหลดไฟล์ต่างๆ ได้จาก Fedora 9 Everything ตัวอย่างการติดตั้ง Perl [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้จะอธิบายการติดตั้งโปรแกรม smbldap-tools เพื่อช่วยในการคอนฟิกให้ Samba สามารถที่จะตรวจสอบ (authenticate) user จาก OpenLDAP ได้ โดยจะอ้างอิงจากการ</p>
<ul>
<li><a href="http://spalinux.com/2008/10/install_openldap_server_on_fedora_9">ติดตั้ง OpenLDAP Server บน Fedora 9</a></li>
<li><a href="http://spalinux.com/2008/07/update_samba_in_fedora_9">ปรับปรุง samba เป็นเวอร์ชั่นล่าสุดใน Fedora 9</a></li>
</ul>
<p>ในบทความนี้จะถือว่าเป็นการติดตั้ง OpenLDAP ใหม่เลย โดยไม่มีข้อมูลใดๆ อยู่ใน LDAP</p>
<p><span id="more-266"></span></p>
<h4>ติดตั้ง Perl Module ที่จำเป็น</h4>
<p>โปรแกรม smbldap-tools เขียนด้วยภาษา Perl จะเรียกใช้ Perl Module ต่างๆ ดังนั้นก่อนที่จะใช้งานได้ ต้องติดตั้ง Perl Module เหล่านี้ก่อน สำหรับ Fedora 9 สามารถดาวน์โหลดไฟล์ต่างๆ ได้จาก <a href="http://mirrors.kernel.org/fedora/releases/9/Everything/" target="_blank">Fedora 9 Everything</a></p>
<p>ตัวอย่างการติดตั้ง Perl Module ที่จำเป็นตามลำดับ บน Fedora 9</p>
<pre>[root@fc9-min ~]# <strong>rpm -ivh perl-Digest-MD4-1.5-6.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Crypt-SmbHash-0.12-8.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Digest-SHA1-2.11-7.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Net-SSLeay-1.32-5.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-IO-Socket-SSL-1.12-4.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Compress-Raw-Zlib-2.008-20.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-IO-Compress-Base-2.008-20.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-IO-Compress-Zlib-2.008-20.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Compress-Zlib-2.008-20.fc9.i386.rpm</strong>
[root@fc9-min ~]# <strong>rpm -ivh perl-HTML-Tagset-3.10-8.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-HTML-Parser-3.56-5.fc9.i386.r</strong>pm
[root@fc9-min ~]# <strong>rpm -ivh perl-URI-1.35-8.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-libwww-perl-5.808-7.fc9.noarch.rpm</strong>
[root@fc9-min ~]# <strong>rpm -ivh perl-XML-LibXML-Common-0.13-13.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-XML-NamespaceSupport-1.09-4.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh --nodeps perl-XML-SAX-0.16-5.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-XML-LibXML-1.65-5.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-LDAP-0.34-4.fc9.noarch.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Jcode-2.06-6.fc9.noarch.rpm</strong>
[root@fc9-min ~]# <strong>rpm -ivh perl-Unicode-Map-0.112-14.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Unicode-String-2.09-8.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Unicode-Map8-0.12-17.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -ivh perl-Unicode-MapUTF8-1.11-6.fc8.noarch.rpm</strong></pre>
<p>หลังจากติดตั้ง Perl Module ที่ต้องใช้เรียบร้อยแล้ว ก็ติดตั้งโปรแกรม smbldap-tools โดยสามารถดาวน์โหลดได้จากที่เดียวกัน</p>
<pre>[root@fc9-min ~]# <strong>rpm -ivh smbldap-tools-0.9.5-2.fc9.noarch.rpm</strong></pre>
<h4>รันเซอร์วิส Samba เบื้องต้น</h4>
<p>ก่อนที่จะเริ่มคอนฟิก smbldap-tools ได้นั้น จำเป็นต้องรันเซอร์วิส Samba ก่อน โดยคอนฟิกที่ต้องเปลี่ยนในไฟล์ /etc/samba/smb.conf ในเบื้องต้นนี้คือส่วน workgroup เพราะค่านี้จะถูกอ่านตอนรันคอนฟิก smbldap-tools ส่วนคอนฟิก อื่นๆ ไว้แก้ไขที่หลังได้</p>
<p>ตัวอย่างไฟล์ smb.conf ที่แก้ไข ก่อนคอนฟิก smbldap-tools</p>
<pre> workgroup = SMBLDAP</pre>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิส Samba</p>
<pre>[root@fc9-min ~]# <strong>/etc/init.d/smb start
</strong>Starting SMB services:                                     [  OK  ]</pre>
<h4>แก้ไขคอนฟิก OpenLDAP</h4>
<p>จากการติดตั้ง OpenLDAP Server ต้องเพิ่มไฟล์ schema ของ Samba เข้าไปในไฟล์ slapd.conf ด้วย</p>
<p>ตัวอย่างไฟล์ /etc/openldap/slapd.conf หลังการแก้ไข</p>
<pre>include     /etc/openldap/schema/samba.schema</pre>
<pre>suffix      "dc=test-ldap,dc=com"
rootdn      "uid=root,ou=People,dc=test-ldap,dc=com"
rootpw      {SSHA}zA4XZB4pD1TUh/mRO31MC0kbUF+V0v2Y</pre>
<p>หมายเหตุ คอนฟิกส่วน rootpw ได้มาจากการรันคำสั่ง slappasswd</p>
<p>รันเซอร์วิส OpenLDAP หลังจากแก้ไขคอนฟิกไฟล์ slapd.conf</p>
<pre>[root@fc9-min ~]# <strong>/etc/init.d/ldap start
</strong>Starting slapd:                                            [  OK  ]</pre>
<h4>รันไฟล์ configure.pl เพื่อคอนฟิก smbldap-tools</h4>
<p>ไฟล์คอนฟิกหลักของ smbldap-tools จะอยู่ในไดเร็คทอรี /etc/smbldap-tools/ ซึ่งจะประกอบด้วยคอนฟิกหลายๆ ส่วน เพื่อความสะดวกในการแก้ไขไฟล์ จากการติดตั้ง smbldap-tools จะมีไฟล์ /usr/share/doc/smbldap-tools-0.9.5/configure.pl เพื่อช่วยในการคอนฟิกไฟล์</p>
<p>ตัวอย่างรันไฟล์ configure.pl เพื่อสร้างคอนฟิกไฟล์ของ smbldap-tools</p>
<pre>[root@fc9-min ~]# <strong>/usr/share/doc/smbldap-tools-0.9.5/configure.pl
</strong>$# is no longer supported at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 314.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
       smbldap-tools script configuration
       -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Before starting, check
 . if your samba controller is up and running.
 . if the domain SID is defined (you can get it with the 'net getlocalsid')</pre>
<pre> . you can leave the configuration using the Crtl-c key combination
 . empty value can be set with the "." character
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Looking for configuration files...</pre>
<pre>Samba Configuration File Path [/etc/samba/smb.conf] &gt;</pre>
<pre>The default directory in which the smbldap configuration files are stored is shown.
If you need to change this, enter the full directory path, then press enter to continue.
Smbldap-tools Configuration Directory Path [/etc/smbldap-tools/] &gt;
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Let's start configuring the smbldap-tools scripts ...</pre>
<pre>. workgroup name: name of the domain Samba act as a PDC
  workgroup name [SMBLDAP] &gt;
. netbios name: netbios name of the samba controler
  netbios name [] &gt; <strong>fc9-min
</strong>. logon drive: local path to which the home directory will be connected (for NT Workstations). Ex: 'H:'
  logon drive [] &gt; <strong>H:
</strong>. logon home: home directory location (for Win95/98 or NT Workstation).
  (use %U as username) Ex:'\\fc9-min\%U'
  logon home (press the "." character if you don't want homeDirectory) [\\fc9-min\%U] &gt;
. logon path: directory where roaming profiles are stored. Ex:'\\fc9-min\profiles\%U'
  logon path (press the "." character if you don't want roaming profile) [\\fc9-min\profiles\%U] &gt;
. home directory prefix (use %U as username) [/home/%U] &gt;
. default users' homeDirectory mode [700] &gt;
. default user netlogon script (use %U as username) [] &gt; <strong>\\fc9-min\netlogon\%U
</strong>  default password validation time (time in days) [45] &gt;
. ldap suffix [] &gt; <strong>dc=test-ldap,dc=com
</strong>. ldap group suffix [] &gt; <strong>ou=Group
</strong>. ldap user suffix [] &gt; <strong>ou=People</strong>
. ldap machine suffix [] &gt; <strong>ou=Computers</strong>
. Idmap suffix [ou=Idmap] &gt;
. sambaUnixIdPooldn: object where you want to store the next uidNumber
  and gidNumber available for new users and groups
  sambaUnixIdPooldn object (relative to ${suffix}) [sambaDomainName=PDCTEST] &gt;
Use of uninitialized value $server in substitution (s///) at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 244, &lt;STDIN&gt; line 17.
. ldap master server: IP adress or DNS name of the master (writable) ldap server
Use of uninitialized value $example_value in concatenation (.) or string at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 161, &lt;STDIN&gt; line 17.
Use of uninitialized value $example_value in string at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 162, &lt;STDIN&gt; line 17.
  ldap master server [] &gt; <strong>127.0.0.1
</strong>. ldap master port [389] &gt;
. ldap master bind dn [] &gt; <strong>uid=root,ou=People,dc=test-ldap,dc=com</strong>
. ldap master bind password [] &gt;
. ldap slave server: IP adress or DNS name of the slave ldap server: can also be the master one
Use of uninitialized value $server in string at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 262, &lt;STDIN&gt; line 21.
  ldap slave server [] &gt; <strong>127.0.0.1</strong>
. ldap slave port [389] &gt;
. ldap slave bind dn [] &gt; <strong>uid=root,ou=People,dc=test-ldap,dc=com</strong>
. ldap slave bind password [] &gt;
. ldap tls support (1/0) [0] &gt;
. SID for domain PDCTEST: SID of the domain (can be obtained with 'net getlocalsid fc9-min')
  SID for domain PDCTEST [S-1-5-21-3697236364-1357617849-1956783867] &gt;
. unix password encryption: encryption used for unix passwords
  unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] &gt;
. default user gidNumber [513] &gt;
. default computer gidNumber [515] &gt;
. default login shell [/bin/bash] &gt;
. default skeleton directory [/etc/skel] &gt;
. default domain name to append to mail adress [] &gt;
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Use of uninitialized value $# in concatenation (.) or string at /usr/share/doc/smbldap-tools-0.9.5/configure.pl line 314, &lt;STDIN&gt; line 33.
backup old configuration files:
  /etc/smbldap-tools/smbldap.conf-&gt;/etc/smbldap-tools/smbldap.conf.old
  /etc/smbldap-tools/smbldap_bind.conf-&gt;/etc/smbldap-tools/smbldap_bind.conf.old
writing new configuration file:
  /etc/smbldap-tools/smbldap.conf done.
  /etc/smbldap-tools/smbldap_bind.conf done.</pre>
<h4>รันคำสั่ง smbldap-populate</h4>
<p>โปรแกรม smbldap-tools จะมีคำสั่ง smbldap-populate เพื่อช่วยเพิ่มข้อมูลเข้าไปใน OpenLDAP โดยจะอ้างอิงจากคอนฟิกที่รันด้วย configure.pl</p>
<p>หมายเหตุ ในที่นี้จะถือว่า ไม่มีข้อมูลใดๆ อยู่ใน OpenLDAP เลย</p>
<p>ตัวอย่างการรันคำสั่ง smbldap-populate</p>
<pre>[root@fc9-min openldap]# <strong>smbldap-populate
</strong>Populating LDAP directory for domain PDCTEST (S-1-5-21-3697236364-1357617849-1956783867)
(using builtin directory structure)</pre>
<pre>adding new entry: dc=test-ldap,dc=com
adding new entry: ou=People,dc=test-ldap,dc=com
adding new entry: ou=Group,dc=test-ldap,dc=com
adding new entry: ou=Computers,dc=test-ldap,dc=com
adding new entry: ou=Idmap,dc=test-ldap,dc=com
adding new entry: uid=root,ou=People,dc=test-ldap,dc=com
adding new entry: uid=nobody,ou=People,dc=test-ldap,dc=com
adding new entry: cn=Domain Admins,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Domain Users,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Domain Guests,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Domain Computers,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Administrators,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Account Operators,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Print Operators,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Backup Operators,ou=Group,dc=test-ldap,dc=com
adding new entry: cn=Replicators,ou=Group,dc=test-ldap,dc=com
adding new entry: sambaDomainName=PDCTEST,dc=test-ldap,dc=com</pre>
<pre>Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password: <strong>ldap1234</strong>
Retype new password: <strong>ldap1234</strong></pre>
<p>หมายเหตุ Password ที่ใส่ในส่วนท้ายของคำสั่ง smbldap-populate เป็น rootpw ที่ระบุในไฟล์ /etc/openldap/slapd.conf</p>
<h4>รันคำสั่ง smbpasswd</h4>
<p>รันคำสั่ง smbpasswd เพื่อใส่ ldap admin password ที่ Samba ใช้ในการเชื่อมต่อกับ LDAP</p>
<pre>[root@fc9-min ~]# <strong>smbpasswd -w ldap1234</strong>
Setting stored password for "uid=root,ou=People,dc=test-ldap,dc=com" in secrets.tdb</pre>
<p>หมายเหตุ &#8216;ldap1234&#8242; คือ rootpw ที่ระบุในไฟล์ /etc/openldap/slapd.conf</p>
<h4>คอนฟิกให้ลีนุกซ์ ตรวจสอบผู้ใช้งานจาก LDAP</h4>
<p>ใช้คำสั่ง authconfig-tui เพื่อคอนฟิกให้ ลีนุกซ์ตรวจสอบผู้ใช้งานหรือ authenticate จาก LDAP</p>
<h4>คอนฟิก Samba ให้ authenticate จาก LDAP</h4>
<p>แก้ไขคอนฟิกไฟล์ของ Samba เพื่อให้ authenticate จาก ldap</p>
<p>ตัวอย่างไฟล์ /etc/samba/smb.conf ที่แก้ไขเพิ่มเติม</p>
<pre> workgroup = SMBLDAP
 security = user
 passdb backend = ldapsam:ldap://127.0.0.1/</pre>
<pre> ldap suffix = dc=test-ldap,dc=com
 ldap admin dn = uid=root,ou=People,dc=test-ldap,dc=com
 ldap group suffix = ou=Group
 ldap user suffix = ou=People</pre>
<h4>เพิ่ม user ใน LDAP</h4>
<pre>[root@fc9-min ~]# <strong>smbldap-useradd -a -m -s /bin/bash -d /home/user01 -P user01</strong>
Changing UNIX and samba passwords for user01
New password:
Retype new password:</pre>
<h4>ทดสอบด้วยคำสั่ง smbclient</h4>
<p>ใช้คำสั่ง smbclient เพื่อทดสอบการใช้ Samba เพื่อ authenticate ผู้ใช้จาก LDAP</p>
<p>ตัวอย่างการทดสอบด้วยคำสั่ง smbclient</p>
<pre>[root@fc9-min samba]# <strong>smbclient '\\localhost\user01' -U user01</strong>
Enter user01's password:
Domain=[fc9-min] OS=[Unix] Server=[Samba 3.2.3-0.20.fc9]
smb: \&gt; <strong>dir
</strong>  .                                   D        0  Sat Oct 18 12:21:59 2008
  ..                                  D        0  Sat Oct 18 11:38:30 2008
  .bashrc                             H      124  Sat Oct 18 11:38:30 2008
  .bash_logout                        H       18  Sat Oct 18 11:38:30 2008
  .bash_profile                       H      176  Sat Oct 18 11:38:30 2008</pre>
<pre>                60160 blocks of size 65536. 55959 blocks available
smb: \&gt; <strong>exit</strong></pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/10/install_openldap_server_on_fedora_9">ติดตั้ง OpenLDAP Server บน Fedora 9</a></li>
<li><a href="http://spalinux.com/2008/07/update_samba_in_fedora_9" target="_self">ปรับปรุง samba เป็นเวอร์ชั่นล่าสุดใน Fedora 9</a></li>
<li><a href="http://spalinux.com/2008/10/using_smbldap-tools">การใช้งานคำสั่งของ smbldap-tools</a></li>
<li><a href="http://spalinux.com/2008/10/configure_samba_domain_controller">คอนฟิก Samba เป็น Domain Controller</a></li>
<li><a href="http://www.iallanis.info/smbldap-tools/docs/smbldap-tools/" target="_blank">Smbldap-tools User Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/install_smbldap-tools_on_fedora_9/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เพิ่ม แก้ไข ลบ ผู้ใช้งานใน OpenLDAP</title>
		<link>http://spalinux.com/2008/10/add_modify_delete_user_in_openldap</link>
		<comments>http://spalinux.com/2008/10/add_modify_delete_user_in_openldap#comments</comments>
		<pubDate>Sat, 11 Oct 2008 18:38:23 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[openldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=255</guid>
		<description><![CDATA[จากบทความ ติดตั้ง OpenLDAP Server บน Fedora 9 และ เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP  ในบทความนี้จะแสดงวิธีการเพิ่ม แก้ไข ลบ รวมทั้งการเปลี่ยนรหัสผ่าน (Password) ของผู้ใช้งานที่ถูกเก็บข้อมูลไว้ใน OpenLDAP  โดยจะสร้างเป็นไฟล์ ldif แล้วใช้คำสั่งของ ldap ในการแก้ไข เพิ่มผู้ใช้งานเข้าไปใน OpenLDAP ตัวอย่างไฟล์ ldif และการใช้คำสั่ง ldapadd เพิ่ม user01 เข้าไปใน OpenLDAP [root@fc9-min ldif]# cat add-user01.ldif dn: uid=user01,ou=People,dc=test-ldap,dc=com uid: user01 cn: user01 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}!! shadowLastChange: 14030 shadowMax: [...]]]></description>
			<content:encoded><![CDATA[<p>จากบทความ <a href="http://spalinux.com/2008/10/install_openldap_server_on_fedora_9">ติดตั้ง OpenLDAP Server บน Fedora 9</a> และ <a href="http://spalinux.com/2008/10/add_user_into_openldap">เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP</a><br />
 ในบทความนี้จะแสดงวิธีการเพิ่ม แก้ไข ลบ รวมทั้งการเปลี่ยนรหัสผ่าน (Password) ของผู้ใช้งานที่ถูกเก็บข้อมูลไว้ใน OpenLDAP  โดยจะสร้างเป็นไฟล์ ldif แล้วใช้คำสั่งของ ldap ในการแก้ไข</p>
<p><span id="more-255"></span></p>
<hr />
<h4>เพิ่มผู้ใช้งานเข้าไปใน OpenLDAP</h4>
<p>ตัวอย่างไฟล์ ldif และการใช้คำสั่ง ldapadd เพิ่ม user01 เข้าไปใน OpenLDAP</p>
<pre>[root@fc9-min ldif]# <strong>cat add-user01.ldif
</strong>dn: uid=user01,ou=People,dc=test-ldap,dc=com
uid: user01
cn: user01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}!!
shadowLastChange: 14030
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/user01</pre>
<pre>[root@fc9-min ldif]# <strong>ldapadd -x -D uid=root,ou=People,dc=test-ldap,dc=com \
                       -W -f add-user01.ldif
</strong>Enter LDAP Password:
adding new entry "uid=user01,ou=People,dc=test-ldap,dc=com"</pre>
<p>รหัสผ่าน (Enter LDAP Password) ที่ต้องใส่คือรหัส rootpw ที่ถูกเข้ารหัสแล้วเก็บไว้ในไฟล์ slapd.conf</p>
<p>หลังจากที่เพิ่มผู้ใช้งาน ต้องสร้างไดเร็คทอรีเพื่อเป็น HOME ของ user ด้วย ดังนี้</p>
<pre>[root@fc9-min ~]# <strong>cd /home
</strong>[root@fc9-min home]# <strong>mkdir user01
</strong>[root@fc9-min home]# <strong>cp -av /etc/skel/. user01/
</strong>`/etc/skel/./.bash_profile' -&gt; `user01/./.bash_profile'
`/etc/skel/./.bash_logout' -&gt; `user01/./.bash_logout'
`/etc/skel/./.bashrc' -&gt; `user01/./.bashrc'
[root@fc9-min home]# <strong>chown user01:users user01/
</strong>[root@fc9-min home]# <strong>chmod 700 user01</strong></pre>
<hr />
<h4>ตรวจสอบผู้ใช้งานจาก OpenLDAP</h4>
<p>นอกจากการทดสอบด้วยการล็อกอินแล้ว สามารถใช้คำสั่ง id หรือ getent ในการตรวจสอบผู้ใช้งานจาก OpenLDAP ได้ดังนี้</p>
<pre>[root@fc9-min ~]# <strong>id user01
</strong>uid=1001(user01) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023</pre>
<pre>[root@fc9-min ldif]# <strong>getent passwd user01
</strong>user01:x:1001:100:user01:/home/user01:/bin/bash</pre>
<hr />
<h4>เปลี่ยนรหัสผ่าน</h4>
<p>ใช้คำสั่ง ldappasswd ในการเปลี่ยนรหัสผู้ใช้งานที่อยู่ใน OpenLDAP โดยต้องระบุ CN ของผู้ใช้นั้นๆ เช่น ต้องการเปลี่ยนรหัสผ่านของ user01 ซึ่งมี CN: uid=user01,ou=People,dc=test-ldap,dc=com สามารถทำได้ดังนี้</p>
<pre>[root@fc9-min ldif]# <strong>ldappasswd -x -S -W -D uid=root,ou=People,dc=test-ldap,dc=com \
                       uid=user01,ou=People,dc=test-ldap,dc=com</strong></pre>
<pre>New password: <strong>&lt;new-user-password&gt;</strong>
Re-enter new password: <strong>&lt;new-user-password&gt;
</strong>Enter LDAP Password: <strong>&lt;rootpw-password&gt;</strong></pre>
<p>รหัสสองอันแรกที่ต้องใส่ (New password และ Re-enter new password) เป็นรหัสใหม่ที่ต้องการตั้งให้กับผู้ใช้ ส่วน Enter LDAP Password ต้องใส่รหัสผ่านของ rootpw ที่ระบุในไฟล์ slapd.conf</p>
<hr />
<h4>แก้ไขข้อมูล</h4>
<p>ใช้คำสั่ง ldapmodify เพื่อแก้ไขข้อมูลที่อยู่ใน OpenLDAP โดยข้อมูลที่ถูกแก้ไข จะถูกระบุอยู่ในไฟล์ ldif เช่น ตัวอย่างนี้จะเป็นการแก้ไขข้อมูล homeDirectory ของ user01 ให้เป็นค่าใหม่คือ /new-home/user01 และเพิ่ม gecos โดยมีค่าเป็น “User01 GECOS Name”</p>
<pre>[root@fc9-min ldif]# <strong>cat modify-user01.ldif
</strong>dn: uid=user01,ou=People,dc=test-ldap,dc=com
changetype: modify
replace: homeDirectory
homeDirectory: /new-home/user01
-
add: gecos
gecos: User01 GECOS Name
-</pre>
<p>ใช้คำสั่ง getent เพื่อเปรียบเทียบข้อมูลก่อนและหลังรันคำสั่ง ldapmodify</p>
<pre>[root@fc9-min ldif]# <strong>getent passwd user01
</strong>user01:x:1001:100:user01:/home/user01:/bin/bash</pre>
<pre>[root@fc9-min ldif]# <strong>ldapmodify -x -D "uid=root,ou=People,dc=test-ldap,dc=com" \
                       -W -f modify-user01.ldif
</strong>Enter LDAP Password:
modifying entry "uid=user01,ou=People,dc=test-ldap,dc=com"</pre>
<pre>[root@fc9-min ldif]# <strong>getent passwd user01
</strong>user01:x:1001:100:User01 GECOS Name:/new-home/user01:/bin/bash</pre>
<hr />
<h4>ลบ user</h4>
<p>ใช้คำสั่ง ldapdelete เพื่อลบผู้ใช้งานออกจาก OpenLDAP โดยต้องระบุชื่อผู้ใช้เป็นค่า CN ของผู้ใช้นั้นๆ เช่นต้องการลบ user01 ที่มี CN: uid=user01,ou=People,dc=test-ldap,dc=com</p>
<pre>[root@fc9-min bin]# <strong>ldapdelete -x -D uid=root,ou=People,dc=test-ldap,dc=com –W \
                      uid=user01,ou=People,dc=test-ldap,dc=com
</strong>Enter LDAP Password:</pre>
<pre>[root@fc9-min bin]# <strong>getent passwd user01
</strong>[root@fc9-min bin]#</pre>
<hr />
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/10/install_openldap_server_on_fedora_9">ติดตั้ง OpenLDAP Server บน Fedora 9</a></li>
<li><a href="http://spalinux.com/2008/10/add_user_into_openldap">เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/add_modify_delete_user_in_openldap/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP</title>
		<link>http://spalinux.com/2008/10/add_user_into_openldap</link>
		<comments>http://spalinux.com/2008/10/add_user_into_openldap#comments</comments>
		<pubDate>Sat, 11 Oct 2008 18:05:32 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[ldap authentication]]></category>
		<category><![CDATA[openldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=250</guid>
		<description><![CDATA[หลังจากที่ ติดตั้ง OpenLDAP Server ไปแล้ว บทความนี้จะเป็นการเริ่มต้นใส่ข้อมูลเข้าไปใน LDAP ซึ่งในที่นี้จะใส่ข้อมูลให้สามารถเก็บบัญชีผู้ใช้งาน (User Account) และรหัสผ่าน (Password) เพื่อให้สามารถ authenticate user บนลีนุกซ์ได้ การเพิ่มข้อมูลเข้าไปใน LDAP ได้นั้น วิธีการหนี่งที่ทำได้คือสร้างไฟล์เป็นรูปแบบ ldif ก่อน แล้วใช้คำสั่ง ldapadd เพื่อเพิ่มข้อมูลเข้าไปใน LDAP เพิ่มข้อมูลพื้นฐานของ LDAP ตัวอย่างไฟล์ ldif สำหรับใส่ข้อมูลพื้นฐานของ LDAP  และการใช้คำสั่ง ldapadd เพิ่มข้อมูลเข้าไปใน LDAP [root@fc9-min ldif]# cat ldap-base.ldif dn: dc=test-ldap,dc=com dc: test-ldap objectClass: top objectClass: domain dn: ou=People,dc=test-ldap,dc=com ou: People objectClass: top objectClass: [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากที่ <a href="http://spalinux.com/2008/10/install_openldap_server_on_fedora_9">ติดตั้ง OpenLDAP Server</a> ไปแล้ว บทความนี้จะเป็นการเริ่มต้นใส่ข้อมูลเข้าไปใน LDAP ซึ่งในที่นี้จะใส่ข้อมูลให้สามารถเก็บบัญชีผู้ใช้งาน (User Account) และรหัสผ่าน (Password) เพื่อให้สามารถ authenticate user บนลีนุกซ์ได้</p>
<p><span id="more-250"></span></p>
<p>การเพิ่มข้อมูลเข้าไปใน LDAP ได้นั้น วิธีการหนี่งที่ทำได้คือสร้างไฟล์เป็นรูปแบบ ldif ก่อน แล้วใช้คำสั่ง ldapadd เพื่อเพิ่มข้อมูลเข้าไปใน LDAP</p>
<h4>เพิ่มข้อมูลพื้นฐานของ LDAP</h4>
<p>ตัวอย่างไฟล์ ldif สำหรับใส่ข้อมูลพื้นฐานของ LDAP  และการใช้คำสั่ง ldapadd เพิ่มข้อมูลเข้าไปใน LDAP</p>
<pre>[root@fc9-min ldif]# <strong>cat ldap-base.ldif</strong>
dn: dc=test-ldap,dc=com
dc: test-ldap
objectClass: top
objectClass: domain</pre>
<pre>dn: ou=People,dc=test-ldap,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit</pre>
<pre>dn: ou=Group,dc=test-ldap,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit</pre>
<pre>[root@fc9-min ldif]# <strong>ldapadd -x -D uid=root,ou=People,dc=test-ldap,dc=com -W -f ldap-base.ldif
</strong>Enter LDAP Password:
adding new entry "dc=test-ldap,dc=com"</pre>
<pre>adding new entry "ou=People,dc=test-ldap,dc=com"</pre>
<pre>adding new entry "ou=Group,dc=test-ldap,dc=com"</pre>
<p><strong>หมายเหตุ</strong> LDAP Password ที่ต้องใส่ในคำสั่ง ldapadd คือรหัสที่ถูกเข้ารหัสด้วยคำสั่ง slappasswd แล้วนำมาใส่ไว้เป็นคอนฟิก rootpw ในไฟล์ /etc/openldap/slapd.conf</p>
<h4>เพิ่ม user01 เข้าไปใน LDAP</h4>
<p>ตัวอย่างไฟล์ ldif เพื่อเพิ่ม user01 เข้าไปใน LDAP</p>
<pre>[root@fc9-min ldif]# <strong>cat add-user01.ldif
</strong>dn: uid=user01,ou=People,dc=test-ldap,dc=com
uid: user01
cn: user01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}!!
shadowLastChange: 14030
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/user01</pre>
<p>ใช้คำสั่ง ldapadd เพิ่ม user01 เข้าไปใน LDAP</p>
<pre>[root@fc9-min ldif]# <strong>ldapadd -x -D uid=root,ou=People,dc=test-ldap,dc=com -W -f add-user01.ldif</strong>
Enter LDAP Password:
adding new entry "uid=user01,ou=People,dc=test-ldap,dc=com"</pre>
<h4>แก้ใขให้ลีนุกซ์ตรวจสอบผู้ใช้งานจาก LDAP</h4>
<p>ใช้คำสั่ง authconfig-tui เพื่อคอนฟิกให้อ่านค่าผู้ใช้งาน (User Account) จาก LDAP Server โดยในที่นี้จะให้ LDAP Server รันอยู่บนเครื่องเดียวกัน เราสามารถระบุ Server เป็น 127.0.0.1 หรือ localhost ได้</p>
<p>ในหน้าแรกของคำสั่ง authconfig-tui ส่วนของ User Information  ให้คลิกเลือก [*] Use LDAP และส่วนของ Authentication ให้คลิกเลือก [*] Use LDAP Authentication เสร็จเรียบร้อยให้กด Next</p>
<pre>                              ┌────────────────┤ Authentication Configuration ├─────────────────┐
                              │                                                                 │
                              │  User Information        Authentication                         │
                              │  [ ] Cache Information   [ ] Use MD5 Passwords                  │
                              │  [ ] Use Hesiod          [*] Use Shadow Passwords               │
                              │  <strong>[*] Use LDAP</strong>            <strong>[*] Use LDAP Authentication</strong>            │
                              │  [ ] Use NIS             [ ] Use Kerberos                       │
                              │  [ ] Use Winbind         [ ] Use SMB Authentication             │
                              │                          [ ] Use Winbind Authentication         │
                              │                          [*] Local authorization is sufficient  │
                              │                                                                 │
                              │            ┌────────┐                      ┌──────┐             │
                              │            │ Cancel │                      │ Next │             │
                              │            └────────┘                      └──────┘             │
                              │                                                                 │
                              │                                                                 │
                              └─────────────────────────────────────────────────────────────────┘</pre>
<p>ในหน้าที่สองจะเป็นการระบุ Server เพื่อชี้ไปยัง LDAP Server โดยจะใส่ ldap:// นำหน้า IP Address หรือชื่อ Hostname  อีกส่วนที่ต้องแก้ไขคือ Base DN ซึ่งเป็นค่าเดียวกับที่ตั้งไว้ในไฟล์ slapd.conf เสร็จเรียบร้อยให้กด Ok ออกมา</p>
<pre>                                     ┌─────────────────┤ LDAP Settings ├─────────────────┐
                                     │                                                   │
                                     │          [ ] Use TLS                              │
                                     │  Server: <strong>ldap://127.0.0.1/</strong>_______________________ │
                                     │ Base DN: <strong>dc=test-ldap,dc=com</strong>_____________________ │
                                     │                                                   │
                                     │         ┌──────┐                  ┌────┐          │
                                     │         │ Back │                  │ Ok │          │
                                     │         └──────┘                  └────┘          │
                                     │                                                   │
                                     │                                                   │
                                     └───────────────────────────────────────────────────┘</pre>
<h4>ทดสอบตรวจสอบบัญชีผู้ใช้งานจาก LDAP</h4>
<p>สามารถใช้คำสั่ง id เพื่อตรวจสอบผู้ใช้งานจาก LDAP ได้ ดังนี้</p>
<pre>[root@fc9-min ~]# <strong>id user01
</strong>uid=1001(user01) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023</pre>
<p>หรือใช้คำสั่ง getent เพื่อดูรายละเอียดเพิ่มเติมของผู้ใช้นั้นๆ</p>
<pre>[root@fc9-min ~]# <strong>getent passwd user01
</strong>user01:x:1001:100:user01:/home/user01:/bin/bash</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/10/install_openldap_server_on_fedora_9">ติดตั้ง OpenLDAP Server บน Fedora 9</a></li>
<li><a href="http://spalinux.com/2008/10/add_modify_delete_user_in_openldap">เพิ่ม แก้ไข ลบ ผู้ใช้งานใน OpenLDAP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/add_user_into_openldap/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ติดตั้ง OpenLDAP Server บน Fedora 9</title>
		<link>http://spalinux.com/2008/10/install_openldap_server_on_fedora_9</link>
		<comments>http://spalinux.com/2008/10/install_openldap_server_on_fedora_9#comments</comments>
		<pubDate>Sat, 11 Oct 2008 17:22:08 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[openldap]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=242</guid>
		<description><![CDATA[จากครั้งก่อนได้กล่าวถึง การติดตั้งและคอนฟิก Fedora Directory Server เบื้องต้น  ซึ่งเป็น LDAP Server ที่พัฒนาจากทีมงานของ Fedora ในบทความนี้จะกล่าวถึงอีกทางเลือกหนึ่งในการเลือกใช้งาน LDAP Server โดยจะเป็นการติดตั้งและเริ่มต้นคอนฟิก OpenLDAP Server  หมายเหตุ ตัวอย่างในบทความนี้จะติดตั้งบนเครื่องที่ ติดตั้ง Fedora 9 แบบประหยัดพื้นที่สุด ดาวน์โหลดไฟล์ rpm สำหรับติดตั้ง OpenLDAP สามารถดาวน์โหลดไฟล์ rpm เวอร์ชั่นล่าสุด (update) ของ Fedora 9 สำหรับการติดตั้งได้ที่ http://mirrors.kernel.org/fedora/updates/9/ โดยรายชื่อไฟล์ที่ต้องดาวน์โหลด (ตุลาคม 2551) มีดังนี้ openldap-2.4.10-1.fc9.i386.rpm openldap-clients-2.4.10-1.fc9.i386.rpm openldap-servers-2.4.10-1.fc9.i386.rpm ติดตั้งโปรแกรมไฟล์ rpm ของ openldap หลังจากได้ไฟล์ที่ดาวน์โหลดมา ใช้คำสั่ง rpm ในการติดตั้ง ตัวอย่างการติดตั้งไฟล์ rpm โปรแกรม OpenLDAP [root@fc9-min ~]# [...]]]></description>
			<content:encoded><![CDATA[<p>จากครั้งก่อนได้กล่าวถึง <a href="http://spalinux.com/2008/06/basic_install_configure_fedora_directory_server">การติดตั้งและคอนฟิก Fedora Directory Server เบื้องต้น</a>  ซึ่งเป็น LDAP Server ที่พัฒนาจากทีมงานของ Fedora ในบทความนี้จะกล่าวถึงอีกทางเลือกหนึ่งในการเลือกใช้งาน LDAP Server โดยจะเป็นการติดตั้งและเริ่มต้นคอนฟิก OpenLDAP Server </p>
<p><span id="more-242"></span></p>
<p>หมายเหตุ ตัวอย่างในบทความนี้จะติดตั้งบนเครื่องที่ <a href="http://spalinux.com/2008/06/install_minimal_fedora_9 ">ติดตั้ง Fedora 9 แบบประหยัดพื้นที่สุด</a></p>
<h4>ดาวน์โหลดไฟล์ rpm สำหรับติดตั้ง OpenLDAP</h4>
<p>สามารถดาวน์โหลดไฟล์ rpm เวอร์ชั่นล่าสุด (update) ของ Fedora 9 สำหรับการติดตั้งได้ที่ <a href="http://mirrors.kernel.org/fedora/updates/9/">http://mirrors.kernel.org/fedora/updates/9/</a> โดยรายชื่อไฟล์ที่ต้องดาวน์โหลด (ตุลาคม 2551) มีดังนี้</p>
<ul>
<li>openldap-2.4.10-1.fc9.i386.rpm</li>
<li>openldap-clients-2.4.10-1.fc9.i386.rpm</li>
<li>openldap-servers-2.4.10-1.fc9.i386.rpm</li>
</ul>
<h4>ติดตั้งโปรแกรมไฟล์ rpm ของ openldap</h4>
<p>หลังจากได้ไฟล์ที่ดาวน์โหลดมา ใช้คำสั่ง rpm ในการติดตั้ง</p>
<p>ตัวอย่างการติดตั้งไฟล์ rpm โปรแกรม OpenLDAP</p>
<pre>[root@fc9-min ~]# <strong>rpm -U openldap-2.4.10-1.fc9.i386.rpm</strong>
[root@fc9-min ~]# <strong>rpm -i openldap-clients-2.4.10-1.fc9.i386.rpm
</strong>[root@fc9-min ~]# <strong>rpm -i openldap-servers-2.4.10-1.fc9.i386.rpm
</strong>/etc/pki/tls/certs /
umask 77 ; \
        PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        /usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
        cat $PEM1 &gt;  slapd.pem ; \
        echo ""    &gt;&gt; slapd.pem ; \
        cat $PEM2 &gt;&gt; slapd.pem ; \
        rm -f $PEM1 $PEM2
Generating a 1024 bit RSA private key
...++++++
....++++++
writing new private key to '/tmp/openssl.etZSRT'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:State or Province Name (full name) [Berkshire]:Locality Name (eg, city) [Newbury]:Organization Name (eg, company) [My Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []:/</pre>
<p>หมายเหตุ</p>
<ul>
<li>ตัวอย่างนี้ใช้คำสั่ง rpm ด้วยออปชั่น -U (Upgrade) เพราะว่าจากการติดตั้ง Fedora 9 จะมีไฟล์ rpm ของ openldap ติดมาด้วย และมีโปรแกรมอื่นๆ ที่บังคับไม่ให้เราสามารถถอดไฟล์ rpm นี้ออกไปก่อนจะลงใหม่ได้ ออปชั่น -U จะเป็นการสั่งให้ปรับปรุงและแทนที่ด้วยเวอร์ชั่นใหม่ทับของเก่าไป</li>
<li>การติดตั้ง openldap-servers จะมีข้อความขึ้นมา ซึ่งเป็นการสร้างคีย์ไฟล์เพื่อความปลอดภัยในการรับส่งข้อมูลระหว่างเซิร์ฟเวอร์กับไคลเอนต์  ณ ตอนนี้ไม่ต้องสนใจ</li>
</ul>
<p>หลังจากติดตั้งแล้ว สามารถตรวจสอบเวอร์ชั่นของไฟล์ rpm ที่ติดตั้งได้ ดังนี้</p>
<pre>[root@fc9-min ~]# <strong>rpm -qa | grep openldap</strong>
openldap-servers-2.4.10-1.fc9.i386
openldap-clients-2.4.10-1.fc9.i386
openldap-2.4.10-1.fc9.i386</pre>
<h4>แก้ไขคอนฟิกไฟล์ /etc/openldap/slapd.conf</h4>
<p>ไฟล์คอนฟิกหลักของ OpenLDAP Server คือไฟล์ /etc/openldap/slapd.conf ในเบื้องต้นจะต้องมีการแก้ไขบางส่วนก่อนที่จะเริ่มใช้งานได้ ในที่นี้จะสมมติข้อมูลเบื้องต้นสำหรับการคอนฟิก OpenLDAP Server เป็นดังนี้</p>
<pre>Suffix:  dc=test-ldap,dc=com
Root DN: uid=root,ou=People,dc=test-ldap,dc=com
Root PW: ldap1234</pre>
<p>ก่อนที่จะเริ่มแก้ไขไฟล์คอนฟิก ต้องใช้คำสั่ง spappasswd เพื่อเข้ารหัส Root PW แล้วนำผลลัพธ์ที่ได้ไปใส่ไว้ส่วนของคอนฟิก rootpw ในไฟล์ slapd.conf โดยรหัสนี้จะใช้เมื่อต้องการแก้ไขข้อมูลที่อยู่ใน LDAP เช่นเพิ่ม แก้ไข ลบ ข้อมูล</p>
<p>ตัวอย่างการรันคำสั่ง spappasswd</p>
<pre>[root@fc9-min openldap]# <strong>slappasswd
</strong>New password: ldap1234
Re-enter new password: ldap1234
{SSHA}zA4XZB4pD1TUh/mRO31MC0kbUF+V0v2Y</pre>
<p>นำผลลัพธ์การเข้ารหัสที่ได้ ไปใส่ไว้ในไฟล์ slapd.conf</p>
<p>ตัวอย่างการแก้ไขไฟล์ slapd.conf</p>
<pre>database    bdb
suffix      <strong>"dc=test-ldap,dc=com"
</strong>rootdn      <strong>"uid=root,ou=People,dc=test-ldap,dc=com"
</strong>rootpw      <strong>{SSHA}zA4XZB4pD1TUh/mRO31MC0kbUF+V0v2Y</strong></pre>
<pre>directory   /var/lib/ldap</pre>
<h4>รันเซอร์วิส ldap</h4>
<p>ก่อนที่จะรันเซอร์วิส ต้อง copy ไฟล์ DB_CONFIG มาใส่ไว้ในไดเร็คทอรี /var/lib/ldap/ ก่อน แล้วใช้คำสั่ง service เพื่อรันเซอร์วิส ldap ดังนี้</p>
<pre>
[root@fc9-min ~]# <strong>cp /usr/share/doc/openldap-servers-2.4.10/DB_CONFIG.example /var/lib/ldap/DB_CONFIG</strong>
[root@fc9-min ~]# <strong>chown ldap:ldap /var/lib/ldap/DB_CONFIG</strong>
[root@fc9-min ~]# <strong>chmod 600 /var/lib/ldap/DB_CONFIG</strong>

[root@fc9-min ~]# <strong>service ldap start
</strong>Starting slapd:                                 [  OK  ]</pre>
<p>สามารถตรวจสอบโปรเซสของ ldap ได้จากคำสั่ง ps ดังนี้</p>
<pre>[root@fc9-min openldap]# <strong>ps -ef | grep ldap
</strong>ldap      2382     1  0 13:17 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -u ldap</pre>
<p>ไฟล์ข้อมูลของ OpenLDAP Server จะถูกเก็บไว้ในไดเร็คทอรีที่ระบุในส่วนคอนฟิก directory ในไฟล์ slapd.conf จากตัวอย่างด้านบนจะเป็น /var/lib/ldap</p>
<pre>[root@fc9-min ~]# <strong>ls -l /var/lib/ldap
</strong>total 700
-rw-r--r-- 1 ldap ldap     2048 2008-10-12 01:39 alock
-rw------- 1 ldap ldap    24576 2008-10-12 01:39 __db.001
-rw------- 1 ldap ldap   278528 2008-10-12 01:39 __db.002
-rw------- 1 ldap ldap   270336 2008-10-12 01:39 __db.003
-rw------- 1 ldap ldap    98304 2008-10-12 01:39 __db.004
-rw------- 1 ldap ldap   352256 2008-10-12 01:39 __db.005
-rw------- 1 ldap ldap    24576 2008-10-12 01:39 __db.006
-rw------- 1 ldap ldap      921 2008-10-17 16:18 DB_CONFIG
-rw------- 1 ldap ldap     8192 2008-10-12 01:39 dn2id.bdb
-rw------- 1 ldap ldap    32768 2008-10-12 01:39 id2entry.bdb
-rw------- 1 ldap ldap 10485760 2008-10-12 01:39 log.0000000001</pre>
<h4>ทดสอบการดึงข้อมูลจาก LDAP</h4>
<p>ถ้า OpenLDAP Server รันได้ถูกต้อง เราสามารถใช้คำสั่ง ldapsearch เพื่อดึงข้อมูลจาก LDAP ตัวอย่างด้านล่างจะเป็นการทดสอบดึงข้อมูลทั้งหมดมา ซึ่งตอนนี้ยังไม่มีข้อมูล ดังนั้นผลลัพธ์จะแสดงดังนี้</p>
<pre>[root@fc9-min ldif]# <strong>ldapsearch -x -b "dc=test-ldap,dc=com" "(objectclass=*)"
</strong># extended LDIF
#
# LDAPv3
# base &lt;dc=test-ldap,dc=com&gt; with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#</pre>
<pre># search result
search: 2
result: 32 No such object</pre>
<pre># numResponses: 1</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/10/add_user_into_openldap">เพิ่มบัญชีผู้ใช้งานเข้าไปใน OpenLDAP</a></li>
<li><a href="http://spalinux.com/2008/10/add_modify_delete_user_in_openldap">เพิ่ม แก้ไข ลบ ผู้ใช้งานใน OpenLDAP</a></li>
<li><a href="http://www.openldap.org/" target="_blank">OpenLDAP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/10/install_openldap_server_on_fedora_9/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
