PAM Ke​​rberosとRStudio

PAM Ke​​rberosとRStudio

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-serverWebサーバーを実行しているユーザーは正しいです/etc

チケットを作成した後、ユーザーはディレクトリに書き込もうとしますが、書き込めません。

テスターは高い特権で実行されるため、正常に動作します。

答え3

皆さん、私がこれを見つけたことに気づきましたが、答えを投稿したことがありません。簡単に言えば、私がしなければならなかったのは、MIT Kerberosコード(C ++で書かれ、Black Magicとも呼ばれます)をダウンロードし、Kerberosチケットを/ tmpディレクトリに書き込むコードの部分を見つけて、コードを次のように変更することでした。 Kerberosチケットの最後にランダムな6文字を書いていないという内容が追加され、チケットの削除または破棄に関連する部分はコメントアウトされません。

私は共有ライブラリ(pam_krb5.soファイル)でコンパイルし、修正したコードを私のdockerコンテナに入れる必要がありました。それからうまくいきました。残念ながら、私はプロジェクトに参加しなくなり、コードにアクセスすることはできません。これを私の子に入れたらよかったです。

ちなみに、RStudioの有料版はこのペナルティをサポートしています。無料版を使用するには、これを行う必要があります。編集が必要なコード領域を見つけるのに役立つ場合は、私に連絡してください。

関連情報