マウントにroot権限が必要なのはなぜですか?

マウントにroot権限が必要なのはなぜですか?

Linuxでユーザーが何かをマウントする前に、各マウントに対してroot / sudoの使用/特別な承認を受けなければならないのはなぜですか?ユーザーが何かをインストールできるようにするかどうかは、ソースボリューム/ネットワーク共有とマウントポイントへのアクセスに基づいて決定する必要があるようです。非ルートユーザーインストールのいくつかの用途は、ファイルシステムイメージをユーザー所有の方向にマウントし、ネットワーク共有をユーザー所有ディレクトリにマウントすることです。ユーザーがインストール方程式の両面を制御できる場合は素晴らしいと思います。

アクセス制限の説明:

ユーザーが属するマウントポイントにユーザーがアクセスできるすべてのものをインストールできる必要があると思います。

たとえば、マイコンピュータでは、/ dev / sda1はユーザーのルートと特権を持つグループディスクによって所有されていますbrw-rw----。したがって、root以外のユーザーは/ dev / sda1を台無しにすることはできず、明らかにmountはそれらをマウントすることを許可しないでください。ただし、ユーザーが/home/my_user/my_imagefile.imgとマウントポイント/home/my_user/my_image/を所有している場合、次のようにしてイメージファイルをそのマウントポイントにマウントできないのはなぜですか?

mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop

Kormacが指摘したように、suidの問題があります。したがって、suidが問題になり、潜在的に他の問題が発生するのを防ぐために、いくつかの制限を追加する必要があります。おそらく1つの方法は、オペレーティングシステムがすべてのファイルをインストールを実行しているユーザーに属するものとして扱うことです。しかし、単純な読み取り/書き込み/実行の場合、これがなぜ問題になるのかわかりません。

ユースケース:

私はLabsにアカウントを持ち、家のスペース制限は8GBです。これは小さくてとても面倒です。私のプライベートサーバーからnfsボリュームをマウントして、基本的に私が持っているスペースを増やしたいと思います。しかし、Linuxはこれを許可しないため、8GBの制限を超えないようにファイルを前後にscp'ingする必要がありました。

ベストアンサー1

これは歴史的な制限とセキュリティの制限です。

歴史的に、ほとんどのドライブは取り外しできませんでした。したがって、正当な物理アクセス権を持ち、rootアカウントにアクセスできるユーザーにインストールを制限することは合理的です。 fstabエントリを使用すると、管理者はリムーバブルドライブのマウントを他のユーザーに委任できます。

セキュリティの観点から見ると、すべてのユーザーがブロックデバイスまたはファイルシステムイメージを任意の場所にマウントできるようにするには、3つの主な問題があります。

  • 所有していない場所にインストールすると、その場所のファイルが非表示になります。たとえば、既知のルートパスワードを含むファイル/etcに必要なファイルシステムをマウントします。/etc/shadowこの問題は、ユーザーが自分の所有するディレクトリにのみファイルシステムをマウントできるようにすることで解決できます。
  • ファイルシステムドライバは、誤った形式のファイルシステムに対して徹底的にテストされないことがよくあります。欠陥のあるファイルシステムドライバが原因で、誤った形式のファイルシステムを提供しているユーザーがカーネルにコードを挿入する可能性があります。
  • ファイルシステムをマウントすると、マウンタは作成権限を持たないファイルを表示できます。 Setuid実行可能ファイルとデバイスファイルが最も明確な例であり、暗黙的に含まれており、オプションで修正されましnosuidnodev。これまでは。しかし、より一般的には、他のユーザーが所有するファイルを生成できることは問題になります。ファイルの内容がインストーラではなく、その所有者と見なされる可能性があります。ルートから別のファイルシステムに属性を保存する一時コピーをコピーすると、宣言されていますが、関連する所有者ではなく、所有者がファイルを所有します。一部のプログラムでは、ファイルが特定のユーザーに属していることを確認して、ファイルの使用要求が合法であることを確認しますが、これは安全ではありません(プログラムはアクセスパスのディレクトリがそのユーザーに属していることを確認する必要があります。許可されている場合、このディレクトリはマウントされます。ブランチでないこと(rootまたは必須ユーザーがマウントを作成していない場合)も確認する必要があります。user/etc/fstab
    usermount

実用的な目的で、次のようにルートなしでファイルシステムをマウントできるようになりました。ヒューズ。 FUSEドライバはインストールユーザーとして実行されるため、カーネルコードのバグを悪用して権限が上昇するリスクはありません。 FUSEファイルシステムは、ユーザーが作成権限を持つファイルのみを公開できるため、上記の最後の問題は解決されます。

おすすめ記事