Tuesday, November 6, 2007

การใช้งาน Xcacls.exe

ผมเคยเขียนถึงการใช้เครื่องมือที่ชื่อ cacls.exe (http://thaiwinadmin.blogspot.com/2007/10/kb-102007-03.html) เพื่อแสดงและแก้ไข Access Control Lists (ACLs) ของไฟล์และโฟลเดอร์บนระบบไฟล์ซีสเต็มแบบ NTFS ซึ่งการใช้งานทั่วๆไปนั้น ก็ทำงานได้ค่อนข้งดี แต่จะมีข้อจำกัด คือ สามารถกำหนดระดับสิทธิ์ให้กับยูสเซอร์ได้แค่ 4 ระดับเท่านั้น คือ R=Read , W = Write, C = Change(write), F=Full control ซึ่งในบางครั้งอาจไม่เพียงพอกับความต้องการใช้งาน เพื่อแก้ไขปัญหาดังกล่าว ทางไมโครซอฟท์จึงได้ออกเครื่องมือ xcacls.exe ซึ่งสามารถระดับสิทธิ์ให้กับยูสเซอร์ได้ถึง 9 ระดับด้วยกัน

รู้จักกับเครื่องมือ xcacls.exe
xcacls.exe นั้น เป็นทูลสำหรับแสดงและแก้ไข Access Control Lists (ACLs) ของไฟล์และโฟลเดอร์บนระบบไฟล์ซีสเต็มแบบ NTFS ซึ่งทำงานจาก command prompt เช่นเดียวกันกับ cacls.exe แต่มีความสามารถมากกว่า ซึ่งรายละเอียดจะกล่าวถึงด้านล่าง

xcacls.exe นั้นเป็นเครื่องมือตัวหนึ่งในชุดเครื่องมือ Support Tools ของ Windows Service Pack 2 โดยจะอยูในโฟลเดอร์ Support\Tools ของแผ่นติดตั้ง Windows XP SP2 หรือดาวน์โหลดจากเว็บไซต์ Windows XP Service Pack 2 Support Tools หรือที่เว็บไซต์ Windows 2000 Resource Kit Tool: Xcacls.exe

เครื่องมือ xcacls.exe นั้น จะไม่ถูกติดติดตั้งโดยอัตโนมัติพร้อมกับวินโดวส์ ดังนั้นต้องทำการติดตั้งด้วยตนเองก่อนจึงจะใช้งานได้ โดยหากทำการติดตั้งจาก Support Tools ในแผ่นติดตั้ง Windows XP SP2 ให้ดับเบิลคลิกที่ไฟล์ setup.exe แล้วทำตามคำสั่งบนจอภาพจนแล้วเสร็จ หากทำการติดตั้งจากไฟล์ที่ดาวน์โหลดจากWindows XP Service Pack 2 Support Tools ให้ดับเบิลคลิกที่ไฟล์ WindowsXP-KB838079-SupportTools-ENU.exe แล้วทำตามคำสั่งบนจอภาพจนแล้วเสร็จ สำหรับการติดตั้ง xcacls.exe ซึ่งเป็น Windows 2000 Resource Kit Tool: Xcacls.exe นั้น ให้ดับเบิลคลิกที่ไฟล์ xcacls_setup.exe แล้วทำตามคำสั่งบนจอภาพจนแล้วเสร็จ

การใช้งาน xcacls.exe
รายละเอียดการใช้งานเครื่องมือ xcacls.exe นั้น สามารถดูได้โดยการรันคำสั่ง cacls.exe /? ที่คอมมานด์พรอมพท์ ซึ่งจะแสดงรายละเอียดการใช้งานของคำสั่ง ดังนี้

xcacls.exe filename [/T] [/E:X] [/C] [/G user:perm;spec] [/R user [...]] [/P user:perm;spec [...]] [/D user [...]] [/Y]

filename แสดง ACLs ของไฟล์
/T = ทำการเปลี่ยน ACLs ของไฟล์ที่กำหนดในไดเรกตอรีปัจจุบันและไดเรกตอรีย่อยภายในทั้งหมด
/E = ทำการแก้ไขเพิ่มเติม ACL
/X=การทำงานจะเหมือนกับ /E แต่จะมีผลกับสิทธิ์ที่ยูสเซอร์มีอยู่แล้ว
/C = ให้ดำเนินการต่อไปแม้จะเกิดความผิดผลาด
/G user:perm;spec = อนุญาตให้ยูสเซอร์มีสิทธิ์ในการแอ็คเซส ค่าของ perm ที่เป็นไปได้มีดังนี้
R=Read
C =Change (write)
F=Full control
P=Change Permissions (Special access)
O=Take Ownership (Special access)
X=EXecute (Special access)
E=REad (Special access)
W = Write (Special access)
D=Delete (Special access)
Spec นั้นสามารถกำหนดค่าเหมือนกับ perm ได้ และจะถูกกำหนดให้กับไดเรกตอรีเท่านั้น

/R user = ยกเลิกสิทธิ์ในการแอ็คเซสของยูสเซอร์
/P user:perm;spec = ทำการแก้ไขสิทธิ์ในการแอ็คเซสของยูสเซอร์ ค่าของ perm ที่เป็นไปได้นั้นเหมือนกันกับ /G
/D user = ปฏิเสธการแอ็คเซสของยูสเซอร์
/Y=ทำการแก้ไขสิทธื์ของยูสเซอร์โดยไม่ต้องทำการเวอริไฟ

การแสดง Access Control Lists (ACLs)
1. การแสดง Security permission ของไดรฟ์ C:
xcacls.exe C:

2. การแสดง Security permission ของโฟลเดอร์ C:\TMP, ไฟล์ C:\TMP\test.txt, และไฟล์ทั้งหมดในโฟลเดอร์ C:\TMP
cacls.exe C:\TMP
cacls.exe C:\TMP\test.txt
cacls.exe C:\TMP\*

การแก้ไข Access Control Lists (ACLs)
การแก้ไข Access Control Lists (ACLs) นั้น จะแบ่งออกเป็น 3 ลักษณะใหญ่ๆ ได้ 3 แบบ คือ การเพิ่ม permission, การยกเลิก permission และ การปฏิเสธ perrmision

1. การเพิ่ม (Grant) permission ของ File, Folder และ Drive ให้กับยูสเซอร์
ตย: การเพิ่ม permission ของไดรฟ์ C: ให้กับยูสเซอร์ชื่อ user1 ระดับ Full Control
xcalcs.exe D:\ /T /E /C /G user1:F

ตัวอย่าง: การเพิ่ม permission ของโฟลเดอร์ D:\Data และทุกไฟล์และโฟลเดอร์ที่อยู่ภายใน ให้กับยูสเซอร์ชื่อ user1 ระดับ Write File และ Read Folder
xcalcs.exe D:\Data /T /E /C /G user1:W;R

ตัวอย่าง: การเพิ่ม permission ของทุกไฟล์และโฟลเดอร์ที่อยู่ภายในโฟลเดอร์ D:\Data ให้กับยูสเซอร์ชื่อ user1 ระดับ Write File และ Read Folder
xcalcs.exe D:\Data\ /T /E /C /G user1:W;R

ตัวอย่าง: การเพิ่ม permission ของไฟล์ D:\Data\Report.exe ให้กับยูสเซอร์ชื่อ user1 ระดับ Read และ Execute
xcalcs.exe D:\Data\Report.exe /T /E /C /G user1:RX

2. การยกเลิก (Revoke) permission ของยูสเซอร์ ในการแอ็คเซส File, Folder และ Drive
ตย: การยกเลิก Execute permission ของยูสเซอร์ชื่อ user1 ในการแอ็คซีคิวไฟล์ไฟล์ D:\Data\Report.exe
xcalcs.exe D:\Data\Report.doc /T /E /C /R user1

ตัวอย่าง: การยกเลิก permission ของยูสเซอร์ชื่อ user1 ในการแอ็คเซสโฟลเดอร์ D:\Data
calcs.exe D:\Data\ /T /E /C /R user1

ตัวอย่าง: การยกเลิก permission ของยูสเซอร์ชื่อ user1 ในการแอ็คเซสไดรฟ์ D:
calcs.exe D:\ /T /E /C /R user1

การเปลี่ยน (Replace) permission ของยูสเซอร์ ในการแอ็คเซส File, Folder และ Drive
ตัวอย่าง: การเปลี่ยน permission ของไฟล์ D:\Data\Report.exe ของยูสเซอร์ชื่อ user1 จากระดับ Read และ Execute เป็น Read
xcalcs.exe D:\Data\Report.doc /T /E /C /P user1:e

การปฏิเสธ (Deny) ยูสเซอร์ ในการแอ็คเซส File, Folder และ Drive
ตัวอย่าง: การยกเลิก permission ของยูสเซอร์ชื่อ user1 ในการแอ็คเซสไฟล์ D:\Data\Report.exe
xcalcs.exe D:\Data\Report.exec /T /E /C /D user1

ตัวอย่าง: การยกเลิก permission ของยูสเซอร์ชื่อ user1 ในการแอ็คเซสโฟลเดอร์ D:\Data
xcalcs.exe D:\Data /T /E /C /D user1

ตัวอย่าง: การยกเลิก permission ของยูสเซอร์ชื่อ user1 ในการแอ็คเซสไดรฟ์ D:
xcalcs.exe D:\ /T /E /C /D user1

หมายเหตุ:
การเปิดหน้าต่างคอมมานด์ไลน์ ทำได้โดยการคลิกเม้าส์ที่ปุ่ม Start คลิก Run พิมพ์ cmd แล้วกดปุ่ม Enter

ลิงค์ที่เกี่ยวข้อง
การใช้งาน Cacls.exe


Keywords: การใช้งาน Xcacls.exe Cacls.exe Security permission

© 2007 Thai Windows Administrator, All Rights Reserved.

0 Comment: