cifs マルチユーザーマウントは最初は機能しますが、しばらくすると「権限が拒否されました」というメッセージが表示されます。

cifs マルチユーザーマウントは最初は機能しますが、しばらくすると「権限が拒否されました」というメッセージが表示されます。

TrueNAS-Scaleサーバーで複数のSamba共有をホストし、Arch Linuxシステムで「マルチユーザー」オプションを使用してマウントしました。私のユーザーとしてcifscreds add共有にアクセスできますが、しばらくするとアクセスできなくなり、明らかに私のセッションキーリングはキャンセルされました。なぜ?

Archマシンでは、次のように各共有に対してsystemdインストールデバイスを有効にしました。

$ cat /etc/systemd/system/mnt-share.mount
[Unit]
Description=Mount share
After=nss-lookup.target

[Mount]
What=//truenas-scale.localdomain/share
Where=/mnt/share
Type=cifs
Options=multiuser,sec=ntlmssp,credentials=/etc/samba/credentials/smbnobody.creds,iocharset=utf8,rw

[Install]
WantedBy=multi-user.target

/etc/samba/credentials/smbnobody.credsユーザーのユーザー名/パスワードが含まれていますsmbnobody。これは、TrueNASサーバーによって共有された最小限の権限(最上位ディレクトリへの読み取りアクセスのみ可能)を持つように特別に作成されたものです。)

再起動後、ArchマシンにSSHで接続して実行してcifscreds add truenas-scale.localdomainパスワードを入力しましたが、/mnt/share予想通りに読み書きアクセスができました。その後、tmux長期実行ジョブを開始してから切断します。

しばらくすると、SSHを介してArchマシンに再接続すると、読み書きアクセスがなくなったことがよくあります/mnt/share

$ ls /mnt/share
ls: cannot access '/mnt/share': Permission denied

$ ls -l /mnt
ls: cannot access '/mnt/share': Permission denied
total 0
d????????? ? ? ? ?            ? share

資格情報を追加/更新しようとしても失敗しました。

$ cifscreds add truenas-scale.localdomain
Error: unable to query session keyring: Key has been revoked

$ keyctl show
Session Keyring
Unable to dump key: Key has been revoked

再度アクセスするには、コンピュータを再起動する必要がありました。

この問題は、長期実行ジョブが共有にアクセスできない場合に発生します。たとえば、wget内部共有への大容量ファイルのダウンロードを実行し、tmuxダウンロードが完了する前に接続を切断して再接続すると、共有への読み取り/書き込みアクセスはまだ有効です。ただし、ダウンロードが完了した直後に再接続すると、「権限が拒否されました」と表示されます。

なぜこれが起こり、どのように防ぐことができますか?

答え1

私も同様の問題がありましたが、私の場合は、keyctl session新しいセッションを作成して認証して問題を解決できました。

私はこれが不満足な答えであることを知っていますが、これまでに得た他の答え(例:なし)よりも優れており、基盤を構築するためのいくつかの手がかりを提供できることを願っています。

関連情報