CentOS 7でRStudioにログインした後、チケットを破棄するのではなく、Kerberos PAMがチケットを抽出するようにします。
私のrstudio
ファイルは/etc/pam.d/
次のとおりです。
#%PAM-1.0
auth required pam_krb5.so retain_after_close debug
session requisite pam_krb5.so retain_after_close debug
account required pam_krb5.so debug
RStudioがPAMスタックとうまく通信することを知っています。最初の行を削除すると、RStudioがログインしないためです。私はまた、2つのことが同期していることを知らせる他のタスクも行いました。
RStudioのドキュメントによると、次のコマンドを実行すると次のようになります。 pamtester --verbose rstudio <user> authenticate setcred open_session
パスワードを入力すると、/tmp
通話でチケットが生成されます。krb5cc_(uid)
これは私が期待していたものです。これが重要なコンポーネントであることを示すフラグを削除することで、上記のsetcred
パンテスターラインを魅力的にしないようにすることができます。
Keberos PAMドキュメントを見ると、session
コマンドフラグと同じパフォーマンスが見えますが、私が望むauth
コマンドフラグで実行されていることがわかります。pam_setcred(PAM_ESTABLISH_CRED)
同じ文書にを追加すると、retain_after_close
チケットを保存する必要があることがわかります。しかし、そのようなことは起こらず、それが実際にチケットを調べていたのかさえ確信できません。
助けてくれてありがとう。 PAMファイル内のフラグとパラメータのほぼすべての組み合わせを試しましたが、成功しませんでした。 Kerberosは悪夢です。 LMKを助けるために何を追加できますか?残念ながら、PAMは行を理解していないと「自動的に失敗する」ので、エラーを記録しないため、ログファイルは役に立ちません。
答え1
CentOS の pam_krb5 は keep_after_close をサポートしていません。
答え2
私は同じ質問にほぼ一言ずつ答えました。その結果、rstudio-server
Webサーバーを実行しているユーザーは正しいです/etc
。
チケットを作成した後、ユーザーはディレクトリに書き込もうとしますが、書き込めません。
テスターは高い特権で実行されるため、正常に動作します。
答え3
皆さん、私がこれを見つけたことに気づきましたが、答えを投稿したことがありません。簡単に言えば、私がしなければならなかったのは、MIT Kerberosコード(C ++で書かれ、Black Magicとも呼ばれます)をダウンロードし、Kerberosチケットを/ tmpディレクトリに書き込むコードの部分を見つけて、コードを次のように変更することでした。 Kerberosチケットの最後にランダムな6文字を書いていないという内容が追加され、チケットの削除または破棄に関連する部分はコメントアウトされません。
私は共有ライブラリ(pam_krb5.soファイル)でコンパイルし、修正したコードを私のdockerコンテナに入れる必要がありました。それからうまくいきました。残念ながら、私はプロジェクトに参加しなくなり、コードにアクセスすることはできません。これを私の子に入れたらよかったです。
ちなみに、RStudioの有料版はこのペナルティをサポートしています。無料版を使用するには、これを行う必要があります。編集が必要なコード領域を見つけるのに役立つ場合は、私に連絡してください。