As I understand this is because they don't have write access which is what I want to change.
Não, esta mensagem de erro não significa que eles não tenham acesso de gravação. Se eles não tiverem acesso de gravação, você não poderá clicar com o botão direito e "Mover para Lixeira" ou "Excluir" um arquivo, ou usar o botão do teclado Del . Mas como você está recebendo esse erro, isso significa que os usuários têm acesso.
Após duas horas de pesquisa e a reprodução deste erro no meu computador, eis o que descobri.
Explicação
As permissões (proprietário, proprietário do grupo, permissões de arquivo e diretório) são definidas no momento da montagem. Apenas o proprietário pode mover arquivos para o lixo. Por quê? Porque quando você move arquivos para o lixo em uma partição NTFS, uma pasta chamada .Trash-<uid>
é criada no diretório raiz da partição, onde <uid>
é o uid
do usuário, e o proprietário da pasta será o usuário que está tentando excluir. Por exemplo, se o nome de usuário for daniels
e uid
for 1000, será criada uma pasta chamada .Trash-1000
e daniels
será o proprietário.
Portanto, se daniels
for o proprietário da partição, ele poderá fazer isso normalmente. No entanto, se outro usuário (digamos chamado alaa
e uid=1001
) tentar excluir algo, o sistema tentará criar uma pasta .Trash-1001
, com o proprietário alaa
. Mas, no NTFS, as permissões são definidas no momento da montagem (exemplo: foi definido como daniels
) e o "proprietário" de qualquer arquivo não pode ser alterado e, portanto, o sistema não cria a pasta .Trash-1001
, dando-lhe o prompt Cannot move file to trash, do you want to delete immediately?
.
Para testar isso, tente criar manualmente uma pasta no diretório raiz da partição chamada .Trash-1001
(o proprietário será definido como o proprietário da partição). Você verá que pressionar Del no teclado em qualquer arquivo / pasta não fará nada, e a opção ao clicar com o botão direito do mouse em um item será alterada de Move to Trash
para Delete
. Não consigo explicar por que isso muda para Delete
, mas isso é apenas para identificar que o problema está na pasta .Trash-1001
.
Na minha opinião, classifico isso como um bug.
Solução (suave de ...)
Remova todas as opções uid=
, gid=
, dmask=
, fmask=
e umask=
do seu comando mount e adicione permissions
, então acho que sua linha deve ser assim:
nosuid,nodev,nofail,x-gvfs-show,nobootwait,permissions
Eu tentei isso no meu computador e funciona; ambos os usuários podem se mover para o lixo ao usar o disco rígido NTFS.
Aqui está uma demonstração:
alaa@aa-lu:~$ sudo mount -o rw,permissions /dev/sdc2 /media/he Using default user mapping alaa@aa-lu:~$ ls /media/he -la total 104 drwxrwxrwx 1 root root 8192 Sep 24 21:20 . drwxr-xr-x 6 root root 4096 Sep 24 21:18 .. drwxrwxrwx 1 root root 4096 Dec 15 2012 Files on my hard disk drwxrwxrwx 1 root root 4096 Jul 9 12:18 $RECYCLE.BIN drwx------ 1 root root 0 Jan 22 2012 System Volume Information
Então eu fui e deletei algo usando meu nome de usuário alaa
, depois entrei como outro usuário aaa
e deletei algo também. Ambos podem excluir, e é assim que a partição NTFS se parece:
alaa@aa-lu:~$ ls /media/he -la total 104 drwxrwxrwx 1 root root 8192 Sep 24 21:20 . drwxr-xr-x 6 root root 4096 Sep 24 21:18 .. drwxrwxrwx 1 root root 4096 Dec 15 2012 Files on my hard disk drwxrwxrwx 1 root root 4096 Jul 9 12:18 $RECYCLE.BIN drwx------ 1 root root 0 Jan 22 2012 System Volume Information drwx------ 1 alaa alaa 0 Sep 24 21:20 .Trash-1000 drwx------ 1 aaa aaa 0 Sep 24 21:19 .Trash-1002
Eu não sei como isso é feito, mas acontece.
Eu encontrei esta página: Propriedade e permissões | Tuxera que explica isso, bem como uma postagem no fórum ( link ) que tem alguma informação útil. No entanto, infelizmente ainda não os li, por isso não posso explicar exactamente o que é que esta opção permissions
faz.
Eu disse "Solução (tipo de ...)" no título desta seção porque agora você não está controlando quem é o proprietário da partição, nem o proprietário do grupo, nem as permissões de leitura / gravação. Mas, ao montar com a opção permissions
, você pode ver um "Usando mapeamento de usuário padrão", então, até onde eu entendi, há uma coisa de "mapeamento de usuário" que pode ser criada para ser usada com permissions
e mapeamento terá o proprietário / permissões que queremos definir. Eu também não tentei montar usando permissions
juntamente com uid=
e todas as outras opções (o link Tuxera que eu postei deve explicar isso), mas isso também pode funcionar, controlando proprietário / permissões e ao mesmo tempo dar acesso para o lixo.
Quando eu leio esses links, atualizo minha resposta.