Удаление exeuctable бита в ntfs хранимых файлах linux приводит к повреждению файлов

У меня есть настройка общего раздела как ntfs для хранения файлов Linux между дистрибутивами и WSL. мой /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 или мой идентификатор пользователя в зависимости от настроек.

1 ответ

Решение

Бит ex 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/
Другие вопросы по тегам