Todos os arquivos na partição NTFS montada automaticamente são marcados como executáveis

7

Eu configurei uma partição NTFS para automontar via fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda7 during installation
UUID=e63fa8a2-432f-4749-b9db-dab328807d04 /               ext4    errors=remount-ro 0          1
# /boot was on /dev/sda4 during installation
UUID=e9ad1bb4-7c1f-4ea9-a6a5-799dfad71c0a /boot           ext4    defaults        0       2
# /home was on /dev/sda8 during installation
UUID=eda8c755-5448-4de8-b58c-9cb75823c22d /home           ext4    defaults        0       2
# swap was on /dev/sda9 during installation
UUID=804ff3a7-e5dd-406a-b63c-e8f3c635fbc5 none            swap    sw              0       0

#Windows-Partition
UUID=368CEBC57807FDCD   /media/Share  ntfs    defaults,uid=1000,gid=1000,noexec    0   0

Como você pode ver, adicionei o noexec bit à configuração. Por quê? Porque qualquer arquivo que eu crio ou movo para a partição é automaticamente marcado como executável.

O problema é que não há como mudar isso através do nautilus. Não consigo desmarcar a opção "Permitir execução do arquivo como programa".

A opção noexec não ajuda, infelizmente. Isso só impede que o nautilus exiba a caixa de diálogo "executar" ou "ler", mas não altera o sinalizador de executável.

Existe alguma maneira de corrigir isso?

    
por Glutanimate 30.08.2012 / 12:54

2 respostas

4

Com a ajuda de janeiro, consegui encontrar as seguintes opções fstab que solucionaram meu problema:

umask=0000,fmask=0111

A entrada fstab da minha partição NTFS agora é a seguinte:

#Windows-Partition
UUID=368CEBC57807FDCD   /media/Share  ntfs  defaults,uid=1000,gid=1000,umask=0000,fmask=0111    0   0

Fonte: link

Editar: Alterar essas opções também significa que você não poderá definir nada para executável em sua unidade NTFS. No meu caso, isso não é um problema, pois não planejo armazenar nenhum executável nessa partição.

    
por Glutanimate 30.08.2012 / 14:31
8

A opção noexec não tem nada a ver com as permissões reais; é só por não permitir a execução de qualquer coisa dessa partição:

~ $ ls -l test.sh
-rwxr-xr-x 1 jw jw 28 Aug 30 13:05 test.sh
~ $ ./test.sh
Hello world
~ $ sudo mount -o remount,noexec /home
~ $ ./test.sh
bash: ./test.sh: Permission denied
~ $ ls -l test.sh
-rwxr-xr-x 1 jw jw 28 Aug 30 13:05 test.sh

Como você pode ver, quando a partição é montada com a opção noexec , test.sh não pode ser executado; mas as próprias permissões não mudaram.

O NTFS não suporta o bit executável. A maneira como um NTFS é visto pelo sistema e como as permissões são definidas depende, portanto, apenas de como ele foi montado. Normalmente, isso é feito com a opção umask mount. Isso explica também por que você não pode alterar as permissões: não há como armazená-las, porque o NTFS não as suporta.

Infelizmente, se você montar tudo com o bit 'não-executável', você não poderá se transformar em diretórios, porque eles devem ser executáveis para serem inseridos. Você pode usar as opções dmask e fmask para definir as permissões padrão separadamente para os diretórios e arquivos em um sistema NTFS montado.

    
por January 30.08.2012 / 13:09