Bagaimana cara Tempat Sampah bekerja, dan di mana saya dapat menemukan dokumentasi, referensi, atau spesifikasi resmi untuknya?

14

Ketika mencoba mengelola tempat sampah dari volume NTFS yang dipasang, saya akhirnya membaca referensi FreeDesktop.org di situ.

Sambil berkeliling dan melakukan beberapa tes, saya menyadari Ubuntu / Gnome tidak mengikuti spesifikasi 100%. Inilah alasannya:

  • Untuk non-/ partisi, selalu menggunakan <driveroot>/.Trash-<uid>, Itu tidak pernah digunakan <driveroot>/.Trash/<uid>, bahkan ketika saya membuatnya di muka. Meskipun ini berfungsi, itu menjengkelkan: jika saya memiliki 15 pengguna, saya berakhir dengan 15 /.Trash-xxxfolder di drive saya, sementara pendekatan lain masih akan memberikan satu folder (dengan 15 sub-folder). "Polusi" di drive saya sangat tidak menyenangkan. Dan spesifikasi mengatakan " Jika $topdir/.Trashdirektori tidak ada, $topdir/.Trash-$uiddirektori harus digunakan ". Yah, itu ada, jadi mengapa tidak pernah menggunakannya?

  • root trash tidak berfungsi, setidaknya tidak keluar dari kotak. Buka nautilus sebagai root dan klik pada tempat sampah; itu memberikan kesalahan. Cobalah untuk menghapus file apa saja, ia mengatakan "tidak bisa pindah ke tempat sampah". Oke, saya tahu ini bisa diperbaiki dengan membuat /root/.local/share. Tetapi spesifikasi mengatakan " Direktori" sampah rumah "HARUS otomatis dibuat untuk setiap pengguna baru. Jika direktori ini diperlukan untuk operasi trashing tetapi tidak ada, implementasi HARUS otomatis membuatnya, tanpa peringatan atau penundaan. ". Mengapa kesalahan itu? Bug?

  • Mengapa saya harus mengubah /etc/fstabentri untuk volume yang dipasang, menambahkan opsi seperti uid dan panduan, jika volume sudah dipasang sebagai RW untuk semua orang?

Ini hanya beberapa contoh penyimpangan dari standar. Jadi, pertanyaannya adalah:

"Jika Ubuntu tidak mematuhi 100% dengan spesifikasi, CARA persis apakah pekerjaan sampah? MANA saya dapat menemukan referensi teknis untuk implementasi Ubuntu dari sampah?"

Ngomong-ngomong: jika Ubuntu benar-benar mengikuti spesifikasi, tolong beritahu saya apa yang saya lakukan salah, terutama mengenai masalah /.Trash-<uid>vs./.Trash/<uid>

Terima kasih!

EDIT:

Beberapa info lebih lanjut:

  • Jika fs yang diberikan tidak memiliki dukungan untuk bit lengket (VFAT, NTFS), itu mungkin tidak memiliki izin juga (setidaknya VFAT pasti tidak). Jadi apa yang mencegah satu pengguna dari membersihkan /mengembalikan pengguna lain ./Trash-xxx? Jika seseorang dapat membaca / menulis Sampahnya sendiri, seseorang dapat melakukan hal yang sama untuk seluruh drive, termasuk sampah orang lain, benar? Atau apakah Gnome memiliki semacam perlindungan "ekstra" pada ./Trash-xxxfolder di VFAT / NTFS fs?

  • Jika Linux dapat "meniru" izin file pada pemasangan NTFS dengan mengedit /fstabopsi uid dan gid, dapatkah ia juga "meniru" bit yang lengket? Saya benar-benar lebih suka menggunakan /.Trash/xxxformat ...

  • Untuk masalah root: untuk partisi /, saya bisa menggunakan trash sebagai root, dan pergi ke /root/.local/share/Trash. Tetapi jika saya mengklik Nautilus "Trash" (sebagai root), saya mendapatkan kesalahan. Bukan? Jadi file dibuang dengan benar, tetapi saya tidak dapat mengaksesnya. Yang bisa saya lakukan adalah secara manual "membersihkan" mereka (dengan menghapus file pada /root/.local/share/Trash), tetapi mengembalikan akan sangat sulit (membuka file info dan memindahkan secara manual, dll).

  • Untuk non-/ partisi (atau setidaknya untuk VFAT / NTFS), saya bahkan tidak bisa menggunakan trash sebagai root: ia tidak membuat ./Trash-0folder, ia hanya mengatakan "Tidak dapat sampah, ingin menghapus secara permanen?" Mengapa?

  • Tentang fstab: saya menggunakannya untuk mount permanen untuk partisi NTFS saya. Saya punya beberapa, dan jika tidak "pra-mount" mereka benar-benar mengacaukan desktop dan / atau Nautilus. Saya lebih suka memiliki itu pra-mount, terintegrasi dalam sistem file saya, di gunung seperti /data, /windows/xp, /windows/vista, dan sebagainya, dan cuti /mediadan "mount / unmount" fleksibilitas hanya untuk drive benar-benar dilepas.

Jadi, jika Ubuntu / Gnome benar-benar mengikuti spesifikasi, apakah ada cara untuk memperbaiki masalah root dan untuk "meniru" bit lengket untuk (setidaknya) partisi tetap NTFS fstab'ed saya?

MestreLion
sumber

Jawaban:

3

GNOME menggunakan .Trash dengan benar sejauh yang saya mengerti - jika Anda melihat dalam sumber gio / glocalfile.c Anda akan melihat bahwa ia berusaha untuk menggunakan direktori .Trash jika ada. Harap perhatikan bahwa direktori tersebut harus memiliki izin yang benar bagi pengguna untuk dapat menyimpan file sampah dengan aman di dalamnya (dan dengan aman di sini, maksud saya bahwa pengguna lain tidak akan dapat memulihkan file sampah pengguna). Untuk GNOME ini mensyaratkan bahwa direktori .Trash harus memiliki bit sticky yang ditetapkan di atasnya - lihat Trash Directories, perhatikan (1) di spesifikasi Trash FreeDesktop.Org.

Masalah utama dengan pendekatan di atas, adalah bahwa sebagian besar media yang dapat dilepas r / w yang Anda temukan adalah FAT, yang tidak mendukung bit sticky sehingga satu-satunya cara untuk menangani ini dengan aman adalah dengan menggunakan direktori tempat sampah per pengguna.

Mengenai root Trash - Saya tidak dapat mereproduksi masalah yang Anda jelaskan, sepertinya berfungsi baik untuk saya.

Mengenai / etc / fstab - Saya tidak yakin apa masalahnya di sana: Anda harus bermain-main dengan fstab, kecuali jika Anda ingin kontrol penuh atas di mana sistem file eksternal dipasang. Biasanya media yang dapat dilepas dipasang secara otomatis pada deteksi di / media untuk pengguna yang saat ini aktif, tetapi kemudian tidak dapat diakses oleh pengguna lain. Jika Anda menginginkan pengaturan berbeda maka Anda harus mengacaukan dengan file konfigurasi. Tapi saya tidak mengerti bagaimana ini berhubungan dengan sampah.

Guss
sumber
Terima kasih! Anda memberi saya BANYAK info menarik, dan beberapa pertanyaan muncul ... di mana saya harus bertanya / membalas komentar Anda? Di sini, di komentar ini atau mengedit pertanyaan awal saya?
MestreLion
Saya telah menandai jawaban Anda sebagai jawaban yang diterima ... tetapi, jika mungkin, harap balas masalah baru yang disebutkan dalam pertanyaan saya (yang diedit). Dan terima kasih banyak atas jawaban Anda!
MestreLion
1

Agak terlambat, tapi kalau ada yang tertarik:, saya punya masalah yang sama tetapi, atas saran saya mengunduh Dolphin. Saya kemudian berlari Dolphin melalui sudo dolphinterminal.

Sekarang, mengklik kanan pada Wastebin dan memilih Empty Wastebin membersihkan file daripada menghasilkan kesalahan.

Ini tidak benar-benar berhubungan dengan pertanyaan Anda, tetapi hanya bekerja di sekitar.

SimplySimon
sumber