数据丢失通过权限更改?

我似乎已经删除了我的媒体驱动器上的一些文件,只是通过更改权限。

故事

我的电脑上安装了很多操作系统,并且不断地在它们之间切换。 我买了一个1TB的高清格式化为HFS +(不logging)。 它在OSX和我所有的Linux安装之间运行良好,同时比NTFS有更好的元数据支持。 我从来没有同步过我的操作系统的UID,所以权限总是在做有趣的事情。 昨天我试图修改权限,首先更改其他操作系统的UID以匹配OSX,然后更改驱动器上所有文件的文件所有权以匹配OSX。 驱动器中大约50%的文件原来由OSX拥有,另一半归属于各种Linux安装。 我开始尝试更改文件夹的文件权限,这就是当它南下时。

命令

这些命令在驱动器的一个部分recursion运行。

sudo chflags nouchg sudo chflags -N sudo chown myusername sudo chmod 666 sudo chgrp staff 

坏的

在执行这些命令的过程中,所有属于OSX的文件都被删除了。 如果一个文件夹有基于Linux的文件,它将保持不变,但任何包含专有OSX文件的文件夹被删除。 如果包含linux文件的文件夹还包含仅包含OSX文件的子文件夹,则子文件夹将保留但不可见,并显示0字节的文件大小。

幸运的是,这些命令只在video文件夹上运行,我也有一个相同的问题,但我没有执行任何这些命令的音乐文件夹。 实际上,我有所有3个状态的文件权限的示例 – 之前和之后的Linux文件,以及之前的OSX文件。

OSX文件之前

 -rw-r--r--@ 1 charliehorse 1000 3634241 15 Nov 2008 /path/to/file com.apple.FinderInfo 32 

Linux文件之前:

 -rw-r--r--@ 1 charliehorse 1000 5321776 20 Sep 2002 /path/to/file/ com.apple.FinderInfo 32 

Linux文件后(只读):(不同的文件,但我相信原来相同的权限)

 -rw-rw-rw-@ 1 charliehorse staff 366982610 17 Jun 2008 /path/to/file com.apple.FinderInfo 32 

这些文件仍然存在,所以如果有任何其他命令来运行它们来确定发生在这里,我可以做到这一点。

编辑

在其中一个“空”删除的OSX文件夹上运行ls会产生以下结果:

 ls: .: Permission denied ls: ..: Permission denied ls: subdirA: Permission denied ls: subdirB: Permission denied ls: subdirC: Permission denied ls: subdirD: Permission denied 

我相信我的文件可能仍然存在,但权限被拧紧。

那么你的目录是“空的”,因为你通过recursion的chmod去除了目录的“执行位”,你需要能够列出目录中的文件。

至于为什么“根”将无法更改权限:我猜你通过sudo运行“根”命令,这是行不通的,因为你的用户shell不能“看到”目录。 通过一个真正的root shell运行命令不会有同样的问题。