uprawnienia do odczytu i zapisu dla partycji FAT32 w Ubuntu


16

To dziwny problem. Mam następującą tabelę partycji

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              13        5737    45978624    7  HPFS/NTFS
/dev/sda3            5738       10600    39062047+  83  Linux
/dev/sda4           10601       19457    71143852+   5  Extended
/dev/sda5           10601       11208     4883728+  82  Linux swap / Solaris
/dev/sda6           11209       15033    30720000    b  W95 FAT32
/dev/sda7           15033       19457    35537920    7  HPFS/NTFS

I podwójny rozruch Win7 (sda2) i Ubuntu (sda3) i chciałem użyć partycji FAT32 do udostępniania plików w dwóch systemach operacyjnych.

Wykonałem kilka samouczków online i zrobiłem to:

sudo mkdir /media/FAT32
sudo chmod 777 /media/FAT32
sudo mount /dev/sda6/ /media/FAT32

po zamontowaniu pliku mogę tylko czytać, ale nie mogę do niego pisać.

Sprawdziłem uprawnienia do pliku, staje się:

drwxr-xr-x

ale po odmontowaniu staje się to

drwxrwxrwx

i umiem to czytać i pisać.

Nie wiem, gdzie się mylę.

Odpowiedzi:


18

Spróbuj zamontować za pomocą rw i określ typ:

mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx

gdzie uid i gid są danymi konta użytkownika.


Umask działa podczas tworzenia nowych plików.
geek

useri autosą opcjami fstabwpisu; nie są bardzo przydatne w linii poleceń.
szarlatan

tak, właśnie przetłumaczyłem jeden z moich wpisów fstab na wiersz poleceń. Pozostawione w kawałkach, które nie są przydatne, ale nie są też dokładnie szkodliwe.
John T

2
sudo mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)
chefarov,

1

W systemach plików FAT dostępność odczytu / zapisu zależy od opcji montowania.

Zajrzyj na stronę podręcznika, aby uzyskać informacje o montowaniu i przeczytaj o opcjach montowania UID i GID dla FAT.


1

Czy próbowałeś pisać do plików za pomocą sudopolecenia? To powinno działać z bieżącą konfiguracją.

Aby uzyskać zapisy plików dla normalnego użytkownika, musisz użyć opcji uidi , aby ustawić właściciela plików na partycji na bieżący identyfikator użytkownika. Prawdopodobnie także chcą albo czy i opcje.gidmountumaskdmaskfmask

Twoje mountpolecenie wyglądałoby tak:

sudo mount -t vfat /dev/sda6 /media/FAT32 -o uid=1000,gid=1000,umask=022
# assuming your user's UID is 1000, GID is 1000
# umask=022 sets permission mode 755 for all files on the partition

1

Masz niewłaściwą kolejność żądanych poleceń:

sudo mkdir /media/FAT32
sudo mount /dev/sda6 /media/FAT32
sudo chmod 777 /media/FAT32

Dzieje się tak, że / media / FAT32 reprezentuje różne katalogi przed i po zamontowaniu. Przed tym jest katalog, który utworzyłeś i który chmod'ed 777. Po nim jest to katalog główny systemu plików w / dev / sda6.


1

Jeśli po prostu zapomnisz o wierszu poleceń i montujesz za pomocą Nautilusa, powinien ustawić go tak, jak chcesz.

Z terminalu uprawnienia do folderu przed montażem nie mają znaczenia. Liczą się opcje montowania. Próbować:

mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx,umask=133,dmask=022

Spowoduje to ustawienie plików rw-r--r--i folderów na rwxr-xr-x.

Jeśli chcesz innego użytkownika / grupy i uprawnień, na przykład do kopiowania plików z fat32 na partycję ext4 z pożądanymi atrybutami, lepiej zajrzyj na stronę mountpodręcznika. Z grubsza nakładasz umaskprzeciwieństwo tego, co byś założył chmod.


0

Czasami straciłem dysk systemu Windows z systemu Linux i rozwiązałem go za pomocą polecenia mount z opcją „-o force”, jak w tym przykładzie:

sudo mount -t ntfs-3g /dev/sda1 /media/win -o force

W twoim przypadku, będąc FAT32, powinieneś przeczytać o, ale pomóż mi. W każdym razie spróbuj na własne ryzyko!


0

Miałem dokładnie ten sam problem i jedyne, co faktycznie działało, to:

sudo mount -t vfat  /dev/sda6 /media/FAT32 -o rw,umask=0000

Zobacz także tę odpowiedź


Zrobiłem to, klucz USB jest nadal chroniony przed zapisem
Eildosa

Próbowałeś chmod 777 /media/FAT32?
lauhub

1
z jakiegoś powodu usunięcie „, umask = 0000” zadziałało
Eildosa

0

Bez ręcznego montażu linia fstab załatwi sprawę,

UUID = 1DD9-0D44 / media / exthd / TERABYTE_G vfat rw, noatime, uid = 1000, gid = 1000, użytkownik 0 0

(uid, gid są od twojego użytkownika, / media / exthd / TERABYTE_G muszą być wcześniej utworzone)

ale zauważ, że mount -a wydaje się nie stosować poprawnie do testowania nowej linii fstab, więc pomaga pełne ponowne uruchomienie.


0

Bardzo ważna naprawa / sprawdzenie dysku w systemie Windows przed użyciem go w systemie Linux, domyślnie sterowniki fat / ntfs wyłączają zapis, jeśli znajdą błędy na dysku

chkdsk d: /f 

Następnie

sudo mount -t vfat /dev/sdc1 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)

jak wcześniej powiedział

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.