Как работает корзина для мусора, и где я могу найти официальную документацию, ссылку или спецификацию для нее?


14

Когда я пытался управлять мусорным баком с подключенных томов NTFS, я прочитал ссылку на FreeDesktop.org .

Побродив и выполнив несколько тестов, я понял, что Ubuntu / Gnome не соответствует спецификациям на 100%. Вот почему:

  • Для не / разделов, он всегда использует <driveroot>/.Trash-<uid>, он никогда не использовал <driveroot>/.Trash/<uid>, даже когда я создал его заранее. Хотя это работает, это раздражает: если у меня 15 пользователей, у меня получается 15 /.Trash-xxxпапок на диске, тогда как другой подход все равно дает одну папку (с 15 подпапками). Это «загрязнение» в моих дисках очень неприятно. И спецификации говорят: « Если $topdir/.Trashкаталог отсутствует, $topdir/.Trash-$uidкаталог должен использоваться ». Ну, он присутствует, так почему он никогда не использует его?

  • Корневая корзина не работает, по крайней мере, не из коробки. Откройте nautilus от имени пользователя root и нажмите на корзину; это дает ошибку. Попробуйте удалить любой файл, он говорит: «он не может перейти в корзину». Хорошо, я знаю, что это можно исправить, создав /root/.local/share. Но в спецификациях говорится : «Каталог« домашней корзины »ДОЛЖЕН быть автоматически создан для любого нового пользователя. Если этот каталог необходим для операции очистки, но он не существует, реализация ДОЛЖНА создать его автоматически, без каких-либо предупреждений или задержек ». Почему ошибка то? Ошибка?

  • Почему я должен изменить /etc/fstabзаписи для подключенных томов, добавив такие параметры, как uid и guid, если тома уже смонтированы как RW для всех?

Это всего лишь несколько примеров отклонения от стандарта. Итак, вопрос в следующем:

«Если Ubuntu не соответствует 100% спецификации, КАК точно работает мусор? ГДЕ я могу найти технический справочник по реализации мусора в Ubuntu?»

Кстати: если Ubuntu действительно соответствует спецификациям, пожалуйста, скажите мне, что я делаю неправильно, особенно в отношении проблемы /.Trash-<uid>против /.Trash/<uid>.

Благодарность!

РЕДАКТИРОВАТЬ:

Еще немного информации:

  • Если данный fs не поддерживает залипший бит (VFAT, NTFS), он, вероятно, также не имеет разрешений (по крайней мере, VFAT, конечно, нет). Так что же мешает одному пользователю очистить /восстановление других пользователей ./Trash-xxx? Если кто-то может читать / писать свой собственный Trash, он может делать то же самое для всего диска, включая другие, правильно? Или у Gnome есть какая-то «дополнительная» защита ./Trash-xxxпапок на VFAT / NTFS fs?

  • Если Linux может "эмулировать" права доступа к файлам при монтировании NTFS путем редактирования параметров /fstabuid и gid, может ли он также "эмулировать" бит? Я действительно предпочел бы использовать /.Trash/xxxформат ...

  • Для проблемы с корнем: для раздела / я могу использовать корзину как root, и она идет в /root/.local/share/Trash. Но если я нажму на Nautilus "Trash" (как root), я получу ошибку. Не так ли? Таким образом, файлы корректно удаляются, но я не могу получить к ним доступ. Все, что я могу сделать, - это вручную «очистить» их (удалив файлы /root/.local/share/Trash), но восстановление будет очень сложным (открытие информационных файлов, перемещение вручную и т. Д.).

  • Для не / разделов (или, по крайней мере, для VFAT / NTFS), я не могу даже использовать корзину как корень: она не создает ./Trash-0папку, она просто говорит: «Не удается корзину, хотите удалить навсегда?» Почему?

  • О fstab: я использую его для постоянного монтирования для моих разделов NTFS. У меня их несколько, и если не «предварительно смонтированных», то они действительно загромождают рабочий стол и / или Nautilus. Я предпочел бы иметь его предварительно смонтированы, интегрированы в моей файловой системе, в горах , как /data, /windows/xp, /windows/vistaи так далее, и отпуска /mediaи его гибкость «монтирования / размонтирования» только для действительно съемных дисков.

Итак, если Ubuntu / Gnome действительно следует спецификации, есть ли способ исправить проблемы с корнем и «эмулировать» залипание (по крайней мере) для моих фиксированных разделов NTFS с fstab?

Ответы:


3

Насколько я понимаю, GNOME правильно использует .Trash - если вы заглянете в исходный код gio / glocalfile.c, вы увидите, что он пытается использовать каталог .Trash, если он существует. Однако обратите внимание, что каталог должен иметь правильные разрешения, чтобы пользователи могли безопасно хранить в нем мусорные файлы (и здесь, в смысле безопасности, я имею в виду, что другие пользователи не смогут восстанавливать файлы, удаленные пользователем). Для этого GNOME требует, чтобы в каталоге .Trash был установлен залипший бит - см. Каталоги мусора, примечание (1) в спецификации мусора FreeDesktop.Org.

Основная проблема, связанная с описанным выше подходом, заключается в том, что большинство обнаруженных вами сменных носителей - это FAT, который не поддерживает залипание, поэтому единственный способ безопасно справиться с этим - использовать каталог для каждого пользователя.

Что касается корневого мусора - я не могу воспроизвести проблему, которую вы описываете, похоже, она мне подходит.

Что касается / etc / fstab - я не уверен, в чем проблема: вам нужно возиться с fstab, если вы не хотите полностью контролировать, где смонтирована внешняя файловая система. Обычно съемный носитель монтируется автоматически при обнаружении в / media для пользователя, который в данный момент активен, но затем он недоступен для любого другого пользователя. Если вы хотите другую настройку, вам следует связываться с файлом конфигурации. Я не понимаю, как это относится к мусору.


Благодарность! Вы дали мне МНОГО интересной информации, и возникло несколько вопросов ... где я должен спросить / ответить на ваши комментарии? Вот в этом комментарии или редактируете мой оригинальный вопрос?
MestreLion

Я отметил ваш принятый ответ ... но, если возможно, пожалуйста, ответьте на новые вопросы, упомянутые в моем (отредактированном) вопросе. И большое спасибо за ваш ответ!
MestreLion

1

Немного опоздал, но если кому-то интересно, у меня была такая же проблема, но по совету я скачал Dolphin. Затем я прогнал Дельфина sudo dolphinв терминале.

Теперь, щелкнув правой кнопкой мыши по Wastebin и выбрав Empty Wastebin, вы очищаете файлы, а не выдает ошибку.

Это на самом деле не относится к вашему вопросу, но это просто обходной путь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.