当社はPuppetによるAD統合を自動化しました。簡単に言えば、サーバーは間違ったドメインに参加しました。現在、ドメインから削除するためにbashスクリプトを作成しましたが、リモートsudo
コマンドは機能しません。また、/ etcからAD_joinedファイルを削除しようとしています。スクリプトにはファイルがまだ残っていると表示されますが、SSHを介してボックスに接続するとファイルが実際に削除され、「sudo adleave」コマンドが正しく機能します。私は何が間違っていましたか?ちなみに、rootログインは無効になっていますsudo
。
スクリプト:
#!/bin/bash
IP=`cat prod_ips.txt`
check=`ls /etc | grep ^AD`
for i in $IP;
do
echo '------------------------------------------------------------';
echo "Connecting to $i";
echo ""
ssh -t -o StrictHostKeyChecking=no -o ConnectTimeout=3 -o PasswordAuthentication=no $i "sudo rm -f /etc/AD_joined; sudo adleave --force;"
echo $check
if [ -z $check ]; then
echo "AD_joined file removed. Server should join correct domain after next puppet run!";
else
echo "File still present, something went wrong";
fi
echo '------------------------------------------------------------';
echo "";
done;
出力例:
------------------------------------------------------------
Connecting to <IP>
Authorized uses only. All activity may be monitored and reported.
sudo: adleave: command not found
Connection to <IP> closed.
AD_joined
File still present, something went wrong
------------------------------------------------------------
答え1
最初の投稿のコメントを読む:/usr/sbin/adleave
スクリプトからadleave
。