通过脚本创建用户

通过脚本创建用户

当我发出以下命令时,我想在特定组中创建一个新用户。

sudo ./create_user.sh "test" "firstname lastname"

create_user.sh脚本如下所示。

#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1

然而,问题是,我必须避免使用此处文档插入密码(应该只是测试),但我不知道语法。

我尝试了一些解决方案,但似乎都不起作用。

这就是我在脚本中尝试的heredocument的样子

#<< EOF
#test
#test
#EOF

我的输出看起来像这样

#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:

答案1

adduser调用该passwd实用程序来设置密码。与许多提示输入密码的程序一样,passwd它坚持其输出来自终端。因此,您无法通过此处文档传递输入 - 创建临时文件或管道,但passwd两者都不接受。

如果您不想使用密码登录,您可以忽略adduser(至少是 Debian 版本)该选项(如果您设置了 SSH 密钥,您仍然可以使用其他方法登录) --disabled-passwordadduser没有传递密码散列(不是密码本身)的选项,但useraddLinux 影子密码实用程序套件有。

如果您想在创建帐户期间输入密码,请确保passwd从终端读取密码。如果您从其他来源(例如 Web 表单)获取密码,请passwd预计脚本 - 例子

如果这是使用此处文档的练习,则密码不是您应该使用的地方。我没有看到这里的文档可以解决您发布的内容中的任何问题。

相关内容