Não é possível definir permissões para arquivos em uma partição NTFS

12

Lembro-me de que consegui executar um exe Linux que foi colocado em uma partição NTFS antes de instalar o 10.10 RC. Mas se eu tentar executá-lo agora, não posso executá-lo, pois ele não tem permissão de execução. A parte ruim é que eu não posso mudar as permissões também. Eu sou chmod -ding +x mas nenhuma alteração com suas permissões.

Então, isso parece ser um bug? Qualquer ajuda?

Embora quando eu o coloquei na partição ext4, posso definir a permissão. Mas eu quero fazer isso como fiz antes, diretamente do local padrão do NTFS.

    
por ashishsony 02.10.2010 / 16:40

3 respostas

12

O NTFS não suporta a permissão de execução porque foi projetado para o Windows, que não possui o mesmo conceito de arquivos "executáveis" que o Linux. Se você está tentando executar arquivos .exe do Windows no Wine, ele ainda deve funcionar se você executar o wine explicitamente, assim:

wine /path/to/executable.exe

Se você precisar executar arquivos diretamente, poderá definir as permissões que serão aplicadas a todos os arquivos com a opção fmask em /etc/fstab . Você também pode precisar adicionar a opção exec se esse não for o padrão para NTFS (não tenho uma unidade à mão para verificar agora). O valor para fmask informa ao driver quais bits devem ser desativados, portanto, por exemplo, para permitir leitura, gravação e execução para todos os usuários, você deve ter algo assim:

/dev/hda1  /mnt/windows  ntfs-3g  defaults,exec,fmask=000  0  0

Se já houver uma opção fmask , a maneira mais simples de ativar o bit de execução é subtrair 1 de qualquer dígito que seja estranho.

Se você não souber como funciona o mascaramento de permissões, a ideia básica é que as permissões de leitura, gravação e execução sejam representadas pelos valores 4, 2 e 1, respectivamente. Você pode adicioná-los juntos para combinar permissões de modo que, por exemplo, leitura + escrita seja 6. A máscara de permissão é uma combinação de três dígitos que se aplicam ao proprietário, grupo e "outros" (todos os outros).

Lembre-se de que fmask (também, umask e dmask ) no fstab são as permissões que você deseja desativar .

Como um exemplo um pouco mais interessante, isso definiria as permissões como "rwx" para o proprietário, "rx" para o grupo e "r" para todos os outros:

/dev/hda1  /mnt/windows  ntfs-3g  defaults,exec,fmask=023  0  0
    
por Matthew Crumley 02.10.2010 / 18:52
0

Eu uso uma linha como a seguinte no meu arquivo /etc/fstab :

/dev/sda5    /media/disk    ntfs,   user,noauto,exec    0 2

que impede que a partição seja montada na inicialização, mas permite que eu monte como root com:

sudo mount /dev/sda5

ou

sudo mount /media/disk 

da linha de comando.

A montagem de "Places" dá um erro, então essa solução não é perfeita, mas estou disposto a conviver com ela. Espero que isso seja útil para os outros.

    
por codejockey 08.11.2010 / 13:03
0

Parece um bug em versões mais antigas ...

Tente atualizar para o Wine 1.3

Isso funcionou para mim e agora posso instalar qualquer coisa diretamente de uma partição NTFS.

    
por Rafael Borges 27.02.2012 / 22:21