六、安全和权限
6.1 cacls
显示或修改文件或目录的访问控制列表(ACL)
一般语法:
cacls <filename> [/t] [/e] [/g user:perm] [/r user [...]] [/p user:perm [...]] [/d user [...]]
其中 <filename> 是要操作的文件或目录的名称,/t 选项表示递归地更改指定目录及其子目录的权限。
常见选项和参数包括:
/e:允许修改已存在的 ACL 条目。
/g user:perm:授予指定用户的权限。user 是用户名或组名,perm 是权限,如 F(完全控制)、C(更改)、R(读取)等。
/r user:从 ACL 中删除指定用户的权限。
/p user:perm:替换指定用户的权限。
/d user:拒绝指定用户的权限。
例如,要显示文件 example.txt 的 ACL,可以运行以下命令:
cacls example.txt
要授予用户 user1 对文件 example.txt 的读取和写入权限,可以运行以下命令:
cacls example.txt /g user1:rw
6.2 takeown
获取指定文件或目录的所有权
一般语法:
takeown [/s <计算机>] [/u [<域>]\<用户名称>] [/p [<密码>]] [/a] [/r [/d]] <文件名 | 目录名>
常见选项和参数包括:
- /s <计算机>:指定远程计算机。
- /u [<域>]\<用户名称>:用指定的用户身份。
- /p [<密码>]:指定用户的密码。
- /a:将所有者更改为管理员组。
- /r:递归地应用于目录的所有文件和子目录。
- /d:不对目录中的文件应用权限更改。
例如,要获取文件 example.txt 的所有权,并将其更改为当前用户,可以运行以下命令:
takeown /f example.txt
如果你需要获取远程计算机上文件的所有权,你可以使用 /s 参数指定远程计算机的名称。
takeown /s RemoteComputer /u Domain\User /p Password /f example.txt
请注意,takeown 命令可以帮助你获取文件或目录的所有权,但它可能会导致权限被破坏或安全性问题。因此,在使用 takeown 命令之前,请谨慎考虑,并确保你有足够的权限执行此操作。
6.3 icacls
显示或修改文件或目录的 ACL
一般语法:
icacls <filename> [/options]
其中 <filename> 是要操作的文件或目录的名称,/options 是一系列可选的选项。
常见选项和参数包括:
/grant[:r] <user>:<perm>:授予指定用户或组的权限。<user> 是用户名或组名,<perm> 是权限,如 F(完全控制)、C(更改)、R(读取)等。/grant:r 用于替换现有的权限。
/deny[:r] <user>:<perm>:拒绝指定用户或组的权限。<user> 是用户名或组名,<perm> 是权限。
/remove[:g|:d|:w|:r] <user>:从 ACL 中删除指定用户或组的权限。:g 删除组权限,:d 删除目录权限,:w 删除文件权限,:r 删除注册表权限。
/inheritance:e|d|r:设置继承选项,e 表示启用继承,d 表示禁用继承,r 表示删除所有继承。
/reset:重置 ACL 为默认状态。
/save <filename>:将 ACL 保存到文件中。
/restore <filename>:从文件中还原 ACL。
例如,要授予用户 user1 对文件 example.txt 的读取权限,可以运行以下命令:
icacls example.txt /grant:user1:R
要删除用户 user1 对文件 example.txt 的所有权限,可以运行以下命令:
icacls example.txt /remove:user1