間違っている場合は訂正してください:Debianという名前のGNU/Linuxディストリビューションを使用してコンピューターで作業する場合、コマンドを入力する、アプリケーションを起動する、ファイルを開くなどの2つの方法を知っています。 :
「ウィンドウマネージャ」という名前で何かが起こっています。私はGNU/Linuxを使用しているので、X-Window System [私が知る限り]で作業します。
元の投稿
状況:USBスティックの/etc/fstab
で自動マウントを無効にしました[例: /dev/sdb1
]。マウントには、root
、または少なくともSudo
エントリが必要ですコマンドラインではありますが、ウィンドウマネージャー(!)ではありません。 automount
を意味するのではなく、ウィンドウマネージャーで「シンボルをクリックする」とは、GUIでデバイスを問題なく開くことを意味します。CLIではrootである必要があります。
質問:GUIへのマウントは「内部」でどのように機能しますか?一般的なウィンドウマネージャー用のconfig
fileはありますか、それとも個別に設定する必要がありますか?
私はmount
コマンドを理解して使用しています。私は、/etc/fstab
を読み取って構成する方法を理解し、そこと/etc/mtab
meanのエントリをどこで確認するかを知っていると思います。
これは私の状況の理解ですが、私は専門家ではないため、他の回答よりも技術的ではありません。これは私が長年これらのシステムを使用した後に私が理解していることであり、私はそれらを詳細に研究していません。
ここには3人の主要なプレーヤーがいて、それらの間でマウントを管理しています。
ヒューズ: ウィキペディアのページ :で説明されているように、これはすべての中心にあります。
Filesystem in Userspace(Fuse)は、Unixライクなコンピューターオペレーティングシステム用のオペレーティングシステムメカニズムであり、非特権ユーザーがカーネルコードを編集せずに独自のファイルシステムを作成できるようにします。これは、ユーザースペースでファイルシステムコードを実行することで実現されますが、Fuseモジュールは実際のカーネルインターフェイスへの「ブリッジ」のみを提供します。
したがって、基本的に、これにより、特権のないユーザーがファイルシステムをマウントできるようになります。
gvfs
:デスクトップ環境のGnomeファミリー(Gnome、Mate、Cinnamonを含む)では、これは(とりわけ)新しく接続されたドライブを自動的にマウントするデーモンです。 viaヒューズを使用します。 KDEファミリーに相当するものは [〜#〜] kio [〜#〜] と呼ばれていると思います(しかし間違っているかもしれません)
gvfs
の主なプロセスは次のとおりです(man gvfs
から取得):
udev
:これは、新しいデバイスを検出し、それらが接続されたときにスクリプト/コマンドを実行できるようにするシステムです。たとえば、新しい画面を検出してデスクトップをミラーリングできるのはudev
です。
udevは、Linuxカーネルのデバイスマネージャーです。主に、/ dev内のデバイスノードを管理します。これはdevfsとhotplugの後継であり、ファームウェアのロードを含むデバイスの追加/削除時に/ devディレクトリとすべてのユーザースペースアクションを処理することを意味します。
具体的には、gvfs
はudisksベースのボリュームモニターであるgvfs-udisks2-volume-monitor
を介して機能するようです。ただし、udisks
自体はudev
に依存しています(man 7 udisks
を参照)。
したがって、基本的に(「恐ろしい単純化」を読んでください)、ドライブを接続すると、udev
がそれを検出し、gvfs
デーモンに警告します。
Fuseとudev
はすべてのデスクトップ環境で同じです。変更点は、udev
を監視し、ドライブをFuseファイルシステムとしてマウントするDEデーモンです。
簡単な答えは彼らがごまかすことです。 fstab
は使用しません。通常、挿入イベントをキャッチするためにudev
フックを使用し、ディスクをroot
として手動でマウントします。これは、dbus
に渡されて、新しいディスクがあることをファイルマネージャーに通知します。または、アンマウントにsuid
の代わりにdbus
ユーティリティを使用する場合もあります。残念ながら、これには標準の構成オプションはありません。デスクトップムーブメントは複雑さを隠すことを信じているため、ユーザードキュメントではなく、開発者ドキュメントでのみこれを文書化し、単一のユーザーシステムを想定しているため、USBドライブはXサーバーにログインする最初のユーザー。
ウィンドウ環境(GNOME/KDEなど)によって異なりますが、たとえばGNOMEでは、gvfs-*-volume-monitor
という名前のデーモンが実行されています。これらのデーモンは、デスクトップ環境を実行するときにデバイスをマウントする役割を果たし、/etc/fstab
とは関係がなく、完全に独立して動作します。
設定ファイルに関しては、DEを実行しているユーザーのホームディレクトリ$HOME/.local/share/gvfs-metadata
にあるこれに関連するファイルがいくつかあります。
このU&L Q&Aのタイトルは次のとおりです。 gvfsとは何ですか、なぜシステムに必要なのですか? 、GVFSとは何かを説明しようとします。それを説明するのはOKの仕事です。しかし、あなたが本当に求めていることは、このU&L Q&Aというタイトルの方がより多く取り上げられていると思います: SBディスクの自動マウント(仕組み) 。
PolicyKit(またはPolkit)は、非特権プロセスが話すことを許可するポリシーを定義および処理するためのアプリケーションレベルのツールキットです特権プロセスへ。
これは、非特権(デスクトップ)アプリケーションの特権操作(Mount()メソッドの呼び出しなど)へのアクセスを許可することに関する意思決定プロセスを一元化するためのフレームワークです。
認証エージェントは、セッションのユーザーに、セッションのユーザーが実際にユーザー(ユーザーとして認証することによる)または管理ユーザー(管理者として認証することによる)であることを証明させるために使用されます。
[〜#〜] gvfs [〜#〜]は仮想ファイルシステムであり、ローカルおよびリモートファイルシステムを次のようにマウントできます。ユーザーとゴミ箱のサポート。 GIOを使用しないアプリケーションがGVFSファイルシステムにアクセスできるようにするFuseサポートもありますが、ほとんどのDEは、コンピューターの休止やシャットダウンなどの他の目的やNetworkManagerに対しても、Policykitを介して認証を行うため、その必要はありません。ヒューズを使用します。
これは2つの部分で構成されています。
Gvfsパッケージは、polkitルールのpolkit-gnomeとともにインストールする必要があります。グラフィカル認証エージェントがインストールされ、自動起動されていることを確認してください。
特権を管理するための構成ファイルは、ディストリビューションごとに異なる必要があります。 Arch Wikiは、/usr/share/polkit-1/rules.d/
の下にファイルを作成するように指示しています。 Debianでは、それらは/etc/polkit-1/
にあります。
出典: DebianのPolicykit || Arch WikiのPolkit || Arch WikiのGVFS || GNOME WikiのGVFS!
あなたが探している一般的な要素の1つは ヒューズ 、GNOMEのgvfsは、たとえば、内部でそれを使用します。1 これはカーネルとのインターフェースであり、Linux上のすべての非特権(自動)マウントシステムに共通していると思います[ただしコメントを参照]。カーネルのパッチが必要になるため、個々のDEは独自のバージョンを作成しません。
ここに記載されているように 、Fuseは数年前に公式カーネルの一部になったため、そのホームページのリンクは実際には古くなっていますが、プロジェクトの起源と目的を説明しています(特権のない人だけのものではありません)取り付け)。
さまざまなシステムがこれを超えてスタイルを逸脱する可能性がある理由は、さまざまなデスクトップ環境があるのと同じ理由です。それらは、GUIがどのように/何であるかについてのさまざまなビジョンを表しています。彼らはユーザーインターフェースの形式と機能を処理していますが、Fuseは実際のマウントとカーネルレベルの処理を行います。 Fuseは実際には「自動」部分を実行しないことに注意してください。これは「非特権」部分に関するものですが、自動部分は非常に単純です。必要なのはポーリングだけです。たとえば、/dev
。このように機能するマウントアプリケーションを作成しました。新しいノードの出現を監視するだけです。2 その部分はおそらく100行ほどのC++です。 Easy-peasy-そのレベルの共通APIは実際には必要ありません。
1または、本当に特権のないマウントを実行している場合は可能です。テレサの答えは、通常のマウントへのアクセスを許可するための新しいアプローチをカバーしている可能性があります。
2Hildredが観察しているように、udevコールバックは、より優れた、ハッキングの少ない方法です。