資料來源‧
用指令來增加檔案或資料夾的權限
C:\Documents and Settings\users>cacls
顯示或修改檔案的存取控制清單 (ACLs)
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]][/P user:perm [...]] [/D user [...]]
filename 顯示 ACL。
/T 變更指定檔案的 ACL 於
現有的目錄或所有子目錄中。
/E 編輯 ACL 而非將它取代。
/C 拒絕存取的錯誤繼續發生。
/G user:perm 授與指定的使用者存取權限。
Perm 的值可以是:
R 讀取
C 變更 (寫入)
F 完全控制
/R user 撤銷已指定的使用者存取權限 (只有當 /E 存在時才有效)。
/P user:perm 取代已指定的使用者存取權限。
Perm 的值可以是:
N 沒有權限
R 讀取
C 變更 (寫入)
F 完全控制
/D user 拒絕已指定的使用者存取。
您可以在命令中使用萬用字元一次指定數個檔案。
您可以在命令中指定數個使用者。
縮寫:
CI - 容器繼承。
ACE 將被目錄繼承。
OI - 物件繼承。
ACE 將被檔案繼承。
IO - 僅供繼承。
ACE 不可套用到目前的檔案/目錄。
舉例說明
查詢目前權限
C:\Documents and Settings\USERS>cacls "Exchange Server 2003 部署手冊.pdf"
C:\Documents and Settings\USERS\Exchange Server 2003 部署手冊.pdf DOMAIN\aesop:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F
假設C:\TEST 保持原有權限並加入DOMAIN DOM的user2可以修改
CACLS C:\TEST /E /T /P DOM/USER2:C
有些是預設的domain帳號或群組如 Authenticated Users 或Domain Users
就必須用
CACLS C:\TEST /E /T /P "NT AUTHORITY\Authenticated Users":C
注意要加引號,並且是用 NT AUTHORITY 並不是您Domain的名稱
也可以增加多帳號並給不同權限CACLS C:\TEST /E /T /P DOM/USER2:F "NT AUTHORITY\Authenticated Users":C
以上
DOM/USER2:F
與
"NT AUTHORITY\Authenticated Users":C
是有空一格的
雖然說可以多檔案多帳號
但是我通常只用到單一檔案多帳號
多個檔案時我都寫成batch
例如
CACLS C:\TEST /E /T /P DOM/USER2:F "NT AUTHORITY\Authenticated Users":C
CACLS C:\TEST1 /E /T /P DOM/USER2:F "NT AUTHORITY\Authenticated Users":C
用這看起來很麻煩
其實最終目的是要寫成batch
因為如果電腦及檔案的數量很多需要修改時
就可以放入GPO裡面
不用一台一去改
而且不會遺漏
顯示或修改檔案的存取控制清單 (ACLs)
CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]][/P user:perm [...]] [/D user [...]]
filename 顯示 ACL。
/T 變更指定檔案的 ACL 於
現有的目錄或所有子目錄中。
/E 編輯 ACL 而非將它取代。
/C 拒絕存取的錯誤繼續發生。
/G user:perm 授與指定的使用者存取權限。
Perm 的值可以是:
R 讀取
C 變更 (寫入)
F 完全控制
/R user 撤銷已指定的使用者存取權限 (只有當 /E 存在時才有效)。
/P user:perm 取代已指定的使用者存取權限。
Perm 的值可以是:
N 沒有權限
R 讀取
C 變更 (寫入)
F 完全控制
/D user 拒絕已指定的使用者存取。
您可以在命令中使用萬用字元一次指定數個檔案。
您可以在命令中指定數個使用者。
縮寫:
CI - 容器繼承。
ACE 將被目錄繼承。
OI - 物件繼承。
ACE 將被檔案繼承。
IO - 僅供繼承。
ACE 不可套用到目前的檔案/目錄。
舉例說明
查詢目前權限
C:\Documents and Settings\USERS>cacls "Exchange Server 2003 部署手冊.pdf"
C:\Documents and Settings\USERS\Exchange Server 2003 部署手冊.pdf DOMAIN\aesop:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F
假設C:\TEST 保持原有權限並加入DOMAIN DOM的user2可以修改
CACLS C:\TEST /E /T /P DOM/USER2:C
有些是預設的domain帳號或群組如 Authenticated Users 或Domain Users
就必須用
CACLS C:\TEST /E /T /P "NT AUTHORITY\Authenticated Users":C
注意要加引號,並且是用 NT AUTHORITY 並不是您Domain的名稱
也可以增加多帳號並給不同權限CACLS C:\TEST /E /T /P DOM/USER2:F "NT AUTHORITY\Authenticated Users":C
以上
DOM/USER2:F
與
"NT AUTHORITY\Authenticated Users":C
是有空一格的
雖然說可以多檔案多帳號
但是我通常只用到單一檔案多帳號
多個檔案時我都寫成batch
例如
CACLS C:\TEST /E /T /P DOM/USER2:F "NT AUTHORITY\Authenticated Users":C
CACLS C:\TEST1 /E /T /P DOM/USER2:F "NT AUTHORITY\Authenticated Users":C
用這看起來很麻煩
其實最終目的是要寫成batch
因為如果電腦及檔案的數量很多需要修改時
就可以放入GPO裡面
不用一台一去改
而且不會遺漏
例子:
rem ------------------------------------------------------------
set mapdirve=P:
rem 1' 目的:建立個人P槽,並且設定(寫入)讀取權限
rem ------------------------------------------------------------
set mapdirve=P:
set hostname=FW-FILE_SVR
set sourceDir=MyData
set networkdrive=%sourceDir%$\%username%
rem 刪除網路磁碟機
echo "create networking dirve z:"
net use %mapdirve% /delete /y
rem 檢查目錄是否存在
if not exist %hostname%\%sourceDir%\%username% md %hostname%\%sourceDir%\%username%
rem 設定目錄權限
if not exist %hostname%\%sourceDir%\%username% CACLS E:\%sourceDir%\%username% /T /E /G fwgroup\%username%:C
rem 建立網路磁碟機
if not exist %mapdirve% net use %mapdirve% \\%hostname%\%networkdrive%
echo "執行完成:
echo End : "%date%-%time%"
echo.
pause
留言