Không thể di chuyển tệp sang cảnh báo rác khi cố gắng xóa tệp trong Nautilus


16

Tôi đang cố gắng xóa các tệp trong Nautilus và mỗi lần tôi cố xóa một tệp, nó luôn cho tôi thông báo này:

Không thể di chuyển tập tin vào thùng rác, bạn có muốn xóa ngay lập tức?

Sau đó, nó cho tôi một số câu hỏi. Tất cả những gì tôi muốn là khi tôi nhấn Deletevào bàn phím, nó sẽ tự động gửi nó vào thùng rác. Không phải hỏi tôi mọi lúc.

Vấn đề liên quan đến phân vùng NTFS, ổ đĩa ngoài nhưng cũng bao gồm các hệ thống tệp Linux.

Các lý do cho nautilus ong không thể di chuyển đến thùng rác là gì?

nhập mô tả hình ảnh ở đây


bạn có thể cung cấp đường dẫn đầy đủ (tuyệt đối) của tệp không
aneeshep

Trong trường hợp này là / var / www. Tôi đã là chủ sở hữu của nó và quyền là tốt. Nhưng cũng có các đơn vị bên ngoài như ổ cứng và ổ bút có cùng một vấn đề.
Luis Alvarado

Câu trả lời:


10

(Về phương tiện lưu động, không phải trường hợp từ người dùng vì đó là lỗi được khắc phục bằng bản cập nhật)

Hành vi này xảy ra bởi vì khi ổ đĩa được gắn kết, bạn không được coi là chủ sở hữu nên không thể tạo thùng rác. Không có uid hoặc gid nào được chỉ định và vì thư mục thùng rác không thể được tạo trong ổ đĩa, bạn chỉ được cung cấp lựa chọn xóa các tệp tự động.

Trong trường hợp đó, bạn có 2 tùy chọn: cắt các tệp vào hệ thống tệp Linux của bạn và xóa chúng ở đó (đánh bại mục đích nhấn xóa và các tệp bị xóa ) hoặc đảm bảo bạn được gán quyền chính xác khi gắn ổ đĩa.

Tạo quy tắc mới cho các ổ đĩa được gắn tự động của bạn với các dòng này, sử dụng trình soạn thảo văn bản yêu thích của bạn cho điều đó

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"

Khởi động lại máy tính của bạn và các ổ đĩa ntfs của bạn sẽ được gắn kết bằng quy tắc tùy chỉnh này, để thay đổi quyền cho ổ đĩa được gắn kết, hãy xem $env{mount_options},gid=46,dmask=000,fmask=111,utf8"tùy chọn gid=46gắn ổ đĩa ntfs với đặc quyền nhóm ( 46(plugdev)là nhóm cho phép người dùng gắn kết một ổ đĩa trong Ubuntu) fmaskdmaskcác cài đặt để ghi, tạo, xóa các tệp / thư mục trên ổ đĩa.

Thay đổi nó theo nhu cầu. Bạn sẽ cần phải tự sắp xếp các hệ thống tệp khác theo từng loại nhưng điều này sẽ giúp bạn bắt đầu.

( Nguồn cho udevquy tắc )


Điều này cũng làm việc cho tôi? Tôi có một môi trường hơi khác: Chỉ sử dụng Linux và tôi có NFS gắn kết tại nhà, nơi xóa đang hoạt động khá tốt và cũng tồn tại một thùng rác, nhưng tôi đã liên kết một thư mục reposđến hệ thống tệp cục bộ /local/home/me/repos(nhanh hơn). Chỉ bên trong thư mục này và việc xóa các thư mục con không hoạt động. Các thư mục /local/homeđược sở hữu bởi root 755, nhưng các thư mục của tôi /local/home/me/reposthuộc sở hữu của tôi với các phương thức 700.
toán

Câu hỏi: Các giá trị của dòng này: $env{mount_options},gid=46,dmask=000,fmask=111,utf8"cũng có thể được viết bên trong <options>cột của fstab? Đó có phải là điều tương tự?
Nearoo

8

Đối với trường hợp người dùng không thể xóa tệp được lưu trữ trong phân vùng không thể tháo rời (Ubuntu 14.04)

Như Bruno Pereira đã nêu, hành vi này xảy ra do người dùng không có quyền ghi tại điểm gắn kết của phân vùng (trong trường hợp OP, / var), do đó không thể tạo thư mục cho thùng rác.

Trong trường hợp này, OP không thể di chuyển đến các tệp rác được lưu trữ tại phân vùng / var. Để giải quyết vấn đề này:

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

Bạn sẽ phải thay thế:

  • 1000 bởi số nhận dạng người dùng của bạn (xem số theo tên đăng nhập của bạn tại tệp / etc / passwd)
  • user:group theo tên đăng nhập và nhóm của bạn, tương ứng

4

Ngày 16.04, tôi gặp vấn đề tương tự. Giải pháp là mở Đĩa, nhấp vào phân vùng NTFS -> trên biểu tượng bánh răng nhỏ bên dưới (Tùy chọn phân vùng bổ sung) -> "Chỉnh sửa tùy chọn gắn kết" và thêm "uid = 1000" (không có dấu ngoặc kép, được phân tách bằng dấu phẩy) vào dòng phía trên điểm núi (xem hình).Sửa đổi tùy chọn gắn kết fstab thông qua tiện ích Đĩa

uid nên được đặt thành một số thay thế từ 1000 như được trả về bởi lệnh "id" từ thiết bị đầu cuối nếu bạn không phải là người dùng ban đầu, như đã đề cập ở đây .


0

Tôi đã từng gặp vấn đề này khi tôi thêm một dòng trong / etc / fstab để gắn phân vùng ntfs. Nó không có mặt nếu tôi gắn phân vùng "thủ công" trong nautilus.

Các tài liệu Ubuntu giải thích rằng bạn nên gắn đĩa sử dụng udisks, đó là những gì sử dụng nautilus.

Tóm tắt các bước để tự động gắn phân vùng:

  1. Điều kiện tiên quyết: gắn kết phân vùng và tìm tên của nó (ví dụ / dev / sdb1) bằng cách sử dụng mountlệnh.

  2. Lấy uuid của phân vùng. Các uuid xuất hiện trước ->lệnh này:

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

  3. Lệnh để gắn kết sẽ là:

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

  4. Thêm lệnh này trong các ứng dụng khởi động của bạn


1
Điều này không cho phép bạn thực thi các tệp trong phân vùng ntfs
Anwar

-1

Đối với những người thích GUI, đây là cách giải quyết đồ họa này:

  1. Mở trình soạn thảo tệp nemo ( sudo apt-get install nemođể cài đặt) với các đặc quyền nâng cao, bằng cách nhập sudo nemovào một thiết bị đầu cuối. [Điều này có thể cũng sẽ hoạt động trong nautilus, nhưng tôi chỉ thử nghiệm trong nemo].
  2. Nhấp chuột phải vào thiết bị được gắn nơi lưu trữ tệp của bạn và đi đến "Thuộc tính".
  3. Chuyển đến tab "Quyền" và cho "Chủ sở hữu", nhấp vào menu thả xuống và chọn tên người dùng của bạn. Đóng mọi thứ và quay lại trình quản lý tập tin bình thường của bạn.
  4. Với việc bạn được đặt là chủ sở hữu của thiết bị, giờ đây nó sẽ tạo một thùng rác cho bạn trên thiết bị đó và cho phép bạn nhấn nút xóa để tự động di chuyển các tệp vào thùng rác.

Chạy một chương trình GUI với sudo thường không phải là một ý tưởng tốt; Nhiều thứ có thể sai - ví dụ như khi chạy nemolần đầu tiên, nó sẽ ghi các tệp cấu hình của nó và tạo các thư mục cần thiết. Chúng sẽ được sở hữu bởi root, và không thể ghi được bởi người dùng. Và sẽ mất một thời gian cho đến khi vấn đề được chú ý - sudolệnh có thể bị lãng quên từ lâu. Ví dụ, tôi nghĩ nemotạo thư mục ~user/.local/share/nemo/scripts/trong lần chạy đầu tiên.
Volker Siegel

Thú vị ....
Gabriel Staples
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.