Removendo o bit executável em arquivos linux armazenados pelo ntfs corrompe arquivos

0

Eu tenho uma configuração de partição compartilhada como ntfs para armazenar arquivos Linux entre distribuições e WSL. Meu /etc/fstab para a partição compartilhada é assim:

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

Eu recebo este erro ao tentar transformar o bit executável:

$ 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

Consigo reconstruir os arquivos compartilhados usando:

$ 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

Ainda estou curioso para saber como os arquivos são corrompidos, conforme mostrado na primeira seção?

Também estou aparecendo com problemas de propriedade quando /etc/fstab é analisado e a propriedade é padronizada como root ou meu ID de usuário, dependendo das configurações.

    
por WinEunuuchs2Unix 21.05.2018 / 00:12

1 resposta

4

O bit ecute e x nos diretórios deve ser definido para permitir que os usuários determinem seu conteúdo. Sem esse bit, você obtém a saída que descreve. Não há corrupção dos arquivos, você acabou de revogar suas permissões para examiná-los.

Simplesmente restaure o bit de execução no diretório para corrigir sua situação, no seu caso usando

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

Veja um exemplo de log de terminal ilustrando o comportamento:

$ 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/
    
por Byte Commander 21.05.2018 / 00:24