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

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

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

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

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

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

enter image description here

20
задан 7 July 2018 в 03:32

5 ответов

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

Это Такое поведение происходит потому, что при подключении диска вы не считаются владельцем, поэтому нельзя создать корзину для мусора. Не было назначено 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 rule )

10
ответ дан 7 July 2018 в 03:32

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

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

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

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

Вам необходимо заменить:

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

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

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

5
ответ дан 7 July 2018 в 03:32

Для тех, кому нравятся графические интерфейсы, вот как это решить графически:

  1. Откройте редактор файлов nemo (sudo apt-получите установочный nemo для установки) с повышенными привилегиями, набрав в терминале sudo nemo. [Вероятно, это сработает и в nautilus, но я протестировал только в nemo].
  2. Щелкните правой кнопкой мыши по монтируемому устройству, на котором хранятся ваши файлы, и перейдите в "Свойства".
  3. Перейдите на вкладку "Права доступа", а для "Владелец" нажмите выпадающее меню и выберите ваше имя пользователя. Закройте все и вернитесь к своему обычному файловому менеджеру.
  4. Поскольку вы являетесь владельцем устройства, теперь оно должно создать для вас мусор на этом устройстве и позволить вам нажать кнопку удаления для автоматического перемещения файлов в мусорное ведро.
-1
ответ дан 7 July 2018 в 03:32

Раньше у меня возникала эта проблема, когда я добавлял строку в / 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 /

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

0
ответ дан 7 July 2018 в 03:32

Другие вопросы по тегам:

Похожие вопросы: