我试图让Kerberos在RStudio 7上登录之后,提取一张票子,而不是销毁它。
我在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就不会登录。我还做了其他的操作,让我知道两者是同步的.
根据RStudio文档,如果我运行命令:pamtester --verbose rstudio <user> authenticate setcred open_session
输入密码后,将在/tmp中创建一个名为krb5cc_(uid)的票证,这正是我所期望的。我可以通过删除setcred标志(这告诉我这是关键组件),使上述pamtester线无法提取票证。
在Keberos文档中可以看到,session的执行方式与auth相同,但它运行时使用的是命令pam_setcred(PAM_ESTABLISH_CRED)标志,这正是我想要的。同样的文档说,如果我添加了retain_after_close,那么票证就应该保留。然而,这种情况并没有发生,我甚至不确定它是否真的在拉票。
任何帮助都是值得赞赏的,我已经尝试了PAM文件中几乎所有标志和参数的组合,但都没有效果。Kerberos是个噩梦。我还能补充些什么来帮助你。不幸的是,日志文件并不有用,因为它们没有记录错误,因为如果不理解一行,PAM就会“无声地失败”。
发布于 2019-08-14 22:12:56
伙计们,我刚刚意识到我已经搞清楚了,但从来没有发过答案。简单地说,我要做的是下载MIT代码(它是用C++编写的,也称为黑魔法),并找到将Kerberos票据写入/tmp目录的部分,并更改代码,这样它就不会将这6个随机字符添加到kerberos票证的末尾,并注释掉处理删除或销毁该票证的任何部分。
我必须编译成一个共享库( pam_krb5.so文件),并将修改后的代码放入我的docker容器中。然后起作用了。不幸的是,我不再从事该项目,也无法访问代码。真希望我能把它放进我的手套里。
顺便提一句,付费版的RStudio支持这种罚款。如果你想使用免费版本,这是你必须要做的黑客。如果你需要帮助找到代码中要修改的区域,就来找我。
发布于 2018-03-09 18:18:49
来自CentOS的CentOS不支持retain_after_close。
发布于 2019-07-29 14:29:28
我几乎一字不差地说出了同样的问题。结果是,运行web服务器的rstudio-server用户没有对/etc的写访问权。
创建票证时,用户试图写入该目录,但无法写入。
测试器工作正常,因为它是以更高的权限运行的。
https://unix.stackexchange.com/questions/410768
复制相似问题