我在windows系统中安装了cygwin软件,在C盘下生成了cygwin64文件夹。由于该文件夹的拥有者和权限问题,导致用Administrator无法删除该文件夹。此时,需要修改文件夹的拥有者和权限后,才能删除cygwin64文件夹。
1. 使用windows窗口界面修改权限
首先,修改拥有者权限:登录到Administrator用户,右击要删除的文件或文件夹——属性——安全——高级——更改(蓝色字体)——点击输入框”输入要选择的对象名称”——输入用户名”Administrator”——确定——确定。
只有修改了拥有者权限后,才能对新增加的拥有者设置读写权限:右击要删除的文件或文件夹——属性——安全——高级——添加——选择主题(蓝色字体)——点击输入框”输入要选择的对象名称”——输入用户名”Administrator”——确定——勾选完全控制——确定——确定——确定。
进行以上两步操作后,则可以删除目标文件夹下的所有文件。但是不能删除目标文件夹下的子文件夹。这点非常坑。由于cygwin64文件夹下有很多层目录,可能要对数千个文件夹进行上述操作,才能删除所有文件和文件夹,通过windows窗口界面基本不可能实现了。
2. 通过命令行修改权限
windows系统中按windows+x键,点击Windows PowerShell打开终端,进行文件或文件夹的权限操作。
2.1 删除文件的用户名或组。
在Windows系统中,用户名和组不能具有相同的名称。一个文件或文件夹可能属于很多不同的用户名或组。当文件所属的用户名和组过多时,容易冲突。为了系统稳定,推荐删除不认识的用户名或组,让文件仅属于当前用户名或Administrators。Windows系统安装后默认带有用户Administrator和用户组Administrators。
使用icacls.exe命令后接文件或文件夹路径,查看文件的拥有者信息。
icacls.exe C:\Users\chenlianfu\Documents\
使用icacls.exe命令的/remove参数删除不需要的文件拥有者用户名或组。
icacls.exe C:\Users\chenlianfu\Documents\ /remove "CREATOR GROUP" /T
/remove 删除用户名或组,若用户名或组名称有空格,使用引号。
/T 递归,将权限赋予子目录及其文件。
2.2 给文件添加用户名或组
使用takeown.exe命令给文件添加用户或用户组
takeown.exe /F C:\cygwin64\ /A /R /D Y
/F <strint> 参数后接一个路径,用于对指定文件或文件夹进行拥有者权限设置。
/A 将所有权给予管理员组,即Administrators。若不加该参数,则将权限给当前用户。
/R 递归,将拥有者权限设置赋予子目录及其文件。
/D <strint> 设置其值为Y后,表示使用/R进行递归时所有问询值都为Yes。
2.3 给用户授予读写全写
使用icacls.exe命令授予权限。
icacls.exe C:\cygwin64\ /grant Administrator:F /T
/grant <string> 授予指定用户相应的权限。其值格式为“用户ID:权限符号”,其中F表示所有权限。
/T 递归,将权限赋予子目录及其文件。
3. 我的操作
我对我的数据文件夹进行了操作。首先,查看文件夹的权限信息,删除所有的用户和用户组。
icacls.exe .\ChenLianfu_Data\
icacls.exe .\ChenLianfu_Data\ /remove "DESKTOP\chenlianfu" /T
icacls.exe .\ChenLianfu_Data\ /remove "BUILTIN\Users" /T
icacls.exe .\ChenLianfu_Data\ /remove "BUILTIN\Administrators" /T
icacls.exe .\ChenLianfu_Data\ /remove "CREATOR OWNER" /T
icacls.exe .\ChenLianfu_Data\ /remove "CREATOR GROUP" /T
icacls.exe .\ChenLianfu_Data\ /remove "NULL SID" /T
icacls.exe .\ChenLianfu_Data\ /remove "NT AUTHORITY\SYSTEM" /T
icacls.exe .\ChenLianfu_Data\ /remove "NT AUTHORITY\Authenticated Users" /T
然后,给文件拥有者权限添加用户chenlianfu和用户组Administrators。
takeown.exe /F .\ChenLianfu_Data\ /A /R /D Y
takeown.exe /F .\ChenLianfu_Data\ /R /D Y
最后,授予用户chenlianfu和用户组Administrators所有权限。
icacls.exe .\ChenLianfu_Data\ /grant Administrators:F /T
icacls.exe .\ChenLianfu_Data\ /grant chenlianfu:F /T
icacls.exe .\ChenLianfu_Data\
查看目标文件的权限如下所示:
.\ChenLianfu_Data\ DESKTOP\chenlianfu:(F) BUILTIN\Administrators:(F)
进行以上操作后,则可以正常删除目标文件夹了。