非rootユーザーとしてのパスワードプロンプトを使用したSambaマウント


17

パスワードで保護されたSMB共有(Windowsマシンが提供)をマウントしたい。共有はユーザー名とパスワードで保護されており、ファイルにパスワードを書き込むことはできません。マウント時にパスワードの入力を求められます。

クライアントマシンのユーザーが管理者権限を持っていない場合でも機能するソリューションが必要です。そのため、共有をマウントするために使用する方法が何であれ、ルート権限を取得できないようにする必要があります。最初のインストールはルートとして実行できます。ユーザーは、任意のサーバー名を指定できる必要があります。私の当面の必要性はUbuntu 12.04にありますが、ソリューションの適用範囲が広いほど優れています。

クライアントはヘッドレスなので、コマンドラインツールを探しています。

私が試したもの:

  • mount.cifs:setuid rootにすることはできますが、作成者はそれを安全だとは考えません。それを実行するとsudo、同じ問題が発生します。
  • smbnetfsfusesmb:パスワードを要求するようにどちらにも説得できませんでした。
  • Nautilusおよびgvfs:でgvfs-mount smb://servername/sharename失敗しError mounting location: volume doesn't implement mountます。

パスワードプロンプトを使用して、非rootユーザーとしてコマンドラインからSamba共有をマウントするにはどうすればよいですか?


1
リード開発者の1人が、setuid問題に対するスタンスを緩めたようです。抜粋:「コードは大幅に作り直され、以前よりもはるかに安全になりました。マウントプロセスの大部分が特権のないユーザーとして実行されるようになりました。この時点で、setuid rootのインストールを制限する必要がなくなったので十分だと思います。」ソース:lists.samba.org/archive/samba/2010-April/154935.html私はそれを指摘する必要があると考えました。
ティム

回答:


20

「マウント場所のエラー:ボリュームはマウントを実装していません」は、「D-Busが必要ですが、利用できません」と解釈されます。(この情報については、venturaxの第一人者のおかげです。)SSHセッション内では、最初に起動gvfs-mountされdbus-daemon、環境変数DBUS_SESSION_BUS_ADDRESSが設定されていれば使用できます。

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mount他のGVFSユーティリティはすべて同じD-Busセッションと通信する必要があります。したがって、複数のSSHセッションを使用するか、ログインセッション全体でマウントを使用する場合は、次のことを行う必要があります。

  • D-Busが最初に必要になったときに、遅くとも開始します。
  • GVFSファイルシステムがマウントされている限り、D-Busがセッションで終了しないように注意してください。
  • ログイン時に既存のD-Busセッションがあれば再利用します。

それについては、ログインセッション間でD-Busセッションを再利用するをご覧ください。


1
これはgio mount、最近のubuntuバージョンにも当てはまります。
-jnas

1

SMBNetFSはデフォルトでGnome-keyringを使用します。NautilusでSamba共有を参照しているときにGnome-keyringで入力および保存されたパスワードは、自動的に使用される必要があります。そのため、Gnome-keyringにパスワードを保存しても問題なければ、SMBNetFSの方が便利です。ネットワーク全体を自動的にマウントします。この情報は、SMBNetFS構成ファイルのサンプルからのものですが、Gnomeを使用していないため、テストしていません。

X11なしのGNOMEキーリングの使用については、参照Xなしのgnome-キーリング・デーモンの使用を

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.