web-dev-qa-db-fra.com

Comment la corbeille peut-elle fonctionner et où puis-je trouver la documentation officielle, la référence ou les spécifications correspondantes?

En essayant de gérer la corbeille à partir de volumes NTFS montés, j'ai fini par lire référence de FreeDesktop.org dessus.

En fouillant et en faisant quelques tests, j'ai réalisé que Ubuntu/Gnome ne suivait pas les spécifications à 100%. Voici pourquoi:

  • Pour les non-partitions, il always utilise <driveroot>/.Trash-<uid>, It never a utilisé <driveroot>/.Trash/<uid>, même si je l'ai créé à l'avance. Bien que cela fonctionne, c’est ennuyeux: si j’ai 15 utilisateurs, je me retrouve avec 15 dossiers /.Trash-xxx dans mon lecteur, alors que l’autre approche donnerait toujours un seul dossier (avec 15 sous-dossiers). Cette "pollution" dans mes lecteurs est très désagréable. Et specs disent " Si un répertoire $topdir/.Trash est absent, un répertoire $topdir/.Trash-$uid doit être utilisé ". Eh bien, il est présent, alors pourquoi ne l’utilise-t-il jamais?

  • la corbeille à la racine ne fonctionne pas not , du moins pas prêt à l'emploi. Ouvrez Nautilus en tant que racine et cliquez sur Corbeille. cela donne une erreur. Essayez de supprimer n'importe quel fichier, il dit "il ne peut pas être déplacé dans la corbeille". Ok, je sais que cela peut être corrigé en créant /root/.local/share. Mais specs dit " Un répertoire“ corbeille d'origine ”DEVRAIT être créé automatiquement pour tout nouvel utilisateur. Si ce répertoire est nécessaire pour une opération de suppression mais qu'il n'existe pas, l'implémentation DEVRAIT le créer automatiquement, sans aucun avertissement. ou retards. ". Pourquoi l'erreur alors? Punaise?

  • Pourquoi dois-je modifier les entrées /etc/fstab pour les volumes montés, en ajoutant des options telles que uid et guid, si les volumes sont déjà montés en tant que RW pour tout le monde?

Ce ne sont là que quelques exemples d’écarts par rapport à la norme. Donc, la question est:

"Si Ubuntu n'adhère pas à 100% à la spécification, COMMENT exactement la corbeille fonctionne-t-elle? O puis-je trouver une référence technique pour la mise en oeuvre par Ubuntu de la corbeille ? "

À propos: si Ubuntu respecte les spécifications, dites-moi ce que je fais de mal, en particulier en ce qui concerne le problème /.Trash-<uid> vs /.Trash/<uid>.

Merci!

EDIT:

Quelques informations supplémentaires:

  • Si une fs donnée ne supporte pas le sticky bit (VFAT, NTFS), elle n'a probablement pas non plus d'autorisations (au moins VFAT n'en a sûrement pas). Alors, qu'est-ce qui empêche un utilisateur de purger / en restaurant le ./Trash-xxx des autres utilisateurs? Si on peut lire/écrire sa propre corbeille, on peut faire la même chose pour tout le lecteur, y compris les corbeilles des autres, n'est-ce pas? Ou bien Gnome dispose-t-il d'une sorte de protection "supplémentaire" sur les dossiers ./Trash-xxx des fs VFAT/NTFS?

  • Si Linux peut "émuler" les autorisations de fichiers sur le montage NTFS en modifiant les options /fstab uid et gid, peut-il également "émuler" le bit collant? Je préférerais vraiment utiliser le format /.Trash/xxx ...

  • Pour le problème racine: pour la partition /, je peux utiliser la corbeille en tant que root, et cela passe à /root/.local/share/Trash. Mais si je clique sur Nautilus "Trash" (en tant que root), j'obtiens une erreur. N'est-ce pas? Les fichiers sont donc correctement supprimés, mais je ne peux pas y accéder. Tout ce que je peux faire est de les "purger" manuellement (en supprimant des fichiers sur /root/.local/share/Trash), mais la restauration serait très délicate (ouvrir des fichiers d’information et les déplacer manuellement, etc.).

  • Pour les non-partitions (ou du moins pour VFAT/NTFS), je ne peux même pas utiliser la corbeille en tant que root: il ne crée pas de dossier ./Trash-0, il indique simplement "Ne peut pas supprimer, vous voulez supprimer définitivement?" Pourquoi?

  • À propos de fstab: je l’utilise pour un montage permanent de mes partitions NTFS. J'en ai plusieurs, et s'ils ne sont pas "pré-montés", ils encombrent vraiment le bureau et/ou Nautilus. Je préférerais l'avoir pré-monté, intégré dans mon système de fichiers, dans des montages tels que /data, /windows/xp, /windows/Vista, etc., et laisser /media et sa flexibilité de montage/démontage uniquement pour les disques véritablement amovibles.

Donc, si Ubuntu/Gnome respecte réellement les spécifications, existe-t-il un moyen de résoudre les problèmes à la racine et d’émuler le bit collant pour (au moins) mes partitions fixes NTFS fstab'ed?

14
MestreLion

Pour autant que je sache, GNOME utilise correctement .Trash. Si vous regardez dans gio/glocalfile.c source, vous constaterez qu’il tente d’utiliser le répertoire .Trash s’il existe. Notez cependant que le répertoire doit disposer des autorisations appropriées pour que les utilisateurs puissent y stocker en toute sécurité les fichiers de la corbeille (et en toute sécurité ici, je veux dire que les autres utilisateurs ne pourront pas récupérer les fichiers de la corbeille de l'utilisateur). Pour cela, GNOME exige que le répertoire .Trash contienne le sticky bit - voir Répertoires de corbeille, note (1) dans la spécification de la corbeille de FreeDesktop.Org.

Le problème principal de l’approche ci-dessus est que la plupart des supports amovibles que vous trouvez sont FAT, qui ne prend pas en charge le sticky bit. Le seul moyen de gérer cela en toute sécurité est d’utiliser un répertoire de corbeille par utilisateur.

En ce qui concerne la corbeille racine - Je ne peux pas reproduire le problème que vous décrivez, cela semble bien fonctionner pour moi.

En ce qui concerne/etc/fstab - je ne sais pas quel est le problème: vous devriez avoir besoin de vous ficher avec fstab, à moins que vous ne souhaitiez un contrôle total sur l'emplacement de montage du système de fichiers externe. Normalement, le support amovible est monté automatiquement lors de la détection dans/media pour l'utilisateur actuellement actif, mais il est ensuite inaccessible à tout autre utilisateur. Si vous voulez une configuration différente, vous devriez jouer avec le fichier de configuration. Je ne vois pas comment cela se rapporte aux déchets, cependant.

3
Guss

Un peu tard, mais si cela vous intéresse, j’ai eu le même problème mais, sur conseil, j’ai téléchargé Dolphin. J'ai ensuite couru Dolphin à travers Sudo dolphin in terminal.

Maintenant, un clic droit sur la corbeille et sélectionnez Vider la corbeille efface les fichiers plutôt que de générer une erreur.

Cela ne concerne pas vraiment votre question, mais est simplement un moyen de contourner le problème.

1
SimplySimon