如何更改文件夹(包括子文件夹)的权限?
答案1
如果您不想从 GUI 执行此操作,您可以使用cacls
带有 /T 选项的命令行程序。
(或者使用icacls
新版本的 cacls)。
如果您想使用 GUI,请右键单击文件夹,选择属性,然后单击安全选项卡。单击高级,然后单击更改权限。添加您要授予权限的用户/组(并选择您要授予的权限),然后选中“用可从该对象继承的权限替换所有子对象权限”框。
更新:吃我自己的狗粮,昨天的另一个现实世界场景是,我们需要重置其中包含几百万个文件的文件夹的所有权限(并删除继承):
这是在 Windows Server 2008 R2 上,因此您需要以管理员身份运行 CMD 提示符(建议用于 Server 2008 R2 及更高版本)。在 CMD 提示符下:
icacls E:\Store\*.* /grant:r "OURDOMAIN\Domain Admins":F /grant OURDOMAIN\ITAdmins:F /T /C /inheritance:r /Q
。
解释一下这个命令的每个部分:
- 伊卡克尔斯
- 命令
- E:\Store\*.*
- 需要重置权限的文件夹和文件
- /grant:r
- 授予权限并替换所有现有权限
- “OURDOMAIN\域管理员”
- 我们授予权限的用户/组(需要引号,因为“域管理员”有空格)
- :F
- 授予完全访问权限
- /授予
- 授予额外权限(这次不需要 :r)
- OURDOMAIN\ITAdmins
- 授予其他用户/组权限
- :F
- 授予完全访问权限
- /T
- 也适用于子文件夹
- /C
- 出现文件错误时继续(例如,拒绝访问)
- /问
- 抑制所有成功消息,即不告诉我已应用权限的数百万个文件,只告诉我失败的文件
对于任何失败的文件,您可能需要运行TAKEOWN
然后再次运行 icacls 命令(针对失败的文件):
takeown /F E:\\Store /A /R /D Y
您可能希望将输出通过管道传输到文件,因为没有“安静”选项takeown
。
用于takeown /?
查看其他可用选项。
答案2
简单使用:
ICACLS "PATH OF DIRECTORY (FOLDER)" /grant "USER":F /T
在以下示例中,我设置了权限每个人到名为的文件夹的所有子文件夹/文件哈迪克在我的德驱动器。那么我的 cmd 代码将是这样的,
ICACLS "D:\Hardik\*" /grant "Everyone":F /T
欲了解更多详情,请访问此链接..
答案3
在 powershell 中使用此脚本..将其保存为 perm.ps1
param(
[string]$i
)
Import-Module NTFSSecurity
if(test-path $i)
{
write-host Taking ownership of Directory $i -fore Green
Get-Item $i | Set-NTFSOwner -Account 'qd'
Get-Item $i | Add-NTFSAccess -Account 'qd' -AccessRights FullControl
$items = @()
$items = $null
$path = $null
get-childitem $i -recurse -force | ForEach {
$path = $_.FullName
Write-Host ...Setting permissions to $path -Fore Green
Get-Item -force $path | Set-NTFSOwner -Account 'qd'
Get-Item -force $path | Add-NTFSAccess -Account 'qd' -AccessRights FullControl
}
}
在 powershell 中首先发出“Install-Module NTFSSecurity”,然后发出“perm.ps1 d:\yourfolder”,为什么要使用这个?万一其他解决方案不起作用……
答案4
更改文件夹及其子文件夹文件的权限的步骤。
在 Linux 中,您会注意到存在各种文件夹和文件。您需要设置适当的权限和所有权以确保正确的工作访问。
目录需要设置权限755。(drwx.r-xr-x);
三种类型的权限。• r- 读取 • w- 写入 • x- 执行权限
find /foldername -type d –exec chmod 755 {} \;
例如:find /var/www/user –type – exec chmod 755 {} ;
权限 644 对于文件至关重要。(-rw-r--r--);
[find (filename) -type f –exec chmod 644 {} \;][1]
例如:find /var/www/user/ -type f –exec chmod 644 {} ;