この設定では、Microsoft Active Directory(AD)を使用してSSHを介してLinux VMにアクセスする必要があるため、従業員が退社しているときにADアカウントが無効になっているとVMにアクセスできなくなります。
すべてのデータとユーザーが設定されました。それで私が思いついた計画はこうです。
元のユーザーアカウントへのすべてのリモート/ Sshアクセスを無効にし、新しいADアカウントを介したアクセスのみを許可します。
ADアカウントにSSH経由でアクセスすると、自動的に元のユーザーアカウントにログインします。
logname
新しいADアカウントの代わりに元のユーザーアカウント(つまり自動的にログインしたアカウント)を印刷する必要があります。
答え1
非常に簡単に、対応するログインシェル変数を/etc/passwd
リダイレクトスクリプトに置き換えることができます。
john_AD:x:1000:1000:,,,:/home/john_old:/sbin/redirect_user
スクリプトは次のとおりです。
#!/bin/bash
#autoredirect user to old login
case $USER in
jonh_AD) oldname=john_old
#add list of users
esac
su "$oldname"
次に、AD_userが入力を介してパスワードなしで古いユーザーにログインできることを確認しますsudoers
(スクリプトを使用するように調整しますsudo
)。
ただし、移動時に一度実行され、将来の設定をより面倒にする「IDアップデート」スクリプトを生成することをお勧めします。これはより信頼性が高く安全であり、上記のスクリプトと同じくらいの努力が必要です。
答え2
公開鍵認証が利用可能で、sudoersリストを変更する必要がないので、代わりに使用するように編集ssh
されました(passed)。また、インタラクティブに実行されない場合は何もしない望ましい効果があるため、コマンドを追加しました。このスクリプトは、まだSSHクライアントを正しく設定していないユーザーのための便利なスクリプトです。login
sudo visudo
/etc/bash.bashrc
接続トンネル(Sshマルチホップとも呼ばれる)
接続トンネルの設定を確認したら、さらに追加します。
他の答えからインスピレーションを得ましたが、代替案があります(ADユーザーが/etc/passwd.confにリストされていないため)。
設定:
- 1行
/etc/bash.bashrc
(初期ログイン時にデフォルトでこの行を実行したい場合のみ):
# Executes convenience script which prompts all white-listed users whether they wish to login as their default work user account
/bin/login_redirect
これにより、ユーザーはSSHを介してデフォルトのビジネスユーザーアカウントにログインします。
主なスクリプト:/bin/login_redirect
(すべてのユーザーが実行可能である必要があります。chmod +x bin/login_redirect
)
!/usr/bin/env bash
generate_divider() {
user_query="$1"
user_query_len="${#user_query}"
user_query_len=$((user_query_len+1))
str=$(printf "%${user_query_len}s")
divider="${str// /_}"
}
case "$(logname)" in
# White-list
12345632) work_user=dean;;
12345633) work_user=tom;;
12345634) work_user=mary;;
esac
work_user="${work_user:-none}"
if [ "${work_user}" != "none" ]; then
user_query="Do you wish to login as your default work user? [Y/n]: "
generate_divider "${user_query}"
echo
echo "${divider}"
echo "[WARNING]: You are connected directly to your AD account."
echo " Ask the admin of this server for help"
echo " configuring a multi-hop ssh connection. This "
echo " is a convenience script written to allow"
echo " connection to your default work user in the"
echo " interim."
read -p "${user_query}" login_ans
login_ans="${login_ans:-Y}"
if [ "${login_ans}" == "Y" ]; then
echo "Username: ${work_user}"
exec ssh -t "${work_user}"@"$(hostname)" "echo ${divider}; echo; /bin/bash;"
fi
fi
注:login_redirect
仕事用ユーザー以外のユーザーが実行している場合は、自動的にデフォルトの仕事用ユーザーとしてログインします。