GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo funciona el bote de basura y dónde puedo encontrar documentación oficial, referencia o especificaciones para ello?

Al tratar de administrar la papelera de los volúmenes NTFS montados, terminé leyendo la referencia de FreeDesktop.org.

Husmeando y haciendo algunas pruebas, me di cuenta de que Ubuntu/Gnome no sigue las especificaciones al 100%. He aquí por qué:

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

  • basura raíz no trabajo, al menos no fuera de la caja. Abra nautilus como root y haga clic en la papelera; da error. Intente eliminar cualquier archivo, dice "no se puede mover a la papelera". Ok, sé que esto se puede arreglar creando /root/.local/share . Pero las especificaciones dicen “Un directorio de “basura de inicio” DEBE crearse automáticamente para cualquier usuario nuevo. Si este directorio es necesario para una operación de eliminación 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 /etc/fstab? entradas para 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 las especificaciones, CÓMO exactamente la basura funciona? ¿DÓNDE puedo encontrar una referencia técnica para la implementación de la papelera en Ubuntu?”

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

¡Gracias!

EDITAR:

Algo más de información:

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

  • Si Linux puede "emular" los permisos de archivo en el montaje NTFS editando /fstab Opciones de uid y gid, ¿puede también "emular" el sticky bit? Realmente preferiría usar /.Trash/xxx formato…

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

  • Para particiones no-/ (o al menos para VFAT/NTFS), ni siquiera puedo usar papelera como root:no crea un ./Trash-0 carpeta, simplemente dice "No se puede tirar a la basura, ¿quieres eliminarla de forma permanente?" ¿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. Preferiría tenerlo premontado, integrado en mi sistema de archivos, en montajes como /data , /windows/xp , /windows/vista , y así sucesivamente, y deje /media y su flexibilidad de "montar/desmontar" solo para unidades realmente extraíbles.

Relacionado:¿Cómo elegir de qué manera habilitar/deshabilitar, iniciar/detener o verificar el estado de un servicio?

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

Respuesta aceptada:

GNOME está usando .Trash correctamente, según tengo entendido; si observa 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 archivos basura de forma segura en él (y aquí de forma segura, quiero decir que otros usuarios no podrán recuperar los archivos basura del usuario). Para esto, GNOME requiere que el directorio .Trash tenga el sticky bit configurado; consulte Directorios de basura, nota (1) en la especificación de basura de FreeDesktop.Org.

El principal problema con el enfoque anterior es que la mayoría de los medios extraíbles r/w que encuentra son FAT, que no admiten 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 Root Trash:no puedo reproducir el problema que describe, parece funcionar bien para mí.

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 se monta un sistema de archivos externo. Normalmente, los medios extraíbles se montan automáticamente al ser detectados en /media 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.


Ubuntu
  1. ¿Cómo funciona la punta adhesiva?

  2. ¿Cómo funciona el proceso de actualización de Ubuntu?

  3. ¿Qué hace `–frontend` en `do-release-upgrade` y dónde puedo encontrar la lista de posibles valores?

  4. ¿Dónde puedo encontrar e instalar las dependencias para pygame?

  5. ¿Cómo funciona el comando ps?

¿Qué es Hadoop Mapreduce y cómo funciona?

¿Qué es el DNS inverso y cómo funciona?

¿Qué es VDI y cómo funciona?

¿El propósito de .bashrc y cómo funciona?

¿Cómo usar la interfaz gráfica de usuario para buscar archivos en Gnome?

¿Cómo encontrar la dirección IP de un dispositivo en una red?