我正在尝试将 OpenVPN 服务器从 CentOS 机器迁移到 Ubuntu 18.04 机器。
有一个脚本可以创建新的 VPN 用户。部分原因是它为用户生成一个新密码,然后将其作为新用户的 Linux 密码传入(在此之上有 MFA,因此这只是身份验证过程的一部分)。
但是,该脚本使用以下行来执行此操作:
echo ${VPN_PASSWORD} | passwd "${VPN_USER}" --stdin
--stdin
在搞砸了很长时间之后,我发现Ubuntu没有passwd
.
但是,我找不到的是另一种方法。
这些是我脚本的相关部分。
我们生成一个密码:
VPN_PASSWORD=$(cat /dev/urandom | tr -dc 'A-Z0-9' | head -c 8)
我们添加一个新用户并尝试为其分配此密码:
echo "Adding Unix user ${VPN_USER}"
useradd -G vpnusers -m -s /sbin/nologin $VPN_USER
if [ "$?" != 0 ]
then
echo "Could not create user. (Are you sudo?!)"
exit 1
fi
echo ${VPN_PASSWORD} | passwd "${VPN_USER}" --stdin
echo "User created."
正在创建用户,但我收到有关密码的错误:
passwd: unrecognized option '--stdin'
Usage: passwd [options] [LOGIN]
我已经尝试了一天来找到并回答这个问题并尝试了很多很多东西,但我认为我根本缺乏 Ubuntu 知识是这里真正的问题。
要从 shell 设置用户密码,请使用
chpasswd
: