Saturday, October 20, 2007

การใช้งานคำสั่ง CACLS.EXE

ในการติดตั้งใช้งานวินโดวส์บนไฟล์ซีสเต็มแบบ NTFS นั้น ผมคิดว่าคงเป็นปัญหาหนึ่งที่ผู้ดูแลระบบเครื่องคอมพิวเตอร์คงเคยประสบกันมาแทบทุกๆ คน คือ ปัญหาเรื่อง Security permission หรือ ระดับสิทธิ์ในการใช้งานโฟลเดอร์และไฟล์ ในกรณีที่รับผิดชอบดูและเครื่องคอมพิวเตอร์ไม่มากนัก เช่น 20-30 ตัว อาจจะเดินไล่ทำการแก้ไขทีละเครื่องก็ยังพอทน แต่สำหรับผู้ดูแลระบบที่ต้องดูและเครื่องคอมพิวเตอร์จำนวนเยอะ เช่น 40 ขึ้นไป อย่างเช่น ห้องบริการฝึกอบรมคอมพิวเตอร์ เป็นต้น การเดินแก้ไขทีละเครื่องนั้น คงขอลากกันพอดี แล้วจะทำอย่างไรจึงจะแก้ไขปัญหาได้ ?

คำตอบสำหรับการแก้ไขปัญหาดังที่กล่าวมานั้น เราสามารถใช้เครื่องมือที่ชื่อ calcs.exe ซึ่งมีมาพร้อมกับ Windows XP อยู่แล้ว หรือ จะใช้ xcacls.exe (ซึ่งเป็นเครื่องมือตัวนึงใน Windows 2000 reskit ) ช่วยในการแก้ไขปัญหา สำหรับที่นี้จะกล่าวถึงรายละเอียดการใช้งาน cacls.exe ก่อน และ xcacls.exe นั้นจะกว่าถึงในโอกาสต่อไป

เริ่มต้นใช้งาน
วินโดวส์นั้นจะเก็บ Security permission ในรูปแบบของลิสต์รายการที่ชื่อ Access control list ซึ่งจะเก็บรายละเอียดเกี่ยวกับ Permission ของไฟล์หรือโฟล์เดอร์

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

Cacls.exe filename [/T] [/E] [/C] [/G user:perm] [/R user [...]] [/P user:perm [...]] [/D user [...]]

filename แสดง ACLs ของไฟล์
/T = ทำการเปลี่ยน ACLs ของไฟล์ที่กำหนดในไดเรกตอรีปัจจุบันและไดเรกตอรีย่อยภายในทั้งหมด
/E = ทำการแก้ไขเพิ่มเติม ACL
/C = ให้ดำเนินการต่อไปแม้จะเกิดความผิดผลาด
/G user:perm = อนุญาตให้ยูสเซอร์มีสิทธิ์ในการแอ็คเซส ค่าของ perm ที่เป็นไปได้มีดังนี้ R=Read / W = Write / C = Change(write) / F=Full control
/R user = ยกเลิกสิทธิ์ในการแอ็คเซสของยูสเซอร์
/P user:perm = ทำการแก้ไขสิทธิ์ในการแอ็คเซสของยูสเซอร์ ค่าของ perm ที่เป็นไปได้มีดังนี้ N=None / R=Read / W = Write / C = Change (write) / F=Full control
/D user = ปฏิเสธการแอ็คเซสของยูสเซอร์

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

2. การแสดง Security permission ของไฟล์หรือโฟลเดอร์
cacls.exe file_name หรือ folder_name

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

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

ตย: การเพิ่ม permission ของโฟลเดอร์ D:\Data ให้กับยูสเซอร์ชื่อ user1 ระดับ Write
calcs.exe D:\Data\ /T /E /C /G user1:W

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

2. การยกเลิก (Revoke) permission ของยูสเซอร์ ในการแอ็คเซส File, Folder และ Drive
ตย: การยกเลิก permission ของยูสเซอร์ชื่อ user1 ในการแอ็คเซสไฟล์ D:\Data\Report.doc
calcs.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

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

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

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

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


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

© 2007 Thai Windows Administrator, All Rights Reserved.

2 Comment:

pokpong said...

คือผมลองแล้วมันขึ้นว่า

'calcs.exe' is not recognized as an internal or external command, operable program or batch file

ซึ่งตอนนั้นอยู่ที่
C:\windows\system32

ไม่ทราบว่าเป็นที่ผมใช้ command ผิดหรือว่าอะไร
เพราะผมก็ทำตามตัวอย่างอะครับ

dtp said...

ดูเหมือนว่า Windows จะหาไฟล์คำสั่ง calcs.exe ไม่เจอนะครับ แก้ไขโดยการเซ็ตพาธหรือก็อปปี้ไฟล์ calc.exe ไปเก็บในโฟลเดอร์ที่รันคำสั่งก็ได้ครับ

หมายเหตุ:
ผมคอนฟิกไม่ให้แสดง Comment โดยอัตโนมัติเพื่อป้องกันพวกมาโพสต์ขายของครับ