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

12

Lembro que consegui executar um .exe do Linux que foi colocado em uma partição NTFS anteriormente 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 não posso alterar as permissões também. Estou chmodpegando, +xmas 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, eu possa definir a permissão. Mas quero fazer isso como antes, diretamente do local padrão do NTFS.

ashishsony
fonte

Respostas:

12

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

wine /path/to/executable.exe

Se você precisa fazer para executar arquivos diretamente, você pode definir as permissões que serão aplicadas a todos os arquivos com a fmaskopção /etc/fstab. Também pode ser necessário adicionar a execopção se esse não for o padrão para NTFS (não tenho uma unidade à mão para verificar agora). O valor para fmaskinforma 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 como isto:

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

Se já existe uma fmaskopção, a maneira mais simples de ativar o bit de execução é subtrair 1 de qualquer dígito que seja ímpar.

Se você não souber como o mascaramento de permissão funciona, a idéia 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 para combinar permissões, de modo que, por exemplo, leitura e gravação sejam 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 umaske dmask) no fstab são as permissões que você deseja desativar .

Como um exemplo um pouco mais interessante, isso definiria as permissões para "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
Matthew Crumley
fonte
obrigado matthew ... essa entrada do fstab é a chave do meu problema ... como eu instalei recentemente o ubuntu RC, então eu não incluí a entrada do fstab para montagem automática das unidades ntfs ... que eu tinha no meu sistema operacional anterior. .. portanto, o sinalizador exec é a chave .. que eu acredito que não está incluída durante a montagem manualmente, clicando duas vezes nas unidades na exibição meu computador .. obrigado. :)
ashishsony
Era isso que eu tinha que fazer para alterar as permissões de coisas na minha segunda unidade.
precisa saber é o seguinte
"Ao contrário do que muitos pensam, o NTFS é um sistema de arquivos compatível com POSIXIX e é possível usar permissões no NTFS" askubuntu.com/a/74851/253474 technet.microsoft.com/en-us/library/cc976809.aspx
phuclv
0

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

/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 

a partir da linha de comando.

Montar a partir de "Locais" gera um erro, portanto esta solução não é perfeita, mas estou disposto a conviver com ela. Espero que isso seja útil para os outros.

Peachy
fonte
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.

Rafael Borges
fonte