Thực hành tốt nhất để gắn phân vùng Windows


13

Tôi đang chạy một khởi động kép của Windows và Debian trên máy tính xách tay của mình. Tôi sử dụng Linux chủ yếu nhưng thỉnh thoảng tôi cần truy cập các tệp của mình trong phân vùng Windows. Phân vùng Windows của tôi được gắn kết như sau khi khởi động.

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

Về cơ bản mọi tệp trong phân vùng Windows đều được sở hữu bởi root: root và có quyền 777. Sau đó, bất cứ khi nào tôi gửi một tệp vào phân vùng (Linux) đang hoạt động, tôi có một tệp 777 trong phân vùng của mình, do tôi sở hữu (trong khi cp trong thiết bị đầu cuối sẽ cung cấp tệp 755 nhưng nếu được thực hiện qua gnome sẽ lưu tệp với quyền 777) .

Đây có phải là cách thực hành tốt nhất để gắn kết một phân vùng? Hoặc tôi nên gắn kết nó sao cho thay vì root, tôi là chủ sở hữu của tất cả các tệp / thư mục và bằng cách nào đó có thể đặt tất cả các thư mục thành 755 và các tệp thành 644 khi quá trình gắn kết xảy ra khi khởi động? Nếu vậy, làm thế nào nó có thể được thực hiện?


2
miếng ngon nhỏ (uooc ...):grep Win7 /etc/fstab
Olivier Dulac

Câu trả lời:


17

Bạn có thể sử dụng fmaskdmaskgắn tùy chọn * để thay đổi ánh xạ quyền trên hệ thống tệp ntfs.

Để làm cho các tập tin xuất hiện rw-r--r--(644) và thư mục rwxr-xr-x(755) sử dụng fmask=0133,dmask=0022. Bạn có thể kết hợp điều này với uid=gid=các tùy chọn để chọn chủ sở hữu tệp và nhóm nếu bạn cần quyền truy cập ghi cho người dùng của mình.

* fmaskdmaskdường như cũng hoạt động với trình điều khiển kernel (chỉ đọc), ngay cả khi chúng không được ghi lại trong trang man mount . Chúng là các tùy chọn được ghi lại cho ntfs-3g.


Ô mặc định của tôi là 0022 rồi. Nhưng khi tôi mv một tệp sử dụng thiết bị đầu cuối từ Win7 đến nhà tôi thì tệp vẫn là 777.
albertma789

2
Các fmask và dmask trong câu trả lời là các tùy chọn gắn kết . Khi bạn thay đổi chúng trong fstab và kết nối lại hệ thống tệp, các tệp / thư mục trong hệ thống tệp Windows của bạn sẽ xuất hiện với quyền 644/755 thay vì 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 0hoạt động như một lá bùa. Chính xác những gì tôi cần!
albertma789

Có thể thiết lập mặc định như vậy cho các hệ thống tệp cụ thể (FAT32 / NTFS) thay vì các ổ đĩa cụ thể không? Thật tuyệt khi có sẵn điều này khi sử dụng ổ đĩa flash và phương tiện di động khác.
JAB


7

Trước hết đây không phải là cách bạn nên sử dụng / mnt. Đó là để thực hiện các tác vụ quản trị trên một hệ thống tệp tạm thời không phải mọi hệ thống đều khởi động.

Bởi vì phân vùng windows làm cho không có phần nào chạy hệ thống Linux, nên có ý nghĩa để gắn kết nó dưới / media. Bạn cũng có thể muốn xem xét việc gắn nó dưới root / as / Windows để tránh mọi sự nhầm lẫn về / media dành cho phương tiện lưu động.

Đối với quyền tôi sẽ sử dụng một nhóm được gọi là windows

groupadd -g 1001 Windows

và cung cấp cho nó các quyền bạn muốn với các tùy chọn như:

gid=1001,umask=022

Nếu bạn muốn sử dụng cp và duy trì quyền giữa các hệ thống tệp riêng biệt, hãy sử dụng cp với cờ -p hoặc -a.


Ô mặc định của tôi là 0022 rồi. Nhưng khi tôi mv một tập tin sử dụng thiết bị đầu cuối từ Win7 đến nhà tôi thì tập tin vẫn là 777. Thay vào đó, hãy gắn vào / media là một gợi ý tuyệt vời!
albertma789

Khi sao chép tệp giữa các hệ thống tệp, các quyền mặc định cho hệ thống tệp đó được sử dụng trừ khi bạn bảo quản chúng. Tham khảo câu trả lời cập nhật của tôi.
jdwolf

Mặc dù tôi đồng ý /mntlà không tối ưu cho điểm gắn kết, /mediadành cho phương tiện lưu động (ví dụ: ổ đĩa DVD và ổ đĩa USB). Tôi không chắc chắn có một câu trả lời hay trong đó việc gắn kết sẽ xảy ra: unix.stackexchange.com/questions/29134/ chủ
StrongBad

@StrongBad Tiêu chuẩn phân cấp hệ thống tập tin không phải là tiêu chuẩn đặc biệt là trên các thư mục kể từ các Unix cũ. Ví dụ, FHS 2.3 không phản ánh các thực hành / chạy hiện tại. Hãy xem refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.html của FHS 3.0 , điều này cho thấy thêm không sử dụng / mnt cho việc này nhưng lý do của nó rõ ràng hơn "cửa sổ kỹ thuật không thể tháo rời" không có gì sai khi gắn thư mục của riêng bạn vào / root.
jdwolf

4

Sử dụng các tùy chọn gắn kết uid, gid, fmaskdmaskbạn có thể làm cho toàn bộ hệ thống tập tin NTFS truy cập vào tài khoản của người sử dụng thường xuyên của bạn và / hoặc một nhóm. Nhưng đó là tất cả hoặc không có gì: theo như hệ thống tệp NTFS có liên quan, nó giống như chạy với tư cách Quản trị viên toàn bộ mọi lúc trong Windows hoặc thích làm mọi thứ như root trong Linux. Trình ntfs-3gđiều khiển hệ thống tập tin NTFS có thể làm tốt hơn thế.

Nếu bạn đang sử dụng ntfs-3g, bạn có thể sử dụng ntfsusermaplệnh để tạo tệp ánh xạ người dùng cho (các) hệ thống tệp NTFS của bạn. Lệnh sẽ giúp bạn xác định tên người dùng Windows và SID Windows tương ứng của họ và liên kết chúng với ID người dùng và nhóm Linux.

Theo cách này, bạn có thể liên kết SID của tài khoản người dùng Windows với UID Linux của bạn. Bằng cách đó, khi bạn gắn hệ thống tệp NTFS với tệp ánh xạ người dùng tại <NTFS filesystem root>/.NTFS-3G/UserMapping, bạn có thể sử dụng tài khoản người dùng Linux thông thường của mình để truy cập hệ thống tệp NTFS chính xác như tài khoản người dùng Windows của bạn có thể truy cập. Đối với những thứ bạn sẽ cần quyền Quản trị viên trong Windows, bạn vẫn sẽ cần root trong Linux.

Bằng cách này, bạn sẽ có quyền truy cập thuận tiện vào các tệp của mình trên phân vùng Windows, nhưng vẫn được bảo vệ khỏi làm rối \Windowsthư mục của bạn bằng một lệnh sai, trừ khi bạn đang chạy bằng root.

Bạn cũng có thể muốn sử dụng windows_namestùy chọn gắn kết trên các phân vùng NTFS để ngăn bạn vô tình tạo các tệp có tên mà Windows không thể truy cập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.