ฉันจะใช้ 'chmod' ในพาร์ติชัน NTFS (หรือ FAT32) ได้อย่างไร


128

ฉันมีสคริปต์ที่ฉันต้องการเรียกใช้งานบนพาร์ติชัน NTFS การอนุญาตของสคริปต์ถูกตั้งไว้ที่ 600

ฉันพยายามแก้ไขการอนุญาตโดยการเรียกใช้chmod 755 script.shซึ่งไม่ได้รายงานความล้มเหลวหรือสิ่งใด - แต่มันก็ไม่เปลี่ยนการอนุญาตในไฟล์:

$ stat script.sh

  File: `script.sh'
  Size: 297070      Blocks: 584        IO Block: 4096   regular file
Device: 811h/2065d  Inode: 35515       Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/  xxxxxx)   Gid: ( 1000/  xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700

$ chmod 755 script.sh
$ stat script.sh

  File: `script.sh'
  Size: 297070      Blocks: 584        IO Block: 4096   regular file
Device: 811h/2065d  Inode: 35515       Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/  xxxxxx)   Gid: ( 1000/  xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700

อย่างที่คุณเห็นมันยังคงไม่เปลี่ยนแปลง


ทางออกที่ดีกว่าสามารถพบได้ที่นี่คำถามสองข้อนี้ควรเชื่อมโยงกัน!

คำตอบ:


79

โหมดถูกกำหนดโดยตัวเลือกการเมาท์ของพาร์ติชั่น (คุณไม่สามารถเปลี่ยนได้ผ่าน chmod)

สำหรับ '755' ในไฟล์และ '777' ในไดเรกทอรีที่คุณต้องการใช้

sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever

ตกลงนั่นจะอธิบายสิ่งอื่นด้วย
Nathan Osman

4
สิ่งที่ฉันควรจะแทนที่/dev/whateverและ/mnt/whateverถ้าฉันต้องเปลี่ยนการอนุญาตของพาร์ติชัน HDD ของฉันที่ชื่อว่า/media/Prtn
pranphy

3
การติดตั้งด้วยวิธีนี้จะเป็นการรักษาการตั้งค่าดั้งเดิมของดิสก์หรือไม่? คือมันปลอดภัยที่จะติดตั้งไดรฟ์ Windows?
Jonathan

1
ฉันตั้งค่าผู้ใช้เป็น 'andrew' ซึ่งเป็นผู้ใช้หลักของฉัน โดย ls สำหรับพาร์ติชัน ntfs แสดงว่าไฟล์ / ไดเรกทอรีทั้งหมดในนั้นเป็นของตัวเองโดยรูท
deathangel908

ntfs-3g.usermapวิธีการแก้ปัญหาที่แท้จริงคือ ดูด้านล่าง ...
Eduardo Cuomo

86

ขัดกับสิ่งที่คนส่วนใหญ่เชื่อ, NTFS เป็นระบบแฟ้ม POSIX-compatible¹และก็เป็นไปได้ที่จะใช้สิทธิ์ใน NTFS

ในการเปิดใช้งานสิ่งนี้คุณต้องมี "ไฟล์การจับคู่ผู้ใช้" หรือเพียงแค่ให้permissionsตัวเลือกเมื่อทำการติดตั้ง (เมื่อไม่ต้องการความเข้ากันได้กับ Windows) สิ่งนี้แม็พผู้ใช้ linux บนระบบของคุณด้วย ID ผู้ใช้เช่น NTFS / Windows ใช้ภายใน

ดูmanpage ของ ntfs-3gสำหรับข้อมูลและตัวอย่างบางส่วน หากท่านต้องการข้อมูลเพิ่มเติมโปรดดูที่เอกสารขั้นสูง NTFS-3G เกี่ยวกับความเป็นเจ้าของและการอนุญาต

(โปรดทราบว่าสิ่งนี้ไม่สามารถใช้ได้กับระบบไฟล์ FAT)

¹ได้มันสามารถเก็บชื่อไฟล์ที่ถูกต้องใน linux / unix แต่ไม่สามารถใช้กับ Windows, รองรับ symlinks & hardlinks เป็นต้น


4
นี่คือเอกสารที่ดี ในระยะสั้น: sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFSแล้วsudo mv UserMapping /media/MY-NTFS/.NTFS-3G/
แกะบิน

1
ดังนั้นสิ่งนี้จะอนุญาตให้คุณตั้งค่าการอนุญาตเช่นเดียวchmod 655 /some/fileกับในพาร์ติชัน NTFS ที่ติดตั้งใน Linux? ฉันกำลังพยายามหาวิธีผสานพาร์ติชั่นโฮมของฉันจาก linux ไปยัง c: \ Users การใช้ usermap ช่วยให้ฉันได้รับอนุญาตทั้งหมดหรือไม่ ฉันวางแผนที่จะติดตั้งไดเร็กทอรี c: \ Users ไปที่ / home ใน linux
trusktr

7
ฉันขอย้ำคำพูดของคุณอีกครั้ง: "เมื่อไม่จำเป็นต้องใช้งานร่วมกับ Windows ได้" ref: askubuntu.com/questions/92863/…
มุมมองรูปไข่

1
ntfs-3g manpageลิงก์ใช้งานไม่ได้
ctrl-alt-delor

Eduardo Cuomo เขียนตัวอย่างที่ดีงามของทุกขั้นตอนที่จำเป็นในการสร้าง "User Mapping File" ที่นี่: askubuntu.com/a/887502/327339
Gabriel Staples

38

สำหรับพาร์ติชัน NTFS ใช้permissionsตัวเลือกใน fstab

ก่อนอื่นให้ถอนติดตั้งพาร์ติชัน ntfs

ระบุ UUID พาร์ติชันของคุณด้วย blkid

sudo blkid

จากนั้นแก้ไข /etc/fstab

# Graphical 
gksu gedit /etc/fstab

# Command line
sudo -e /etc/fstab

และเพิ่มหรือแก้ไขบรรทัดสำหรับพาร์ติชัน ntfs

# change the "UUID" to your partition UUID
UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0

ทำจุดยึด (หากจำเป็น)

sudo mkdir /media/windows

ตอนนี้เมาท์พาร์ติชัน

mount /media/windows

ตัวเลือกที่ฉันให้กับคุณautoจะติดตั้งพาร์ติชั่นโดยอัตโนมัติเมื่อคุณบู๊ตและusersอนุญาตให้ผู้ใช้เมานต์และต่อเชื่อม

จากนั้นคุณสามารถใช้ chown และ chmod บนพาร์ติชัน ntfs


2
สิทธิ์เหล่านี้จัดเก็บอย่างไร ในโฆษณา? ข้อมูลเมตาอื่น ๆ
ζ--

แล้ว fat32 ล่ะ? ฉันมีการ์ด Micro sd ซึ่งป้องกันการเขียนและฉันไม่สามารถเข้าถึงจัดรูปแบบได้
Waqas

@RanaMuhammadWaqas - นี่เป็นคำถามเก่า แต่คุณสามารถเมานต์ด้วยตัวเลือกที่แตกต่างกัน ยากที่จะทราบว่าปัญหาของคุณคืออะไรอาจระบุฮาร์ดแวร์ของคุณและถามคำถามแยกต่างหาก
Panther

@ bodhi.zazen usersนัยnoexec , nosuidและ nodev ไม่ได้? ผู้ใช้สามารถเมานท์ / ต่อเชื่อมกับnoexecการตั้งค่าอย่างไร
Khurshid Alam

1
@EduardoCuomo - การโพสต์ความคิดเห็นในคำตอบที่ระบุว่าไม่ได้ทำงานก็ไม่น่าจะช่วยคุณได้ ระบบไฟล์อะไร ฉันแนะนำให้คุณเปิดคำถาม คุณต้องระบุระบบไฟล์และโพสต์รายการ fstab ของคุณ
Panther

20

นอกจากการตั้งค่า fmask และ / หรือ dmask ตามคำตอบของ htorque ข้างต้นหากคุณต้องการรันสคริปต์บนไดรฟ์ฉันต้องตั้งค่าตัวเลือก "เมาท์" exec ด้วย

ดังนั้นตัวอย่างจะเป็น:

sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000,exec /dev/whatever /mnt/whatever

13

คุณสามารถเรียกใช้ตัวแปลสคริปต์อย่างชัดเจนได้ตลอดเวลาซึ่งไม่จำเป็นต้องได้รับอนุญาตการดำเนินการ หากสคริปต์ใช้bashสามารถตรวจสอบได้โดยดูที่บรรทัดแรกของสคริปต์เพียงรัน

bash script.sh

โปรดทราบว่าสคริปต์เรียกสคริปต์หรือไบนารีอื่น ๆ ในพาร์ติชันเดียวกันสิ่งนี้จะไม่ทำงาน โปรดทราบว่ากลยุทธ์นี้ใช้ไม่ได้กับไบนารีซึ่งตรงข้ามกับไฟล์สคริปต์ต้นฉบับที่เขียนใน Bash Script, Perl, Python หรือสิ่งที่คล้ายกัน


+1 - ฉันไม่เคยคิดที่จะเรียกใช้วิธีนั้น
Nathan Osman

8
เพื่อรันไบนารีใช้/lib64/ld-linux-x86-64.so.2 ./program.binสำหรับโปรแกรม 64 บิตและ/lib/ld-linux.so.2 ./program.bin32 บิต
Lekensteyn

8

ตามที่เป็นเจ้าของและสิทธิ์ส่วนของเอกสาร NTFS-3G เราสามารถใช้ตัวเลือกภูเขาเพื่อควบคุมไฟล์การเข้าถึงและการสร้าง ชุดค่าผสมมีความซับซ้อนมาก (ดูตารางที่สองมี) นอกจากนี้ฉันไม่ได้อ่านและรับทั้งหมด ตัวอย่างเช่นฉันไม่ทราบว่า POSIX ACLs ถูกเลือกในเวลารวบรวมหรือไม่ของแพ็คเกจไบนารี NTFS-3G แต่สิ่งที่ดีที่สุดที่ฉันได้ออกมาก็คือการใช้ไฟล์การทำแผนที่ผู้ใช้ร่วมกับตัวเลือกการเมานท์เพื่อประมาณการทำแผนที่ความเป็นเจ้าของไฟล์และการอนุญาตระหว่าง Windows และ Linux


คำเตือน : นี่เป็นสิ่งที่ดีที่สุดสำหรับการแชร์พาร์ติชันข้อมูล NTFS ของฉัน(ไดรฟ์D:บน Windows) ระหว่าง Windows 8 แบบดูอัลบูตและ Kubuntu 14.04 คำแนะนำจะถูกบันทึกด้วยการหวนกลับอย่างระมัดระวัง แต่ไม่ผ่านการทดสอบอย่างละเอียด มันเหนื่อยเกินไปและน่าเบื่อเกินกว่าที่จะทำซ้ำขั้นตอนทั้งหมดอีกครั้ง ดังนั้นทำตามความเสี่ยงของคุณเอง แต่ถ้าคุณทำกลับมาแบ่งปันประสบการณ์ของคุณ หากคุณตัดสินใจที่จะทำตามคำแนะนำโปรดอ่านอย่างเต็มที่เพื่อให้ได้ภาพรวมก่อนที่จะลงมือ โชคดี!


เอาล่ะคุณไปได้แล้ว! คำแนะนำโดยละเอียดประกอบด้วยสามส่วน ควรดำเนินการส่วนที่ 1 บน Windows ในขณะที่ส่วนที่ 2 บน Linux ส่วนที่ 3 ใช้สำหรับทดสอบ

ส่วนที่ 1

ส่วนการแมปผู้ใช้ของเอกสาร NTFS-3G ระบุรุ่นที่สองเพื่อตั้งค่าการแมปผู้ใช้ระหว่าง Windows และ Linux รุ่น Windows หนึ่งและรุ่น Linux หนึ่ง ประสบการณ์ของผมว่ารุ่นลินุกซ์สิ้นสุดกับพลาด บัญชีลินุกซ์ไม่ได้แมปไปยังบัญชีผู้ใช้ Windows ของฉัน แต่บางคนที่ไม่รู้จักบัญชีปรากฏภายใต้SID ผลที่ได้เป็นระเบียบเนื่องจากบัญชีที่ไม่รู้จักนี้เป็นเจ้าของไฟล์ทั้งหมดของบัญชี Windows ของฉัน ในสถานการณ์เช่นนั้นหากคุณไม่มีสิทธิ์ระดับผู้ดูแลระบบในการเป็นเจ้าของกรรมสิทธิ์ไฟล์ภายใต้บัญชี Windows ของคุณจะไม่สามารถเข้าถึงได้ แต่แม้ว่าคุณจะจัดการมันก็ยังอยู่การทำแผนที่ผิด นั่นหมายความว่าในภายหลังไฟล์ใดก็ตามที่คุณสร้างบน Linux จะถูกกำหนดให้กับบัญชีที่ไม่รู้จักใน Windows และไฟล์บน Windows จะถูกกำหนดให้รูทบน Linux (ถ้าฉันจำได้ถูกต้อง) ดังนั้นใน Windows คุณจำเป็นต้องกลับมาเป็นเจ้าของอีกครั้งและในการเปลี่ยนความเป็นเจ้าของ Linux นั่นไม่ใช่สิ่งที่เราคาดหวัง หลังจากพยายามหลายครั้งเพื่อแก้ไขปัญหาฉันก็ยอมแพ้และหันมาใช้ Windows รุ่น อันนั้นใช้ได้ผล คำแนะนำโดยละเอียดที่ดึงมาจากส่วนที่เกี่ยวข้องของเอกสาร NTFS-3G มีดังนี้:

  1. ดาวน์โหลดเครื่องมือusermapแยกไฟล์ออก (ในกรณีของฉันไดรฟ์C:) ดีกว่านอกพาร์ติชัน NTFS (ในไดรฟ์เคสของฉันD:) เพื่อแชร์

  2. เปิดบรรทัดคำสั่งของ Windows เปลี่ยนเป็นไดเร็กทอรีที่แตกtools(ตามค่าเริ่มต้น) ของusermapเครื่องมือ จากนั้นรันคำสั่งต่อไปนี้:

    C:\tools> mapuser > UserMapping
    

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

    # Generated by usermap for Windows, v 1.1.5
    # For Windows account "Account" in domain "Domain"
    # Replace "user" and "group" hereafter by matching Linux login
    user::SID
    :group:SID
    

    อย่างแรกSIDควรเป็นผู้ใช้ SID ของคุณในขณะที่กลุ่มที่สองของคุณ SID คุณสามารถตรวจสอบพวกเขาตามลำดับคำสั่งและwhoami /userwhoami /groups

  3. หลังจากที่คุณแน่ใจว่า SID นั้นถูกต้องแล้วให้ทำตามคำแนะนำในความคิดเห็นนั่นคือเปลี่ยนuserในuser::SIDชื่อผู้ใช้ของคุณและgroupใน:group:SIDบรรทัดชื่อกลุ่มหลักของคุณบน Linux บน Ubuntu พวกเขาเหมือนกัน ยิ่งกว่านั้นเพิ่มชื่อกลุ่ม Linux ของคุณด้วยหลังเครื่องหมายโคลอนแรกของuser::SIDบรรทัด user:group:SIDดังนั้นบรรทัดควรมีลักษณะบางอย่างเช่น ดูเหมือนว่าหากไม่ทำเช่นนั้นไฟล์ที่สร้างบน Windows จะถูกกำหนดให้user:rootบน Linux

  4. บันทึกไฟล์ ย้ายไปยังไดเร็กทอรีที่ชื่อ.NTFS-3G(สร้างถ้ายังไม่มี) บนพาร์ติชัน NTFS ที่จะแชร์ (ในไดรฟ์เคสของฉันD:)

  5. ขั้นตอนนี้ใช้สำหรับการทดสอบในส่วนที่ 3 บนพาร์ติชัน NTFS ที่ใช้ร่วมกันให้สร้างไดเรกทอรีใหม่และไฟล์ใหม่

ส่วนที่ 2

ตอนนี้บูตเข้าสู่ Linux แก้ไขไฟล์sudo /etc/fstabเพิ่มหรือแก้ไขบรรทัดสำหรับพาร์ติชัน NTFS ที่ใช้ร่วมกันในลักษณะดังนี้:

UUID=...    /data    ntfs    defaults,umask=077,utf8    0    0

สิ่งสำคัญคือการตั้งค่าumask( dmaskและfmaskอาจทำงานได้ แต่ไม่ผ่านการทดสอบ) เลือกค่าสำหรับumaskคุณชอบ 077แต่ผมเลือก ดูเหมือนว่าไม่มีการตั้งค่านี้สิทธิ์แบบเต็มจะถูกมอบให้กับoไฟล์ที่สร้างขึ้นใหม่

บันทึกไฟล์ ตอนนี้sudo mountหรือ remount ( sudo umountแล้วsudo mount) พาร์ทิชัน NTFS ที่ใช้ร่วมกัน (ในกรณีของฉัน/data):

$ sudo mount /data

ส่วนที่ 3

ตอนนี้ (ยังอยู่บน Linux) cdไปยังจุดเมานต์ (ในกรณีของฉัน/data) ls -lไฟล์ที่นั่น ตรวจสอบว่าการเป็นเจ้าของและการอนุญาตของพวกเขาตรงตามลำดับที่คุณระบุในUserMappingไฟล์และumaskคุณตั้งไว้ใน/etc/fstab(การจับคู่ระหว่างสิทธิ์และumaskต้องมีการคำนวณที่สมบูรณ์ดูman (1) umaskสำหรับข้อมูลเพิ่มเติม) หากพวกเขาทำขอแสดงความยินดีเป้าหมายครึ่งสำเร็จ มิฉะนั้นคุณยากจน ถาม Ubuntu หรือ Windows

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

EOF


6

ฉันรู้ว่ากระทู้เก่า แต่ยังคงมีความเกี่ยวข้องและขาดเคล็ดลับกรณีการใช้งานโดยเฉพาะประกอบด้วยคำแนะนำที่แตกต่างกันในฟอรัม / กระทู้อื่น ๆ และทดสอบบน Ubuntu GNOME 13.04 ที่ฉันต้องการไดรฟ์ภายนอกเพื่อเก็บห้องสมุด Steam ...

เมื่อพาร์ติชัน NTFS อยู่ในไดรฟ์ usb ภายนอกตัวอย่างเช่น - ซึ่งหมายความว่าพาร์ติชันติดตั้งแบบทันทีเมื่อเชื่อมต่อ - จากนั้นคุณสามารถใช้วิธีการต่อไปนี้เพื่อสร้างพาร์ติชัน udev ntfs ntfs ที่มีสิทธิ์ดำเนินการ

เปิดหน้าต่างเทอร์มินัลและทำ:

$ sudo nano /etc/udev/rules.d/90-usb-disks.rules

จากนั้นวางบรรทัดนี้ในสิ่งที่ควรเป็นไฟล์ว่าง / ใหม่ (หากไม่ใช่ให้ออกจากนาโนและออกคำสั่งอีกครั้ง แต่เริ่มต้นชื่อไฟล์ด้วยจำนวนที่สูงกว่าเช่น 91 -... ):

ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"

จากนั้นบันทึกและปิด ถอดปลั๊กไดรฟ์จากนั้นทำในเทอร์มินัล:

$ sudo service udev restart

ถัดไปเสียบไดรฟ์กลับเข้าไปและสนุกกับ :)


1
ดีมากนี่ควรเป็นคำตอบที่ยอมรับได้
leftaroundabout

4

ทุกขั้นตอน:

  1. ติดตั้งntfs-3g:

    sudo apt-get install -y ntfs-3g
    
  2. ถอนติดตั้งพาร์ติชันNTFS :

    sudo umount /mnt/windows
    
  3. ใช้ntfs-3g.usermapเพื่อสร้างUserMappingไฟล์ของคุณ:

    sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS
    

    หรือ

    sudo ntfs-3g.usermap /dev/sdb1
    
  4. ติดตั้งพาร์ติชันNTFS ใหม่เพื่อเพิ่มUserMappingไฟล์:

    mount -a
    sudo mkdir /mnt/windows/.NTFS-3G
    sudo mv UserMapping /mnt/windows/.NTFS-3G/
    
  5. อัปเดตfstabไฟล์ของคุณ:

    sudo vim /etc/fstab
    

    อัปเดตสายติด :

    1. สำรองสายเชื่อมต่อปัจจุบันของคุณ! ทำซ้ำบรรทัดและใส่ความคิดเห็นโดยการเพิ่ม#ที่จุดเริ่มต้น
    2. เปลี่ยนถัดไป: UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0
    3. โดยถัดไป: UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0 (ใช้ntfs-3gและdefaultตัวเลือกเท่านั้น)

    ควรมีลักษณะดังนี้:

    #UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0 UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0

  6. สุดท้ายให้นับใหม่โดยใช้fstab:

    sudo umount /mnt/windows
    sudo mount -a
    

ทำสิ่งนี้เพียงครั้งเดียวสำหรับทุกพาร์ติชันNTFS ที่คุณมี!

คำเตือนด้วย WINDOWS OS!

ฉันตรวจสอบกับWindows 7+และการอนุญาตมีผลกับ Windows OS! ฉันเปลี่ยนการอนุญาตของ Home Directory ในพาร์ติชั่น Windows และเมื่อฉันใช้ Windows อีกครั้งฉันจะเห็นว่าผู้ใช้เสีย!


1

ไม่มีคำถามที่เกี่ยวข้องสำหรับอุปกรณ์ USB คำตอบนี้ให้แฮ็คที่น่าเกลียดหากคุณต้องการเชื่อมต่ออุปกรณ์ USB ทุกตัวโดยอัตโนมัติด้วยการอนุญาตให้ใช้งาน


1

เมาท์พาร์ติชัน NTFS ในไดรฟ์ USB ที่มีสิทธิ์และเจ้าของแบบกำหนดเอง

ใน Linux โหมดของการ NTFS (และ FAT32) จะถูกกำหนดโดยพาร์ทิชันของตัวเลือกภูเขา คุณไม่สามารถเปลี่ยนได้ผ่าน chmod

อัสสัมชั: ไดรฟ์ USB ถูกมองว่าเป็น sdb1 , การปรับเปลี่ยนเพื่อให้ตรงกับตัวอักษรไดรฟ์และจำนวนพาร์ทิชันในกรณีของคุณ ไวยากรณ์ทั่วไปคือsdxnที่ไหนxคืออักษรชื่อไดรฟ์และnเป็นหมายเลขพาร์ติชันที่เห็นโดยตัวอย่างเช่นsudo lsblk -f

การเตรียม

  • ถอนติดตั้งพาร์ติชัน NTFS

    sudo umount /dev/sdxn   # general syntax
    sudo umount /dev/sdb1   # modify to match your case
    
  • สร้างจุดยึดที่กำหนดเอง (เฉพาะในกรณีที่คุณต้องการจุดต่อใหม่) ตัวอย่างเช่น

    sudo mkdir -p /mnt/sd1
    
  • ตรวจสอบหมายเลขผู้ใช้ของคุณuid(โดยปกติคือ 1,000 บางครั้ง 1001 หรือ 1002 ... )

    grep ^"$USER" /etc/group
    

    และใช้หมายเลขนั้นหากคุณต้องการคว้าความเป็นเจ้าของ (ค่าเริ่มต้นคือroot)

เมาท์พาร์ติชัน NTFS

ตัวอย่างที่ 1 (ไม่ต้องดำเนินการอนุญาตสำหรับไฟล์, ไม่สามารถเข้าถึงสำหรับ 'อื่น ๆ '),

sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdxn /mnt/sd1  # general syntax
sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb1 /mnt/sd1  # modify to match your case
  • ในกรณีนี้คุณสามารถเรียกใช้สคริปต์this-scriptด้วย

    bash /mnt/sd1/this-script
    

ตัวอย่างที่ 2 (ด้วยการดำเนินการอนุญาตสำหรับไฟล์, การเข้าถึงสำหรับ 'คนอื่น')

sudo mount -o rw,user,uid=1000,umask=007,exec /dev/sdxn /mnt/sd1  # general syntax
sudo mount -o rw,user,uid=1000,umask=007,exec /dev/sdb1 /mnt/sd1  # modify to match your case
  • ในกรณีนี้คุณสามารถเรียกใช้สคริปต์this-scriptด้วย

    /mnt/sd1/this-script
    

    และคุณสามารถเรียกใช้โปรแกรมที่เรียกใช้งานได้เช่นกันจากตำแหน่งนี้ (ไม่ใช่ที่แนะนำ)

ตัวอย่างที่ 3 (การอนุญาตอย่างเต็มรูปแบบสำหรับทุกคนซึ่งสะดวก แต่ไม่ปลอดภัยเมื่อมีผู้ใช้หลายคน)

sudo mount -o rw,users,umask=000,exec /dev/sdxn /mnt/sd1  # general
sudo mount -o rw,users,umask=000,exec /dev/sdb1 /mnt/sd1  # modify to match your case

/media$ sudo mkdir -p sdb1 /media$ sudo mount -o rw,users,umask=000,exec /dev/sdb1 ./sdb1/ mount: block device /dev/sdb1 is write-protected, mounting read-only
alhelal

@alhelal ฉันกลัวว่าฮาร์ดแวร์ของไดรฟ์ USB ของคุณเป็นแบบอ่านอย่างเดียวหรือ 'ล็อคตาราง' แต่อาจมีปัญหาบางอย่างกับระบบไฟล์และหากระบบไฟล์เสียหายคุณอาจสามารถแก้ไขได้ด้วยการซ่อมใน Windows ไม่ว่าจะด้วยวิธี GUI หรือบรรทัดคำสั่งchkdsk /f X:ตามลิงค์นี้ubuntuforums.org / … - หากยังไม่มีโชคสำรองข้อมูลและลองตามaskubuntu.com/questions/144852/ …
sudodus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.