Bagaimana saya bisa secara otomatis mengatur izin menulis untuk memasang drive usb di linux?

18

Ketika saya memasang drive usb eksternal di linux (CentOs4), izin secara default diatur ke read-only. Karena ada banyak pengguna di komputer yang perlu menggunakan drive eksternal, saya ingin semua orang memiliki rwizin untuk seluruh drive. Saya juga ingin mereka dapat memasang drive jika komputer tidak sengaja dimatikan. Mereka dapat menggunakan sudo mountuntuk memasang drive, tetapi ini hanya akan memberi mereka izin membaca, dan saya jelas tidak ingin mengizinkannya sudo chmod.

Apakah ada pengaturan default yang dapat saya ubah sehingga setiap disk usb eksternal baru secara otomatis mendapatkan rwizin?

Jonas
sumber

Jawaban:

17

Untuk memungkinkan semua orang mengakses, kuncinya adalah umask = 0 opsi untuk memasang perintah.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 sudah cukup, uid dan gid hanya demi kejelasan, jadi Anda tidak melihat lebih banyak pemilik 'root' daripada yang seharusnya.


@ Tom jawaban (menulis / etc / entri fstab) akan memungkinkan Anda untuk melewati sudodan jika Anda menulis umask = 0 sebagai opsi tambahan di sana, Anda akan mendapatkan yang terbaik dari kedua dunia:

Memiliki ini di / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

memungkinkan Anda untuk hanya berlari

mount /dev/something

dan setiap orang memiliki akses ke semua file.


Ini catatan teknis, jika Anda ingin tahu detailnya:

Seperti man mountdikatakan, 'umask = 0' akan memastikan bahwa tidak ada aturan tambahan yang berlaku untuk mode akses file. Untuk sistem file FAT (yang paling banyak digunakan pada disk USB), tidak ada mode akses yang disimpan. Tetapi proses Anda saat ini memiliki beberapa nilai umask yang ditetapkan, Anda dapat melihatnya jika Anda menjalankan hanya umaskdi terminal. mountmenggunakannya sebagai default dan menghapus mode akses nilai umask Anda dari semua file pada disk yang dipasang. Nilai umask yang paling banyak digunakan adalah (oktal) 022 - tidak ada grup dan tulis lainnya, dan 027 - tidak ada grup tulis, tidak ada akses lain.

temoto
sumber
Saya mendapatkan kesalahan dengan 'opsi buruk' jika saya menambahkan umask=0 0 0entri di fstab. Apakah umaskentri-perlu menjadi entri terakhir? Apa yang dilakukan managed=0 0 0entri yang terakhir kali?
Jonas
1
FWIW, opsi umask adalah opsi VFAT saja, yaitu solusinya membantu selama memori USB menggunakan sistem file VFAT (yang tidak terjadi pada kasus saya).
Tomislav Nakic-Alfirevic
2
Terima kasih. Tapi saya harus mengubahnya untuk membuatnya berfungsi: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhereIni hanya berfungsi tanpa mengatur gid-parameter.
Nippey
2

Tambahkan entri ke / etc / fstab. Berikut adalah entri yang saya tambahkan beberapa jam yang lalu untuk drive USB Seagate saya:

UUID = 4ACC734ECC733375 / media / Linux kesalahan ext3 = remount-ro, default, pengguna, noatime, nodiratime 0 0

Kuncinya di sini adalah entri "pengguna" yang memungkinkan pengguna untuk memasang dan melepas drive.

Sunting: ini berfungsi untuk drive tertentu - Saya tidak tahu apakah ini dapat diaktifkan untuk semua drive dengan satu entri.

Tom
sumber
Jika pengguna memasang drive, apakah semua pengguna lain juga akan mendapat rwizin?
Jonas
1

Jenis mount. Ini akan memberikan tempat saat ini di. Ini output saya.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

Yang terakhir adalah usb drive saya yang diotomatisasi oleh Linux Mint.

Sekarang ketik

sudo umount /dev/sdf1

ini akan melepas drive

sekarang remount dengan benar.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
Rick
sumber