Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Cách Thiết Lập, Sao Chép, Xuất Nhập Hoặc Khôi Phục Quyền NTFS Bằng iCACLS

Bạn có thể sử dụng công cụ tích hợp iCACLS để quản lý quyền NTFS trên Windows. Công cụ dòng lệnh icacls.exe cho phép bạn lấy hoặc thay đổi Danh Sách Kiểm Soát Truy Cập (ACLs) cho các file và thư mục trên hệ thống file NTFS. Trong bài viết này, chúng ta sẽ xem xét các lệnh hữu ích để quản lý quyền NTFS trên Windows với iCACLS.

Sử Dụng iCACLS Để Xem Và Thiết Lập Quyền File Và Thư Mục

Quyền truy cập hiện tại đối với bất kỳ đối tượng nào trên ổ NTFS có thể được hiển thị như sau:

icacls 'C:\Share\Veteran\'

Lệnh sẽ trả về danh sách người dùng và nhóm đã được gán quyền truy cập. Quyền được chỉ định bằng các viết tắt:

  • F – toàn quyền (full access)
  • M – sửa đổi (modify access)
  • RX – đọc và thực thi (read and execute access)
  • R – chỉ đọc (read-only access)
  • W – chỉ ghi (write-only access)
  • D – xóa (delete)

Quyền kế thừa được chỉ định trước quyền truy cập (quyền kế thừa chỉ áp dụng cho thư mục):

  • (OI) – object inherit (kế thừa đối tượng)
  • (CI) – container inherit (kế thừa container)
  • (IO) – inherit only (chỉ kế thừa)
  • (I) – inheriting permissions from parent container (kế thừa quyền từ container cha)

Với icacls, bạn có thể thay đổi quyền thư mục.

Để cấp cho nhóm "resource\mun-fs01_Auditors" quyền đọc và thực thi (RX) trên thư mục:

icacls 'C:\Share\Veteran\' /grant resource\mun-fs01_Auditors:RX

Để xóa một nhóm khỏi ACL thư mục:

icacls 'C:\Share\Veteran\' /remove resource\mun-fs01_Auditors

Với icacls, bạn có thể bật kế thừa quyền NTFS từ thư mục cha:

icacls 'C:\Share\Veteran\' /inheritance:e

Hoặc tắt kế thừa đồng thời xóa tất cả ACE kế thừa:

icacls 'C:\Share\Veteran\' /inheritance:r

Bạn có thể sử dụng icacls.exe để thay đổi quyền sở hữu file hoặc thư mục:

icacls 'C:\Share\Veteran\' /setowner resource\j.smith /T /C /L /Q

Cách Sao Lưu (Xuất) Quyền NTFS Của Thư Mục?

Trước khi thực hiện các thay đổi đáng kể đối với quyền (di chuyển, cập nhật ACL, di chuyển tài nguyên) trên thư mục NTFS (hoặc thư mục chia sẻ mạng), bạn nên sao lưu các quyền cũ. Bản sao này sẽ cho phép bạn quay lại cài đặt ban đầu, hoặc ít nhất làm rõ các quyền cũ cho một file/thư mục cụ thể.

Bạn có thể sử dụng công cụ icacls.exe để xuất/nhập quyền thư mục NTFS hiện tại. Để lấy tất cả ACL cho một thư mục cụ thể (bao gồm thư mục con và file), và xuất chúng ra file văn bản, hãy chạy lệnh sau:

icacls g:\veteran /save c:\backup\veteran_ntfs_perms.txt /t /c

Lưu ý. Khóa /t dùng để lấy ACL cho tất cả thư mục con và file, /c cho phép bỏ qua lỗi truy cập. Bằng cách thêm tùy chọn /q, bạn có thể tắt hiển thị thông tin về việc truy cập thành công các đối tượng hệ thống file.

Successfully processed 3001 files; Failed processing 0 files

Mở file veteran_ntfs_perms.txt bằng bất kỳ trình soạn thảo văn bản nào. Như bạn thấy, nó chứa danh sách đầy đủ các file và thư mục trong thư mục, và mỗi mục có quyền hiện tại được chỉ định ở định dạng SDDL (Ngôn Ngữ Định Nghĩa Mô Tả Bảo Mật).

Ví dụ, quyền NTFS hiện tại cho thư mục gốc như sau:

D:PAI(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1200a9;;;S-1-5-21-2340243621-32346796122-2349433313-23777994)(A;OICI;0x1301bf;;;S-1-5-21-2340243621-32346796122-2349433313-23777993)(A;OICI;FA;;;SY)(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)S:AI

Chuỗi này mô tả quyền truy cập cho một số nhóm hoặc người dùng. Chúng ta sẽ không xem xét chi tiết cú pháp SDDL (định dạng SDDL đã được thảo luận ngắn gọn trong bài "Cách Xem Và Sửa Đổi Quyền Dịch Vụ Trong Windows?"). Hãy tập trung vào một đoạn nhỏ của SDDL bằng cách chọn chỉ một đối tượng:

(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)
  • A – loại truy cập (Allow)
  • OICI – cờ kế thừa (OBJECT INHERIT + CONTAINER INHERIT)
  • FA – loại quyền (SDDL_FILE_ALL – tất cả được phép)
  • S-1-5-21-2340243621-32346796122-2349433313-24109193 – SID của tài khoản hoặc nhóm miền mà quyền được thiết lập. Để chuyển đổi SID thành tên tài khoản hoặc nhóm, hãy sử dụng lệnh PowerShell sau:

$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value

Hoặc sử dụng một trong các lệnh:
Get-ADUser -Identity SID
hoặc
Get-ADGroup -Identity SID

Vậy, bạn đã thấy rằng người dùng corp\dvivar có quyền Full Control trên thư mục này.

Cách Khôi Phục Quyền NTFS Với iCacls?

Bạn có thể khôi phục quyền NTFS trên một thư mục bằng cách sử dụng file veteran_ntfs_perms.txt đã tạo trước đó. Để thiết lập quyền NTFS trên các đối tượng trong thư mục theo các giá trị trong file sao lưu ACL, hãy chạy lệnh này:

icacls g:\ /restore c:\backup\veteran_ntfs_perms.txt /t /c

Lưu ý. Xin lưu ý rằng khi nhập quyền từ file, bạn nên chỉ định đường dẫn đến thư mục cha thay vì tên thư mục.

Sau khi tất cả các quyền đã được khôi phục, thống kê về số lượng file đã xử lý cũng sẽ được hiển thị.

Lưu ý file sao lưu ACL chứa đường dẫn tương đối, không phải đường dẫn tuyệt đối. Điều này nghĩa là bạn có thể khôi phục quyền trên một thư mục ngay cả sau khi di chuyển nó đến ổ/ thư mục khác.

Đặt Lại Quyền NTFS Về Mặc Định

Bạn có thể sử dụng công cụ icacls để đặt lại quyền thư mục ( cũng như các file và thư mục con lồng nhau).

icacls C:\share\veteran /reset /T /Q /C

Lệnh này sẽ bật quyền NTFS kế thừa cho đối tượng được chỉ định, và xóa bất kỳ ACL nào khác.

Sao Chép Quyền NTFS Từ Thư Mục Này Sang Thư Mục Khác

Bạn có thể sử dụng file văn bản với bản sao lưu ACL để sao chép quyền NTFS từ thư mục này sang thư mục khác.

Trước tiên, sao lưu quyền NTFS của thư mục nguồn:

icacls 'C:\Share\Veteran' /save C:\PS\save_ntfs_perms.txt /c

Sau đó áp dụng ACL đã lưu cho thư mục đích:

icacls D:\Share /restore C:\PS\save_ntfs_perms.txt /c

Điều này sẽ hoạt động nếu thư mục nguồn và đích có cùng tên. Có phải nếu tên thư mục đích khác? Ví dụ, bạn cần sao chép quyền NTFS sang thư mục D:\PublicDOCS.

Cách dễ nhất là mở file save_ntfs_perms.txt trong notepad và chỉnh sửa tên thư mục. Sử dụng chức năng Replace để thay thế tên Veteran bằng PublicDOCS.

Sau đó nhập quyền NTFS từ file và áp dụng cho thư mục đích:

icacls D:\ /restore C:\PS\save_ntfs_perms.txt /c

Việc sao chép quyền NTFS từ thư mục này sang thư mục khác còn dễ dàng hơn bằng PowerShell:

Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'