คอนฟิก Samba 4 ให้ทำ Roaming User Profiles ใน Active Directory Domain Controller

หลังจาก ตั้ง Active Directory Domain Controller ด้วย Samba 4 บน Ubuntu 16.04 เรียบร้อยแล้ว อีกหนึ่งคุณสมบัติที่นิยมใช้กันภายในบริษัทคือ การเซ็ต Roaming User Profiles เพื่อให้ผู้ใช้งานสามารถล็อกอินจากเครื่อง Windows ไหนก็ได้ ที่เป็นสมาชิก AD Domain เดียวกัน แล้วจะได้หน้าจอ Desktop เหมือนกัน

หลักการทำงานคร่าวๆ คือ เมื่อผู้ใช้ที่มีการคอนฟิก Roaming User Profiles ไว้ ล็อกอิน หรือ Log on เข้าเครื่อง Windows ที่อยู่ใน AD Domain จะมีการดาวน์โหลด profiles ต่างๆ ของผู้ใช้ เช่นภาพ Desktop Background ไฟล์หรือโฟลเดอร์ที่อยู่บน Desktop มาจากแชร์โฟลเดอร์บนเซิร์ฟเวอร์ที่ถูกตั้งค่าไว้

และหลังจากที่ผู้ใช้งานเสร็จเรียบร้อย ทำการ Log off ออกจาก Windows ค่า profiles หรือไฟล์โฟลเดอร์ที่ถูกแก้ไข จะถูกอัพโหลดกลับเข้าไปแชร์โฟลเดอร์ที่เดิมที่ตั้งค่าไว้ด้วย

ลองมาดูวิธีการคอนฟิก Samba 4 ให้สามารถทำ Roaming User Profiles ได้

ในที่นี่เพื่อความง่าย จะคอนฟิกแชร์โฟลเดอร์สำหรับเก็บ Roaming User Profiles ไว้บนตัว Domain Controller เลย

เริ่มต้น สร้างไดเรคทอรีบนเครื่องเซิรฟ์เวอร์ที่จะใช้เก็บ Profiles ในที่นี่ขอเซ็ตตามเว็บไซต์ wiki.samba.org

admin@samba4:~$ sudo mkdir -p /srv/samba/Profiles
admin@samba4:~$ sudo chmod 1770 /srv/samba/Profiles
admin@samba4:~$ sudo chgrp users /srv/samba/Profiles

ลองใช้คำสั่ง ls -l ดูค่า permissions และชื่อ group ของไดเรคทอรีที่สร้าง

admin@samba4:~$ ls -l /srv/samba/
total 4
drwxrwx--T 2 root users 4096 Sep 23 17:17 Profiles

admin@samba4:~$ sudo ls -l /srv/samba/Profiles/
total 0

แก้ไขคอนฟิกไฟล์ smb.conf โดยเพิ่มคอนฟิกส่วนการแชร์โฟลเดอร์ [Profiles]

admin@samba4:~$ sudo vi /etc/samba/smb.conf
...
[Profiles]
    path = /srv/samba/Profiles
    read only = no
    store dos attributes = Yes
    create mask = 0600
    directory mask = 0700
    profile acls = yes
    csc policy = disable

ใช้คำสั่ง smbcontrol รีโหลดโปรเซส samba เพื่อให้คอนฟิกที่แก้ไขมีผล

admin@samba4:~$ sudo smbcontrol all reload-config

ใช้คำสั่ง samba-tool user add สร้างชื่อผู้ใช้ chris โดยจะระบุออปชัน –profile-path เพื่อกำหนดค่าแชร์โฟลเดอร์ที่ใช้ในการเก็บ Profiles

admin@samba4:~$ sudo samba-tool user add chris --profile-path=\\\\192.168.56.16\\Profiles\\chris
New Password:
Retype Password:
User 'chris' created successfully

ทดลอง log on เข้าเครื่อง Windows ที่คอนฟิกอยู่ใน AD Domain อยู่แล้ว ด้วยชื่อผู้ใช้ที่เพิ่งสร้าง

r01-logon

เริ่มต้น เนื่องจากเป็นการล็อกออนครั้งแรก ผู้ใช้งานยังไม่มีค่า Profiles ใดๆ เลย จะได้หน้าจอดีฟอลต์ของ Windows

r02-default-desktop

หลังจาก Log on เรียบร้อยแล้ว ลองดูไฟล์ในไดเรคทอรีที่คอนฟิกไว้เป็นแชร์โฟลเดอร์ในการเก็บ Profiles จะมีไดเรคทอรี chris.V2 ถูกสร้างขึ้นมา โดยดีฟอลต์ในไดเรคทอรีนี้ยังไม่มีไฟล์ใดๆ ทั้งสิ้น

admin@samba4:~$ sudo ls -l /srv/samba/Profiles/
total 8
drwxrwx---+ 2 3000021 users 4096 Sep 23 17:23 chris.V2

admin@samba4:~$ sudo ls -l /srv/samba/Profiles/chris.V2
total 0

คำอธิบายคือ เมื่อผู้ใช้ Log on เข้า Windows ที่อยู่ใน AD Domain ครั้งแรก จะมีการพยายามดาวน์โหลด Profiles จากแชร์โฟลเดอร์ที่ตั้งไว้ แต่ดีฟอลต์เนื่องจากเรายังไม่ได้เซ็ตค่าอะไร ทำให้ผู้ใช้งานนี้จะได้หน้าจอ Windows ในรูปแบบดีฟอลต์

ทดสองสร้างโฟลเดอร์หรือไฟล์ไว้บน Desktop หรือเปลี่ยนภาพ Desktop Background

r03-modified

แล้วกด Log off ออกจาก Windows

ระหว่างการ Log off ค่า Profiles ต่างๆ ของผู้ใช้งาน จะถูกอัพโหลดกลับเข้าไปในแชร์โฟลเดอร์บนเซิร์ฟเวอร์

หลังจาก Log off เสร็จเรียบร้อยแล้ว ในไดเรคทอรีที่เก็บ Profiles ของผู้ใช้ จะมีไฟล์ต่างๆ ถูกสร้างขึ้นมาจากการอัพโหลด

admin@samba4:~$ sudo ls -l /srv/samba/Profiles/chris.V2
total 620
drwxrwx---+ 3 3000021 users   4096 Sep 23 17:24 AppData
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Contacts
drwxrwx---+ 3 3000021 users   4096 Sep 23 17:29 Desktop
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Documents
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Downloads
drwxrwx---+ 7 3000021 users   4096 Sep 23 17:25 Favorites
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Links
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Music
-rwxrwx---+ 1 3000021 users 524288 Sep 23 17:32 NTUSER.DAT
-rwxrwx---+ 1 3000021 users    250 Sep 23 17:34 ntuser.ini
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Pictures
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Saved Games
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Searches
drwxrwx---+ 2 3000021 users   4096 Sep 23 17:24 Videos

ตัวอย่างไฟล์ในไดเรคทอรีย่อย Desktop จะเหมือนกับไฟล์บน Desktop บน Windows

admin@samba4:~$ sudo ls -l /srv/samba/Profiles/chris.V2/Desktop
total 16
-rwxrwx---+ 1 3000021 users  282 Sep 23 17:24 desktop.ini
drwxrwx---+ 2 3000021 users 4096 Sep 23 17:29 test-folder

admin@samba4:~$ sudo ls -l /srv/samba/Profiles/chris.V2/Desktop/test-folder
total 8
-rwxrwx---+ 1 3000021 users   11 Sep 23 17:31 file1.txt

admin@samba4:~$ sudo cat /srv/samba/Profiles/chris.V2/Desktop/test-folder/file1.txt
Test Samba 4 Active Directory Domain Controller
Roaming Profiles

ลองใช้อีกเครื่องหนึ่ง join AD เข้ามาในโดเมนเดียวกัน แล้วล็อกอินด้วยชื่อผู้ใช้ chris ก็จะได้หน้าจอ Desktop เหมือนกัน

r04-logon-on-another

ลองคอนฟิกกันดูครับ

ข้อมูลอ้างอิง

1 thought on “คอนฟิก Samba 4 ให้ทำ Roaming User Profiles ใน Active Directory Domain Controller”

  1. กรณีทำเช่นนี้แล้ว ถ้า user ดาวน์โหลดไฟล์ต่างๆ เช่น ไฟล์หนังขนาดใหญ่มา จากนั้นไปลอกอินเครื่องอื่น เครื่องๆนั้นจะมีไฟล์หนังขนาดใหญ่นั้นด้วยไหมครับ ถ้าเป็นไปตามนั้นจริงๆ แปลว่า hd ของเครื่อง local นั้นๆไม่ได้ถูกใช้เลย แสดงว่าไฟล์หนังนั้นถูกเก็บไว้ที่ server เช่นนีแล้วจะเป็นภาระต่อ server มากเลยใช่ไหมครับ หรือผมเข้าใจอะไรผิดไป

Leave a Reply