ไดรฟ์ USB ติดตั้งโดยผู้ใช้อัตโนมัติ แต่ได้รับสิทธิ์ในการเขียนสำหรับรูทเท่านั้น


20

ฉันพยายามใช้ไดรฟ์ ext4 USB ของฉัน แต่ Ubuntu 13 กำลังติดตั้งโดยได้รับอนุญาตการเขียนสำหรับรูทเท่านั้นดังนั้นด้วยผู้ใช้ปกติของฉันฉันไม่สามารถเขียนได้โดยไม่ต้องใช้ sudo

สถานที่แรกที่ฉันตรวจสอบคือdconf-editorซึ่งมีตัวเลือกต่อไปนี้

  • automount
  • automount เปิด
  • ไม่เคยทำงานอัตโนมัติ
  • การทำงานอัตโนมัติ-x-เนื้อหาที่ไม่สนใจ
  • โฟลเดอร์การทำงานอัตโนมัติ-x-เนื้อหาเปิด
  • การทำงานอัตโนมัติ-x-เนื้อหาเริ่มต้นแอป

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

ฉันยังทำให้แน่ใจว่าผู้ใช้ของฉันอยู่ในกลุ่มที่เกี่ยวข้อง: fuseและplugdev

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

ฉันไม่เห็นวิธีการควบคุมสิ่งที่เกิดขึ้น ฉันดูที่การตั้งค่าตัวเลือกการเมานท์โดยใช้gnome-disksแต่ดึงว่างเปล่า

มันไม่ได้อยู่ในfstabนั้น แต่มันจะปรากฏในmountรายการหรือ / etc / mtab:

/dev/sdb1 /media/adam/WDPassport2T ext4 rw,nosuid,nodev,uhelper=udisks2 0 0

นี่คือสิ่งที่ปรากฏใน syslog ถ้ามันช่วย:

kernel: [111522.196770] usb 2-1: USB disconnect, device number 6
kernel: [111525.384020] usb 2-1: new high-speed USB device number 7 using ehci-pci
kernel: [111525.565220] usb 2-1: New USB device found, idVendor=1058, idProduct=0820
kernel: [111525.565225] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
kernel: [111525.565227] usb 2-1: Product: My Passport 0820
kernel: [111525.565229] usb 2-1: Manufacturer: Western Digital
kernel: [111525.565231] usb 2-1: SerialNumber:  575832314141334A34383631
kernel: [111525.565729] usb-storage 2-1:1.0: USB Mass Storage device detected
kernel: [111525.566203] scsi9 : usb-storage 2-1:1.0
mtp-probe: checking bus 2, device 7: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1"
mtp-probe: bus: 2, device: 7 was not an MTP device
kernel: [111526.564697] scsi 9:0:0:0: Direct-Access     WD       My Passport 0820 1007 PQ: 0 ANSI: 6
kernel: [111526.565063] scsi 9:0:0:1: Enclosure         WD       SES Device       1007 PQ: 0 ANSI: 6
kernel: [111526.568096] sd 9:0:0:0: Attached scsi generic sg2 type 0
kernel: [111526.568202] ses 9:0:0:1: Attached Enclosure device
kernel: [111526.568263] ses 9:0:0:1: Attached scsi generic sg3 type 13
kernel: [111531.263108] sd 9:0:0:0: [sdb] 3906963456 512-byte logical blocks: (2.00 TB/1.81 TiB)
kernel: [111531.265100] sd 9:0:0:0: [sdb] Write Protect is off
kernel: [111531.265105] sd 9:0:0:0: [sdb] Mode Sense: 47 00 10 08
kernel: [111531.266473] sd 9:0:0:0: [sdb] No Caching mode page found
kernel: [111531.266479] sd 9:0:0:0: [sdb] Assuming drive cache: write through
kernel: [111531.272224] sd 9:0:0:0: [sdb] No Caching mode page found
kernel: [111531.272230] sd 9:0:0:0: [sdb] Assuming drive cache: write through
kernel: [111531.284885]  sdb: sdb1
kernel: [111531.288219] sd 9:0:0:0: [sdb] No Caching mode page found
kernel: [111531.288223] sd 9:0:0:0: [sdb] Assuming drive cache: write through
kernel: [111531.288227] sd 9:0:0:0: [sdb] Attached SCSI disk
kernel: [111531.751588] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
udisksd[3131]: Mounted /dev/sdb1 at /media/adam/WDPassport2T on behalf of uid 1000

ลองเรียกใช้sudo umount /dev/sdb1แล้วติดตั้งในฐานะผู้ใช้ปกติ mtabรายการมีuser=adamซึ่งควรจะหมายถึงผู้ใช้adamสามารถใช้งานได้ ...
วิลฟ์

@wilf จริงๆแล้วมันเป็นรายการ mtab ที่สองที่มี user = adam ไม่ใช่ไดรฟ์ USB ฉันไม่รู้ว่าสิ่ง gvfsd-fuse นั้นคืออะไร อาจไม่เกี่ยวข้อง แต่ฉันงงว่าทำไมบางรายการถึงมี แต่ไม่ใช่ไดรฟ์ usb
อดัม

อ๊ะ ... ควรให้ความสนใจมากขึ้น รายการเหล่านั้นดีดังนั้นควรใช้งานได้ ... คุณเมานต์และยกเลิกการต่อเชื่อมไดรฟ์แบบกราฟิกหรือผ่านบรรทัดคำสั่งหรือไม่ - การรันgvfs-mount -d /dev/sdb1ควรเมาต์ไดรฟ์ด้วยเช่นudisks --mount /dev/sda5กัน สิ่งเหล่านี้ไม่จำเป็นต้องใช้รหัสผ่านรูทเนื่องจากใช้gvfsdรายการเพื่ออนุญาตการเข้าถึง
วิลฟ์

ดังนั้น gvfs จึงมีบางอย่างเกี่ยวข้องกับมัน ฉันกำลังติดตั้งและยกเลิกการต่อเชื่อมไดรฟ์แบบกราฟิกผ่าน nautilus แต่จริง ๆ แล้วฉันต้องการให้มันทำโดยอัตโนมัติในสิ่งที่แนบมาเพื่อให้กระบวนการ backupdb สามารถใช้ไดรฟ์ เกิดขึ้นกับฉันว่านี่เป็นปัญหาอื่นแม้ว่าฉันจะได้รับสิทธิ์ในการเขียนเรียง
อดัม

1
@Adam, ระบบไฟล์ของอุปกรณ์ USB ของคุณคืออะไร? และสิ่งที่ไม่ls -ld /media/adam/WDPassport2Tและls -l /media/adam/WDPassport2Tเอาท์พุท?
แม่นยำ

คำตอบ:


25

สาเหตุที่เป็นไปได้คือคุณฟอร์แมต / สร้างดิสก์หน่วยเก็บข้อมูลด้วยเครื่องมือที่มีสิทธิ์ใช้งานรูทและระบบไฟล์ที่สร้างขึ้นนั้นเป็นเจ้าของโดยรู

ลองมาดูที่lsคำสั่งของคุณ:

$ ls -ld /media/adam/WDPassport2T
drwxr-xr-x 4 root root 4096 Jan 15 16:57 /media/adam/WDPassport2T
$ ls -l /media/adam/WDPassport2T
total 20 
drwxr-xr-x 2 root root 4096 Jan 15 16:57 backuppc 
drwx------ 2 root root 16384 Jan 15 15:37 lost+found

ระบบไฟล์เป็นเจ้าของโดย root ตามที่ระบุโดยls -ldการเมานต์ WDPassport2Tของคุณและสตริงการอนุญาต drwxr-xr-xแสดงว่าเจ้าของrootมีสิทธิ์ RW ในขณะที่สมาชิกของรูทกลุ่มพร้อมกับโลก / คนอื่น ๆ จะมีสิทธิ์ R เท่านั้น

เพื่อแก้ปัญหาคุณสามารถเปลี่ยนการอนุญาตด้วยchmodหรือเพียงแค่เปลี่ยนความเป็นเจ้าของซ้ำและนี่คือสิ่งที่ฉันได้แสดงไว้ด้านล่าง:

sudo chown <username>:<groupname> -R /path/to/target

ซึ่งในกรณีของคุณจะเป็น:

sudo chown adam:adam -R /media/adam/WDPassport2T/

ตอนนี้ถ้าคุณต้องการคุณสามารถกำหนดสิทธิ์ด้วยchmod:

find /media/adam/WDPassport2T/ -type f -execdir chmod 666 -Rv {} +

(ซึ่งให้สิทธิ์การเป็นเจ้าของกลุ่มและโลก RW สำหรับไฟล์ทั้งหมดในเป้าหมาย)

find /media/adam/WDPassport2T/ -type d -execdir chmod 777 -Rv {} +

(ซึ่งให้สิทธิ์เจ้าของกลุ่มและโลก RWX สำหรับไดเรกทอรีทั้งหมดในเป้าหมาย)

อ้างอิง:

เอกสาร Ubuntu อย่างเป็นทางการ: การอนุญาตไฟล์


น่าอัศจรรย์ ฉันไม่คิดว่าจะลองทำเพราะฉันเพิ่งสันนิษฐานว่าสิทธิ์ของไฟล์ใน / media / adam / WDPassport2T ถูกกำหนดโดยกระบวนการ mount เช่นฉันไม่ได้ตระหนักถึงไดรฟ์ USB จริง (หรือจุดเมานท์ที่จัดสรร) จะได้รับและเก็บไว้ สิทธิ์ ดังนั้นจะมีปัญหาที่คล้ายกันกับสิทธิ์ / ความเป็นเจ้าของถ้าฉันเสียบดิสก์ลงในกล่องอื่นได้หรือไม่
อดัม

1
@ อดัม: "... จะมีปัญหากับสิทธิ์ / ความเป็นเจ้าของหากฉันเสียบดิสก์ลงในกล่องอื่นหรือไม่" ฉันไม่แน่ใจดังนั้นฉันโพสต์คำถามนี้: คำสั่ง chmod และ chown แบบพกพาทำงานอย่างไร .. หากต้องการให้มีการอนุญาต RW สำหรับไฟล์ / ไดเรกทอรีในระบบอื่น ๆ เช่นกันคุณอาจอนุญาตให้ RW สำหรับโลก / othrs ใช้chmodโปรดอ้างอิงคำตอบที่ได้รับการอัปเดต ...
แม่นยำ

หากฉันฟอร์แมตไดร์ฟ USB ext4 โดยใช้gksu gpartedนั่นจะทำให้ฉันเป็นเจ้าของไดรฟ์ USB นั้นโดยอัตโนมัติหรือหากยังคงฟอร์แมตด้วยรูทเป็นเจ้าของ
Marc

มันใช้งานไม่ได้ ฉันยังคงไม่ได้รับอนุญาตให้ดำเนินการเมื่อฉันลองและ chown ทุกอย่างที่จุดเชื่อมต่อนั้น
Fr0ntSight

แต่คำถามคือทำไมไดรฟ์ถูกเมาท์เป็นรูทตั้งแต่แรก มีการตั้งค่าที่ฉันสามารถตั้งค่าเพื่อให้ในอนาคตผู้ใช้ของฉันติดตั้งไดรฟ์แทนหรือไม่
becko

1

คุณลองฟอร์แมตไดรฟ์อีกครั้งด้วยสิทธิ์ของคุณเองหรือไม่?

ก่อนอื่นให้ตรวจสอบ ID ผู้ใช้ของคุณ:

sudo id -u red

ควรให้ "1,000"

จากนั้นให้ถอนการติดตั้งไดรฟ์ในตัวจัดการไฟล์

ระวังคุณจะสูญเสียข้อมูลทั้งหมดของคุณด้วยคำสั่งต่อไป

sudo mkfs.ext4 /dev/sdx1 -E root_owner=1000:1000

ใส่ไดรฟ์และคุณควรจะสามารถเขียนไฟล์และโฟลเดอร์


1

เครื่องมือการจัดรูปแบบและการจัดรูปแบบส่วนใหญ่ (เช่น Gparted) ต้องการสิทธิ์รูท

ระบบไฟล์เช่น ext4, ext3 จัดเก็บข้อมูลการเป็นเจ้าของไฟล์ด้วยไดรฟ์ปากกาเอง (แต่ ntfs, fat32, fat16 ไม่มีความปลอดภัยเช่นนั้น)

ในกรณีนี้คุณต้องเปลี่ยนการอนุญาตโดยใช้คำสั่งต่อไปนี้ในเครื่อง

chown -hR nobody:nogroup /media/adam/WDPassport2T/

โดยการตั้งค่าผู้ใช้เป็น "none" และกลุ่มเป็น "nogroup" จะแก้ไขปัญหาที่คล้ายกันกับสิทธิ์ / ความเป็นเจ้าของเมื่อเสียบดิสก์เข้ากับกล่องอื่น

สำหรับข้อมูลเพิ่มเติมดูหน้าคู่มือสำหรับคำสั่ง chown (ใช้ " man chown")


มันnobodyไม่เป็นไร แต่ ID ผู้ใช้ของฉันไม่ใช่ใครเลยและมันทำให้ฉันไม่สามารถเขียนได้
K3 --- rnc

0

ระบบไฟล์เป็นเจ้าของโดย root ตามที่ระบุโดย ls -ld สำหรับการเมานต์ WDPassport2T ของคุณและสตริงการอนุญาต drwxr-xr-x แสดงให้เห็นว่าเจ้าของรากมีสิทธิ์ RW ในขณะที่สมาชิกของกลุ่มรากพร้อมกับโลก / อื่น ๆ จะมีสิทธิ์ R เท่านั้น

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