这是什么意思:
C:\foo\> icacls .
. NT AUTHORITY\IUSR:(M)
BUILTIN\IIS_IUSRS:(M)
BUILTIN\IIS_IUSRS:(OI)(CI)(M)
NT AUTHORITY\IUSR:(OI)(CI)(M)
BUILTIN\IIS_IUSRS:(I)(OI)(CI)(RX)
NT AUTHORITY\IUSR:(I)(OI)(CI)(RX)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
Run Code Online (Sandbox Code Playgroud)
我认为第一个意味着 userid 获得了对目录的修改权限 - 这意味着用户可以创建文件、更新文件或删除文件。对?什么是“NT AUTHORITY\IUSR”用户?这真的是一个单一的用户ID吗?它是默认的 IIS 用户 ID 吗?
好的,我认为第二行是指一个组。它获得相同的权限。
那些带有 (I) 和 (OI) 等等的行呢?请解释。
更新 虽然我能够使用接受的答案中描述的方法,一旦它第二次失败或者只是给了太多麻烦。
进一步搜索后,我发现Helge Klein 的SetACL远远优越,并且完全满足需要。
我无法访问某些文件夹,例如c:\Program Files\WindowsApps. 通过命令行,我收到“访问被拒绝”的错误消息,通过 Windows 资源管理器,我会弹出一个对话框,说明“您当前无权访问此文件夹”
单击继续允许我访问,但我想使用命令行授予自己访问权限;这样我的脚本就不会遇到在相同安全上下文下运行的这个问题。
我在 Microsoft Technet 上发现了这个问题,但我无法让它工作。请注意,我已经以管理员身份运行 Powershell。
PS C:\WINDOWS\system32> icacls "C:\Program Files\WindowsApps" /grant i063510:F /inheritance:e
C:\Program Files\WindowsApps: Access is denied.
Successfully processed 0 files; Failed processing 1 files
PS C:\WINDOWS\system32> icacls "C:\Program Files" /grant i063510:F /inheritance:e
C:\Program Files: Access is denied.
Successfully processed 0 files; Failed processing 1 files
Run Code Online (Sandbox Code Playgroud)
如果重要的话,我使用的是从 Windows 8.1 升级的 Windows 10。
在 Windows 10 中使用最新版本的 cygwin64。我设法得到一个目录foo,它的权限有些奇怪。我不太确定这是怎么发生的,但这里是症状:
$ cd /f/temp/foo
$ ls -lad .
drwxrwx---+ 1 Mm None 0 Jun 16 14:03 .
$ mkdir bar
$ ls -lad bar
d---rwx---+ 1 Mm None 0 Jun 16 14:17 .
$ cd bar
Permission denied
$ umask
0022
Run Code Online (Sandbox Code Playgroud)
这不会发生在其他目录中,例如/f/temp/ok. 使用ls开关我看不出f/temp/ok和之间有任何区别/f/temp/foo。
如果我这样做,chmod 775 bar那么我可以输入bar,但是在下面创建目录bar也有同样的问题。所以这个问题阻止了我git init在/f/temp/foo. 做chown -R Mm *父没什么区别。
我的问题是:是什么导致了这个问题,正确的解决方法是什么?
有一些可见的差异,icacls …
背景
说我有这个命令
icacls C:\FullyAccessibleFolder /grant Users:(OI)(CI)F
这在英语版本的 Windows 中工作正常,但在法语版本中似乎不起作用,出现以下错误,大概是由于Users法语不同。在 Windows 中Everyone被翻译Tout le monde,所以这也不是解决方案。
Users: Le mappage entre les noms de compte et les ID de sécurité n'a pas été effectué.
谷歌翻译为
Users: The mapping between account names and security IDs was not performed.
题
是否有我可以使用的命令来设置文件夹并递归地设置其所有内容,以便以适用于不同语言版本的 Windows 的方式对所有用户拥有完全权限?
来自网络的内容
这个页面有一个基本相似的问题,讨论如何用德语和法语Everyone变成。JederTout le monde
我正在安装在我的系统上的远程驱动器上,我在其中创建了一些文件,我需要为该文件设置一些权限。
我用过icacls但它不工作。
当我尝试访问文件权限时,它工作正常。
Z:\test_permission>icacls file1.txt
file1.txt "my user name":(I)(RX,W,DC)
Everyone:(I)(RX)
Run Code Online (Sandbox Code Playgroud)
当我尝试更改其权限时,它说访问被拒绝。
Z:\test_permission>icacls file1.txt /deny "user name":R
file1.txt: Access is denied.
Successfully processed 0 files; Failed processing 1 files
Run Code Online (Sandbox Code Playgroud)
解决方法:当我们在同一磁盘上使用 Linux 并使用时,chmod一切正常。现在我正在尝试使用 Windows 做同样的事情,所以我使用icacls. 我也不能使用 Cygwin,我只能使用一些 Windows 命令。
如果我做错了什么,请纠正我。
我有这个,很确定它有点苛刻但可以完成工作,在驱动器上运行时赋予我对驱动器上文件和文件夹的所有权利,现在我需要帮助将其放入子目录,所以我不需要将 bat 脚本复制到每个文件夹中并必须运行它。
takeown /f *
icacls * /grant Administrator:F
icacls * /grant Administrators:F
icacls * /grant SYSTEM:F
icacls * /grant "Authenticated Users":F
Run Code Online (Sandbox Code Playgroud)
我如何让它递归遍历驱动器?
如果我尝试查看权限:
\n\nC:\\Windows\\system32>icacls "C:\\ProgramData\\Microsoft\\Windows\\SystemData"\nC:\\ProgramData\\Microsoft\\Windows\\SystemData: Access is denied.\nSuccessfully processed 0 files; Failed processing 1 files\nRun Code Online (Sandbox Code Playgroud)\n\n如果我尝试保存 ACL 文件:
\n\nC:\\Windows\\system32>icacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /save "C:\\SystemData.acl" /t\nC:\\ProgramData\\Microsoft\\Windows\\SystemData: Access is denied.\nSuccessfully processed 0 files; Failed processing 1 files\nRun Code Online (Sandbox Code Playgroud)\n\n在“了解如何使用 Icals & Takeown”的答案中,该文件夹的所有者是 NT SERVICE\\TrustedInstaller,这实际上可能是 Windows 10 中的标准,尽管我只是猜测。
\n\n我应该只使用 takeown 和 icals,找出权限,然后使用重置命令。
\n\ntakeown /f C:\\ProgramData\\Microsoft\\Windows\\SystemData /r\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /grant "%USERDOMAIN%\\%USERNAME%":(F) /t\nMake Changes\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /setowner "NT SERVICE\\TrustedInstaller" /t\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData …Run Code Online (Sandbox Code Playgroud) 最初由我在Stack Overflow上发布,重新发布在这里是因为这似乎是与此问题更相关的网站。一些措辞略有编辑,并添加了更多信息。
键入“icacls /?”时 进入 Windows 命令提示符,文档似乎没有解释“icacls <文件夹/文件>”的作用。根据docs.windows.com,参数“<filename>”“指定要显示 DACL 的文件”和“<directory>”“指定要显示 DACL 的目录”。根据ss64.com,命令 "icacls "C:\demo\example"" 用于“查看当前在文件夹上设置的权限”。
现在,令人困惑的是,在一篇指导如何解决 SFC /scannow windows 资源保护问题的文章中,第 3 个修复建议“修改 WinSXS 文件夹中的安全描述符”建议使用命令“ICACLS C:\Windows \winsxs”作为该问题的可能解决方案。该网站讲述了为什么它可以解决问题的背景:
“你的很多 Windows 系统更新和系统文件都存储在 WinSXS 文件夹中,如果你的 SFC 实用工具无法访问这个文件夹,它就会失败,这就是提示错误消息的原因。要解决这个问题,你可以修改文件夹的安全描述符。”
另一篇文章提出了相同的修复方法:
“系统文件检查器可能无法扫描系统,因为 WinSxS 文件夹的安全描述符存在问题,它无法访问 WinSxS 文件夹。要运行 ICALCS 命令,请使用管理权限打开命令提示符并执行“ICACLS C: \Windows\winsxs”命令。”
但是,这两篇文章都只指示输入“ICACLS C:\Windows\winsxs”命令并重新启动计算机,问题可能会得到解决。这听起来像命令“ICACLS C:\Windows\winsxs”实际上做了一些事情。
所以我想知道,是我误解了文章的说明还是我遗漏了什么?命令“ICACLS C:\Windows\winsxs”除了查看文件夹的权限之外,实际上是否还有其他作用?命令执行是否安全以及它如何影响系统,例如它是否可能存在某种安全风险?
我将硬盘连接到我的 win7 机器上,并将驱动器号分配给硬盘I:上唯一的分区。该硬盘最初来自另一台计算机,为了避免所有那些“您当前没有权限...”对话框,我决定使用icacls清除所有 ACL。
I ran icacls I:\ /reset /t /c /l. After a while, Chrome stopped working. Safari crashed. I traced the problem and find that the ACLs of my home folder (in C:\Users) are all messed up. Chrome and Safari couldn't write to their cache folder. I fixed the ACLs of my home folder and everything seems to be OK now.
Why would icacls mess with my home folder when I specifically …
icacls ×9
windows ×6
permissions ×4
windows-10 ×2
acl ×1
batch-file ×1
chmod ×1
cmd.exe ×1
command-line ×1
cygwin ×1
language ×1
ntfs ×1
windows-7 ×1
winsxs ×1