Wednesday, August 15, 2007

Shared Permission vs NTFS Permission

ความแตกต่างระหว่าง Shared Permission vs NTFS Permission และวิธีการใช้งาน
บทความโดย: Windows Administrator Blog

โดยทั่วไปแล้ว การใช้งานระบบ Windows นั้น จะใช้ในลักษณะการแชร์ทรัพยากรต่างๆ เช่น ไฟล์ข้อมูล เป็นหลัก ซึ่งเมื่อเราทำการแชร์ข้อมูลนั้น ประเด็นที่จะเกิดตามมา คือ ในการใช้งานจะต้องทำการกำหนด Permission อย่างไร

สำหรับบทความนี้ จะเป็นลักษณะการใช้งานระบบ Windows XP ซึ่งติดตั้งบน File System เป็นแบบ NTFS ซึ่งเมื่อทำการแชร์โฟลเดอร์นั้น จะมี Permission ให้กำหนด 2 รูปแบบด้วยกัน คือ Shared Folder Permission สำหรับการแชร์ และ NTFS permission สำหรับ File and Folder Permission โดยรายละเอียดด้านล่าง จะอธิบายถึงลัษณะคุณสมบัติของ Permission ทั้ง 2 รูปแบบนี้

หมายเหตุ
โครงสร้างของโฟลเดอร์ที่ใช้ในบทความนี้ จะมีลักษณะดังรูปที่ 1


รูปที่ 1 Sample Folder structure

Shared Folder Permission
Shared Folder Permission นั้น มีคุณสมบัติดังนี้
1. เป็นการกำหนด Permission สำหรับการเข้าใช้งานทรัพยากรที่ทำการแชร์บนระบบเครือข่าย นั้นคือจะมีผลกับการใช้งานผ่านทางระบบเครือข่ายเท่านั้น โดยในการใช้งานนั้น เครื่องที่ให้บริการแชร์ กับเครื่องที่จะเข้าใช้บริการ จะต้องสามารถติดต่อสื่อสารกันได้
2. ค่า Permission ที่กำหนดนั้น จะมีผลกับไฟล์และโฟลเดอร์ที่เก็บอยู่ในแชร์โฟลเดอร์ทั้งหมด
3. มี Permission ให้เลือกกำหนดได้ 3 ระดับคือ Full Control, Change และ Read
4. สามารถกำหนดจำนวนการเข้าใช้งานสูงสุดของผู้ใช้ผ่านทางระบบเครือข่ายได้

Read นั้นจะสิทธิ์ดังนี้
- สามารถดูไฟล์และซับโฟลเดอร์
- สามารถเข้าใช้งานซับโฟลเดอร์ได้
- สามารถดูเปิดดูข้อมูลในไฟล์
- สามารถทำการรันไฟล์ได้

Change นั้นจะสิทธิ์ดังนี้
- มีสิทธิ์ทุกอย่างของ Read Only
- สามารถสร้างไฟล์และโฟลเดอร์เพิ่มเติมได้
- สามารถแก้ไขเปลี่ยนแปลงข้อมูลภายในไฟล์ได้
- สามารถลบไฟล์และโฟลเดอร์ได้

Full Control นั้นจะสิทธิ์ดังนี้
- มีสิทธิ์ทุกอย่างของ Read Only และ Change
- และสามารถเปลี่ยน permission ได้(เฉพาะไฟล์และโฟลเดอร์ที่เป็นแบบ NTFS เท่านั้น)
- สามารถทำการ Taking ownership (เฉพาะไฟล์และโฟลเดอร์ที่เป็นแบบ NTFS เท่านั้น)

วิธีการกำหนด Permission ของแชร์โฟลเดอร์
การแชร์โฟลเดอร์นั้น ทำได้โดยการคลิกขวาที่โฟลเดอร์ที่ต้องการแชร์ แล้วคลิก Sharing and Security ซึ่งจะได้ไดอะล็อกซ์ดังรูปที่ 2 จากนั้นคลิกที่ Share this folder จะได้ไดอะล็อกซ์ดังรูปที่ 3 ซึ่งระบบจะทำการกำหนดชื่อของการแชร์ตามชื่อของโฟลเดอร์โดยอัตโนมัติ หากต้องการกำหนดชื่อของการแชร์เป็นชื่ออื่น ก็สามารถทำได้โดยการแก้ไขชื่อในช่อง Share Name


รูปที่ 2 Share Folder


รูปที่ 3 Sharing Properties

การกำหนด Permission ของการแชร์นั้น ทำได้โดยการคลิกที่ปุ่ม Permission ในรูปที่ 3 จะได้ไดอะล็อกซ์ Permission ดังรูปที่ 4 ซึ่งโดยดีฟอลท์นั้น วินโดวส์จะกำหนดให้ Everyone มี Permission แบบอ่านอย่างเดียวโดยอัตโนมัติ หากว่าต้องการเพิ่ม User ทำได้โดยการคลิกปุ่ม Add หรือหากต้องการลบ User ออกทำได้โดยการคลิกเลือก User ที่ต้องการแล้วคลิก Remove


รปูที่ 4 Permissions

จากไดอะล็อกซ์ Permissions ดังรูปที่ 4 ด้านบน จะเห็นได้ว่าจะมี Permissions for Everyone อยู่ 3 ระดับคือ Full Control, Change และ Read Only และมีค่าให้เลือกกำหนดได้ 2 ค่า คือ Allow และ Deny เมื่อทำการกำหนด Permission เสร็จแล้ว ให้คลิก OK เพื่อกลับไปยังหน้า Share Properties ดังรูปที่ 3

File and Folder Permission
File and Folder Permission บนไดรฟ์ที่เป็นระบบ NTFS นั้น มีคุณสมบัติดังนี้
1. เป็นการกำหนด Permission สำหรับการเข้าใช้งานไฟล์และโฟลเดอร์ ทั้งทางแบบโลคอการใช้งานผ่านทางระบบเครือข่าย
2. ค่า Permission ที่กำหนดให้กับโฟลเดอร์แม่นั้นสามารถถ่ายทอด Permission ดังกล่าวไปยังไฟล์และโฟลเดอร์ย่อยทั้งหมดที่อยู่ภายในโฟลเดอร์แม่
3. มี Permission ให้เลือกกำหนดได้ 7 ระดับคือ Full Control, Modify, Read & Execute, List Folder contents, Read, Write และ Special Permission
4. สามารถกำหนด Permission ได้ในระดับ Drive, Folder และ File

วิธีการกำหนด Permission ของไฟล์และโฟลเดอร์
การกำหนด Permission ของไฟล์และโฟลเดอร์นั้น ทำได้โดยการคลิกขวาที่โฟลเดอร์ที่ต้องการ แล้วคลิก Sharing and Security ซึ่งจะได้ไดอะล็อกซ์ดังรูปที่ 2 จากนั้นให้คลิกแท็บ Security จะได้ไดอะล็อกซ์ Security Properties ดังรูปที่ 5 จะเห็นได้ว่าจะมี Permission อยู่ 7 ระดับคือ Full Control, Modify, Read & Execute, List Folder contents, Read, Write และ Special Permission และมีค่าให้เลือกกำหนดได้ 2 ค่า เช่นกัน คือ Allow และ Deny


รูปที่ 5 Security Properties

จากไดอะล็อกซ์ Security Properties ดังรูปที่ 4 ด้านบน สังเกตว่าคอลัมน์ Allow นั้น จะเป็นสีเทาและไม่สามารถทำการแก้ไขหรือเปลี่ยนแปลงได้ ซึ่ง Permission ลักษณะนี้จะเรียกว่า "Inherited Permission" ซึ่งเป็น permission ที่ได้รับการถ่ายทอดมาจากโฟลเดอร์แม่ (Parent folder) ค่า "Inherited Permission" นั้น จะไม่สามารถทำการแก้ไขจากโฟลเดอร์ย่อยได้โดยตรง ถ้าหากต้องการเปลี่ยนแปลง permission ของโฟลเดอร์ย่อยนั้น สามารถทำได้ 2 วิธีด้วยกัน คือ ทำการเพิ่ม permission ให้กับ user เข้าในโฟลเดอร์ย่อย หรือ ทำการเพิ่ม permission ให้กับ user ที่โฟลเดอร์แม่ก็ได้

ในกรณีที่ไม่ต้องการให้โฟลเดอร์ย่อย รับการถ่ายถอด permission จากโฟลเดอร์แม่นั้น สามารถทำได้โดยการคลิกที่ปุ่ม Advanced ในหน้า Security ของ Folder Properties ดังในรูปที่ 5 จะได้ไดอะล็อกซ์ Advanced Security Settings ดังรูปที่ 6


รูปที่ 6 Advanced Security Settings

จากไดอะล็อกซ์ Advanced Security Settings ดังรูปที่ 6 ด้านบน จะเห็นว่ามีการเลือกเชคบ็อกซ์ "Inherit from parent permission the permission entries that apply to child objects. Include this with entries explicit defined here." หากต้องการยกเลิกการรับ "Inherit permission" ก็ให้ทำการเคลียร์เชคบ็อกซ์นี้ออก ซึ่งวินโดวส์จะแสดงไดอะล็อกซ์ข้อความดังรูปที่ 7 เพื่อให้เลือกอ็อปชันการยกเลิกการรับการถ่ายถอด Inherit permission ซึ่งมีอ็อปชันให้เลือก 2 แบบ คือ Copy ซึ่งจะทำการสำเนา Inherit permission ไปเป็น permission ของโฟลเดอร์ และ Remove ซึ่งจะทำการลบ Inherit permission ออกจากโฟลเดอร์ (จะเหลือเฉพาะ Explicit permission)ให้เลือกอ็อปชันตามความเหมาะสม ในที่นี้จะเลือก Copy


รูปที่ 7 Remove Inherited permission

จากนั้นก็จะกลับมาหน้าไดอะล็อกซ์ Advanced Security Settings ดังรูปที่ 8 สังเกตว่าในช่อง Permission entries คอลัมน์ Inherited from ค่าจะเปลี่ยนเป็น "no inherited" เมื่อคลิก OK จะกลับไปยังหน้า Security Properties ดังรูปที่ 9


รูปที่ 8 Advanced Security Settings


รูปที่ 9 Security Properties

จากไดอะล็อกซ์ Security Properties ดังรูปที่ 9 ด้านบน สังเกตว่าคอลัมน์ Allow นั้น จะไม่เป็นสีเทาแล้ว และในตอนนี้สามารถทำการแก้ไขหรือเปลี่ยนแปลง Permission ของ user ได้ ซึ่ง Permission ลักษณะนี้จะเรียกว่าเป็น "Explicit Permission" และหากมีโฟลเดอร์ย่อยอยู่ในโฟลเดอร์นี้ โฟลเดอร์ย่อยดังกล่าวก็จะได้รับการถ่ายถอด Permission ดังกล่าวนี้ไปด้วย ในลักษณะที่โฟลเดอร์นี้เคยได้รับการถ่ายทอดมาจากโฟลเดอร์แม่

เมื่อทำการยกเลิก "Inherit Permission" แล้ว ตอนนี้สามารถทำการแก้ไข permission ของ user ได้ เช่น หากต้องการลบ user ก็ทำได้โดยการคลิกที่ user ที่ต้องการแล้วคลิกที่ Remove ดังรูปที่ 10 เสร็จแล้วจะได้หน้าไดอะล็อกซ์ดังรูปที่ 10


รูปที่ 10 Remove user


รูปที่ 11 Remove user

เปรียบเทียบ Shared permission กับ NTFS permission
เพื่อให้เห็นความแตกต่างที่ชัดเจนระหว่าง Shared permission กับ NTFS permission เป็นข้อๆ ดังนี้

1. คุณสมบัติการถ่ายทอด
Shared permission = ไม่มีการถ่ายถอด permission ไปยัง sub-folder ที่อยู่ภายใน
NTFS permission = สามารถถ่ายถอด permission ไปยัง sub-folder ที่อยู่ภายใน

พิจารณารูปที่ 12 ด้านล่าง เทียบกับรูปที่ 3 ด้านบน ซึ่งโฟลเดอร์ JPEG เป็นโฟลเดอร์ย่อยในโฟลเดอร์ Share เมื่อทำการแชร์โฟลเดอร์ Share จะเห็นว่า Permission ที่กำหนดให้การแชร์โฟลเดอร์ Share จะไม่ถูกถ่ายทอดให้กับโฟลเดอร์ JPEG


รูปที่ 12 Sub-folder share properties

พิจารณารูปที่ 13 ด้านล่าง เทียบกับรูปที่ 5 ด้านบน ซึ่งโฟลเดอร์ JPEG เป็นโฟลเดอร์ย่อยในโฟลเดอร์ Share จะเห็นว่า Permission ที่กำหนดให้การแชร์โฟลเดอร์ Share จะเหมือนกันกับ Security Permission ของโฟลเดอร์ JPEG นั้นคือ Permission ที่กำหนดให้การแชร์โฟลเดอร์ Share จะถูกถ่ายทอดให้กับโฟลเดอร์ JPEG ด้วย


รูปที่ 13 Sub-folder security permission

และเมื่อพิจารณารูปที่ 14 ด้านล่าง เทียบกับรูปที่ 11 ด้านบน นั้นคือเมื่อทำการลบ permission ของ user ที่โฟลเดอร์ Share ก็จะได้หน้าไดอะล็อกซ์ดังรูปที่ 11 และเมื่อเปิดหน้าไดอะล็อกซ์ permission ของโฟลเดอร์ JPEG จะได้หน้าไดอะล็อกซ์ดังรูปที่ 14 จะเห็นว่า Security Permission จะเหมือนกันกับของโฟลเดอร์ Share คือ user ที่ ชื่อ dtp จะหายไป นั้นคือ เมื่อทำการแก้ไข Permission ที่กำหนดให้การ Parent โฟลเดอร์ (ในที่นี้คือโฟลเดอร์ Share) Permission ก็จะถูกถ่ายทอดให้กับ sub-folder ที่อยู่ภายใน (ในที่นี้คือโฟลเดอร์โฟลเดอร์ JPEG) ด้วย


รูปที่ 14 Sub-folder security permission

2. ระดับของ permission
Shared permission = Full control, Change และ Read Only
NTFS permission = Full Control, Modify, Read & Execute, List Folder contents, Read, Write และ Special Permission

จะเห็นว่า Share permission นั้นจะมีระดับ Permission เพียง 3 ระดับ ในขณะที่ NTFS permission นั้นมี 7 ระดับ

3. การนำไปใช้งาน
Shared permission = ใช้ได้ในระดับ Drive และ Folder
NTFS permission = ใช้ได้ในระดับ Drive, Folder และ File

Shared permission นั้นสามารถนำไปใช้งานได้ในระดับ Drive และ Folder เท่านั้น ในขณะที่ NTFS permission สามารถนำไปใช้งานได้ในระดับ Drive, Folder และ File ซึ่งจากเห็นได้จากรูปที่ 15 สามารถที่จะกำหนด Permission ให้กับไฟล์ต่างๆ ได้ ซึ่งมีข้อดีคือ สามารถกำหนดได้เจาะจงไปเลยว่าใครบ้างสามารถใช้งานไฟล์นั้นได้ในระดับไหน

4. อื่นๆ
Shared permission = สามารถจำกัดจำนวนการเข้าใช้งานสูงสุดของผู้ใช้ผ่านทางระบบเครือข่ายได้
Shared permission = สามารถใช้งานกับระบบไฟล์แบบ FAT,FAT32 และ NTFS ได้
NTFS permission = สามารถใช้งานเฉพาะระบบไฟล์แบบ NTFS เท่านั้น


รูปที่ 15 File security permission

© 2007 Windows Administrator Blog, All Rights Reserved.

10 Comment:

Anonymous said...

ตั้งค่าแบบที่บอกไว้แล้วนะคะ แต่พอจะเข้าไปดูไฟล์ที่แชร์ไว้จากเครื่องอื่น
ไม่สามารถเข้าได้ แล้วก็ขึ้นมาว่าไม่มี permission ทั้งๆ ที่ตั้งค่า
ให้ everyone แบบ full control เป็นเพราะอะไรคะ

dtp said...

ลองตรวจสอบบทเครื่องที่แชร์โฟลเดอร์ ดังนี้
1. Shared permission: ให้ตั้งค่า Everyone = full control
2. NTFS permission: ให้ตั้งค่า Users = full control

บอย said...

1. จำเป็นต้องกำหนดทั้งสองอย่างพร้อมกันรึไหม (Shared permission +NTFS permission ) หรืออย่างใดอย่างหนึ่ง แล้วถ้ากำหนดทั้งสองอย่างพร้อมกัน permission จะใช้ตัวไหนเป็นหลัก
2. ถ้าเราต้องการกำหนดให้ user
- สามารถวาง Folder และ File ได้
- แต่สามารถ Copy+Delete: Folder และ File ได้
จะกำหนด permission อย่างไร

2.1 จากข้อ 2. ถ้าต้องการให้อ่านได้อย่างเดียว จะกำหนด permission อย่างไร
2.2 จากข้อ 2. ถ้าต้องการให้อ่าน และแก้ไขได้ จะกำหนด permission

3.Shared permission +NTFS permission มีเฉพาะ Windows Server 200x รึไหม (รึว่ามีทุก Windows ที่เป็น NTFS )

ขอบคุณท่านผู้รู้ล่วงหน้า ที่ให้ความกระจ่าง

dtp said...

ตอบคุณบอย

ข้อที่ 1: เมื่อทำการฟอร์แมต Hard Disk เป็น NTFS ระบบจะกำหนด NTFS Permission ให้โดยอัตโนมัติ ส่วน Share Permission นั้นระบบจะกำหนดให้โดยอัตโนมัติเมื่อทำการแชร์โฟลเดอร์

ข้อที่ 2: NTFS Permission = Modify, Share = Change

ข้อที่ 2.1: NTFS Permission = Read & Execute, Share = Read Only

ข้อที่ 2.2: NTFS Permission = Modify, Share = Change

ข้อที่ 3: Share permission น่าจะ (ไม่ค่อยแน่ใจนะครับ) เริ่มมีใน Windows for Workgroups 3.1 ป็นต้นมา สำหรับ NTFS permission มีตั้งแต่ Windows NT 3.1 เป็นต้นมา (NTFS เริ่มรองรับตั้งแต่ Windows NT )

บอย said...

สำหรับข้อ 2 ผมพิมพ์ผิด

2. ถ้าเราต้องการกำหนดให้ user
- สามารถวาง Folder และ File ได้
- แต่ *** ไม่ สามารถ Copy+Delete: Folder และ File ได้(ทั้งไฟล์เก่า (admin + user คนอื่นๆ) และไฟล์ใหม่ ( ที่ user คนนั้นได้วางมาเองก้อตาม) : เอาเข้ามาได้ แต่เอาออกไม่ได้ ถ้าต้องการใช้งาน ต้องแจ้งขอจาก admin เท่านั้น)****

***สำหรับไฟล์ใหม่*** ผมลอง โดยใช้ guest วาง Folder และ File ลงไป แล้ว logout หรือ Restart ใหม่ guest ก้อสามารถ Copy+Delete: Folder และ File ไปใช้งานได้เหมือนเดิม
จะกำหนด permission อย่างไร

2.1 จากข้อ 2. ถ้าเพิ่มเงื่อนไข ต้องการให้อ่านได้อย่างเดียว จะกำหนด permission อย่างไร

2.2 จากข้อ 2. เพิ่มเงื่อนไข ต้องการให้อ่าน และแก้ไขได้ จะกำหนด permission

แล้วแบบนี้การกำหนด Permission จะเหมือนเดิมรึไหม

2.2 จากข้อ 2. สังเกตุเห็นว่า ถ้า Permission Owner เป็นของ Geust ๆ ก้อสามารถ Copy+Delete: Folder และ File ไปใช้งานได้เหมือนเดิม
รึว่าไม่สามรถกำหนดได้ แล้วพอจะมี โปรแกรมหรือ script เปลี่ยน Owner ให้เป็นของ Administrator อัตโนมัติ รึไม หรือ โปรแกรมหรือ script ตั้งเวลาให้เครื่องของ administrator ให้ copy Folder และ File เองอัติโนมัติ (เพื่อเปลี่ยน Owner จาก Guest เป็น administrator แทน ; userอื่นๆ จะ copy Folder และ File ไม่ได้ รวมทั้ง Guest ด้วย )

3. Winxp,Win7,WinVista และ WindowsServer200X สามารถรองรับรองShared permission +NTFS permission ได้กี่เครื่อง
====

ขอบคุณครับ

keng said...

แล้ว ให้ เซพ ข้อมูล ลงไปได้ แต่ ไม่ให้ลบ

ทำได้มั้ยครับ

dtp said...

สามารถทำการคอนฟิกจาก NTFS permission ให้ User ทำการ Save ข้อมูลได้แต่ไม่อนุญาตให้ Delete ได้ครับ

บอย said...

แล้ว windows ที่เป็น workgroup จะทำอย่างถ้าเราต้องการกำหนด permission ให้ user ของเครื่องอื่นๆ (ใช้งานข้ามเครื่อง ผมลองเพิ่ม user แล้วเห็น มีเพียง User Local ไม่ user ของเครื่องอื่นๆ ) ภายใน workgroup มาใช้งาน


ขอบคุณทุกท่าน ที่ให้ความรู้ที่ลึก มีประโยชน์มาก

Oldphuket said...

อยากทราบว่า จะเซ็ทให้เห็น group หรือแผนกตัวเอง จะ
เซ็ทค่ายังไงค่ะ

dtp said...

ตอบคุณ Oldphuket
ให้สร้างกลุ่ม เช่น staff จากนั้นให้เพิ่ม account ที่ต้องการเข้ากลุ่ม staff แล้วกำหนดสิทธิ์การแชร์ให้กลุ่ม staff โดยลบ Everyone ออกก่อนนะครับ