非ルートパーティションのデフォルトのマウントオプションは何ですか?
Mountの男性エントリには...
defaults - use default options: rw, suid, dev, exec, auto, nouser, and async.
...それが私たちが期待するものかもしれません。しかし、私が何かを逃さない限り、それは起こりません。
「NewHome20G」というラベルの付いたext3パーティションがあり、システムからは/ dev/sdc6として認識されます。これは私たちから見ることができます...
root@john-pc1204:~# blkid | grep NewHome20G
/dev/sdc6: LABEL="NewHome20G" UUID="d024bad5-906c-46c0-b7d4-812daf2c9628" TYPE="ext3"
次のようにfstabにエントリがあります...
root@john-pc1204:~# cat /etc/fstab | grep NewHome
LABEL=NewHome20G /media/NewHome20G ext3 rw,nosuid,nodev,exec,users 0 2
そのfstab行で指定されているオプション設定に注意してください。
起動後、パーティションが実際にどのようにマウントされるかを見てみましょう...
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]
...したがって、ファイルシステムがマウントされると、指定したexec&usersオプションは無視されたようです。
念のため、sdc6をアンマウントし、再マウントして、マウントオプションをもう一度確認します...
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]
....同じ結果
今、私は再びパーティションをアンマウントし、execオプションを指定して再マウントし、結果を見て...
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]
...そして、ここでexecオプションがついに有効になり、noexec設定が消えました。
興味のある方のために、デフォルトオプションでパーティションを再マウントします
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が戻ってきたので、rw、noexec、nosuid、nodevがデフォルトのオプションであるように見えますが、これは人間の言うことではありません。
なぜこれが重要なのですか?
データディスクに格納された便利なスクリプトでいっぱいのフォルダーがあります。そのディスクはnoexecでマウントされているため、これらのスクリプトはすべてchmod 777で設定されているにもかかわらず実行されません。これをいくつかの方法で処理できますが、manエントリが間違っているように思われます。
ここで何か明らかなことを見逃したか、Ubuntuのデフォルトオプションを数バージョン前のものから変更しましたか?
マニュアルは正しい。あなたの問題は、おそらくあなたが3つの重要な詳細を説明しなかったことです:
users
(およびuser
)は、オプションnoexec
、nosuid
、およびnodev
を意味します
後続 optionsで上書きされない限り
オプション順序事項;)
fstabでrw,nosuid,nodev,exec,users
を使用すると、最後のオプションusers
はnoexec,nosuid,nodev
を設定し、したがってexec
を無効にします(そして、 nosuid,nodev
冗長)。
結果は、予想どおり、rw,noexec,nosuid,nodev
です。
いいえ、users
は無視されませんでした。通常、mount
リスト出力には表示されません。ただし、すべてのユーザーがアンマウントして再度マウントできます。それを試してみてください!
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
mount
は、user
(notusers
の場合にのみ、ユーザーに関連するものを表示します)が使用され、通常の非ルートユーザーが次のようにマウントします。
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
また、user
なしでnoauto
を使用すると、ブート時にパーティションが(rootによって)自動マウントされることに注意してください。そのため、rootがアンマウントするまで、誰もアンマウントまたは(再)マウントできません。
そうは言っても、あなたはすでにあなたの解決策を考え出したと思います:単にオプションの順序を変更するだけですそしてすべてがうまく動作します:
LABEL=NewHome20G /media/NewHome20G ext3 users,exec 0 2
exec
がafterusers
であることに注意してください。また、rw,nosuid,nodev
も必要ありません。 rw
はすでにデフォルトであり、その他はusers
によって自動的にオンになります
結果は次のとおりです。
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 ~ $
ルートまたは非ルートのユーザーは、以前に誰がマウントまたはアンマウントしたかに関係なく、それをマウントおよびアンマウントできます。そして、実行可能ファイルも動作します:)