我正在尝试将OpenVPN服务器从CentOS盒迁移到Ubuntu18.04盒。
有一个脚本可以创建新的VPN用户。部分原因是,它为用户生成一个新密码,然后将其作为新用户的Linux密码传递(在此基础上有MFA,因此这只是身份验证过程的一部分)。
但是,脚本使用下面的行来执行此操作:
echo ${VPN_PASSWORD} | passwd "${VPN_USER}" --stdin在混乱了很长一段时间之后,我发现Ubuntu没有用于--stdin的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知识的基本缺乏才是真正的问题。
发布于 2019-02-05 11:57:22
要从shell中设置用户密码,请使用chpasswd:
echo "username:cleartext_password" | sudo chpasswdhttps://askubuntu.com/questions/1115795
复制相似问题