Bash
要求使用者重新輸入顯示的隨機數字元串的登錄腳本
我目前有一個腳本,該腳本在使用者登錄 Linux 伺服器時執行,最後列印
[Terms of use agreement prints here] read -p "Agree and continue..." -nl -s
然而,我發現大多數使用者只是通過提示符(空格鍵、輸入、隨機鍵等)“輸入”,因為腳本不是在尋找特定的條目,現在使用者已經編寫了自己的腳本或宏來輸入過去。
作為一種解決方案,我希望腳本列印一串隨機數字,然後要求使用者在允許訪問之前將這些數字輸入回提示中。
例子:
“歡迎使用伺服器!請輸入以下一次性密碼以繼續:1234。
鑰匙: ”
我怎樣才能做到這一點?
有必要使用read -p嗎?否則,您可以執行以下操作(這將是概念驗證腳本):
#!/bin/bash RANDOMNUM=$(shuf -i 0000-9999 -n 1) echo "Introduce password $RANDOMNUM" read value if [ $value == $RANDOMNUM ]; then echo "Password Match!" else exit fi
Shuf將創建一個介於 0000 和 9999 之間的 4 位隨機數。