デバイスをルートの場合はRW、他のすべての場合はROとしてマウントします。

デバイスをルートの場合はRW、他のすべての場合はROとしてマウントします。

ルートに対するフルアクセス権と他のすべてのユーザーに対する読み取り専用権限でマウントするデバイスがあります。マニュアルページではこれが可能であることを伝えます。

だから:

  • sudo mkdir /mnt/foo
  • sudo mkdir /mnt/fooReadOnly
  • sudo chmod 700 /mnt/foo(rwはルートでのみ動作します)
  • sudo chmod 555 /mnt/fooReadOnly(ro/すべてが閲覧を許可する)
  • デバイスが/dev/sdaX次のように取り付けられていることを確認します。/mnt/foo

その後、マニュアルページのアドバイスに従いました。

  • sudo mount --bind /mnt/foo /mnt/fooReadOnly
  • sudo mount -o remount,bind,ro /mnt/foo /mnt/fooReadOnly

今テストしてみましょう:

  • ls /mnt/foo--> Permission denied...正しい
  • sudo ls /mnt/foo働く..正しい
  • ls /mnt/fooReadOnly--> Permission denied...間違っていますか?

そのバインドマウントでは何も変更できないというメッセージが表示されますRead-only file system

どうすれば解決できますか?

/etc/fstabまた、起動時に自動的に再インストールされるようにどのように追加しますか?

ベストアンサー1

ルートに対するフルアクセス権と他のすべてのユーザーに対する読み取り専用権限でマウントするデバイスがあります。

  • sudo mkdir /root/mnt/foo
  • sudo mkdir /mnt/fooReadOnly
  • mount -oro /dev/sdaX /mnt/foo
    • これにより、/dev/sdaX デバイスがマウントされます。読み取り専用/mnt/fooにあります。一度に読み取り専用のバインドマウントを作成できないため、最初に設定しました。私はユーザーに一瞬でも読み書きバインドマウントへのアクセスを許可したくありません。
  • ls -ld /root- 表示されるモードdr-xr-x---と所有者をもう一度確認してくださいroot root
  • sudo mount --bind /mnt/fooReadOnly /root/mnt/foo
  • sudo mount -oremount,rw /root/mnt/foo

上記のコマンドを試してください。各マウントコマンドの後に実行すると、grep foo /proc/self/mountinfo各ファイルシステムと各マウントポイントフラグが別々の列に表示されます。

これを理解するには、すべてのファイルシステムフラグとすべてのマウントポイントフラグを同時に変更する必要がありますmount -oremount,rwmount -oremount,roただし、各取り付けポイントのフラグには影響しません。その他マウントポイント。


unshare -rmsdaXの代わりにtmpfsマウントに切り替えても、ユーザーの名前空間()内で上記のコマンドを試すことはできません。 「Permission Denied」により失敗しますmount -oremount,rw。代わりに、次の順序を使用する必要があります。

  • mount tmp -ttmpfs /root/mnt/foo
  • mount --bind /root/mnt/foo /root/mnt/fooReadOnly
  • mount -oremount,bind,ro /root/mnt/fooReadOnly
  • mount --bind /root/mnt/fooReadOnly /mnt/fooReadOnly

また、起動時に自動的に再マウントされるように/etc/fstabにどのように追加しますか?

fstab はハッキングが多すぎるため、最初のシーケンスを fstab に適用しないことをお勧めします。代わりに、2番目の順序を調整できます。

/dev/sdaX /root/mnt/foo ...
/root/mnt/foo /root/mnt/fooReadOnly none bind,ro
/root/fooReadOnly /mnt/fooReadOnly none bind

おすすめ記事