Como o Lixeira pode funcionar e onde posso encontrar documentação, referência ou especificação oficial?

14

Ao tentar gerenciar a lixeira a partir de volumes NTFS montados, acabei lendo a referência do FreeDesktop.org .

Vasculhando e fazendo alguns testes, percebi que o Ubuntu / Gnome não segue as especificações 100%. Aqui está o porquê:

  • Para não-partições, ele sempre usa <driveroot>/.Trash-<uid>, Ele nunca usou <driveroot>/.Trash/<uid>, mesmo quando eu o criei com antecedência. Enquanto isso funciona, é irritante: se eu tiver 15 usuários, terminarei com 15 /.Trash-xxxpastas na minha unidade, enquanto a outra abordagem ainda forneceria uma única pasta (com 15 subpastas). Essa "poluição" em minhas unidades é muito desagradável. E as especificações dizem " Se um $topdir/.Trashdiretório estiver ausente, um $topdir/.Trash-$uiddiretório deve ser usado ". Bem, está presente, então por que nunca o usa?

  • lixo raiz não funciona, pelo menos não fora da caixa. Abra o nautilus como root e clique no lixo; isso dá um erro. Tente excluir qualquer arquivo, ele diz "não pode ser movido para a lixeira". Ok, eu sei que isso pode ser corrigido através da criação /root/.local/share. Mas as especificações dizem " Um diretório" lixo doméstico "deve ser criado automaticamente para qualquer novo usuário. Se este diretório é necessário para uma operação de lixeira, mas não existe, a implementação deve criá-lo automaticamente, sem avisos ou atrasos. ". Por que o erro então? Erro?

  • Por que devo alterar as /etc/fstabentradas dos volumes montados, adicionando opções como uid e guid, se os volumes já estiverem montados como RW para todos?

Estes são apenas alguns exemplos de desvio do padrão. Então, a questão é:

"Se o Ubuntu não adere 100% às especificações, COMO exatamente o lixo funciona? ONDE posso encontrar uma referência técnica para a implementação do lixo pelo Ubuntu?"

A propósito: se o Ubuntu seguir as especificações, diga-me o que estou fazendo de errado, especialmente com relação à questão /.Trash-<uid>vs./.Trash/<uid>

Obrigado!

EDITAR:

Mais algumas informações:

  • Se um determinado fs não tiver suporte para o sticky bit (VFAT, NTFS), provavelmente também não terá permissões (pelo menos o VFAT certamente não tem). Então, o que impede um usuário de limpar a /restauração de outros ./Trash-xxx? Se alguém puder ler / escrever seu próprio Lixo, poderá fazer o mesmo por toda a unidade, incluindo os lixos de outros, correto? Ou o Gnome tem algum tipo de proteção "extra" em ./Trash-xxxpastas no FS VFAT / NTFS?

  • Se o Linux puder "emular" as permissões de arquivo na montagem do NTFS, editando as /fstabopções uid e gid, ele também poderá "emular" a parte complicada? Eu realmente preferiria usar o /.Trash/xxxformato ...

  • Para o problema da raiz: para a partição /, posso usar o lixo como root e ele vai para /root/.local/share/Trash. Mas se eu clicar no Nautilus "Lixeira" (como root), recebo um erro. Não é? Portanto, os arquivos estão no lixo corretamente, mas não consigo acessá-lo. Tudo o que posso fazer é limpá-los manualmente (excluindo arquivos /root/.local/share/Trash), mas a restauração seria muito complicada (abrir arquivos de informações e mover manualmente, etc.).

  • Para não-partições (ou pelo menos para VFAT / NTFS), não posso nem usar o lixo como raiz: ele não cria uma ./Trash-0pasta, simplesmente diz "Não é possível lixeira, deseja excluir permanentemente?" Por quê?

  • Sobre o fstab: eu o uso para uma montagem permanente para minhas partições NTFS. Eu tenho vários e, se não forem "pré-montados", eles realmente confundem a área de trabalho e / ou o Nautilus. Eu prefiro tê-lo pré-montado, integrado no meu sistema de arquivos, em montagens como /data, /windows/xp, /windows/vistae assim por diante, e licença /mediae seu "montar / desmontar a" flexibilidade apenas para unidades verdadeiramente removíveis.

Portanto, se o Ubuntu / Gnome realmente segue as especificações, existe alguma maneira de corrigir os problemas de raiz e "emular" o bit persistente para (pelo menos) minhas partições fixas NTFS corrigidas?

MestreLion
fonte

Respostas:

3

O GNOME está usando o .Trash corretamente, tanto quanto eu entendo - se você procurar na fonte gio / glocalfile.c, verá que ele tenta usar o diretório .Trash, se existir. Observe, porém, que o diretório precisa ter as permissões corretas para que os usuários possam armazenar com segurança arquivos de lixo nele (e com segurança aqui, quero dizer que outros usuários não poderão recuperar arquivos de lixo do usuário). Para isso, o GNOME exige que o diretório .Trash tenha o bit fixo definido - consulte Diretórios da Lixeira, nota (1) na especificação de Lixeira do FreeDesktop.Org.

O principal problema com a abordagem acima é que a maioria das mídias removíveis em r / w que você encontra é FAT, que não oferece suporte ao bit adesivo, portanto, a única maneira de lidar com isso com segurança é usar um diretório de lixo por usuário.

Em relação à raiz do lixo - não consigo reproduzir o problema que você descreve, ele parece funcionar bem para mim.

Em relação ao / etc / fstab - não tenho certeza de qual é o problema: você deve mexer com o fstab, a menos que queira ter controle total sobre onde está montado um sistema de arquivos externo. A mídia normalmente removível é montada automaticamente após a detecção em / media para o usuário que está ativo no momento, mas fica inacessível para qualquer outro usuário. Se você deseja uma configuração diferente, deve mexer no arquivo de configuração. Mas não vejo como isso se relaciona com o lixo.

Guss
fonte
Obrigado! Você me deu MUITA informação interessante e surgiram algumas perguntas ... onde devo perguntar / responder seus comentários? Aqui neste comentário ou editando minha pergunta original?
MestreLion
Marquei a sua como resposta aceita ... mas, se possível, responda às novas questões mencionadas na minha pergunta (editada). E muito obrigado pela sua resposta!
MestreLion
1

Um pouco tarde, mas se alguém estiver interessado:, tive o mesmo problema, mas, por conselhos, baixei o Dolphin. Então eu corri o Dolphin sudo dolphinno terminal.

Agora, clicar com o botão direito do mouse na lata de lixo e selecionar Esvaziar lata de lixo limpa os arquivos em vez de produzir um erro.

Isso realmente não está relacionado à sua pergunta, mas é simplesmente uma solução alternativa.

SimplySimon
fonte