複数のユーザーで構成されたSambaサーバーがあります。
デフォルトでは、cifs共有は、マウント時に提供された資格情報のみを使用してマウントされます。マウントポイントへのアクセス権を持つ人は誰でも、資格情報を使用しているユーザーとしてファイルにアクセスできます。
ユーザーがマウントポイントにアクセスするときに自分の資格情報を自動的に使用するようにクライアントを構成する方法を探しています。
ログインユーザー名とパスワードは、Sambaサーバーへのアクセスに使用されたものと同じです。
答え1
そしてmultiuser
マウントオプションを使用すると、ユーザーは自分の資格情報を使用してマウントポイントにアクセスします。ただし、これにはユーザーが共有にアクセスするときにマウントを使用できる必要があり、共有をマウントするにはクライアントに有効な資格情報が必要です(サーバーが匿名(ゲスト)アクセスを許可しない場合)。
pam_cifscreds
CIFS共有にアクセスするために使用されるログインパスワードをキャッシュするために使用できます。または、ユーザーが使用できますcifscreds
パスワードを入力してください。どちらの場合も、pam_keyinit.so
ログイン時にセッションキーリングが確立されるように、pamセッション構成でそれを使用する必要があります。
Debian ベースのシステムでは、次の設定を追加すると動作します。
/etc/pam.d/common-session(IPアドレスまたはホスト名に置き換えます{SAMBA_SERVER}
):
session required pam_keyinit.so
session optional pam_cifscreds.so host={SAMBA_SERVER}
/etc/pam.d/common-auth:
auth optional pam_cifscreds.so
答え2
yum install pam_cifscreds
(CentOS> = 8のみ。7では使用できません)
- ファイルの編集
/etc/pam.d/
:
RHEL ドキュメントをご覧ください。https://access.redhat.com/solutions/3805741(アクセスするには無料の開発者アカウントを開設してください)。上記のように変更した後は、サービスを再起動する必要はありません。次回ログインすると自動的に適用されます。
- 次のオプションを使用してルートとしてマウントします
multiuser
。
mount -t cifs -o ユーザー名=abc123,vers=1.0,noperm,multiuser,sec=ntlmssp //example.org/hello /mnt/hello
- SSH経由でroot以外のユーザーとしてログインします。キーペアを使用しないでください。パスワードが必要です。ログインしたら、パスワードが自動的にキャッシュされていることを確認してください
pam_cifscreds
。
$ keyctl show
Session Keyring
804802868 --alswrv 4414294 100001 keyring: _ses
775789538 --alswrv 4414294 65534 \_ keyring: _uid.4414294
844620914 ----sw-v 0 0 \_ logon: cifs:a:example.org
最後はキャッシュされますpam_cifscreds
。
これで訪問が
ls /mnt/hello
スムーズになりました。GUIログイン時のパスワードキャッシングの詳細については、以下を参照してください。セバスのソリューション。
(CentOS 9で回答を確認しました)