用户名:  密码:   
您当前的位置:首页 > 其它 >  脚本语言 > 

cacls与takeown权限设置命令详解

上次修改时间: 2014-03-28 09:12:50      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\脚本语言\甲壳虫批处理cmd教程\      下一页

http://wenku.baidu.com/view/ddc90e325a8102d276a22fb4.html

Cacls命令:用于显示或修改文件的ACL
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
        [/R user [...] [/P user:perm [..]] [/D user [...]]
    filename     直接接文件夹或文件名表显示该文件或文件夹的ACL
    /T  加此参数表更改的对象是当前目录及其所有子目录中指定文件的ACL
    /L  对照目标处理符号链接本身
    /M  更改装载到目录的卷的ACL
    /S  显示DACL的SDDL字符串
    /S:SDDL  用SDDL字符串中指定的ACL替换ACL(/E /G /R /P /D无效)
    /E  编辑ACL而不替换
    /C  在出现拒绝访问错误时继续
    /G user:perm 赋予指定用户访问权限,user是要指定的用户名,Perm是给这个用户设置何种权限的参数(R是读,W是写,C是更改,F是完全控制)
    /R user 取消某用户的访问控制权限(需要和/E一起使用)
    /P user:perm 替换指定用户访问权限,同/G用法相同,只多个N参数表无(N无,R读,W写,C更改,F完全控制)
    /D user 拒绝某用户的访问权限
注:命令中可用通配符指定多个文件,也可指定多个用户。
相关名词解释:
ACL:访问控制列表
SACL:系统访问控制列表
ACE:访问控制项(access control entry)
DACL:自由访问控制列表
SDDL:安全描述符定义语言(Security Descriptor Definition Language)
CI:容器继承 ACE会由目录继承
OI:对象继承 ACE会由文件继承
IO:只继承 ACE不适用于当前文件/目录
ID:已继承 ACE从父目录的ACL继承
总结:加/e是编辑,以前的权限都在, /G /P都是给用户加某权限,经测试不加/e两者都会删除以前的权限列表。 /R取消,把用户或组从权限列表删除,/D是拒绝,即把某用户或组的权限都设为拒绝,

例子:
cacls c:\test.txt 显示所有用户对test.txt的权限,注:BUILTIN表内建帐户,即表windows的Administrator用户组。
cacls c:\1\1.txt /t /g everyone:r 删除所有以前的ACL,给everyone用户添加只读权限
cacls c:\1\2.txt /e /p administrator:f 给文件2.txt添加administrator用户有完全控制权限,不会更改以前的权限设置
cacls c:\1\2.txt /e /r administrator 删除administrator用户对2.txt文件的所有权限,会把该用户从ACL中删除
cacls services.exe /g administrators:f 不加/E参数就是替换了,会把以的其它权限都删除,只添加administrators组的用户有完全控制权限

TAKEOWN命令:以重新分配文件所有权的方式让管理员获得被拒绝访问文件的访问权
TAKEOWN [/S system [/U username [/P [password]]]
        /F filename [/A] [/R [/D prompt]]
/S system 指定要连接到的远程系统、
/U [domain\user 指定域或用户
/P [password]指定/U参数用户的密码
/F filename 指定文件名或目录,可以用通配符*
/A 将所有权给管理员组,而不是当前用户,如未指定/A,文件所有权将赋予当前登录用户
/R 递归,使当前命令也用于目录下的子目录和文件
/D prompt 当前用记或目录里没有列出文件夹权限时,Prompt有两个值,Y是获取所有权,N是跳过,一般在有/R参数在子目录递归时常用到
/SKIPSL 不遵循符号链接,只用于有/R参数时
注:/D主要是抑制确认提示。
例子:
takeown /a /f services.exe 让管理员组的用户获得services.exe文件所有权
takeown /f lostfile  让当前用户获得lostfile文件夹所有权
takeown /f directory /r /d n 让当前用户获得directory目录所有权,并在它的子目录中递归该操作,当子目录文件名目录没有权限时跳过
takeown /f directory /r /a 将directory目录的所有权赋予管理员组而不是当前用户
takeown /f %windir%\*.txt 将windows目录的所有TXT文件所有权赋于当前用户
takeown /s system /u user /p password /f myshare\directory /r /a