我想讲一个故事,所以如果你想了解问题的实质,请跳到水平线。
原标题:来自死域的僵尸不会给我我的文件!
我在恢复一些旧存档磁带时遇到了问题,其中文件和文件夹由不再存在的域中不再存在的用户拥有。
这些磁带包含在 Windows 2000、2003、2008、2012 R2(甚至可能有一些 NT4)中从本地 NTFS 卷和 CIFS NAS 存储阵列备份的文件,我正在 Windows Server 2022 中恢复它们。
在过去,保留文件所有权很有用,因为这是许多类型文件的唯一作者记录。
但在 2000 年代初的一段时期内,离开公司的员工的 Active Directory 帐户似乎被删除而不是被禁用。当然,他们拥有这些磁带上的文件和文件夹。
很久以后,域进行了重命名,由于用户已被删除,因此无法将其 SID 添加到 SID 历史记录中,无论如何,其范围都是未知的。
不管怎样,今天我正在从这些旧磁带中恢复文件,Windows 正在恢复去年的旧 DACL 和所有者。大错误:我不仅无法以管理员身份访问这些文件和文件夹,而且无法强制继承这些文件和文件夹的权限,甚至无法使用 icacls 和提升的命令提示符重置所有者。
icacls <folder> /setowner Administrators /t /c
icacls <folder> /reset /t /c
Run Code Online (Sandbox Code Playgroud)
我还有一个使用 xcacls.vbs 的脚本,可以让我重置文件夹的所有者。
这对于不属于僵尸的文件有效,但 Windows 拒绝访问很多很多文件。
但是,我能够在文件资源管理器 GUI 中重置所有者,并将新所有者推送到下面的所有内容。“替换所有子对象权限等..”然后替换权限。然后我就可以删除整个内容。
现在,我可以重新开始,而无需恢复 DACL 或所有者 - 但随后,原始的非僵尸作者将不得不被遗忘。(备份软件与此无关)。
icacls
并且xcacls
不会清理所有者和 DACL,即使有高程也是如此。但我可以在文件资源管理器中集体完成它!有没有办法使用命令提示符更有选择性地执行此操作?
更新:好的,所以 @u1686_grawity 的答案让我走上了正确的道路。我能够使用 takeown 删除文件并重新开始。
问题是,takeown /r
它是一个生硬的工具,并且只拥有所有文件和文件夹的所有权。我可以直接从磁带恢复文件,而无需恢复其原始 ACL 和所有者。目标是通过重置 ACL 保留原始文件所有权(尽可能)。
对于更具选择性的内容,我将输出重定向 …
我有一个小型企业网络,那里有一台集中式成像机。这台机器然后有一个包含所有存储图像的共享文件夹。原来成像机是XP的,共享文件夹很容易被大家访问。但是,我们最近不得不将该机器升级到安装了 Win7 的新机器。XP 计算机无法再访问相同的共享文件夹。我还假设本地防火墙没有引起问题,因为以前连接很好。
我得到的确切错误:
“网络路径不可访问”
我采取的步骤:
注意:这是加入域
尽管静态 ip 地址和 NAT 路由表似乎可以解决这种情况,但每当我使用主机名 (\imaging) 与 ip 地址 (\192.168.1.1) 时,ip 地址都会立即解析,而“映像”大约需要 30 秒到 1分钟
有什么建议?
确实有点巫毒。
买了一个新的启动驱动器,是时候使用旧驱动器来存储数据了。我想我可以通过擦除不需要的系统文件夹来节省一些时间,而不是备份、格式化和恢复。哇!
我有一个绝对不会被删除的 Adobe 文件。G:\Windows\SysWOW64\Macromed\Flash\flash9.ocx - 尽管它可能以不同的文件名开头。我能够重命名它,很奇怪。
需要明确的是,该驱动器当前是从外部插入的。所以我可以启动计算机,然后插入这个驱动器,并立即尝试删除。“正在使用的文件”框显示“无法完成操作,因为该文件已在另一个程序中打开”。
我会在这一点上格式化,但这是我的白鲸,我必须知道 Adobe 是否插入了一些讨厌的小注册表黑客 - 或者其他什么 - 使这变得不可能。
因为我确定它会出现,我已经取得了文件的所有权 - 这是阻止我删除驱动器上任何其他内容的技巧 - 文件权限的完全权利,你说出来,我已经摆弄了与文件本身。
我将尝试从系统驱动器中卸载闪存,以防正确对齐行星。有时我希望我不那么固执,并且已经可以格式化了。
我遵循了有关“如何使用 LKM 在 C 程序中创建 Linux Proc 文件”的教程指南。
我已经成功地制作了我的模块并加载了它。现在我想回显到我的 proc 文件以确保调用应该调用的方法。
我试过了:
$ echo "hello" > /proc/procEntry123 # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123 # Same error message.
Run Code Online (Sandbox Code Playgroud)
如何提升权限以回显到此文件?我是该系统的唯一用户和管理员。
我似乎对“Windows 上的访问被拒绝”有一个普遍的问题。它每次都会表现出来,例如:
(我已尝试使用任务管理器 + Winternals 进程资源管理器检查是否应该导致锁定的进程仍在运行中。)
问题是最近出现的,但我昨天首先注意到的一些事情(当我再次开始调用我已经使用多年的 .bat 文件时)
我试过了:
如果我尝试更改“锁定”文件的安全性,这是一个屏幕截图。(这里的问题是每次创建文件时都会连续发生锁定)
!
如果我继续点击,它表明我不是所有者?相反,我看到了:“无法显示当前所有者”
如果我尝试更改所有权,我会收到“拒绝访问”(没有权限)
当我刚刚创建它时,这让我感到困惑。(是的,通过 .bat 文件调用创建该文件的可执行文件。但所有这些都在我的管理员用户帐户下运行。)
我认为这是某种奇怪的问题,在文件被 .bat 文件尝试删除后,某处保留了文件句柄一段时间...
我试图在 .bat 文件发出删除指令后 5 分钟走开。(暂停 .bat 脚本)返回时(几分钟后)文件消失了。(这让我花了一些时间才注意到,因为我偶然发现了这一点,但似乎我可以重复一遍)
所以所有问题的原因可能是文件不知何故处于一种神秘的状态,文件已被安排删除,但它只是非常缓慢?(因此对文件执行的所有其他操作也表现得非常奇怪。)
我不知道为什么会这样(尝试禁用例如 AVG),但我想这可以解释突然出现的问题吗?
有没有一种方法可以为 Windows 7 中的用户设置创建文件/文件夹权限,而无需为文件夹授予删除权限?
我不希望用户删除该文件夹中的任何文件,但他应该能够创建新文件、重命名它们并将新文件复制到该文件夹中。这在 Windows 中可能吗?
我的桌面上有 3 个字体文件,我暂时放置在那里以对它们进行一些测试。我使用手提箱融合“临时”安装了它们。
从那以后,我无法从我的计算机中删除这些字体。手提箱 Fusion 显示它们未激活,并且我没有打开任何程序(重新启动后),但我无法删除这些文件。
在控制面板→字体窗口中,这些字体上显示有一个快捷箭头符号(这是什么意思?)。我使用Nirsoft的“打开文件查看器”查看它们是否打开并显示它们是打开的,并且该进程显示为“系统进程”
我还尝试从控制面板中删除它们。它要求确认删除,所以我确认,但它实际上并没有删除。
我该怎么做才能删除这些字体文件?我使用的是 Windows 10 Pro 64 位。
我有一个由程序创建的文件,显然与系统和 Google Backup & Sync 的交互以某种方式扰乱了文件的所有者和权限。(所有者显示为“未知”或“无法显示当前所有者”,具体取决于我查看的位置。)
我需要收回该文件的所有权。
标准方法(从文件资源管理器右键单击,属性,安全选项卡,高级,更改所有者)不起作用,因为我没有执行此操作的权限。基本上我需要在自己的系统上具有超级用户访问权限,这样我就可以覆盖操作系统的想法并实际管理文件。
有人有线索吗?重新启动似乎可以解决问题,但这是一个蹩脚的解决方案。如果有帮助的话,我在这个系统上有一个 Cygwin shell。我宁愿不必下载任何特殊的实用程序,除非来源非常值得信赖。
编辑问题再次出现。到目前为止,我无法设置有问题文件的所有者:
C:\Users\Brenden>icacls "C:\Users\Brenden\Google Drive\proj\tempj8\build \classes\quicktest\AbstractTest.class" /SETOWNER "%username%" /c
C:\Users\Brenden\Google Drive\proj\tempj8\build\classes\quicktest\AbstractTest.class: Access is denied.
Successfully processed 0 files; Failed processing 1 files
C:\Users\Brenden>
Run Code Online (Sandbox Code Playgroud)
该命令也失败:
C:\WINDOWS\system32>takeown /F "C:\Users\Brenden\Google Drive\proj\tempj8\build\classes\quicktest\AbstractTest.class"
ERROR: Access is denied.
C:\WINDOWS\system32>
Run Code Online (Sandbox Code Playgroud) 不知何故,在某个时刻,我相信最近,我的系统决定将 com.apple.quarantine 属性添加到某些文件中。这是相当痛苦的,并且阻止我运行我在自己的编辑器中编写的脚本(BBEdit,我已经使用了很多年,直到最近几天)。我找到了问题(xattrs)并将 BBEdit 添加到系统偏好设置 > 安全和隐私 > 隐私 > 全磁盘访问。现在新文件就可以了。
为了追踪我运行的其他文件,/usr/bin/find ~ -xattrname com.apple.quarantine
但文件相当多,所以我将其重定向到桌面上的一个文件。
该文件有130M大。
我注意到那里有很多 git 对象文件,但文件数量多得荒唐。这是正常的吗?如果不是,而且我认为这是不正确的,我怎样才能阻止这种情况再次发生?
git
吗Full Disk Access
?Full Disk Access
减轻应用程序负担的正确权限是吗?我将通过运行xattr -rd com.apple.quarantine
DIR 来解决这个问题,但我不完全确定我应该运行它,~
尽管它已经让我很恼火,希望它从任何东西中消失,甚至是真正的病毒。
这不是重复的我应该对 com.apple.quarantine 做什么?由于范围和上下文,我认为这种情况发生在奇怪的下载上是正常的,而不是我的整个帐户(而且我还没有检查过)。
任何帮助或见解将不胜感激。
security permissions file-permissions macos-mojave macos-catalina
我在此处、此处和此处进行了多次搜索,其中包括许多关于 SE 的回复,以尝试解决一个简单的问题:
在只有 Windows NTFS 的环境中,如果我想单独使用 NTFS 在局域网上共享文件夹,我可以这样做吗?
我发现的所有结果似乎都没有解决这个问题。微软的文档也没有解决这个问题 - 从文件服务器上的共享和 NTFS 权限(强调我的):
可以通过两组权限条目来确定对文件服务器上文件夹的访问权限:对文件夹设置的共享权限和对文件夹设置的 NTFS 权限(也可以对文件设置)。共享权限通常用于管理具有 FAT32 文件系统的计算机,或其他不使用 NTFS 文件系统的计算机。
共享权限和 NTFS 权限是相互独立的,两者都不会改变对方。共享文件夹的最终访问权限是通过考虑共享权限和 NTFS 权限条目来确定的。然后应用更严格的权限。
粗体的句子令人困惑。例如,如果Share permissions are often used for managing computers with FAT32 file systems
这并不意味着,在仅 NTFS 的环境中,我不需要共享权限,我只能依赖 NTFS 权限?
8 年前在 TechNet 上发布了一个类似的问题,但大多数答案只是恢复到上面的Microsoft 文档,只有一个答案似乎表明可以仅使用 NTFS:
使用 ntfs 权限,您需要知道目录的路径并拥有该目录的权限。另请注意,使用标准 Windows 服务器安装时,所有服务器驱动器都有一个默认的管理共享(c$、d$、e$ 等)。因此,例如对于安全的安全模型,我将执行以下操作:
- 删除所有管理共享(c$、d$ 等)
- 从包含用户数据的目录中删除所有人
- 现在返回并为相关目录设置 ntfs …
file-permissions ×10
windows-7 ×4
windows-10 ×3
adobe-flash ×1
command-line ×1
fonts ×1
linux ×1
macos-mojave ×1
ntfs ×1
permissions ×1
proc ×1
security ×1
sudo ×1
windows ×1
windows-xp ×1