Come funziona il cestino e dove posso trovare documentazione ufficiale, riferimenti o specifiche per esso?


14

Quando ho provato a gestire il cestino dai volumi NTFS montati, ho finito per leggere il riferimento di FreeDesktop.org su di esso.

Frugando e facendo alcuni test, mi sono reso conto che Ubuntu / Gnome non segue le specifiche al 100%. Ecco perché:

  • Per i non / partizioni, usa sempre<driveroot>/.Trash-<uid> , non ha mai usato <driveroot>/.Trash/<uid>, anche quando l'ho creato in anticipo. Mentre funziona, è fastidioso: se ho 15 utenti, finisco con 15 /.Trash-xxxcartelle nel mio disco, mentre l'altro approccio darebbe comunque una singola cartella (con 15 sottocartelle). Questo "inquinamento" nei miei dischi è molto spiacevole. E le specifiche dicono " Se una $topdir/.Trashdirectory è assente, una $topdir/.Trash-$uiddirectory deve essere utilizzata ". Bene, è presente, quindi perché non lo usa mai?

  • il cestino di root non funziona, almeno non pronto all'uso. Apri nautilus come root e fai clic sul cestino; dà un errore. Prova a eliminare qualsiasi file, dice "impossibile spostarlo nel cestino". Ok, so che questo può essere risolto creando /root/.local/share. Ma le specifiche dicono " DOVREBBE essere creata automaticamente una directory" home trash "per ogni nuovo utente. Se questa directory è necessaria per un'operazione di eliminazione ma non esiste, l'implementazione DOVREBBE crearla automaticamente, senza alcun avviso o ritardo. ". Perché l'errore allora? Bug?

  • Perché devo modificare le /etc/fstabvoci per i volumi montati, aggiungendo opzioni come uid e guid, se i volumi sono già montati come RW per tutti?

Questi sono solo alcuni esempi di deviazione dallo standard. Quindi, la domanda è:

"Se Ubuntu non aderisce al 100% alle specifiche, COME funziona esattamente il cestino? DOVE posso trovare un riferimento tecnico per l'implementazione di Ubuntu del cestino?"

A proposito: se Ubuntu segue le specifiche, per favore dimmi cosa sto facendo di sbagliato, soprattutto per quanto riguarda il problema /.Trash-<uid>vs./.Trash/<uid>

Grazie!

MODIFICARE:

Qualche informazione in più:

  • Se un dato fs non ha supporto per il bit appiccicoso (VFAT, NTFS), probabilmente non ha neanche i permessi (almeno VFAT sicuramente no). Quindi cosa impedisce a un utente di eliminare il /ripristino di altri utenti ./Trash-xxx? Se si può leggere / scrivere il proprio Cestino, si può fare lo stesso per l'intero disco, compresi i rifiuti dell'altro, giusto? O Gnome ha una sorta di protezione "extra" su ./Trash-xxxcartelle su fs VFAT / NTFS?

  • Se Linux può "emulare" i permessi dei file sul montaggio NTFS modificando le /fstabopzioni uid e gid, può anche "emulare" il bit appiccicoso? Preferirei davvero usare il /.Trash/xxxformato ...

  • Per il problema di root: per la partizione /, posso usare cestino come root, e va a /root/.local/share/Trash. Ma se clicco su "Cestino" di Nautilus (come root), ricevo un errore. No? Quindi i file vengono correttamente eliminati, ma non riesco ad accedervi. Tutto quello che posso fare è "eliminarli" manualmente (eliminando i file /root/.local/share/Trash), ma il ripristino sarebbe molto complicato (apertura dei file di informazioni e spostamento manuale, ecc.).

  • Per non-/ partizioni (o almeno per VFAT / NTFS), non posso nemmeno usare il cestino come root: non crea una ./Trash-0cartella, dice semplicemente "Non riesci a eliminare il cestino, vuoi eliminarlo definitivamente?" Perché?

  • Informazioni su fstab: lo uso per un mount permanente per le mie partizioni NTFS. Ne ho diversi e, se non "pre-montati", ingombrano davvero il desktop e / o Nautilus. Avrei preferito che pre-montata, integrato nel mio sistema di file, in supporti come /data, /windows/xp, /windows/vistae così via, e il congedo /mediae la sua flessibilità "montare / smontare" solo per le unità rimovibili veramente.

Quindi, se Ubuntu / Gnome segue veramente le specifiche, c'è un modo per risolvere i problemi di root e "emulare" il bit appiccicoso per (almeno) le mie partizioni fisse NTFS fstab?

Risposte:


3

GNOME sta usando .Trash correttamente per quanto ho capito - se guardi nella fonte gio / glocalfile.c vedresti che tenta di usare la directory .Trash se esiste. Si noti tuttavia che la directory deve disporre delle autorizzazioni corrette affinché gli utenti possano archiviare in modo sicuro i file cestino (e in questo caso, intendo che altri utenti non saranno in grado di recuperare i file cestino dell'utente). Per questo GNOME richiede che la directory .Trash abbia il bit appiccicoso impostato su di essa - vedi Directory Trash, nota (1) nella specifica Trash di FreeDesktop.Org.

Il problema principale con l'approccio sopra è che la maggior parte dei supporti rimovibili r / w che trovi è FAT, che non supporta il bit appiccicoso, quindi l'unico modo per gestirlo in modo sicuro è utilizzare una directory cestino per utente.

Per quanto riguarda il Cestino di root - Non riesco a riprodurre il problema che descrivi, sembra funzionare bene per me.

Riguardo a / etc / fstab - Non sono sicuro di quale sia il problema: dovresti avere a che fare con fstab, a meno che tu non voglia avere il pieno controllo su dove è montato un file system esterno. Normalmente i supporti rimovibili vengono montati automaticamente al rilevamento in / media per l'utente che è attualmente attivo, ma sono quindi inaccessibili a qualsiasi altro utente. Se si desidera un'installazione diversa, è necessario pasticciare con il file di configurazione. Non vedo come ciò si riferisca alla spazzatura, comunque.


Grazie! Mi hai dato MOLTE informazioni interessanti e sono sorte alcune domande ... dove dovrei chiedere / rispondere ai tuoi commenti? Qui in questo commento o modificando la mia domanda originale?
MestreLion,

Ho contrassegnato la tua come risposta accettata ... ma, se possibile, per favore rispondi alle nuove questioni menzionate nella mia domanda (modificata). E grazie mille per la tua risposta!
MestreLion,

1

Un po 'tardi, ma se qualcuno è interessato: ho avuto lo stesso problema ma, su consiglio, ho scaricato Dolphin. Ho quindi eseguito Dolphin sudo dolphinnel terminal.

Ora, facendo clic con il tasto destro sul cestino e selezionando Svuota cestino si cancellano i file anziché produrre un errore.

Questo non riguarda in realtà la tua domanda, ma è semplicemente una soluzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.