Apa pengaturan pemasangan standar untuk mount / fstab?

18

Apa opsi pemasangan default untuk partisi non root?

Entri pria untuk mount mengatakan ...

defaults - use default options: rw, suid, dev, exec, auto, nouser, and async.

... jadi mungkin itu yang kita harapkan. Tapi, kecuali aku kehilangan sesuatu, bukan itu yang terjadi.

Saya memiliki partisi ext3 berlabel "NewHome20G" yang dilihat sebagai / dev / sdc6 oleh sistem. Ini bisa kita lihat dari ...

root@john-pc1204:~# blkid | grep NewHome20G
/dev/sdc6: LABEL="NewHome20G" UUID="d024bad5-906c-46c0-b7d4-812daf2c9628" TYPE="ext3" 

Saya memiliki entri di fstab sebagai berikut ...

root@john-pc1204:~# cat /etc/fstab | grep NewHome
LABEL=NewHome20G        /media/NewHome20G        ext3         rw,nosuid,nodev,exec,users     0  2

Perhatikan pengaturan opsi yang ditentukan dalam baris fstab itu.

Sekarang saya melihat bagaimana partisi sebenarnya dipasang setelah boot ...

root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

... jadi, ketika filesystem di-mount, opsi exec & users yang saya tentukan tampaknya telah diabaikan.

Hanya untuk memastikan, saya unmount sdc6, pasang kembali dan lihat opsi mount lagi ...

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

.... hasil yang sama

Sekarang saya unmount partisi lagi, remount menentukan opsi exec dan lihat hasilnya ...

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6 -o exec
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,nosuid,nodev) [NewHome20G]

... dan di sini opsi exec akhirnya mulai berlaku dan pengaturan noexec telah menghilang.

Hanya untuk menarik, saya pasang kembali partisi dengan opsi default

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6 -o defaults
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

Noexec sudah kembali, jadi sangat mirip dengan rw, noexec, nosuid, nodev adalah opsi default yang BUKAN apa yang dikatakan manusia.

Mengapa ini penting?

Saya memiliki folder yang berisi skrip berguna yang tersimpan di disk data. Karena disk itu sudah di-mount noexec, skrip-skrip itu tidak akan berjalan, meskipun semuanya sudah disetel dengan chmod 777. Saya dapat mengatasi hal ini dalam beberapa cara tetapi mengecewakan bahwa entri man sepertinya salah.

Apakah saya melewatkan sesuatu yang jelas di sini atau memiliki opsi default di Ubuntu berubah dari apa yang mereka beberapa versi yang lalu?

John Craick
sumber

Jawaban:

18

Manualnya benar . Masalah Anda adalah bahwa mungkin Anda tidak memperhitungkan 3 detail penting:

  • users(dan user) menyiratkan pilihan noexec, nosuiddan nodev

  • Kecuali diganti oleh opsi selanjutnya

  • Urutan opsi penting;)

Jadi ketika Anda menggunakan fstabrw,nosuid,nodev,exec,users Anda , opsi terakhir ,, set , sehingga menonaktifkan Anda (dan juga membuat Anda berlebihan).usersnoexec,nosuid,nodevexecnosuid,nodev

Hasilnya, seperti yang diharapkan, adalah rw,noexec,nosuid,nodev.

Dan tidak, userstidak diabaikan, itu biasanya tidak muncul di mountdaftar output. Tetapi setiap pengguna dapat melepas dan memasangnya kembali. Cobalah!

rodrigo@desktop ~ $ mount /dev/sda6                     # ordinary user
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev)
rodrigo@desktop ~ $ /mnt/mint10/bin/echo it works       # noexec will deny this
bash: /mnt/mint10/bin/echo: Permission denied

mounthanya akan menampilkan sesuatu yang terkait dengan pengguna jika user( tidak users ) digunakan, dan pengguna biasa, non-root memasangnya, seperti ini:

rodrigo@desktop ~ $ mount /dev/sda6         # ordinary user
rodrigo@desktop ~ $ mount | grep /dev/sda6  # it will list current "owner"
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev,user=rodrigo)
rodrigo@desktop ~ $ umount /dev/sda6
rodrigo@desktop ~ $ sudo mount /dev/sda6
rodrigo@desktop ~ $ mount | grep /dev/sda6  # since owner=root, it won't show
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev)
rodrigo@desktop ~ $ umount /dev/sda6        # only mounter can unmount
umount: only root can unmount LABEL=MINT10 from /mnt/mint10

Juga perhatikan bahwa, ketika menggunakan usertanpa noauto, partisi akan diautomatiskan (oleh root) saat boot. Jadi sampai root meng-unmount, tidak ada yang bisa meng-unmount atau me-mount kembali.

Yang mengatakan, saya kira Anda sudah menemukan solusi Anda: cukup mengubah urutan opsi Anda dan semuanya akan berfungsi dengan baik:

LABEL=NewHome20G  /media/NewHome20G  ext3  users,exec  0  2

Perhatikan bagaimana execadalah setelah users . Dan juga rw,nosuid,nodevtidak perlu. rwsudah menjadi default, dan yang lainnya dihidupkan secara otomatis olehusers

Dan hasilnya adalah:

rodrigo@desktop ~ $ mount /dev/sda6                  # user mount
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,nosuid,nodev)
rodrigo@desktop ~ $ /mnt/mint10/bin/echo it works    # exec works
it works
rodrigo@desktop ~ $ sudo umount /dev/sda6            # root unmount
rodrigo@desktop ~ $ sudo mount /dev/sda6             # root mount
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,nosuid,nodev)
rodrigo@desktop ~ $ umount /dev/sda6                 # user unmount
rodrigo@desktop ~ $

Berarti setiap pengguna, root atau non-root, dapat me-mount dan meng-unmount-nya, terlepas dari siapa yang pernah me-mount atau meng-unmount-kannya. Dan executables juga bekerja :)

MestreLion
sumber
Apakah maksud Anda "... saat menggunakan usertanpa auto, partisi akan diautomatiskan ..."?
Andreas J.
@AndreasJ. Tidak, maksudku noauto. autosudah menjadi perilaku default, jadi tanpa noautosama dengan auto: partisi akan diotomatiskan.
MestreLion
Maaf, saya salah membaca kalimat Anda. Masuk akal!
Andreas J.