Najlepsza praktyka montowania partycji Windows

13

Korzystam z podwójnego rozruchu systemu Windows i Debiana na moim laptopie. Używam głównie Linuksa, ale od czasu do czasu muszę uzyskać dostęp do plików na partycji Windows. Podczas uruchamiania moja partycja Windows jest montowana w następujący sposób.

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

Zasadniczo każdy plik na partycji Windows jest własnością root: root i ma uprawnienia 777. Następnie za każdym razem, gdy mv plik na mojej działającej partycji (Linux), mam plik 777 pod moją partycją, którego jestem właścicielem (podczas gdy cp w terminalu da plik 755, ale jeśli zrobione przez gnome, zapisze plik z uprawnieniem 777) .

Czy to najlepsza praktyka do montowania partycji? A może powinienem zamontować go w taki sposób, aby zamiast root był właścicielem wszystkich plików / katalogów i jakoś mógł ustawić wszystkie katalogi na 755, a pliki na 644, gdy montowanie ma miejsce podczas rozruchu? Jeśli tak, jak to zrobić?

albertma789
źródło
2
drobny smakołyk (uooc ...):grep Win7 /etc/fstab
Olivier Dulac

Odpowiedzi:

17

Możesz użyć fmaski dmaskzamontować opcje *, aby zmienić mapowanie uprawnień w systemie plików NTFS.

Aby pojawiały się pliki rw-r--r--(644) i katalogi rwxr-xr-x(755), użyj fmask=0133,dmask=0022. Możesz połączyć to z opcjami uid=i, gid=aby wybrać właściciela pliku i grupę, jeśli potrzebujesz dostępu do zapisu dla swojego użytkownika.

* fmaski dmaskwydaje się, że działa również dla sterownika jądra (tylko do odczytu), nawet jeśli nie są one udokumentowane na stronie mount man . Są to udokumentowane opcje dla NTFS-3G.

sebasth
źródło
Mój domyślny umask to już 0022. Ale kiedy przesyłam plik za pomocą terminala z Win7 do mojego domu, plik nadal ma
numer
2
Fmask i dmask w odpowiedzi są opcjami montowania . Gdy zmienisz je w fstab i ponownie zainstalujesz system plików, pliki / katalogi w systemie plików Windows pojawią się z uprawnieniami 644/755 zamiast 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 0działa jak marzenie. Dokładnie to, czego potrzebowałem!
albertma789
Czy możliwe jest skonfigurowanie takich ustawień domyślnych dla określonych systemów plików (FAT32 / NTFS) zamiast określonych napędów? Byłoby miło mieć to dostępne podczas korzystania z dysków flash i innych nośników wymiennych.
JAB
7

Przede wszystkim nie tak powinno się używać / mnt. Chodzi o tymczasowe wykonywanie zadań administracyjnych w systemie plików, a nie o każdym uruchomieniu systemu.

Ponieważ partycja Windows nie stanowi części działania systemu Linux, sensowne jest zamontowanie jej w katalogu / media. Możesz także rozważyć zamontowanie go w katalogu root / as / Windows, aby uniknąć nieporozumień dotyczących / media dla nośników wymiennych.

Jeśli chodzi o uprawnienia, użyłbym grupy o nazwie windows

groupadd -g 1001 Windows

i nadaj mu odpowiednie uprawnienia dzięki opcjom takim jak:

gid=1001,umask=022

Jeśli chcesz używać cp i utrzymywać uprawnienia między oddzielnymi systemami plików, użyj cp z flagą -p lub -a.

jdwolf
źródło
Mój domyślny umask to już 0022. Ale kiedy przesyłam plik przy użyciu terminala z Win7 do mojego domu, plik nadal ma numer 777. Zamiast tego warto zamontować na / media!
albertma789
Podczas kopiowania plików między systemami plików używane są domyślne uprawnienia dla tego systemu plików, chyba że zostaną zachowane. Zobacz moją zaktualizowaną odpowiedź.
jdwolf,
Chociaż zgadzam /mntsię, nie jest optymalny dla punktu montowania, /mediajest dla nośników wymiennych (np. DVD i napędów USB). Nie jestem pewien, czy istnieje dobra odpowiedź na pytanie, gdzie ma nastąpić podłączenie
StrongBad
@StrongBad Standard hierarchii systemu plików nie jest tak standardowy, szczególnie w katalogach od starych uniksowych. Na przykład FHS 2.3 nie odzwierciedla obecnych praktyk / run. Spójrz na FSP 3.0 refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.html, który dalej wskazuje, że nie należy używać / mnt do tego, ale jego racjonalność jest znacznie bardziej przejrzysta niż „technicznie Windows nie jest nośnikiem wymiennym” Warto również zauważyć że nie ma nic złego w montowaniu własnego katalogu na / root.
jdwolf,
4

Korzystanie z opcji montowania uid, gid, fmaski dmaskmożna zrobić całe NTFS system plików dostępny dla Twojego konta zwykłego użytkownika i / lub jednej grupy. Ale to wszystko albo nic: jeśli chodzi o system plików NTFS, to tak, jakby działał jako pełny administrator cały czas w systemie Windows lub jak robił wszystko jako root w systemie Linux. Sterownik ntfs-3gsystemu plików NTFS może działać lepiej.

Jeśli używasz ntfs-3g, możesz użyć ntfsusermappolecenia, aby utworzyć plik odwzorowania użytkownika dla systemu plików NTFS. Polecenie pomoże ci w identyfikacji nazw użytkowników systemu Windows i odpowiadających im identyfikatorów SID systemu Windows oraz w powiązaniu ich z identyfikatorami użytkowników i grup systemu Linux.

W ten sposób można powiązać identyfikator SID konta użytkownika systemu Windows z identyfikatorem UID systemu Linux. W ten sposób, po zamontowaniu systemu plików NTFS przy użyciu pliku odwzorowania użytkownika w miejscu <NTFS filesystem root>/.NTFS-3G/UserMapping, można użyć zwykłego konta użytkownika systemu Linux, aby uzyskać dostęp do systemu plików NTFS dokładnie tak, jak dostęp do konta użytkownika systemu Windows. Jeśli potrzebujesz uprawnień administratora w systemie Windows, nadal potrzebujesz roota w systemie Linux.

W ten sposób uzyskasz wygodny dostęp do plików na partycji Windows, ale nadal będziesz chroniony przed zepsuciem \Windowskatalogu przez błędne polecenie, chyba że działasz jako root.

Możesz także użyć windows_namesopcji montowania na partycjach NTFS, aby zapobiec przypadkowemu tworzeniu plików o nazwach, do których system Windows nie ma dostępu.

telcoM
źródło