Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用bash脚本编写密码?_Linux_Bash_Raspberry Pi_Raspbian - Fatal编程技术网

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

Linux 如何使用bash脚本编写密码?,linux,bash,raspberry-pi,raspbian,Linux,Bash,Raspberry Pi,Raspbian,我正在尝试用4个树莓pi构建一个树莓pi集群。 我正在编写一个脚本,将新用户添加到系统中,这样用户就可以添加到所有4个PI中,而无需多次输入。我使用的命令是adduser,我使用ssh将用户添加到所有4个PI上。以下是脚本中该行的外观: echo `ssh pi@10.10.10.13 "sudo adduser --shell /bin/bash user1"` 这是我用来添加新用户的行。但是,这之后的命令是我需要更改密码的地方。如果我使用 sudo passwd user1 在脚本中,对

我正在尝试用4个树莓pi构建一个树莓pi集群。 我正在编写一个脚本,将新用户添加到系统中,这样用户就可以添加到所有4个PI中,而无需多次输入。我使用的命令是adduser,我使用ssh将用户添加到所有4个PI上。以下是脚本中该行的外观:

echo `ssh pi@10.10.10.13 "sudo adduser --shell /bin/bash user1"`
这是我用来添加新用户的行。但是,这之后的命令是我需要更改密码的地方。如果我使用

sudo passwd user1

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

如果不选择以root用户身份登录,可以通过SSH在远程端使用sudo执行许多命令:

#!/bin/bash

ssh user@host 'sudo bash -es' <<EOF
command 1
command 2
EOF
-e失败时失败可选

-s从标准文本中读取

我很快地试了一下,它似乎起了作用

编辑


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

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

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

还有,为什么要使用backticks而不仅仅是命令进行echo呢?我最终通过使用useradd而不是adduser解决了这个问题,并为用户提供了一个输入密码的选项,并使用perl中的crypt函数对其进行加密。这些问题很有帮助:谢谢你的回答。但我不确定这是否对我有帮助。假设命令1是adduser,命令2是passwd,每次执行这三行时,用户仍然会得到提示输入新密码,在我的例子中,这是4次。@user3657965哦,我一定是误解了。实际上,还有useradd命令。我使用adduser是因为我熟悉这个命令。adduser中有-disable password选项,但我认为这只会禁用密码,并允许您通过ssh或其他方式登录。我真的不明白它是怎么工作的。useradd命令有一个-password选项,通过它我可以设置默认密码。我想我现在就试试。谢谢@user3657965:我只知道禁用的密码,如果服务器的管理员不想知道用户的密码,它会很有用。但是,这仍然需要一些操作,因为用户应该使用passwd在帐户上设置密码。如果您真的想自动化用户创建过程,我建议使用-passwd选项来添加useradd。我在准备预配置的Samba服务器时经常这样做…谢谢。我现在正试图这么做,但我在加密密码时遇到了一个大问题。以前从未处理过加密,我有点迷路了,而且crypt函数显然适用于C?你有什么建议吗?