Jak ustawić domyślne uprawnienia dla automatycznie montowanych napędów FAT w Ubuntu 9.10?

17

Mam wiele napędów FAT32, które chciałbym zamontować w Ubuntu, dzięki czemu mają tryb uprawnień 700 dla katalogów i 600 dla wszystkich innych plików. Domyślnie mają 755 na wszystkie pliki, co nie jest szczególnie przydatne, ponieważ prawie żaden katalog inny niż katalog nie powinien być wykonywalny, a to psuje repozytoria kontroli wersji hostowane na dyskach.

„Back in the day” Chciałbym mieć dyski wymienione w / etc / fstab z umask / dmask, którego chcę i nie było czegoś takiego jak domyślny. Obecnie dyski są montowane automatycznie pod nazwami woluminów. Co jest świetne, tyle że teraz nie mam pojęcia, jak ustawić wartość domyślną.

Próbowałem zmienić klucz gconf / system / storage / default_options / vfat / mount_options bez widocznego efektu. Początkowo było to 077, ale zamontowany dysk odzwierciedla domyślną wartość 022; zmieniając go i ponownie wkładając dyski, pliki wciąż miały bity uprawnień 755.


źródło
hę myślałem, że twoja nazwa użytkownika wygląda znajomo. używam mutagenu od lat. witamy w Super User. :)
quack quixote
także, której wersji ubuntu używasz? zakładam, że Karmic, ale możesz mówić o Świadomym RC, a nawet o czymś wcześniej.
quack quixote
Wyjaśnione w tytule. Miałem nadzieję, że to nie będzie miało znaczenia, ponieważ mam kilka starszych instalacji, a coś takiego jak montaż nie powinno się zmieniać co sześć miesięcy.
niestety HAL przeszedł sporo zmian w ostatnich wersjach. 9.04 i wcześniejsze są prawdopodobnie takie same; niektóre rozwiązania mogą dotyczyć wszystkich; ale 9.10 używa DeviceKit, a HAL jest przestarzały. Nie ufam żadnej z rzeczy DBus / HAL / DeviceKit, aby pozostać stabilnym w tej chwili.
quack quixote
1
komentarz pagin : Myślę, że problem jest znacznie bardziej fundamentalny: chcę zmodyfikować umask do automatycznego montowania niezależnie od tego, które urządzenie łączy się z komputerem. Tj. Jeśli mój przyjaciel wpadnie z jego pendrivem i chcę po prostu skopiować jakiś plik z tego, chcę, aby były one automatycznie przesyłane jako chmod 750, a nie 000 lub 777, 770 lub cokolwiek innego. Naprawdę powinna być gdzieś możliwość skonfigurowania tego ...
quack quixote

Odpowiedzi:

7

Zaktualizowano
Niestety nie ma wbudowanych środków, aby to zrobić. „Właściwą drogą”, obsługiwaną , jest ustawienie linii / etc / fstab z domyślnymi opcjami montowania, które chcesz. Oznacza to, że ustawienia domyślne muszą być ustawione dla poszczególnych urządzeń, ale możesz użyć etykiety partycji lub identyfikatora UUID, aby uniknąć wymagania określonej ścieżki urządzenia. W szczególności ta metoda wydaje się odbyć przed upoważnienia PolicyKit stacjonarnym.

Fora Ubuntu, Launchpad i Bugzilla Gnome'a zawierają wiele postów od użytkowników szukających tej samej funkcjonalności, której szukasz, zarówno na NTFS, jak i FAT32. Ubuntu 9.10 i 10.04 zapewniają domyślne automatyczne montowanie poprzez kombinację dysków DeviceKit-Disks, GVFS i Nautilus.

DeviceKit-disks zapewnia interfejs systemu plików , którego argument opcji wydaje się być właściwym sposobem konfiguracji opcji montowania. Ale wydaje się, że GVFS / Nautilus nie zapewnia żadnych środków, za pomocą interfejsu użytkownika lub pliku konfiguracyjnego, do określenia tej opcji podczas automatycznego montowania klucza USB.

Istnieje kilka obejść:

  • Ten błąd Launchpad zawiera dostarczoną przez użytkownika poprawkę, która zmienia domyślne ustawienia DeviceKit-Disks w niestandardowym pakiecie devicekit-disks .

    Na plus może to być najłatwiejszy sposób na ustawienie preferowanych ustawień domyślnych dla wszystkich urządzeń. Wadą jest to, że musisz zaktualizować ponownie, gdy pakiet zostanie zaktualizowany.

  • W jednym z postów na forum Ubuntu zaproponowano specyficzny dla urządzenia skrypt obejścia :

    #!/bin/bash
    devkit-disks --unmount /dev/disk/by-uuid/0D3594370C618A2A
    devkit-disks --mount-options "dmask=000" --mount /dev/disk/by-uuid/0D3594370C618A2A
    

    Jest to również nieoptymalne, ponieważ będziesz musiał to aktualizować o określone urządzenia. Ale pozwala to uniknąć problemu z autoryzacją, który może mieć obsługiwane rozwiązanie fstab .

quack quixote
źródło
komentarz Rndmerle : Na marginesie, w Ubuntu Lucid (10.4) polecenie devkit-disks zostało zastąpione przez / usr / bin / udisks
quack quoteote
To obejście z udisk - unmount itp., Działa tylko dla umask i dmask. Inne opcje są niedozwolone, jak można się domyślić na podstawie łatki, którą połączyłeś.
user39559,
1

Oto moja linia fstab, za pomocą której można podłączyć pamięć USB z uprawnieniami odpowiednimi dla prywatnego klucza ssh (fmask = 177). Próba i błąd poinformowały mnie, że muszę dodać opcję „użytkownik”, aby uruchomić automount.

/dev/disk/by-uuid/C2F8-E4F2  /media/TIM_ABELL  vfat  rw,user,nosuid,nodev,dmask=0077,flush,fmask=177

Musiałem także utworzyć punkt montowania, który wcześniej był automatyczny:

mkdir /media/TIM_ABELL

identyfikator UUID dysku można znaleźć, podłączając dysk i uruchamiając go

mount
ls -l /dev/disk/by-uuid/

co pozwoli ci uzyskać punkt montowania -> urządzenie -> mapowanie uuid

Tim Abell
źródło
1
zamiast korzystać z pełnych ścieżek / dev / disk / by-uuid / FOO lub / dev / disk / by-label / FOO , możesz użyć składni skrótu UUID=FOOlub LABEL=FOO.
quack quixote
0

Czy naprawdę naprawdę wypróbowałeś starą metodę / etc / fstab? Mi to pasuje. Ubuntu używa fstab, niezależnie od automountera HAL.

Ivan Petrushev
źródło
2
Co mam umieścić w / etc / fstab, aby wszystkie dyski FAT były montowane w ten sposób? Nie chodzi mi o to, że „mógłbym to zrobić za pomocą fstab” (nie mogę), to „nie stało się tak w modelu fstab, ponieważ nic nie zamontowało, chyba że kazałem”.
0

Zrobiłem trochę skryptów bash i wyszedłem z tą ulepszoną wersją skryptu obejścia, który jest opublikowany powyżej:

#!/bin/bash
dev_path="/dev/disk/by-id"
usb_drives=$(find $dev_path -name "usb*")
mount_options="utf8=0,codepage=850,iocharset=iso8859-1"

for dev in $usb_drives ; do
  if ( devkit-disks --show-info $dev | \
       grep "is mounted:" | grep -q 1 ) ; then
    devkit-disks --unmount $dev
    devkit-disks --mount $dev \
      --mount-options $mount_options
  fi
done

Znajduje wszystkie urządzenia podłączone przez USB (mam nadzieję, że wszystkie pendrivy), które są już zamontowane, i ponownie je instaluje, używając mount_options (w moim przypadku pozwól im używać zestawu znaków iso-8859-1 w celu zapewnienia zgodności z innymi ograniczonymi systemami operacyjnymi)

Guido I
źródło
3
Co się stanie, jeśli podłączysz USB ext4? Czy zastosuje maski i inne opcje, które chcesz (i tylko mają sens) dla FAT?
user39559,