在shell脚本中使用passwd命令
我正在编写一个shell脚本,以自动添加新用户并更新其密码。我不知道如何获取passwd来从shell脚本中读取,而不是交互式地提示我输入新密码。我的代码如下。
adduser $ 1密码$ 1
$2
$2
回答:
来自“ man 1 passwd
”:
--stdin This option is used to indicate that passwd should read the new
password from standard input, which can be a pipe.
所以你的情况
adduser "$1"echo "$2" | passwd "$1" --stdin
[ ]评论中提到了一些问题:
您的passwd
命令可能没有--stdin
选项:chpasswd
按照ashawley的建议使用实用程序。
如果您使用的不是bash外壳,则“echo”可能不是内置命令,外壳将调用/bin/echo
。这是不安全的,因为密码将显示在进程表中,并且可以通过诸如之类的工具查看ps
。
在这种情况下,您应该使用另一种脚本语言。这是Perl中的示例:
#!/usr/bin/perl -wopen my $pipe, '|chpasswd' or die "can't open pipe: $!";
print {$pipe} "$username:$password";
close $pipe
以上是 在shell脚本中使用passwd命令 的全部内容, 来源链接: utcz.com/qa/433604.html