有时候在共享文件夹或文件时,文件所有者权限会丢失,造成赋予权限时被拒绝,这样我们可以先使用takeown.exe强制更改所有身份,希捷使用icacls添加相应权限。
下面是一个示例,演示如何使用takeown
命令来获取一个文件夹及其所有子文件夹和文件的所有权:
这里,各参数的意义如下:
-
/F "D:\Share\Offices"
:指定你想要获取所有权的文件夹路径。路径需要用双引号包围,特别是当路径中包含空格时。 -
/R
:表示递归执行,即不仅获取指定文件夹的所有权,还包括其下所有子文件夹和文件。 -
/A
:自动赋予当前登录的用户(即管理员账户)所有权,而无需手动指定用户名。 -
/D Y
:自动回答“Y”(Yes),用于在需要确认时自动同意操作,避免命令执行过程中因等待用户输入而暂停。
执行此命令后,系统会开始处理,将指定文件夹及其内容的所有权转移给当前管理员账户。请注意,这一步骤仅改变了文件的所有权,并不直接修改文件的访问权限。如果还需要调整权限,可以进一步使用icacls
命令来设置具体的访问控制列表。
这里,各参数的意义如下:
-
"C:\example_folder\*"
:指定了要修改权限的文件夹及其中所有文件(星号*
代表所有文件)的路径。 -
/grant "Users:(RX)"
:表示授予Users
组读取(R)和执行(X)权限。这里(RX)
就是权限代码,R
代表读取权限,X
代表执行权限,两者之间没有逗号。/grant HR:F表示给文件夹及其文件赋予HR用户组所有控制权限 -
/T
:表示该命令将递归应用到指定目录下的所有子文件和子文件夹。 -
/C
:继续执行命令,即使遇到错误也不中断。这对于大量文件和文件夹尤其有用,可以确保命令尝试处理所有对象,即使某些操作可能因为权限问题失败。
执行上述命令后,icacls
将为C:\example_folder
目录下所有的文件和子文件夹内的文件赋予Users
组读取和执行的权限。请记住,这会覆盖现有的权限设置,除非这些文件已经拥有更宽松的权限。如果需要更细致地控制权限,比如同时保留现有权限并添加新的权限条目,可以查阅icacls
的更高级用法。