如何使用bash脚本编写密码?

时间:2014-05-20 18:57:27

标签: linux bash raspberry-pi raspbian

我正在尝试使用4个覆盆子pis构建覆盆子pi群集。 我正在编写一个脚本来向系统添加新用户,这样就可以在所有4个Pis上添加用户,而无需多次输入。我使用的命令是adduser,我使用ssh将用户添加到所有4个Pis上。这就是脚本中的那一行:

echo `ssh pi@10.10.10.13 "sudo adduser --shell /bin/bash user1"`

这是我用来添加新用户的行。但是,此后的命令是我需要更改密码的地方。如果我使用

sudo passwd user1
在脚本中,对于每个Pi,它会提示用户输入密码4次。我不希望这种情况发生。有没有办法让用户输入一次密码并将其存储在变量中并将其提供给passwd命令?

2 个答案:

答案 0 :(得分:0)

这是一种通过SSH在远程端使用sudo执行大量命令的方法(如果不能选择以root登录):

#!/bin/bash

ssh user@host 'sudo bash -es' <<EOF
command 1
command 2
EOF

-e“失败时失败”(可选)。

-s从STDIN读取。

(我试了一下,似乎正常工作。)

修改

我尝试使用-x(我喜欢反馈)但它使输出乱码,可能是因为STDIN和STDERR“不同步”(可以用2>&1“解决”)。 / p>

答案 1 :(得分:0)

假设Pi上仍然没有“useradd”,我建议你开始研究adduser的命令行参数?

adduser <username> -p <password> ...