แนวทางปฏิบัติที่ดีที่สุดสำหรับการติดตั้งพาร์ติชัน Windows


13

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

>cat /etc/fstab |grep Win7
LABEL=Windows7_OS /mnt/Win7 auto nosuid,nodev,nofail,x-gvfs-show 0 0

โดยทั่วไปทุกไฟล์ในพาร์ติชัน Windows จะเป็นของ root: root และได้รับอนุญาต 777 จากนั้นเมื่อใดก็ตามที่ฉัน mv ไฟล์ไปยังพาร์ติชันที่ทำงาน (Linux) ของฉันฉันมีไฟล์ 777 อยู่ภายใต้พาร์ติชันของฉันฉันเป็นเจ้าของ (ในขณะที่ cp ใน terminal จะให้ไฟล์ 755 แต่ถ้าทำผ่าน gnome จะบันทึกไฟล์ด้วยการอนุญาต 777) .

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


2
ชิ้นอาหารอันโอชะเล็กน้อย (uooc ... ):grep Win7 /etc/fstab
Olivier Dulac

คำตอบ:


17

คุณสามารถใช้fmaskและdmaskเมานต์ตัวเลือก*เพื่อเปลี่ยนการแมปการอนุญาตบนระบบไฟล์ ntfs

ที่จะทำให้ไฟล์ปรากฏrw-r--r--(644) และไดเรกทอรีrwxr-xr-x(755) fmask=0133,dmask=0022การใช้งาน คุณสามารถรวมสิ่งนี้กับuid=และgid=ตัวเลือกเพื่อเลือกเจ้าของไฟล์และกลุ่มหากคุณต้องการสิทธิ์การเขียนสำหรับผู้ใช้ของคุณ

* fmaskและdmaskดูเหมือนจะทำงานให้เคอร์เนล (อ่านอย่างเดียว) คนขับรถเป็นอย่างดีแม้กระทั่งว่าพวกเขาจะไม่ได้รับการบันทึกไว้ในการติดตั้งหน้าคน ตัวเลือกเหล่านี้เป็นเอกสารสำหรับ ntfs-3g


umask เริ่มต้นของฉันคือ 0022 แล้ว แต่เมื่อฉัน mv ไฟล์โดยใช้เทอร์มินัลจาก Win7 ถึงบ้านของฉันไฟล์ยังคงเป็น 777
albertma789

2
fmask และ dmask ในคำตอบคือตัวเลือกการเมานท์ เมื่อคุณเปลี่ยนใน fstab และติดตั้งระบบไฟล์ใหม่ไฟล์ / ไดเรกทอรีในระบบไฟล์ Windows ของคุณจะปรากฏขึ้นพร้อมสิทธิ์ 644/755 แทนที่จะเป็น 777/777
sebasth

5
LABEL=Windows7_OS /media/Win7 auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Windows,uid=1000,gid=1000,fmask=0133,dmask=0022 0 0ทำงานเหมือนจับใจ สิ่งที่ฉันต้องการ!
albertma789

เป็นไปได้หรือไม่ที่จะตั้งค่าเริ่มต้นสำหรับระบบไฟล์ที่เฉพาะเจาะจง (FAT32 / NTFS) แทนที่จะเป็นไดรฟ์ที่เฉพาะเจาะจง? มันจะดีถ้ามีแฟลชนี้เมื่อใช้แฟลชไดรฟ์และสื่อที่ถอดได้อื่น ๆ
JAB


7

ประการแรกไม่ใช่วิธีที่คุณควรใช้ / mnt นั่นคือสำหรับการทำงานด้านการดูแลระบบไฟล์ชั่วคราวไม่ใช่การบู๊ตทุกครั้ง

เนื่องจากพาร์ติชัน windows ไม่ได้เป็นส่วนหนึ่งของการทำงานของระบบ Linux จึงเหมาะสมที่จะเมาท์ภายใต้ / media คุณอาจต้องการพิจารณาติดตั้งภายใต้ root / as / Windows เพื่อหลีกเลี่ยงความสับสนเกี่ยวกับ / media สำหรับสื่อที่ถอดได้

สำหรับสิทธิ์ฉันจะใช้กลุ่มที่เรียกว่า windows

groupadd -g 1001 Windows

และให้สิทธิ์ที่คุณต้องการด้วยตัวเลือกเช่น:

gid=1001,umask=022

หากคุณต้องการใช้ cp และรักษาสิทธิ์ระหว่างระบบไฟล์แยกใช้ cp ด้วยแฟล็ก -p หรือ -a


umask เริ่มต้นของฉันคือ 0022 แล้ว แต่เมื่อฉัน mv ไฟล์โดยใช้ terminal จาก Win7 ถึงบ้านของฉันไฟล์ยังคงเป็น 777 เมานต์ / สื่อแทนคำแนะนำที่ดี!
albertma789

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

ในขณะที่ฉันเห็นด้วย/mntไม่เหมาะสำหรับจุดเชื่อมต่อ แต่/mediaสำหรับสื่อแบบถอดได้ (เช่นดีวีดีและไดรฟ์ USB) ฉันไม่แน่ใจว่ามีคำตอบที่ดีที่ควรจะเกิดขึ้น: unix.stackexchange.com/questions/29134/…
StrongBad

@StrongBad Filesier Hierarchy Standard นั้นไม่ได้มาตรฐานโดยเฉพาะในไดเรกทอรีตั้งแต่ Unix รุ่นเก่า ตัวอย่างเช่น FHS 2.3 ไม่ได้สะท้อนถึงการปฏิบัติ / วิ่งในปัจจุบัน ดู FHS 3.0 refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.htmlซึ่งบ่งชี้เพิ่มเติมว่าไม่ควรใช้ / mnt สำหรับเรื่องนี้ แต่เหตุผลมันชัดเจนกว่า "เทคนิคหน้าต่างไม่ใช่สื่อที่ถอดออกได้" นอกจากนี้ยังควรสังเกตด้วย ว่าไม่มีอะไรผิดปกติกับการติดตั้งไดเรกทอรีของคุณเองบน / root
jdwolf

4

โดยใช้ตัวเลือกติดuid, gid, fmaskและdmaskคุณสามารถทำให้ทั้ง NTFS ระบบแฟ้มที่สามารถเข้าถึงบัญชีผู้ใช้ทั่วไปและ / หรือกลุ่มหนึ่ง แต่นั่นคือทั้งหมดหรือไม่มีอะไร: เท่าที่ระบบไฟล์ NTFS เป็นกังวลมันก็เหมือนการทำงานในฐานะผู้ดูแลระบบอย่างเต็มรูปแบบตลอดเวลาใน Windows หรือทำทุกอย่างเหมือนรูทใน Linux ntfs-3gโปรแกรมควบคุมระบบแฟ้ม NTFS สามารถทำได้ดีกว่าว่า

หากคุณกำลังใช้ntfs-3gคุณสามารถใช้ntfsusermapคำสั่งเพื่อสร้างไฟล์การจับคู่ผู้ใช้สำหรับระบบไฟล์ NTFS ของคุณ คำสั่งจะช่วยคุณในการระบุชื่อผู้ใช้ Windows และ Windows SID ที่เกี่ยวข้องและเชื่อมโยงพวกเขากับผู้ใช้ Linux และ ID กลุ่ม

ด้วยวิธีนี้คุณสามารถเชื่อมโยง SID ของบัญชีผู้ใช้ Windows ของคุณกับ Linux UID ของคุณ ด้วยวิธีนี้เมื่อคุณติดตั้งระบบไฟล์ NTFS ด้วยไฟล์การจับคู่ผู้ใช้<NTFS filesystem root>/.NTFS-3G/UserMappingแล้วคุณสามารถใช้บัญชีผู้ใช้ Linux ปกติของคุณเพื่อเข้าถึงระบบไฟล์ NTFS ได้อย่างที่บัญชีผู้ใช้ Windows ของคุณจะสามารถเข้าถึงได้ สำหรับสิ่งที่คุณต้องการสิทธิ์ผู้ดูแลระบบใน Windows คุณจะยังต้องการรูทใน Linux

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

คุณอาจต้องการใช้windows_namesตัวเลือกการเมาท์บนพาร์ติชัน NTFS เพื่อป้องกันไม่ให้คุณสร้างไฟล์โดยใช้ชื่อที่ Windows ไม่สามารถเข้าถึงได้โดยไม่ตั้งใจ

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