Bash
通過bash腳本自動輸入使用者輸入?
我正在創建一個 bash 腳本,它創建一個使用者並設置一個密碼。執行命令“passwd user”時,它要求使用者輸入密碼並停止我的腳本。
有沒有什麼方法可以在沒有使用者干預的情況下完成使用者輸入?
#!/bin/bash yum -y update adduser test-user passwd test-user "Password here?"
方法 #1 - 使用 passwd
您可以通過腳本執行以下操作:
echo -n "$passwd" | passwd "$uname" --stdin
您要設置的密碼在哪裡,您要為其設置密碼
$passwd
的使用者是$uname
。方法 #2 - 使用 useradd
您也可以
useradd
直接將其提供給:useradd -n -M -s $shell -g $group -d "/home/$homedir" "$uname" -p "$passwd"
**注意:**假設您在方法 #2 中使用基於 Red Hat 的發行版,例如 CentOS 或 RHEL,因為您的範例顯示了
yum
命令。例如,該-n
開關在舊版本中useradd
:-n A group having the same name as the user being added to the system will be created by default. This option will turn off this Red Hat Linux specific behavior. When this option is used, users by default will be placed in whatever group is specified in /etc/default/useradd. If no default group is defined, group 1 will be used.
現在的較新版本
useradd
在 Red Hat 和非 Red Hat 發行版上具有這種選項:-N, --no-user-group Do not create a group with the same name as the user, but add the user to the group specified by the -g option or by the GROUP variable in /etc/default/useradd.
因此,您可以將此命令用於其他發行版:
useradd -N -M -s $shell -g $group -d "/home/$homedir" "$uname" -p "$passwd"
這是一個非常糟糕的主意,但您可以在標準輸入中傳遞密碼:
passwd --stdin test-user <<< "Password here?"