我继承了一个运行 Kerberos 的 Fedora Linux 系统,并且正在尝试创建一个新用户。我已经能够调出 kadmin 提示符,并且正在尝试创建用户 NewUser,因此我尝试发出以下命令:
ank -policy users NewUser
但我收到错误信息:
add_principal: Policy does not exist while creating "[email protected]".
然后我尝试:
addprinc NewUser
并且这似乎成功了,但是当我尝试使用这个新帐户登录我们 Kerberos 域上的其他机器时,我收到错误permission denied
。我还需要做什么才能创建新的 Kerberos 用户?
答案1
Kerberos 是一种身份验证系统;它验证用户的身份是否与他们声称的身份相符。但它并不是授权系统;它无法决定谁可以做什么(包括登录)。
具体来说,要登录 Linux 系统,您需要来自 NSS(名称服务交换机)的所有 passwd 条目。因此,此用户需要指定主目录、uid、主 gid 和默认 shell。在常规 Linux 系统上,此信息通常由 提供/etc/passwd
。但是,NSS 允许您使用其他类型的服务来提供此信息,这在网络环境中很常见。此信息可以来自本地文件、LDAP、NIS、winbind(samba)或其他内容。NSS 可以在 中配置/etc/nsswitch.conf
。查看此文件应显示 passwd 信息的来源。运行该命令getent passwd username
将查询 nss 以获取与指定用户关联的信息 passwd。
如果 kerberos 正在运行,kinit username
应该允许您获取用户的凭据。(用户klist
查看凭据,kdestroy
删除它们)
如果 NSS 正在运行,getent passwd username
应该显示该用户的有效密码条目。
如果 PAM 配置正确(在 中/etc/pam.d
,可能使用 pam_krb5 模块),并且 NSS 和 kerberos 正常运行,则用户应该能够登录。
如果登录仍然失败,则可能需要在命令行上测试登录,而不是图形登录(如果尚未执行此操作)。权限不正确或不存在主目录可能会导致图形环境出现问题,但对于 shell 登录来说问题不大。