【VISTA讲座之一】使用命令行取得VISTA权限 Post By:2007-8-29 10:45:00
我们往往被VISTA的严格权限设置搞得非常痛苦。
下面两个命令可以给你对一个文件/文件夹(本身)完全的权限
开始-搜索/运行栏输入CMD,回车进入命令行模式:
输入兩個command:
1. takeown /f "文件路径"
2. cacls "文件路径" /G "username":F
"username" 是你想要取得权限的账户名,如果想让所有用户取得权限,在这里需要定义为EveryOne
3 . 例如:要获取 c:/windows/system32/drivers/tcpip.sys 这个控制连接数文件tcpip.sys的权限(通常都会因为权限而无法修改)
4 .开始-搜索/运行栏输入CMD,回车以管理员身份进入命令行模式.
5 .输入以下内容: takeown /f c:/windows/system32/drivers/tcpip.sys ,然后回车
6.输入以下内容: cacls c:/windows/system32 /E Auki:F
(Auki是我的用户名,注意大小写和空格的位置)
或
cacls c:/windows/system32/drivers/tcpip.sys /G EveryOne:F ,然后回车
完成后就可以退出了。
同样,你也可以只对某个文件夹或盘符获取权限,但需要注意的是权限仅限于文件夹本身(根目录)
在命令提示符下,在标题栏点右键-属性,设置为快速编辑模式,这样方便鼠标定位和插入:鼠标点击要插入的地方,或者高亮要复制的部分,然后回车,即完成复制/粘帖操作。(Ctrl+x/c/v 在这里不好用)
注意:严禁使用cacls "文件路径" /G "username":F命令对单一用户帐户赋予系统文件夹(System32)之类的权限,会导致系统权限被剥夺,系统崩溃。
可以使用一次性命令cacls "文件路径" /E "username":F代替
高级命令cacls "文件路径" /G "username":F仅在适用于EveryOne情况下是安全的!
下面是一些例子:
如果让每个用户即Everyone组得到e分区的所有权限,只要在cmd下执行下面命令就可以 (启动cmd时请使用Ctrl+Shift+Enter提升权限)
cacls.exe e: /e /t /g everyone:F 命令说明 e: 为磁盘分区e /t 表示包含子目录 /g 表示赋予的用户组 f: 表示full control 完全控制
cacls.exe f: /e /t /g guests:R 表示guests组用户对磁盘分区f有读取权限
管理员取得所有权 文件分析
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/*/shell/runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT/*/shell/runas/command]
@="cmd.exe /c takeown /f /"%1/" && icacls /"%1/" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f /"%1/" && icacls /"%1/" /grant administrators:F"
[HKEY_CLASSES_ROOT/exefile/shell/runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT/exefile/shell/runas2/command]
@="cmd.exe /c takeown /f /"%1/" && icacls /"%1/" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f /"%1/" && icacls /"%1/" /grant administrators:F"
[HKEY_CLASSES_ROOT/Directory/shell/runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT/Directory/shell/runas/command]
@="cmd.exe /c takeown /f /"%1/" /r /d y && icacls /"%1/" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f /"%1/" /r /d y && icacls /"%1/" /grant administrators:F /t"
cacls命令注释:
注意: 有些人反对使用 Cacls,请使用 Icacls。
ICACLS允许你从恢复控制台(Recovery Console)重新设置ACL。
显示或者修改文件的访问控制列表(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 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
/D user 拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件。
也可以在命令中指定多个用户。
缩写:
CI - 容器继承。
ACE 会由目录继承。
OI - 对象继承。
ACE 会由文件继承。
IO - 只继承。
ACE 不适用于当前文件/目录。
ID - 已继承。
ACE 从父目录的 ACL 继承。
CACLS <DIR>*.* /T /E /C /G WWW:R
<DIR>*.* Web根目录。如:C:/Inetpub/WWWRoot。
/T 作用于所有的目录和子目录
/E 编辑ACL,不是替换
/C 有错误停止执行.
/G WWW:R 赋予WWW组Read权限
Vista中绕开UAC开启超级管理员的方法
Windows Vista中的UAC在提高系统安全性的同时,也在相当程度上增加了操作中的繁琐,有时候甚至到了让人无法容忍的程度。
如果在系统安全与操作便利之间您更倾向于简便易用的话,可以考虑开启Administrator帐号,即在登录时直接使用超级管理员,绕开UAC只给予标准用户权限的控制。
开启超级管理员的方法如下
1、使用安装时创建的帐号登陆Vista;
2、开始菜单,找到”All Programs > Accessories”;
3、右击”Command Prompt” ,选择 “Run as Administrator”;
4、在UAC提示对话框中单击”Allow”;
5、进入命令行窗口,输入”regedit”,回车;
6、进入HKLMSoftware /Microsoft /Windows /NTCurrentVersion /Winlogon;
7、添加新的键值(key),名称为SpecialAccounts;
8、在SpecialAccounts中建立子键,名称为UserList;
9、完成后看看位置对不对:HKLMSoftware /Microsoft /Windows /NTCurrentVersion /Winlogon /SpecialAccounts /UserList;
10、在UserList键中,创建DWORD (32 bit) ,名称为Administrator,键值为1;
11、在命令行中输入”net user Administrator /Active:yes”;
12、注销或重启,就可以使用Administrator帐号了。
13、对于加入域中的用户,只要开启了administrator 帐号,就可以使用切换用户登录。
注意:这样做会极大地降低系统的安全性,很多恶意软件或病毒可以借此取得高权限,一般不建议这么做。