Montar partição NTFS na inicialização, com o usuário não root como proprietário

28

Atualmente, estou montando uma partição NTFS na inicialização usando a seguinte linha no / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Na minha instalação do Ubuntu 11.10, parece que todos os arquivos e pastas pertencem a root- e como o NTFS não suporta o mesmo sistema de gerenciamento de direitos, não há como alterá-lo após a conclusão da montagem. Não importa o que eu faça, ls -lem qualquer lugar da partição NTFS listará todos os arquivos e pastas pertencentes a root:root.

No entanto, isso causa alguns problemas para mim. Mais notavelmente, alguns aplicativos em execução na minha conta (chamados tomas) reclamam de direitos de acesso. Além disso, sempre que tento copiar ( cp) ou mover ( mv) arquivos de uma das minhas partições ext3 para a partição NTFS, recebo mensagens de erro dizendo

mv: preserving times for `[path to new file]`: Operation not permitted

ou, da mesma forma

mv: preserving permissions for ...

Montar a partição em meu nome em vez de ajudar com a raiz? Se sim, como faço isso no fstab?


Atualizar:

Eu mudei as opções de acordo com as sugestões e cheguei a isso:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lagora mostra todos os arquivos pertencentes a mim em vez de root, e parece que alguns dos problemas que eu tinha antes foram resolvidos. No entanto, nem todos eles.

Quando inicio o Eclipse, recebo um erro de que um arquivo relacionado ao android-sdk não pode ser executado: Permissão negada. ls -lme diz o seguinte sobre o arquivo:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

É assim que eu quero. Mas se eu tentar executá-lo ( ./adbem um terminal), também recebo erros de permissão negada. Mas se eu executá-lo sudo, ele funciona (acredito - pelo menos, não me dá uma mensagem de erro, mas não me dá nenhuma saída, o que acho que não deveria ...)

Por que o arquivo acima, com permissões de execução para qualquer pessoa , ainda não é executável por mais ninguém root? Como altero a maneira como monto o sistema de arquivos para que ele seja?


Atualização 2:

OK, agora cheguei um pouco mais longe. Montando com estas opções

nls=iso8859-1,permissions,users,auto

Eu tenho todas as permissões definidas da maneira que eu esperava chowne, chmodna verdade, altero as configurações dos arquivos (pelo menos de acordo com ls -l) = D

MAS meu sistema ainda se comporta de uma maneira estranha. As permissões para o adbarquivo de script aparecem como acima, mas nem eu nem o Eclipse podemos executá-lo sem erros de "Permissão negada". Mas, tanto quanto posso ver, o arquivo tem todos os sinalizadores necessários configurados ( o=rwxdeve ser o suficiente, certo?). Por que isso não funciona?


Atualização 3

OK, consegui tudo funcionando no lado do Ubuntu, com as seguintes opções:

nls=iso8859-1,permissions,users,auto,exec

No entanto, quando tento acessar arquivos na partição do Windows, as configurações de segurança estão todas desarrumadas. Em todos os arquivos (dos poucos que examinei), uma nova conta chamada Account Unknown(long GUID)foi adicionada à lista de usuários e possui todos os direitos. Os direitos da maioria dos outros usuários são reduzidos, de modo que não tenho direitos para fazer as coisas que espero. Notavelmente "Todos" não parecem mais ter o direito de "Atravessar pasta / executar".

Isso pode ser solucionado, basta selecionar a partição e permitir que todos façam qualquer coisa na pasta raiz e, em seguida, diga para fazê-lo recursivamente, mas prefiro não, pois temo que demore alguns dias para concluir ...

Tomas Aschan
fonte
2
De montagem (8) : users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid). Portanto, adicione execsuas opções e acredito que o problema de permissão negada para execução deve ser resolvido.
benwh
Você já resolveu isso após a atualização 3? ... tentei em um ponto fazer um backup rsync do meu sistema linux em uma unidade NTFS extra que eu tinha, mas depois de muita pesquisa, cheguei à conclusão de que eu nunca poderia colocar toda a gama de informações do sistema de arquivos linux em um NTFS FS. (Bem, talvez eu pudesse chegar perto como você tem feito anteriormente, mas no final linux não mapeia muito bem para NTFS.)
vista elíptico
@Elipticalview: Isso foi há muito tempo e eu não tenho mais o mesmo computador. Você tentou a resposta aceita?
Tomas Aschan 14/09/16

Respostas:

25

Na coluna de opções, adicione permissionse auto(e provavelmente userou users)

nls=iso8859-1,permissions,users,auto
  • permissions: (Opção NTFS-3G) Defina permissões padrão nos arquivos criados e use o controle de acesso padrão.
  • auto: Será montado na inicialização e mount -a
  • user: Permitir que um usuário comum monte o sistema de arquivos
  • users: Permitir que todos os usuários montem e desmonte o sistema de arquivos

Em seguida, altere a propriedade do sistema de arquivos:

sudo chown -R thomas:thomas /media/data 

Minha linha /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

Permissões de montagem e lista

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

Alterar propriedade e listar novas permissões

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

Por padrão, o ntfs-3g monta a partição noexec, nosuid e nodev.

  • noexec: Não permita a execução direta de nenhum binário no sistema de arquivos montado.
  • nosuid: Não permita que os bits set-user-identifier ou set-group-identifier entrem em vigor.
  • nodev: Não interprete caracteres ou bloqueie dispositivos especiais no sistema de arquivos.

Para substituir isso e permitir a execução de arquivos, use exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

Agora temos

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works
Pantera
fonte
Hm ... depois de adicionar isso ao fstab (tornando a coluna de opções hte a seguinte nls=iso8859-1,permissions,users,umask=000:) e reiniciar agora posso mover e copiar arquivos sem mensagens de erro. Todos os arquivos ainda aparecem como pertencentes a root:root, mesmo depois sudo chown -R tomas:tomas /media/data. Por enquanto, não parece ser um problema, mas por curiosidade: por que isso?
Tomas Aschan
Eu acho que por causa de suaumask=000
Panther
Não, umask=000é equivalente a chmod 777- umask define todos os sinalizadores que você não deseja definir nos arquivos. Concordo que é contra-intuitivo, mas está tudo aqui: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Tomas Aschan
Atualizei minha pergunta com mais informações sobre o que tentei e os resultados.
Tomas Aschan
1
Hum ... Vou ter que desmarcar isso por enquanto: ao que parece, isso atrapalhou as permissões ao ler os arquivos do Windows ...
Tomas Aschan
2

Use as opções uide gid(ou use o recurso de mapeamento do usuário) do mount.ntfs (8)

tumbleweed
fonte
1
Em outras palavras, adicione uid = whoever à linha fstab
psusi
uide gidfuncionam, mas agora as permissões são suportadas no NTFS-3G, e essas opções substituem a permissionsopção. Veja: b.andre.pagesperso-orange.fr/permissions.html
Panther
Atualizei minha pergunta com mais informações sobre o que tentei e os resultados que obtive. Por favor, dê uma olhada =)
Tomas Aschan
Você pode atualizar sua entrada fstab e remover uid, gid e umask, apenas nls=iso8859-1,permissions,usersdesmontar e montar novamente a partição.
Pantera
@ bodhi.zazen: Então voltamos à estaca zero. Os arquivos são exibidos como de propriedade root:roote o Eclipse reclama de permissões.
Tomas Aschan
2

O meu funciona agora perfeitamente quando altero a linha do fstab para

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0
e01
fonte
1

Que tal usar udisks? Ele pode facilmente montar partições NTFS com seu usuário como proprietário.

Exemplo (digite-o na linha de comando):

/usr/bin/udisks --mount /dev/sda3

Você também pode adicionar esse comando aos aplicativos de inicialização e ele será montado automaticamente quando você efetuar login.

Referência: AutomaticallyMountPartitions

amfcosta
fonte