定期的にマウントする CIFS ドライブがあり、パスワードが必要です。毎回パスワードを入力するのは面倒なので、PASSWD 環境変数を設定し、ドライブをマウントしてからクリアするスクリプトを作成しました (CIFS は、要求する前に PASSWD 環境変数をチェックします)。
動作し、パスワードを含むスクリプトは暗号化されたパーティション上にあります。しかし、気に入りません。
代わりに私がやりたいのは、私のボックスとリモート ドライブに同じプレーン テキスト パスワードがあるため、ログイン マネージャーが私が入力したパスワードを使用してドライブのマウントも試行することです。こうすることで、私のパスワードはコンピューターにプレーン テキストで書き込まれませんが、さらに別のパスワードを入力する必要がなくなります。
ドライブをホストしているサーバーへのルートアクセス権を持っていないことを念頭に置き、CIFS マウント ログインを改善するためのその他の提案も歓迎します。
編集:
いくつかの点を明確にする必要があります。
クライアント (私のボックス) へのルート アクセス権はありますが、サーバーへのアクセス権はありません。したがって、すべてのソリューションはクライアント側で実行する必要があります。
私の懸念は、私のラップトップに物理的にアクセスできる人全員にパスワードのプレーンテキスト コピーが渡ってしまうことです。現在、私の /home パーティションは暗号化されているため、ラップトップの電源がオフのときでもスクリプトはかなり安全です。
このため、可能であれば、ユーザー アカウントにログインするために正確な資格情報を入力しているという事実を利用するソリューションが望ましいです。
答え1
私は通常、automount
定期的にマウントして使用したいこのような共有にこのサービスを使用します。やり方がわかれば、設定は非常に簡単です。
ステップ1 - 自動マウントの設定
パッケージがインストールされていることを確認する必要があります。CentOS 6 では になりますautofs
。他のディストリビューションでもおそらく同様の名前が使用されるでしょう。次に、次のファイルを作成する必要があります。
# /etc/auto.master
/mymountpt /etc/auto.mymountpt --timeout=600 --ghost
# /etc/auto.mymountpt
someshare -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/credentials.txt ://cifsserver/sharename
# /etc/credentials.txt
username=mydom\myuser
password=somepassword
この最後のファイルに対する権限を次のように設定する必要があります。
$ sudo chmod 600 /etc/credentials.txt
また、NSS (Name Service Switch) がこの設定を認識していることを確認する必要があります。
# /etc/nsswitch.conf
automount: files nisplus
これらのファイルを配置すると、サービスを開始できるようになりますautofs
。
$ sudo service autofs start
ステップ2 - テストする
サービスが開始されると、このパスに自由にアクセスできるようになります。
$ cd /mymountpt/someshare
この共有のマウントは、autofs
600 秒間の非アクティブ状態を監視し、その時点で共有をアンマウントすることによって制御されるようになりました。
このアプローチは少々強引に思えるかもしれませんが、このようにすることで、起動時に特定の CIFS 共有が利用可能であることをシステムが依存する必要がなくなります。実際に使用されるときにオンデマンドで利用できるように移動したことになります。
ルートログインができない場合はどうすればよいですか?
これらのパッケージがインストールされておらず、インストールできない場合は、選択肢が大幅に少なくなります。
私は、ArchLinux Wiki の Samba の記事では、他の方法も取り上げています。また、FUSEを使用して、SMB/CIFSを含むさまざまなタイプのメディアをローカルディレクトリとしてマウントすることもできます。これは、Ubuntu Wiki の FUSESmb 記事。