Удаление 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/