Como a lixeira pode funcionar e onde posso encontrar documentação oficial, referência ou especificação para ela?

14

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

Percorrendo 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, sempre usa <driveroot>/.Trash-<uid> , nunca usou <driveroot>/.Trash/<uid> , mesmo quando eu criei com antecedência. Enquanto isso funciona, é chato: se eu tiver 15 usuários, acabo com 15% de/.Trash-xxx pastas na minha unidade, enquanto a outra abordagem ainda daria uma única pasta (com 15 subpastas). Essa "poluição" nos meus discos é muito desagradável. E as especificações dizem " Se um diretório $topdir/.Trash estiver ausente, um diretório $topdir/.Trash-$uid deve ser usado ". Bem, está presente, então por que nunca o usa?

  • A lixeira raiz
  • não funciona não , pelo menos não fora da caixa. Abra o nautilus como root e clique no lixo; dá um erro. Tente apagar qualquer arquivo, ele diz "ele não pode ir para o lixo". Ok, eu sei que isso pode ser corrigido criando /root/.local/share . Mas specs diz " Um diretório" home trash "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 quaisquer avisos ou atrasos. / em> ". Por que o erro então? Bug?

  • Por que devo alterar /etc/fstab entradas para 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 aderir a 100% da especificação, COMO exatamente o lixo funciona? ONDE posso encontrar uma referência técnica para a implementação do lixo no Ubuntu?"

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

Obrigado!

EDITAR:

Mais algumas informações:

  • Se um dado fs não tem suporte para o bit sticky (VFAT, NTFS), ele provavelmente não tem permissões (pelo menos o VFAT certamente não tem). Então, o que impede que um usuário purgar / restaurando outros usuários ./Trash-xxx ? Se alguém pode ler / escrever sua própria Lixeira, pode-se fazer o mesmo por toda a viagem, incluindo as lixeiras dos outros, correto? Ou o Gnome tem algum tipo de proteção "extra" nas pastas ./Trash-xxx em fs de VFAT / NTFS?

  • Se o Linux puder "emular" as permissões de arquivo na montagem do NTFS editando as opções /fstab uid e gid, ele também poderá "emular" o bit adesivo? Eu realmente prefiro usar /.Trash/xxx format ...

  • Para o problema raiz: para a partição /, posso usar a lixeira como raiz e ela vai para /root/.local/share/Trash . Mas se eu clicar no Nautilus "Trash" (como root), recebo um erro. Você não? Portanto, os arquivos são lixados corretamente, mas não consigo acessá-los. Tudo o que posso fazer é "limpar" manualmente (excluindo arquivos em /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 consigo nem usar o lixo como root: ele não cria uma pasta ./Trash-0 , ele simplesmente diz "Não é possível lixeira, deseja permanentemente excluir?" 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 "pré-montado" eles realmente atravancam o desktop e / ou Nautilus. Eu prefiro tê-lo pré-montado, integrado no meu sistema de arquivos, em montagens como /data , /windows/xp , /windows/vista e assim por diante, e deixar /media e sua flexibilidade de "montar / desmontar" apenas para unidades verdadeiramente removíveis.

Então, se o Ubuntu / Gnome realmente segue a especificação, existe alguma maneira de corrigir os problemas da raiz e "emular" o bit pegajoso para (pelo menos) as minhas partições fixas NTFS fstab'ed?

    
por MestreLion 20.02.2011 / 00:42

2 respostas

3

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

O principal problema com a abordagem acima, é que a maioria das mídias removíveis que você encontra é FAT, que não suporta o sticky bit, então a única maneira de lidar com isso com segurança é usar um diretório de lixo por usuário. / p>

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

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

    
por Guss 20.02.2011 / 01:23
1

Um pouco atrasado, mas se alguém estiver interessado: , Eu tive o mesmo problema, mas, seguindo o conselho, baixei o Dolphin. Eu então executei o Dolphin através do sudo dolphin no terminal.

Agora, clicando com o botão direito no Wastebin e selecionando Esvaziar Wastebin , apaga os arquivos em vez de produzir um erro.

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

    
por SimplySimon 19.06.2013 / 10:36