次の状況があります。実行中のGNU画面セッションでAFSにアクセスできなくなりました-トークンの有効期限が切れています。ただし、新しいシェルからアクセスできます。-との違い この質問 私はKerberosチケットを持っていないので(aklogが探しているレルムではありません)、aklogを呼び出すことができません。そのようなチケットも取得できません。I AFSがどのように設定されているかはわかりませんが、機能します。
現在、Kerberosチケットは/ tmp/krb5cc *に「格納」され、KRB5CCNAMEと呼ばれる変数によってポイントされます。 Kerberosとscreen/tmuxでこの問題が発生した場合は、kinitを実行するか、KRB5CCNAMEを設定して新しいチケットを古いシェルに移植できます。
AFS資格情報がどのようにポイントされているのか、そして同様にそれらを外側のシェル(AFSアクセス権を持つSSHで接続するもの)から内側のシェル(screen -r
の後に取得するもの)に移植できるかどうか疑問に思います。これ以上のAFSアクセスはありません)。両方のシェル間で変更された関連する環境変数はないようです。 strace tokens
は、/proc/fs/openafs/afs_ioctl
にアクセスするだけであることを示しています。これは、プロセスに関連付けられており、特別なカーネル機能を使用していることを示しています。シェルを閉じて新しいシェルを開かずに、シェルにAFSアクセスを戻す方法はありますか?
Ssh経由でログインし、pam_afs_session.soがアクティブな場合、Kerberosチケットが生成され、それを使用してAFSトークンが作成されます。ログアウトすると、KerberosチケットとAFSトークンの両方が削除されます。
お気づきのとおり、Kerberosチケットはファイルに保存され、AFSトークンはカーネルのPAG(プロセス認証グループ)に保存されます。 2番目のSSHセッションを介して接続すると、pam_afs_session.soライブラリは新しいファイルに新しいKerberosチケットを作成し、新しいPAGに新しいAFSトークンを作成します。
GNUスクリーンセッションでAFSトークンをアクティブに保つ最も簡単な方法は、次のとおりです。