パスワードで保護されたSMB共有(Windowsマシンによって提供される)をマウントしたい。共有はユーザー名とパスワードで保護されており、ファイルにパスワードを書き込めない場合があります。マウント時にパスワードの入力を求められます。
クライアントマシンのユーザーが管理者権限を持っていない場合でも機能するソリューションが必要です。そのため、共有をマウントするために使用する方法で、root権限を取得できないようにする必要があります。初期インストールはrootとして実行できます。ユーザーは任意のサーバー名を指定できる必要があります。私の当面のニーズはUbuntu12.04ですが、適用可能なソリューションが広いほど優れています。
クライアントはヘッドレスなので、コマンドラインツールを探しています。
私が試したこと:
-
mount.cifs
:setuid rootにすることはできますが、作成者はそれを安全だとは考えていません。sudo
で実行する 同じ問題があります。 -
smbnetfs
、fusesmb
:どちらにもパスワードの入力を求めるよう説得できませんでした。 - Nautilusとgvfs:
gvfs-mount smb://servername/sharename
Error mounting location: volume doesn't implement mount
。
パスワードプロンプトを使用して、root以外のユーザーとしてコマンドラインからSamba共有をマウントするにはどうすればよいですか?
承認された回答:
「マウント場所のエラー:ボリュームにマウントが実装されていません」は、「D-Busが必要ですが、利用できません」という意味になっているようです。 (この情報を提供してくれたventuraxの第一人者の同僚に感謝します。)SSHセッション内で、gvfs-mount
を使用できます。 ただし、dbus-daemon
最初に起動され、環境変数DBUS_SESSION_BUS_ADDRESS
設定されています。
export $(dbus-launch)
gvfs-mount smb://workgroupname;[email protected]/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'
gvfs-mount
および他のGVFSユーティリティはすべて同じD-Busセッションと通信する必要があります。したがって、複数のSSHセッションを使用する場合、またはログインセッション間でマウントを使用する場合は、次のことを行う必要があります。
- 遅くとも最初に必要になったときにD-Busを起動します。
- マウントされたGVFSファイルシステムがある限り、D-Busがセッションで終了しないように注意してください。
- 既存のD-Busセッションがある場合は、ログイン時に再利用します。
そのためのログインセッション間でのD-Busセッションの再利用を参照してください。