如何更改目录的所有者


14

编辑:问题是Apple使用权限来标记备份并阻止您对其进行修改(可能是安全功能)。通过使用,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, ,chownchmod和权限的任何解决方案张贴在这里将适用于任何基于UNIX的操作系统。如果发布的解决方案可以使我的旧备份重新出现在Time Machine中,那将是更好的选择。

感谢所有及时答复,但chown由于某种原因似乎在目录上不起作用的人。这是.sparsebundle网络驱动器上的磁盘映像吗?我以为它将与任何外部驱动器上的相同。


什么样的网络驱动器?如果是NFS,则很有可能在root_squash启用时将其导出,因此您将无法执行仅根操作,例如chown从客户端执行。
Toby Speight 2015年

这是Apple Time Capsule中的HDD。本质上,它是WiFi基站内部受密码保护的磁盘。唯一的区别是HDD通过以太网连接到您的计算机。实际上一个USB端口,但我从未使用过。
Arc676

否则,该标准find . -user $other_uid -print0 | sudo xargs chown $USER应该起作用。
Toby Speight 2015年

什么网络文件系统? df -hT <dirname>应该告诉你。
Toby Speight 2015年

@TobySpeight df -hT <dir>给出没有输出为a)所述网络HDD B的根目录)的网络HDD C内的磁盘映像)上的网络HDD任何文件夹。也许您想要的行为在Mac和Linux上以不同的方式实现?
Arc676

Answers:


23

我可能误会了。但是您可以递归使用chmod和chown例如。

chown -R username:username /path/directory

要递归应用权限700,可以使用:

chmod -r 700 /path/directory

当然,以上内容适用于Linux,因此不确定mac osx是否相同。

编辑:是的,对不起忘记提到您需要扎根一些东西,我只是以为您知道这...我的坏处。


1
Mac OS使用相同的语法。要以root用户身份执行命令,在Mac上最简单的方法是在前缀上加上sudo,因此sudo chmod(系统将要求您输入具有Adminstrator访问权限的密码)。
mjturner

2

以root身份尝试

 find wherever -type d -name ... -exec chown Me {} \;

哪里

  • -type d 仅适用于目录
  • -name ... 您的正则表达式
  • -exec chown Me {} \; 在查找目录上使用chown。

您必须是root才能使用chown。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.