¿Cómo funciona la Papelera y dónde puedo encontrar documentación oficial, referencias o especificaciones para ella?

14

Al tratar de administrar el bote de basura de los volúmenes NTFS montados, terminé leyendo la referencia de FreeDesktop.org sobre él.

Hojeando y haciendo algunas pruebas, me di cuenta de que Ubuntu / Gnome no sigue las especificaciones al 100%. Este es el por qué:

  • Para no particiones / particiones, siempre usa <driveroot>/.Trash-<uid>, nunca usó <driveroot>/.Trash/<uid>, incluso cuando lo creé de antemano. Si bien esto funciona, es molesto: si tengo 15 usuarios, termino con 15 /.Trash-xxxcarpetas en mi disco, mientras que el otro enfoque todavía daría una sola carpeta (con 15 subcarpetas). Esa "contaminación" en mis discos es muy desagradable. Y las especificaciones dicen " Si un $topdir/.Trashdirectorio está ausente, $topdir/.Trash-$uidse debe usar un directorio ". Bueno, está presente, entonces ¿por qué nunca lo usa?

  • la basura raíz no funciona, al menos no fuera de la caja. Abra nautilus como root y haga clic en basura; da un error Intenta eliminar cualquier archivo, dice "no se puede mover a la papelera". Ok, sé que esto se puede solucionar creando /root/.local/share. Pero las especificaciones dicen " Un directorio de" basura doméstica "DEBE crearse automáticamente para cualquier usuario nuevo. Si este directorio es necesario para una operación de eliminación de basura pero no existe, la implementación DEBERÍA crearlo automáticamente, sin advertencias ni demoras ". ¿Por qué el error entonces? ¿Error?

  • ¿Por qué debo cambiar las /etc/fstabentradas para los volúmenes montados, agregando opciones como uid y guid, si los volúmenes ya están montados como RW para todos?

Estos son solo algunos ejemplos de desviación del estándar. Entonces, la pregunta es:

"Si Ubuntu no se adhiere al 100% a la especificación, ¿CÓMO funciona exactamente la basura? ¿DÓNDE puedo encontrar una referencia técnica para la implementación de la basura en Ubuntu?"

Por cierto: si Ubuntu sigue las especificaciones, dígame qué estoy haciendo mal, especialmente con respecto al problema /.Trash-<uid>vs./.Trash/<uid>

¡Gracias!

EDITAR:

Alguna información más:

  • Si un determinado fs no tiene soporte para el bit fijo (VFAT, NTFS), probablemente tampoco tenga permisos (al menos VFAT seguramente no). Entonces, ¿qué impide que un usuario purgue la /restauración de otros usuarios ./Trash-xxx? Si uno puede leer / escribir su propia Papelera, uno puede hacer lo mismo para toda la unidad, incluidas las de otros, ¿correcto? ¿O Gnome tiene algún tipo de protección "extra" en las ./Trash-xxxcarpetas en VFAT / NTFS fs?

  • Si Linux puede "emular" los permisos de archivo en el montaje NTFS editando las /fstabopciones uid y gid, ¿también puede "emular" el bit adhesivo? Realmente preferiría usar el /.Trash/xxxformato ...

  • Para el problema raíz: para la partición /, puedo usar la basura como raíz, y va a /root/.local/share/Trash. Pero si hago clic en Nautilus "Trash" (como root), aparece un error. Tu no? Por lo tanto, los archivos están correctamente en la papelera, pero no puedo acceder a ellos. Todo lo que puedo hacer es "purgarlos" manualmente (eliminando archivos /root/.local/share/Trash), pero la restauración sería muy complicada (abrir archivos de información y moverlos manualmente, etc.).

  • Para las particiones no / / (o al menos para VFAT / NTFS), ni siquiera puedo usar la papelera como root: no crea una ./Trash-0carpeta, simplemente dice "¿No se puede papelera, quiere eliminar permanentemente?" ¿Por qué?

  • Acerca de fstab: lo uso para un montaje permanente para mis particiones NTFS. Tengo varios, y si no están "premontados", realmente abarrotan el escritorio y / o Nautilus. Yo prefiero tener que pre-montada, integrado en mi sistema de archivos, en los montes, como /data, /windows/xp, /windows/vista, y así sucesivamente, y la licencia /mediay su flexibilidad "montar / desmontar" sólo para unidades extraíbles verdad.

Entonces, si Ubuntu / Gnome realmente sigue las especificaciones, ¿hay alguna forma de solucionar los problemas de raíz y "emular" el bit pegajoso para (al menos) mis particiones fijas NTFS fstab'ed?

MestreLion
fuente

Respuestas:

3

GNOME está utilizando .Trash correctamente, por lo que yo entiendo, si mira en la fuente gio / glocalfile.c, verá que intenta usar el directorio .Trash si existe. Sin embargo, tenga en cuenta que el directorio debe tener los permisos correctos para que los usuarios puedan almacenar de forma segura los archivos basura (y de forma segura aquí, quiero decir que otros usuarios no podrán recuperar los archivos basura del usuario). Para esto, GNOME requiere que el directorio .Trash debe tener el bit fijo establecido en él - vea Directorios de Papelera, nota (1) en la especificación de Papelera de FreeDesktop.Org.

El principal problema con el enfoque anterior es que la mayoría de los medios extraíbles de r / w que encuentra es FAT, que no admite el bit adhesivo, por lo que la única forma de manejar esto de manera segura es usar un directorio de basura por usuario.

Con respecto a la Papelera raíz: no puedo reproducir el problema que describe, parece que me funciona bien.

Con respecto a / etc / fstab: no estoy seguro de cuál es el problema allí: debería tener que jugar con fstab, a menos que desee un control total sobre dónde está montado un sistema de archivos externo. Normalmente, los medios extraíbles se montan automáticamente tras la detección en / medios para el usuario que está actualmente activo, pero luego es inaccesible para cualquier otro usuario. Si desea una configuración diferente, debe meterse con el archivo de configuración. Sin embargo, no veo cómo se relaciona eso con la basura.

Guss
fuente
¡Gracias! Me diste MUCHA información interesante, y surgieron algunas preguntas ... ¿dónde debo preguntar / responder tus comentarios? ¿Aquí en este comentario o editando mi pregunta original?
MestreLion
He marcado la suya como respuesta aceptada ... pero, si es posible, responda a los nuevos problemas que he mencionado en mi pregunta (editada). Y muchas gracias por tu respuesta!
MestreLion
1

Un poco tarde esto, pero si alguien está interesado: tuve el mismo problema pero, por consejo, descargué Dolphin. Luego pasé a Dolphin por la sudo dolphinterminal.

Ahora, al hacer clic derecho en Wastebin y seleccionar Empty Wastebin se borran los archivos en lugar de producir un error.

Esto realmente no se relaciona con su pregunta, sino que es simplemente una solución.

SimplySimon
fuente