使用 shell 脚本将 Linux 计算机加入 Active Directory 时如何输入密码?

How do i enter the password while joining the Linux machine to Active Directory using shell script?

我正在将 Linux 台机器加入 windows 活动目录,并且我能够使用 SSSD 成功完成此操作。

现在我正在尝试自动化相同的过程,其中我遇到了在加入域时需要输入密码的步骤。

有人可以帮助了解如何通过 shell 脚本输入密码吗?

我的代码是:

#!/bin/bash

set -x

passwd=`cat /domain/domain_join.txt | grep password | awk -F '[=]' '{print}'`
 /usr/bin/expect << EOF
 spawn realm join domainname -U username@domainname -v
 expect "Password for username@domainname: \r"
 send "$passwd\r"
EOF
set +x

这实际上不是 LDAP 问题 - 它是 AD、Kerberos 和 sshd。

看起来你有一个用户帐户可以加入机器 - 大概它有正确的权限。最简单的方法是为该帐户创建一个密钥表,然后您可以执行 kinit 并在该上下文中调用脚本

kinit principal@EXAMPLE.COM -k -t keytab; joinscript

如果您已经完成 kinit,则无需在 realm join 命令中定义您的用户名。

抱歉,我无法对此进行测试,已经有一段时间了,但秘诀是 Windows 凭证的密钥表。