首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >launchd bash kinit不检索kerberos票

launchd bash kinit不检索kerberos票
EN

Stack Overflow用户
提问于 2016-02-20 14:18:02
回答 2查看 1.3K关注 0票数 1

我在尝试自动更新我的kerberos机票。下面的脚本在终端中运行得很好,但是在Automator或Launchd中失败了。虽然expect命令返回时没有出现错误,但是没有获得新的票证。运行klist将返回一个空列表。

感谢你的任何帮助

代码语言:javascript
复制
#!/bin/sh
expect -c 'spawn /usr/bin/kinit USER@DOMAIN; expect "password:" { send "<password>" ; interact} '
if [ "$?" = "0" ]; then
echo "obtained kerberos token"
else
echo "couldn't obtain kerberos token"
exit 1;
fi
exit 0

在launchd中运行,将记录以下输出

用户@域的密码: 获得kerberos令牌

通过在send命令之后添加一些超时来解决

代码语言:javascript
复制
expect -c 'spawn /usr/bin/kinit USER@DOMAIN; expect "password:" { send "<password>" ; interact}; sleep 5 '

注意:正如Samson在他的评论中提到的,在脚本文件中使用密码是一个糟糕的解决方案。我只用它做测试。在kerberos中使用key选项卡是正确的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-20 22:19:48

在expect命令中添加超时对我有效。

票数 2
EN

Stack Overflow用户

发布于 2016-02-21 15:04:05

将硬编码的明文密码填充到命令提示符中是要做的一件事。为什么首先使用Kerberos身份验证??

在后台创建Kerberos的预期方法是使用keytab (即包含加密的密码“散列”的文件)。

  1. 检查您的krb5.conf以获得预期/支持的加密列表(例如aes256-cts-hmac-sha1-96rc4-hmac)
  2. 使用ktutil实用工具创建keytab (请先阅读教程,这些命令很不直观)
  3. kinit -kt /some/path/to/mykt.keytab进行测试
  4. 限制keytab文件的权限,因为它允许任何人登录您的帐户。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35524485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档