ฉันจะเขียนไฟล์ไปยัง USB โดยไม่ต้องรูทได้อย่างไร


10

ฉันมีติด USB 4GB ซึ่งผมแบ่งใช้และจัดรูปแบบการใช้sudo cfdisk /dev/sdb sudo mkfs /dev/sdb1ขณะนี้ตั้งเป็น ID 83ด้วยระบบLinuxเมื่อฉันเรียกใช้sudo fdisk -lDebian Squeeze ของฉัน

ฉันใช้pmountเพื่อเชื่อมต่อไดรฟ์ USB ภายนอก ดังนั้นทำpmount /dev/sdb1mounts มันไป/media/usb0เพราะฉันมี ff บรรทัดใน/etc/fstab:

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

หลังจากออกpmountคำสั่งแล้ว USB จะเชื่อมต่อกับ/media/usb0- ทำสิ่งที่ls -l /media/usb0ให้ฉัน:

drwx------ 2 root root 16384 Mar   2 20:08 lost+found

ดังนั้นฉันจึงไปเกี่ยวกับธุรกิจของฉันและพยายามที่จะคัดลอกไฟล์ไป/media/usb0แต่ฉันได้รับข้อผิดพลาดด้านล่าง:

$ cp ~/foo.bar /media/usb0
cp: cannot create regular file `/media/usb0/foo.bar': Permission denied

แต่เมื่อฉันออกcpคำสั่งเดียวกันกับsudoฉันสามารถคัดลอกไฟล์

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

คำตอบ:


7

คุณฟอร์แมตพาร์ติชัน sdb1 โดยใช้ext*ระบบไฟล์ (ทั้งext2 , ext3หรือext4 ; ฉันไม่สามารถเรียกคืนค่าเริ่มต้นได้) นี่เป็นระบบไฟล์เริ่มต้นบนระบบ Linux และใช้การอนุญาตไฟล์ Unixเพื่อกำหนดว่าใครสามารถแก้ไขไฟล์หรือไดเรกทอรี ระบบไฟล์ใหม่จะเริ่มต้นด้วยรูท ( /media/usb0ในกรณีนี้) ที่เป็นเจ้าของroot:rootและมักจะมีสิทธิ์อนุญาตให้แก้ไขโดยเจ้าของเท่านั้น

หากต้องการดูสิ่งนี้สำหรับ yoruself ให้ติดตั้งระบบไฟล์แล้วเรียกใช้ls -ld /media/usb0เพื่อดูความเป็นเจ้าของ / perms ปัจจุบัน ฉันเดาว่า:

drwx------ 2 root root 16384 Mar   2 20:08 /media/usb0

การแก้ไขง่ายจะไป) chownที่ติดตั้งระบบไฟล์ไปยังบัญชีของลินุกซ์ของคุณเองหรือข) chmodที่จะให้สิทธิ์ในการเขียนทุกคนด้วย

อย่างไรก็ตามท้ายที่สุดสิ่งนี้จะไม่เป็นทางออกที่ดีเนื่องจากไฟล์ที่สร้างขึ้นจะกลายเป็น UID ของคุณไม่ใช่ชื่อผู้ใช้ ซึ่งจะทำให้บัญชีไม่ตรงกันอย่างรวดเร็วเมื่อไดรฟ์ USB เชื่อมต่อกับระบบอื่น สมมติว่าคุณสามารถเชื่อมต่อได้เลยนั่นคือ - Windows ไม่สนับสนุน ext3โดยไม่มีการใช้เล่ห์เหลี่ยมเป็นพิเศษดังนั้น NTFS ( mkfs.ntfs) หรือ FAT32 ( mkfs.vfat) จะเป็นตัวเลือกที่ดีกว่ามากสำหรับระบบไฟล์


ฉันพยายามทำsudo mkfs.ntfs /dev/sdb1และsudo mkfs.vfat /dev/sdb1แต่ฉันได้รับข้อผิดพลาดsudo: mkfs.xxxx: command not foundที่xxxxเป็นทั้งและntfs vfatฉันจะทำให้ Debian Squeeze ทำงานได้อย่างไร
Eric

@ Eric: ติดตั้งNTFS-3G + ntfsprogs + dosfstools
user1686

ตกลงฉันติดตั้งแล้ว ntfs-3g-mount: failed to open /dev/fuse: Permission deniedตอนนี้เมื่อฉันพยายามที่จะติดผมได้รับข้อผิดพลาดนี้: ฉันจะทำอย่างไรกับสิ่งนี้
Eric

4

สิ่งนี้เกิดขึ้นในระบบ Debian ในภายหลัง (เช่น jessie) รวมถึงแฟลชไดรฟ์ USB ในรูปแบบ fat32 หรือ ext3,4 คุณต้องลบ (หรือแสดงความคิดเห็น) บรรทัดต่อไปนี้จาก/ etc / fstab ของคุณ :

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

หลังจากนี้คุณจะต้องเชื่อมต่อไดรฟ์ USB ของคุณโดยอัตโนมัติภายใต้การอนุญาตของบัญชีผู้ใช้ปกติและไม่รูท ดูข้อมูลรายละเอียดในฟอรั่ม Debian บนนี้การเชื่อมโยง

หลังจากนั้นไดรฟ์ USB ของคุณจะเชื่อมต่ออย่างราบรื่นพร้อมสิทธิ์การเขียนของผู้ใช้ :)


2

ใช้sudoและเปลี่ยนสิทธิ์ด้วยchmodคำสั่ง

ดูคำตอบของฉันในคำถามนั้นเพื่อดูวิธีใช้chmod:

ฉันแนะนำให้คุณใช้chmod 777เพื่ออนุญาตทั้งหมด (การใช้ls -lมันจะแสดงdrwxrwxrwx)



0

ไปที่สื่อระบบไฟล์ผ่าน GUI คลิกขวาที่ไดรฟ์ USB ที่คุณต้องการคัดลอกและเลือก - เปิดเป็นรูท พิมพ์รหัสผ่าน จากนั้นคุณสามารถคัดลอกลบลากและวาง ทั้งหมดดี


ตามที่กล่าวถึงข้างต้นโดย @Sven, root: root ในความเป็นเจ้าของคือเหตุผลที่เปิดเป็น root ที่ terminal หรือ gui หรือใช้ chown เพื่อเปลี่ยนเจ้าของหรือกลุ่มเพื่ออนุญาตให้คุณใช้ usb นั้นตามที่คาดไว้
linuxdev2013
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.