ไม่สามารถย้ายไฟล์ไปยังถังขยะคำเตือนเมื่อพยายามลบไฟล์ใน Nautilus


16

ฉันพยายามลบไฟล์ใน Nautilus และทุกครั้งที่ฉันพยายามลบไฟล์มันจะให้ข้อความนี้กับฉันเสมอ:

ไม่สามารถย้ายไฟล์ไปที่ถังขยะคุณต้องการลบทันทีหรือไม่

จากนั้นก็ให้คำถามฉันหลายข้อ สิ่งที่ฉันต้องการคือเมื่อฉันกดDeleteแป้นคีย์บอร์ดมันจะส่งมันไปยังถังขยะโดยอัตโนมัติ ไม่ต้องถามฉันทุกครั้ง

ปัญหาเกี่ยวข้องกับพาร์ติชัน NTFS ไดรฟ์ภายนอก แต่ยังรวมถึงระบบไฟล์ Linux

อะไรคือสาเหตุของการผึ้ง nautilus ที่ไม่สามารถย้ายไปที่ถังขยะได้?

ป้อนคำอธิบายรูปภาพที่นี่


คุณสามารถให้บริการเต็มรูปแบบ (แน่นอน) เส้นทางของแฟ้ม
aneeshep

ในกรณีนี้คือ / var / www ฉันเป็นเจ้าของมันอยู่แล้วและการอนุญาตก็ดี แต่ก็มีหน่วยภายนอกเช่นฮาร์ดไดรฟ์และไดรฟ์ปากกาที่มีปัญหาเดียวกัน
Luis Alvarado

คำตอบ:


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เป็นเจ้าของโดย modalities 700
คณิตศาสตร์

คำถาม: คุณค่าของบรรทัดนี้: $env{mount_options},gid=46,dmask=000,fmask=111,utf8"สามารถเขียนภายใน<options>คอลัมน์ได้fstabหรือไม่? นั่นคือสิ่งเดียวกันหรือไม่
Nearoo

8

สำหรับกรณีที่ผู้ใช้ไม่สามารถลบไฟล์ที่เก็บไว้ในพาร์ติชันที่ไม่สามารถถอดออกได้ (Ubuntu 14.04)

ดังที่ Bruno Pereira กล่าวว่าพฤติกรรมนี้เกิดขึ้นเนื่องจากผู้ใช้ไม่มีสิทธิ์เขียนที่จุดเมานต์ของพาร์ติชัน (ในกรณี OP / / var) ดังนั้นจึงไม่สามารถสร้างไดเรกทอรีสำหรับถังขยะได้

ในกรณีนี้ OP ไม่สามารถย้ายไปยังไฟล์ถังขยะที่เก็บไว้ในพาร์ทิชัน / var เพื่อแก้ไขปัญหานี้:

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

คุณจะต้องแทนที่:

  • 1000 โดยตัวระบุผู้ใช้ของคุณ (ดูหมายเลขต่อไปนี้ชื่อเข้าสู่ระบบของคุณที่ไฟล์ / etc / passwd)
  • user:group ด้วยชื่อเข้าสู่ระบบและกลุ่มของคุณตามลำดับ

4

ในวันที่ 16.04 ฉันพบปัญหาเดียวกัน วิธีแก้ปัญหาคือเปิดดิสก์คลิกที่พาร์ติชัน NTFS -> บนไอคอนเฟืองเล็ก ๆ ด้านล่าง (ตัวเลือกพาร์ติชั่นเพิ่มเติม) -> "แก้ไขตัวเลือกการเมาท์" และเพิ่ม "uid = 1000" (ไม่มีเครื่องหมายคำพูดคั่นด้วยเครื่องหมายจุลภาค) เหนือจุดเมานท์ (ดูรูป)การแก้ไขตัวเลือกการติดตั้ง fstab ผ่านทางยูทิลิตี้ดิสก์

UID ควรจะกำหนดให้มีจำนวนทางเลือกเริ่มต้นที่ 1000 กลับมาเป็นตามคำสั่ง "id" จากสถานีถ้าคุณไม่ได้เป็นผู้ใช้เดิมเป็นที่กล่าวถึงที่นี่


0

ฉันเคยมีปัญหานี้เมื่อฉันเพิ่มบรรทัดใน / etc / fstab สำหรับติดตั้งพาร์ติชัน ntfs ไม่มีอยู่หากฉันติดตั้งพาร์ทิชัน "ด้วยตนเอง" ในหอยโข่ง

เอกสาร Ubuntuอธิบายว่าคุณควรติดตั้งดิสก์โดยใช้ udisks ซึ่งเป็นสิ่งที่ใช้หอยโข่ง

สรุปขั้นตอนสำหรับการติดตั้งพาร์ติชันโดยอัตโนมัติ:

  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ลงในเทอร์มินัล [สิ่งนี้น่าจะใช้ได้กับหอยโข่งเหมือนกัน แต่ฉันเพิ่งทดสอบใน nemo]
  2. คลิกขวาที่อุปกรณ์ต่อเชื่อมที่จัดเก็บไฟล์ของคุณและไปที่ "คุณสมบัติ"
  3. ไปที่แท็บ "สิทธิ์" และสำหรับ "เจ้าของ" คลิกเมนูแบบเลื่อนลงและเลือกชื่อผู้ใช้ของคุณ ปิดทุกอย่างและกลับไปที่ตัวจัดการไฟล์ปกติของคุณ
  4. เมื่อคุณตั้งค่าเป็นเจ้าของอุปกรณ์ตอนนี้มันควรสร้างถังขยะสำหรับคุณบนอุปกรณ์นั้นและอนุญาตให้คุณกดปุ่มลบเพื่อย้ายไฟล์ไปยังถังขยะโดยอัตโนมัติ

การเรียกใช้โปรแกรม GUI ด้วย sudo นั้นไม่ใช่ความคิดที่ดี มีหลายสิ่งที่อาจผิดพลาดได้ตัวอย่างเช่นเมื่อรันnemoครั้งแรกมันจะเขียนว่าเป็นไฟล์ปรับแต่งและสร้างไดเรกทอรีที่ต้องการ สิ่งเหล่านี้จะเป็นของrootและไม่สามารถเขียนได้โดยผู้ใช้ และจะใช้เวลาสักครู่จนกว่าปัญหาจะสังเกตเห็น - sudoคำสั่งอาจถูกลืมไปนาน ตัวอย่างเช่นฉันคิดว่าnemoสร้างไดเรกทอรี~user/.local/share/nemo/scripts/ในการเรียกใช้ครั้งแรก
Volker Siegel

น่าสนใจ ....
Gabriel Staples
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.