删除 ntfs 存储的 linux 文件的可执行位会损坏文件

删除 ntfs 存储的 linux 文件的可执行位会损坏文件

我有一个共享分区设置,用于ntfs在发行版和 WSL 之间存储 Linux 文件。我的/etc/fstab共享分区如下所示:

UUID=F2C2ACE4C2ACADF3 /mnt/e    ntfs-3g permissions,locale=en_US.utf8,x-gvfs-show 0     0

当我尝试关闭可执行位时出现此错误:

$ ll /mnt/e/var/lib/vnstat
total 20
drwxrwxrwx 1 root root 4096 May 20 11:56 ./
drwxr-xr-x 1 root root    0 May 20 09:39 ../
-rwxrwxrwx 1 root root 2792 May 20 15:58 enp59s0*
-rwxrwxrwx 1 root root 2792 May 20 15:58 .enp59s0*
-rwxrwxrwx 1 root root 2792 May 20 15:58 wlp60s0*
-rwxrwxrwx 1 root root 2792 May 20 15:58 .wlp60s0*

$ sudo chmod a-x /mnt/e/var/lib/vnstat

$ ll /mnt/e/var/lib/vnstat
ls: cannot access '/mnt/e/var/lib/vnstat/.': Permission denied
ls: cannot access '/mnt/e/var/lib/vnstat/..': Permission denied
ls: cannot access '/mnt/e/var/lib/vnstat/.enp59s0': Permission denied
ls: cannot access '/mnt/e/var/lib/vnstat/.wlp60s0': Permission denied
ls: cannot access '/mnt/e/var/lib/vnstat/enp59s0': Permission denied
ls: cannot access '/mnt/e/var/lib/vnstat/wlp60s0': Permission denied
total 0
d????????? ? ? ? ?            ? ./
d????????? ? ? ? ?            ? ../
-????????? ? ? ? ?            ? enp59s0
-????????? ? ? ? ?            ? .enp59s0
-????????? ? ? ? ?            ? wlp60s0
-????????? ? ? ? ?            ? .wlp60s0

我可以使用以下命令重建共享文件:

$ sudo rm -rf /mnt/e/var/lib/vnstat

$ sudo cp -rp /var/lib/vnstat /mnt/e/var/lib

$ sudo chmod a+r /mnt/e/var/lib/vnstat/*

$ ll /mnt/e/var/lib/vnstat
total 16
drwxr-xr-x 1 vnstat vnstat    0 Oct 31  2017 ./
drwxr-xr-x 1 root   root      0 May 20 16:09 ../
-rw-r--r-- 1 vnstat vnstat 2792 May 20 16:14 enp59s0
-rw-r--r-- 1 vnstat vnstat 2792 May 20 16:14 .enp59s0
-rw-r--r-- 1 vnstat vnstat 2792 May 20 16:14 wlp60s0
-rw-r--r-- 1 vnstat vnstat 2792 May 20 16:14 .wlp60s0

我仍然很好奇,想知道第一部分中所示的文件是如何损坏的?

/etc/fstab当进行解析时,我似乎也遇到了所有权问题,并且所有权默认为root我的用户 ID(具体取决于设置)。

答案1

电子X必须设置目录上的 ecute 位,以允许用户查看其内容。如果没有该位,您将获得您所描述的输出。文件根本没有损坏,您只是撤销了检查它们的权限。

只需恢复目录上的执行位即可解决您的情况,在您的情况下使用

sudo chmod a+x /mnt/e/var/lib/vnstat

下面是一个说明该行为的终端日志示例:

$ ll folder/
total 0
drwxrwxr-x  3 bytecommander bytecommander 100 Mai 21 00:19 ./
drwxrwxrwt 19 root          root          460 Mai 21 00:21 ../
-rw-rw-r--  1 bytecommander bytecommander   0 Mai 21 00:19 bar
-rw-rw-r--  1 bytecommander bytecommander   0 Mai 21 00:19 foo
drwxrwxr-x  2 bytecommander bytecommander  40 Mai 21 00:19 meh/

$ chmod a-x folder/

$ ll folder/
ls: cannot access 'folder/.': Permission denied
ls: cannot access 'folder/..': Permission denied
ls: cannot access 'folder/meh': Permission denied
ls: cannot access 'folder/bar': Permission denied
ls: cannot access 'folder/foo': Permission denied
total 0
d????????? ? ? ? ?            ? ./
d????????? ? ? ? ?            ? ../
-????????? ? ? ? ?            ? bar
-????????? ? ? ? ?            ? foo
d????????? ? ? ? ?            ? meh/

$ chmod a+x folder/

$ ll folder/
total 0
drwxrwxr-x  3 bytecommander bytecommander 100 Mai 21 00:19 ./
drwxrwxrwt 19 root          root          460 Mai 21 00:21 ../
-rw-rw-r--  1 bytecommander bytecommander   0 Mai 21 00:19 bar
-rw-rw-r--  1 bytecommander bytecommander   0 Mai 21 00:19 foo
drwxrwxr-x  2 bytecommander bytecommander  40 Mai 21 00:19 meh/

相关内容