在以下情况下如何正确调试shell登录?
身份验证通过 sssd 配置和 krb5 身份验证服务器进行处理。在 Ubuntu 16.04 LTS 上使用相同的 .conf 文件登录工作完美。一旦将它与 17.04 一起使用,除了 root 之外的所有内容登录都会导致 getty shell 重新启动 - /var/log/syslog 状态
getty@tty2.service: Service has no hold-off time, sheduling restert.
Stopped Getty on tty2.
Started Getty on tty2.
Run Code Online (Sandbox Code Playgroud)
并在 auth.log 中注明以下内容:
pam_sss(login:account): Access denied for user <user>: 4 (System error)
System error
Run Code Online (Sandbox Code Playgroud)
执行login <user>结果
root@pctest# login <user>
password:
System error
root@pctest#
Run Code Online (Sandbox Code Playgroud)
使用sssctl config-check16.04 LTS 上的工作配置不会出现预期的错误。
我提到的每个测试都是在格式化驱动器上自动配置和手动检查的新安装系统上执行的。额外的包是通过ubuntu-standard元包安装的(没有安装桌面环境)。尽管如此,该问题也在升级到 17.04 的工作 16.04 LTS 系统上重现。
我既没有找到详细模式,login也没有找到将登录失败部分作为独立执行的合理方法。那你会怎么做?
[编辑] 工作解决方法
给定问题的解决方案是:
我们的解决方法是在文件 /etc/sssd/sssd.conf 的 [domain] 部分设置 ad_gpo_access_control = permissive ...
来源:https : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=859445
您需要将 debug_level=10 添加到 sssd.conf 文件的所有部分中,重新启动 sssd 并重新运行登录。然后查看/var/log/sssd。另请阅读 https://docs.pagure.org/sssd.sssd/users/troubleshooting.html
小智 6
只是想知道为什么一些新的 Active Directory 连接 Linux (Debian 9) 系统会报告,system error而su一些较旧的系统却没有显示此行为。设置ad_gpo_access_control = permissive确实使其正常工作,但根本原因是新系统的子网中的 IP 地址未记录在 Active Directory站点和服务中。添加子网并将其分配给站点后(给 AD 一些时间来复制),system error就不再报告该子网。
Ubuntu 20.04 上同样的问题,添加
解决了 Ubuntu 18.04 上不存在的问题(相同的 M$ AD 和 RFC_2307 属性映射)
我仍然需要找到正确的设置来保证系统安全