web-dev-qa-db-ja.com

mount / fstabのデフォルトのマウント設定は何ですか?

非ルートパーティションのデフォルトのマウントオプションは何ですか?

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のデフォルトオプションを数バージョン前のものから変更しましたか?

18
John Craick

マニュアルは正しい。あなたの問題は、おそらくあなたが3つの重要な詳細を説明しなかったことです:

  • users(およびuser)は、オプションnoexecnosuid、およびnodevを意味します

  • 後続 optionsで上書きされない限り

  • オプション順序事項;)

fstabrw,nosuid,nodev,exec,usersを使用すると、最後のオプションusersnoexec,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は、usernotusersの場合にのみ、ユーザーに関連するものを表示します)が使用され、通常の非ルートユーザーが次のようにマウントします。

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

execafterusersであることに注意してください。また、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 ~ $

ルートまたは非ルートのユーザーは、以前に誰がマウントまたはアンマウントしたかに関係なく、それをマウントおよびアンマウントできます。そして、実行可能ファイルも動作します:)

18
MestreLion