Bagaimana cara mengatur izin default untuk drive FAT otomatis di Ubuntu 9.10?

16

Saya punya banyak drive FAT32 yang ingin saya pasang di Ubuntu sehingga mereka memiliki mode izin 700 untuk direktori dan 600 untuk semua file lainnya. Secara default, mereka memiliki 755 untuk semua file, yang tidak terlalu berguna karena hampir tidak ada direktori yang tidak dapat dieksekusi, dan itu mengacaukan repo kontrol versi yang dihosting di drive.

"Kembali pada hari" Saya akan memiliki drive terdaftar di / etc / fstab dengan umask / dmask yang saya inginkan dan tidak ada yang namanya default. Saat ini, drive otomatis di bawah nama volumenya. Yang hebat, kecuali sekarang saya tidak tahu cara mengatur default.

Saya telah mencoba mengubah kunci / system / storage / default_options / vfat / mount_options gconf tanpa efek yang tampaknya. Awalnya 077 tetapi drive yang dipasang mencerminkan default 022; mengubahnya dan memasukkan kembali drive menghasilkan file masih memiliki bit izin 755.


sumber
Hah. merasa nama pengguna Anda tampak familier. Saya sudah menggunakan mutagen selama bertahun-tahun. selamat datang di Pengguna Super. :)
quack quixote
juga, versi ubuntu apa yang Anda gunakan? Saya akan menganggap Karmic, tetapi Anda mungkin berbicara tentang Lucid RC, atau bahkan sesuatu yang lebih awal.
quack quixote
Dijelaskan dalam judul. Saya berharap itu tidak masalah, karena saya memiliki beberapa instalasi yang lebih tua, dan sesuatu seperti pemasangan seharusnya tidak berubah setiap enam bulan sekali.
sayangnya hal-hal HAL telah mengalami beberapa perubahan dalam versi terbaru. 9.04 dan sebelumnya mungkin sama; beberapa solusi mungkin berlaku untuk semua; tetapi 9,10 menggunakan DeviceKit dan HAL sudah usang. saya tidak percaya salah satu hal DBus / HAL / DeviceKit tetap stabil saat ini.
quack quixote
1
komentar dari pagin : Saya pikir masalahnya jauh lebih mendasar: Saya ingin memodifikasi umask untuk automounting terlepas dari perangkat mana yang terhubung ke komputer. Yaitu jika seorang teman saya mampir dengan tongkat usb dan saya hanya ingin menyalin beberapa file dari yang ini, saya ingin mereka secara otomatis ditransfer sebagai chmod 750, bukan 000 atau 777, 770 atau apa pun. Seharusnya ada opsi untuk mengkonfigurasi ini ...
quack quixote,

Jawaban:

7

Diperbarui
Sayangnya tidak ada sarana bawaan untuk melakukan ini. "Cara yang benar", cara yang didukung , adalah menyetel baris / etc / fstab dengan opsi pemasangan standar yang Anda inginkan. Ini berarti standar Anda harus ditetapkan per perangkat, meskipun Anda dapat menggunakan label partisi atau UUID untuk menghindari memerlukan jalur perangkat tertentu. Secara khusus, metode ini tampaknya terjadi sebelum otorisasi desktop PolicyKit.

Forum Ubuntu, Launchpad , dan bugzilla Gnome memiliki banyak posting dari pengguna yang mencari fungsi yang sama seperti yang Anda cari, baik di NTFS dan FAT32. Ubuntu 9.10 dan 10.04 menyediakan penghitungan otomatis standar melalui kombinasi DeviceKit-Disks, GVFS, dan Nautilus.

DeviceKit-disk menyediakan antarmuka FilesystemMount yang argumen opsinya tampaknya menjadi cara yang tepat untuk mengkonfigurasi opsi pemasangan Anda. Tetapi GVFS / Nautilus tampaknya tidak menyediakan sarana apa pun, melalui UI atau file konfigurasi, untuk menentukan opsi ini saat mengautomatiskan kunci USB.

Ada beberapa solusi:

  • Bug Launchpad ini berisi tambalan yang disediakan pengguna yang mengubah standar DeviceKit-Disks dalam paket devicekit-disk yang dibuat khusus.

    Di sisi positifnya, ini mungkin cara termudah untuk menetapkan standar pilihan Anda untuk semua perangkat. Kerugiannya adalah Anda harus melakukan pengiriman ulang lagi ketika paket diperbarui.

  • Satu posting Forum Ubuntu mengusulkan skrip solusi khusus perangkat :

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

    Ini juga kurang optimal, karena Anda harus terus memperbarui ini dengan perangkat tertentu. Tapi itu menghindari masalah otorisasi yang dapat dimiliki oleh solusi fstab .

quack quixote
sumber
komentar oleh Rndmerle : Sebagai catatan tambahan, di Ubuntu Lucid (10.4) perintah devkit-disk telah digantikan oleh / usr / bin / udisks
quack quixote
Penyelesaian ini dengan udisks --unmount dll., Hanya berfungsi untuk umask dan dmask. Opsi lain tidak diperbolehkan karena Anda bisa menebak dari tambalan yang Anda tautkan.
user39559
1

Inilah baris fstab saya untuk memasang stick usb saya dengan izin yang cocok untuk kunci ssh pribadi (fmask = 177). Trial and error memberi tahu saya bahwa saya harus menambahkan opsi 'pengguna' untuk membuat automount berfungsi.

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

Saya juga harus membuat titik mount yang sebelumnya otomatis:

mkdir /media/TIM_ABELL

disk uuid dapat ditemukan dengan mencolokkan disk dan berjalan

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

yang akan memungkinkan Anda untuk mendapatkan titik pemasangan -> perangkat -> pemetaan uuid

Tim Abell
sumber
1
alih-alih menggunakan path lengkap / dev / disk / by-uuid / FOO atau / dev / disk / oleh-label / FOO Anda bisa menggunakan sintaks pintas UUID=FOOatau LABEL=FOO.
quack quixote,
0

Sudahkah Anda benar-benar mencoba metode lama / etc / fstab? Ini bekerja untuk saya. Ubuntu menggunakan fstab, tidak masalah automounter HAL.

Ivan Petrushev
sumber
2
Apa yang saya masukkan ke / etc / fstab untuk membuat semua drive FAT mount seperti itu? Maksud saya bukanlah bahwa "Saya bisa melakukan ini dengan fstab" (saya tidak bisa), ini "ini tidak terjadi di bawah model fstab karena tidak me-mount apa pun kecuali saya menyuruhnya".
0

Saya melakukan beberapa scripting bash dan keluar dengan versi perbaikan dari script ini yang diposting di atas:

#!/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

Ia menemukan setiap perangkat yang terhubung oleh USB (semoga semua pendrives) yang sudah terpasang, dan remount mereka menggunakan mount_options (dalam kasus saya, biarkan mereka menggunakan charset iso-8859-1 untuk kompatibilitas dengan OS terbatas lainnya)

Guido I
sumber
3
Apa yang terjadi jika Anda mencolokkan USB ext4? Apakah akan menerapkan masker dan opsi lain yang hanya Anda inginkan (dan hanya masuk akal) untuk FAT?
user39559