Невозможно переместить файл в корзину при попытке удалить файл в Nautilus

16

Я пытаюсь удалить файлы в Nautilus, и каждый раз, когда я пытаюсь удалить один, он всегда дает мне следующее сообщение:

Не удается переместить файл в корзину, вы хотите немедленно удалить?

Тогда это дает мне несколько вопросов. Все, что я хочу, это то, что когда я нажимаю Deleteна клавиатуре, он автоматически отправляет ее в корзину. Не спрашивать меня каждый раз.

Проблема касается разделов NTFS, внешних дисков, но также включает файловые системы Linux.

Каковы причины того, что наутилус не может перейти в мусорное ведро?

введите описание изображения здесь

Луис Альварадо
источник
Можете
В данном случае это / var / www. Я уже владелец этого и разрешения хорошие. Но есть и внешние устройства, такие как жесткие диски и флешки, которые имеют ту же проблему.
Луис Альварадо

Ответы:

10

(О сменных носителях, а не о случае со стороны пользователя, поскольку это была ошибка, решенная с помощью обновления)

Это происходит потому, что когда диск смонтирован, вы не являетесь владельцем, поэтому корзина для мусора не может быть создана. Ни uid, ни gid не были назначены, и, поскольку на жестком диске не может быть создана папка с мусорным баком, вам предлагается только выбрать автоматическое удаление файлов.

В этом случае у вас есть 2 варианта: вырезать файлы в вашей файловой системе Linux и удалить их там (что не имеет смысла для нажатия кнопки «Удалить», а файлы удаляются ) или убедиться, что вам были назначены правильные разрешения при монтировании диска.

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

gksudo gedit /etc/udev/rules.d/10-my-media-automount.rules

# vim:enc=utf-8:nu:ai:si:et:ts=4:sw=4:ft=udevrules:
#
# /etc/udev/rules.d/10-my-media-automount.rules

# start at sdb to ignore the system hard drive
KERNEL!="sd[b-z]*", GOTO="my_media_automount_end"
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="my_media_automount_end"

# import some useful filesystem info as variables
IMPORT{program}="/sbin/blkid -o udev -p %N"

# get the label if present, otherwise assign one based on device/partition
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# create the dir in /media and symlink it to /mnt
ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'"

# global mount options
ACTION=="add", ENV{mount_options}="relatime"
# filesystem-specific mount options (777/666 dir/file perms for ntfs/vfat) 
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},gid=46,dmask=000,fmask=111,utf8"

# automount ntfs filesystems using ntfs-3g driver
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/mount -t ntfs-3g -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"
# automount all other filesystems
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs", RUN+="/bin/mount -t auto -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"

# exit
LABEL="my_media_automount_end"

Перезагрузите компьютер, и ваши диски ntfs будут смонтированы с использованием этого настраиваемого правила. Чтобы изменить разрешения для смонтированного диска, взгляните на строку $env{mount_options},gid=46,dmask=000,fmask=111,utf8", опция gid=46должна монтировать диск ntfs с привилегиями группы ( 46(plugdev)это группа, которая позволяет монтировать пользователя). диск в Ubuntu) fmaskи dmaskнастройки для записи, создания, удаления файлов / папок на диске.

Измените его в соответствии с потребностями. Вам нужно будет самостоятельно отсортировать другие файловые системы в соответствии с каждым типом, но это должно помочь вам начать.

( Источник для udevправила )

Бруно Перейра
источник
Это также работает для меня? У меня немного другая среда: я использую только Linux, и у меня дома смонтирована NFS, где удаление работает достаточно хорошо, а также существует мусор, но я поместил ссылку на каталог reposв локальную файловую систему /local/home/me/repos(это быстрее). Только внутри этого каталога и подкаталогов удаление не работает. Каталоги /local/homeпринадлежат root 755, но мои каталоги /local/home/me/reposпринадлежат мне с модальностями 700.
Математика
Вопрос: Могут ли значения этой строки: $env{mount_options},gid=46,dmask=000,fmask=111,utf8"также быть записаны внутри <options>столбца fstab? Это то же самое?
Nearoo
8

Для случаев, когда пользователь не может удалить файл, хранящийся в несъемном разделе (Ubuntu 14.04)

Как сказал Бруно Перейра, такое поведение происходит из-за того, что у пользователя нет прав записи в точке монтирования раздела (в случае OP, / var), поэтому каталог для корзины не может быть создан.

В этом случае OP не может перемещаться в мусорные файлы, хранящиеся в разделе / ​​var. Чтобы решить эту проблему:

$ cd /var
$ sudo mkdir .Trash-1000
$ chown user:group .Trash-1000

Вам придется заменить:

  • 1000 по вашему идентификатору пользователя (см. номер, следующий за вашим логином в файле / etc / passwd)
  • user:group по вашему логину и группе соответственно
Chus
источник
4

16.04 я столкнулся с той же проблемой. Решением было открыть Диски, щелкнув по разделу NTFS -> по маленькому значку шестеренок внизу (Дополнительные параметры раздела) -> «Изменить параметры монтирования» и добавив в строку «uid = 1000» (без кавычек, разделенных запятой). выше точки крепления (см. рисунок).Изменение параметров монтирования fstab с помощью утилиты Disk

Для uid должен быть задан альтернативный номер от 1000, возвращаемый командой «id» из терминала, если вы не являетесь первоначальным пользователем, как упомянуто здесь .

Грег Крамида
источник
0

Раньше у меня была эта проблема, когда я добавлял строку в / etc / fstab для монтирования раздела ntfs. Его не было, если я смонтировал раздел «вручную» в nautilus.

Документация Ubuntu объясняет, что вы должны монтировать диски, используя udisks, что и используется nautilus.

Краткое изложение шагов для автоматического монтирования раздела:

  1. Предварительное условие: смонтируйте раздел и найдите его имя (например, / dev / sdb1) с помощью mountкоманды.

  2. Получить UUID раздела. UUID появляется перед ->в этой команде:

    ls -al /dev/disk/by-uuid/

  3. Команда для монтирования будет:

    /usr/bin/udisks --mount /dev/disk/by-uuid/<the uuid you found previously>

  4. Добавьте эту команду в ваши приложения запуска

Орельен
источник
1
Это не позволяет вам запускать файлы в разделе ntfs
Anwar
-1

Для тех, кто любит GUI, вот как решить это графически:

  1. Откройте редактор файлов nemo ( sudo apt-get install nemoдля установки) с повышенными привилегиями, набрав sudo nemoв терминале. [Возможно, это будет работать и в nautilus, но я тестировал только в nemo].
  2. Щелкните правой кнопкой мыши на подключенном устройстве, где хранятся ваши файлы, и перейдите в «Свойства».
  3. Перейдите на вкладку «Разрешения», а для «Владелец» нажмите раскрывающееся меню и выберите свое имя пользователя. Закройте все и вернитесь к обычному файловому менеджеру.
  4. Если вы указали в качестве владельца устройства, теперь оно должно создавать для вас корзину на этом устройстве и позволять вам нажимать кнопку удаления, чтобы автоматически перемещать файлы в корзину.
Габриэль Стейплс
источник
Запуск программы с графическим интерфейсом с помощью sudo, как правило, не очень хорошая идея; Многие вещи могут пойти не так, как, например, при nemoпервом запуске он запишет свои конфигурационные файлы и создаст необходимые каталоги. Они будут принадлежать rootи не будут доступны для записи пользователю. И пройдет некоторое время, пока проблема не будет замечена - sudoкоманда может быть давно забыта. Например, я думаю, nemoсоздает каталог ~user/.local/share/nemo/scripts/при первом запуске.
Volker Siegel
Интересно ....
Габриэль Стейплс