编辑:问题是苹果使用权限来标记备份并阻止您修改它们(可能是安全功能)。通过使用,chmod -RN <dir>
我从所有包含重要数据的文件夹中删除了 ACL 数据,这使我能够使自己成为所有者并应用适当的权限。
原问题
我有一个非常大的备份(>700GB),现在它的权限错误(我的 UID 在全新安装过程中发生了变化,长话短说),我需要更改它们。耗时的选项是手动检查每个文件夹并更改权限,但这将需要很长时间。
我想用来chown
使自己成为所有重要数据的所有者,然后在所有这些文件夹上使用仅向我chmod 700
授予权限。rwx
理想的解决方案是使用某种方法find
递归地查找与正则表达式匹配的文件夹(我当前的文件夹是.*/[DCV].*|Pictures|M[ou].*
),然后使我的 UID 成为所有者并将权限设置为 700。
我无法理解的重要一点:
然而,当我尝试运行时,chown Me DirectoryName
我得到了chown: DirectoryName: Operation not permitted
。
我发现的所有内容都与更改权限有关文件而不是目录。也许我以错误的方式看待这个问题?
有件事告诉我,没有办法将我的 UID 提供rwx
给---
其他人。
我怎样才能实现这个目标?我运行的是 Mac OS X 10.10.3。
我知道这是一个 UNIX/Linux 论坛(我正在运行 Mac),但这个问题更多地涉及使用 shell、、、chown
和chmod
权限,并且此处发布的任何解决方案都适用于任何基于 UNIX 的操作系统。如果发布的解决方案能让我的旧备份重新出现在时间机器中,那就更好了。
感谢所有及时回复的人,但chown
由于某种原因似乎无法在目录上工作。这是.sparsebundle
网络驱动器上的磁盘映像这一事实是否相关?我认为它与任何外部驱动器上的相同。
答案1
我可能误会了。但是您可以递归地使用 chmod 和 chown 例如。
chown -R username:username /path/directory
要递归应用权限 700,您可以使用:
chmod -r 700 /path/directory
当然以上是针对 Linux 的,所以不确定 mac osx 是否也一样。
编辑:是的,抱歉忘记提及你需要 root 才能 chown 某些东西,我只是假设你知道这一点......我的错。
答案2
尝试作为根用户
find wherever -type d -name ... -exec chown Me {} \;
在哪里
-type d
仅适用于目录-name ...
你的正则表达式-exec chown Me {} \;
在查找目录上使用 chown。
你必须是root才能chown。