ネットワーク · 1 min read · Dec 11, 2025

LinuxマシンでのWindowsネットワークのブラウジング、自動マウントとすべてのホストと共有の発見

最新バージョンは以下で見つけることができます:

http://linux.bononline.nl/linux/automountsmbshares/index.php

インデックス

    1. はじめにと概要

はじめに

しばらくの間、私のコンピュータがWindowsネットワークを発見し、必要に応じて共有をマウントする良い方法を探していました。現時点では十分な解決策がありません。私の選択したデスクトップ(KDE)のkioslavesやFUSEプログラムのFusesmbやSmbNetFsを試した後、私は本当に満足していませんでした。私のコンピュータがすべてのワークグループ/ドメイン、ホスト、共有を発見し、必要に応じてホスト上の共有をマウントできる方法が必要でした。誰かは言うでしょう:好きな共有を手動でマウントし、さあ行こう。しかし、違います!! これは私が望んでいることではありません。私はコンピュータが自動的にすべてのホストと利用可能な共有を発見し、必要なときにのみ共有をマウントできるようにしたいのです。これは可能であるべきです!そして、試してみた結果、それが可能であることがわかりました!

以下の問題は、私の意見では必要です:

  • SMBネットワークの自動発見(ドメイン、ホスト、共有)

  • ユーザーがホームディレクトリにログインしているときに意味のある表現を構築すること

  • 必要に応じた共有の自動マウント

  • 一定時間使用されていない共有の自動アンマウント

  • SMBFSやCIFSのようなカーネルファイルシステムの使用

  • デスクトップマネージャーに依存しない

  • SSHやFTPのような他のネットワークサービスのサポート

FUSEプログラムのFusesmbは、私が探しているものに非常に近いですが、CIFSが持つ拡張機能、例えば権限の正しい表示、inotifyのサポート、シンボリックリンク、ATTR/ACLが欠けています。FUSEプログラムがこれらの機能を欠いている理由を見つけるのに少し時間がかかりました。FuseSMBは、Sambaパッケージの一部であるsmbclientライブラリsmbclient.soに基づいており、smbfsやcifsとは関係ありません。

結果

この構造の結果は、あなたのホームディレクトリにあるネットワーク関連のディレクトリ(グローバルネットワーク)で、オートマウントがすべてのサポートされているネットワークサービスにアクセスするためのブラウズ可能なツリーを提供します。

現時点では、SMBとSSHのサービスをサポートしています(FTPに取り組んでいます)。 “ネットワークマウントポイント”にアクセスする:

/home/sbon/Global Network/
SSHホスト
Windowsネットワーク

Windowsネットワーク(==smb)にアクセスすると、すべてのワークグループやドメインが表示されます:

/home/sbon/Global Network/
SSHホスト
Windowsネットワーク
BONONLINE
CWWERKGROEP

ワークグループCWWERKGROEPに入ると、すべてのサーバーや他のホストが表示されます:

/home/sbon/Global Network/
SSHホスト
Windowsネットワーク
BONONLINE
CWWERKGROEP
ROUTER
PC1

サーバーROUTERに入ると、接続ユーザーに利用可能な共有が表示されます:

/home/sbon/Global Network/
SSHホスト
Windowsネットワーク
BONONLINE
CWWERKGROEP
ROUTER
cwdocumenten
public
sbon

共有にアクセスすると、自動的にマウントされます(CIFSまたはSMBFSで)。資格情報の使用がサポートされており、ゲストログインがデフォルトです。

smbサービスの「マルチマウントマップ」を構築するために、ネットワークキャッシュが使用されます。これは、ワークグループやドメイン、ホスト、サーバー、利用可能な共有に関する情報を提供します。これは、いくつかのスクリプトによって維持され、いくつかのユーティリティ(nbtscanを使用してホストとワークグループ/ドメインを特定し、smbclientを使用してホストごとの共有を特定)を利用します。

SSHホスト(=ssh)にアクセスすると、このユーザーがアクセスできるすべてのホストが表示されます:

/home/sbon/Global Network/
SSHホスト
192.168.0.2
Windowsネットワーク

ここでは、このツリーを作成するためにキャッシュは使用されず、ファイル.known_hostsが使用されます。さらに、mount.sshfsは利用できませんでした。私はFUSEとsshfsを使用してそれを作成しました。(およびumount.sshfs)。
今、ホスト192.168.0.2にアクセスすると、192.168.0.2のルートがマウントされます。

どのように機能するか

この構造はオートマウントを利用しています。ユーザーがログインし、新しいセッションが開始されると、auto.masterファイルに「ネットワークマウントポイント」が追加され、オートマウントデーモンが「リロード」信号を受け取ります。このマウントポイント、デフォルト名「グローバルネットワーク」はユーザーのホームディレクトリにあります。それにリンクされているのは、サポートされているすべてのネットワークサービスと発見されたリソースに基づいてマップを作成するスクリプト(auto.network)です。ブラウズオプションと共に、これにより、アクセスされたときに共有/ホストがマウントされるブラウズ可能なマップが提供されます。

ユーザーがログオフすると、セッションが終了し、マウントポイントは再び削除され、オートマウントデーモンは変更を有効にするために再びリロード信号を受け取ります。

ここでは、KDMがセッションの開始時と終了時にルート権限でスクリプトを実行する能力が利用されています。

現時点では、SMBとSSHのみがサポートされています。

既知の問題

いくつかのボトルネックがあります:

  • 共有が追加されたり、ホストがオフラインになったり、smb環境で何かが変更されたりすると、キャッシュに表示されるまでに時間がかかります。このキャッシュは、いくつかのスクリプトによって維持され、「プル」ベースのメカニズムで動作します。第二に、オートマウントは自動的にキャッシュ内のデータが変更されたことを検出しません。タイムアウト後にのみ自分のデータ(マルチマウントマップ)を更新し、その際にすべての変更を完全に取得することはありません。
  • オートマウントは、ブラウズ可能なマウントマップを表示するように指示されています。これは、トップレベルのディレクトリが常に利用可能であることを意味します。これは非常に良いことで、利用可能なネットワークは常にユーザーに表示され、アクセス可能です。タイムアウト後でも、実際には時々「ネットワークサービス」の1つが消えてしまいます…
  • オートマウントは、空のauto.masterファイル(および空のインクルード)で起動する際にいくつかの問題があります。ブート時に、ユーザーがログインしていない場合、したがってautofsが管理するネットワークマウントポイントがない場合、オートマウントは空のマップで起動する必要があります。

リンク

WindowsまたはSamba共有にautofsを使用してアクセスする

SMB共有のためのautofsを設定するガイド、既存のファイルを使用;

LinuxホストをWindows環境に統合する

代替方法で共有にアクセスするためのautofsを設定するガイド。

HOWTOファイルシステムを自動マウントする(AUTOFS)/ udevとautofs

ここでは、ハードウェアをautofsとudevを使用してマウントするためにほぼ同じ構造が使用されています。ここでも、マウントポイントは自動的にauto.masterファイルに追加および削除されます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。