Linux - Pasang perangkat dengan hak pengguna tertentu

86

Bagaimana saya bisa memasang perangkat dengan hak pengguna tertentu saat memulai? Saya masih memiliki beberapa masalah untuk mengatasinya. Saya ingin me-mount pembagian dengan uid=1000dan gid=1000. Entri saya saat ini ke /etc/fstab/file terlihat seperti ini:

dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000
wowpatrick
sumber
Jangan lupa gui = 1000. Juga, apa kepemilikan / hak untuk / var / www. Itu harus dimiliki oleh root.
skub
1
@skub: Pemilik /var/www/adalah root. dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000 gui=1000tidak bekerja dengan baik (Ubuntu menghapus entri setelah gagal restart).
wowpatrick
2
Sumber mount Anda adalah "dev" ??
James T Snell
@wowpatrick - perangkat mount Anda harus seperti / dev / sda1 seharusnya tidak 'dev'.
skub
1
@skub: Ini folder bersama VirtualBox, jadi / dev benar. Saya sudah mengetahuinya sekarang, sudo mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/wwwberfungsi dengan baik.
wowpatrick

Jawaban:

119

Untuk memasang perangkat dengan hak tertentu, Anda dapat menggunakan -o Optionarahan saat memasang perangkat. Untuk memasang perangkat yang Anda gambarkan, jalankan:

 mount -t deviceFileFormat -o umask=filePermissions,gid=ownerGroupID,uid=ownerID /device /mountpoint

Misalnya memasang folder bersama VirtualBox /var/wwwdengan www-datasebagai pemilik akan terlihat seperti ini:

mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www

Jika Anda ingin memasang perangkat saat startup, Anda dapat menambahkan entri berikut ke /etc/fstabfile Anda :

 /device /mountpoint deviceFileFormat umask=filePermissions,gid=ownerGroupID,uid=ownerUserID

Sekali lagi, dengan contoh yang sama entri ke /etc/fstabfile akan terlihat seperti ini:

dev /var/www vboxsf umask=0022,gid=33,uid=33

Untuk sistem file yang tidak mendukung pemasangan sebagai pengguna tertentu (seperti ext4) di atas akan memberikan kesalahan

Unrecognized mount option "uid=33" or missing value

untuk mengubah pemilik mount ext4 cukup jalankan

chown username /mountpoint

setelah itu sudah terpasang.

wowpatrick
sumber
Saya dapat menggunakan opsi uid / gid di ext4.
CMCDragonkai
Ini sepertinya tidak berfungsi dengan mount --bind, saya menggunakan sistem file btrfs
meffect
Bukankah seharusnya umask umask=0077bukannya umask=0022memberikan izin hanya pemilik untuk membaca atau menulis? Tampaknya umask=0022akan memberikan izin baca kepada orang lain jika saya membacanya dengan benar. Saya ingin hanya pengguna yang memasang disk yang boleh membaca atau menulis izin.
Mian Asbat Ahmad
3

Untuk sistem file seperti ext3 atau ext4, setelah melakukan

    chown -R username:group /mountpoint

untuk mengubah pemilik file yang saat ini ada, Anda dapat mengatur bit id grup agar file baru dibuat dengan grup tertentu (tidak berfungsi untuk id pengguna di Linux):

    find /mountpoint -type d -exec chmod g+ws {} \;

Entri Wikipedia tentang setuid dan setgid cukup informatif, lihat bagian direktori .

js.
sumber
18
Mengubah kepemilikan semua file pada perangkat sangat invasif. Karena ada -oopsi untuk mount, itu adalah cara yang lebih baik.
Penebusan Terbatas
6
-osayangnya tidak berfungsi untuk ext4, seperti yang dijelaskan dalam jawaban oleh @wowpatrick.
js.
14
chowning konten drive yang dipasang ke beberapa pengguna lain konyol. Anda tidak tahu apa yang mungkin Anda hancurkan untuk aplikasi apa pun pada drive itu. Mungkin baik-baik saja jika semua konten milik pengguna Anda, tetapi ini adalah
larangan yang
Perangkat yang dimaksud adalah / dev / www, mudah untuk mengontrol aplikasi mana yang memiliki akses ke sana (mungkin hanya server WWW, yang dapat Anda matikan selama operasi). Bahkan jika aplikasi yang menggunakannya masih berjalan, itu akan tetap berjalan, karena itu adalah titik operasi.
js.