Когда я пытался управлять мусорным баком с подключенных томов 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
. Но в спецификациях говорится: « Каталог« Домашняя корзина »ДОЛЖЕН быть автоматически создан для любого нового пользователя. Если этот каталог необходим для операции очистки, но он не существует, реализация ДОЛЖНА создать его автоматически, без каких-либо предупреждений или задержек. [ 1123]». Почему ошибка то? Ошибка?
Почему я должен изменить записи /etc/fstab
для смонтированных томов, добавив такие параметры, как uid и guid, если тома уже смонтированы как RW для всех?
Это лишь некоторые примеры отклонения от стандарта. Итак, вопрос:
«Если Ubuntu не придерживается 100% спецификации, КАК точно работает мусор? ГДЕ я могу найти техническую ссылку для реализации Ubuntu из мусора? "
Кстати: если Ubuntu действительно следует спецификациям, пожалуйста, скажите мне, что я делаю неправильно, особенно в отношении проблемы /.Trash-<uid>
и /.Trash/<uid>
.
Спасибо!
РЕДАКТИРОВАТЬ:
Дополнительная информация:
Если данный fs не поддерживает Sticky Bit (VFAT, NTFS), вероятно, он также не имеет разрешений (по крайней мере, VFAT, конечно, нет). Так что же мешает одному пользователю очистить /
, восстанавливая ./Trash-xxx
других пользователей? Если кто-то может читать / писать свой собственный Trash, то можно делать то же самое для всего диска, включая другие, правильно? Или у Gnome есть какая-то «дополнительная» защита папок ./Trash-xxx
в VFAT / NTFS fs?
Если Linux может «эмулировать» права доступа к файлам при монтировании NTFS путем редактирования /fstab
Опции uid и gid, могут ли они также "эмулировать" бит? Я действительно предпочел бы использовать формат /.Trash/xxx
...
Для корневого вопроса: для раздела / я могу использовать trash в качестве 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?
Насколько я понимаю, GNOME правильно использует .Trash - если вы заглянете в исходный код gio / glocalfile.c, вы увидите, что он пытается использовать каталог .Trash, если он существует. Однако обратите внимание, что каталог должен иметь правильные разрешения, чтобы пользователи могли безопасно хранить в нем мусорные файлы (и здесь, в смысле безопасности, я имею в виду, что другие пользователи не смогут восстанавливать файлы, удаленные пользователем). Для этого GNOME требует, чтобы в каталоге .Trash был установлен залипший бит - см. Каталоги мусора, примечание (1) в спецификации мусора FreeDesktop.Org.
Основная проблема, связанная с описанным выше подходом, заключается в том, что большинство обнаруженных вами сменных носителей - это FAT, который не поддерживает залипание, поэтому единственный способ безопасно справиться с этим - использовать каталог мусора для каждого пользователя. [ 111]
Что касается корневого мусора - я не могу воспроизвести описанную вами проблему, мне кажется, она хорошо работает.
Что касается / etc / fstab - я не уверен, в чем проблема: вам нужно возиться с fstab, если вы не хотите полностью контролировать, где смонтирована внешняя файловая система. Обычно съемный носитель монтируется автоматически при обнаружении в / media для пользователя, который в данный момент активен, но затем он недоступен любому другому пользователю. Если вы хотите другую настройку, вам следует связываться с файлом конфигурации. Я не понимаю, как это относится к мусору.
Немного опоздал, но, если кому-то интересно, у меня возникла та же проблема, но по совету я скачал Dolphin. Затем я провел Дельфина через sudo dolphin
в терминале.
Теперь, щелкнув правой кнопкой мыши по Wastebin и выбрав Empty Wastebin , файлы удаляются, а не выдают ошибку.
Это на самом деле не относится к вашему вопросу, но это просто работа вокруг.