使用 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 凭证的密钥表。
我正在将 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 凭证的密钥表。