我正在制作一个 bash 脚本来自动添加用户。我的密码总是有模式,所以我将其设置为一个变量然后......(这就是我陷入困境的地方 - 加密 - )。我发现这个帖子但这谈到了-stdin
我不想使用的内容。此外,如果我忽略密码,系统会要求我输入密码。那么,如何自动加密用户名中的密码呢?
我的剧本
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: $0 <user>"
else
p=${1%.*}
p=$(echo $p | tr -d 'aeiou' | openssl passwd) $1
useradd -p $p $1
fi
编辑:CentOS 上的 mkpasswd 似乎不像我链接的帖子中提到的那样工作。
EDIT2: bash 版本是4.1.2(1)-release
,如果这很重要的话。
答案1
您可以使用useradd
和chpasswd
来自动创建用户。例如
useradd -c "Bob Smith" -m bob
echo "bob:mypassword" | chpasswd
如果您不希望纯文本密码出现在脚本中,请使用以下--encrypted
标志:
echo "bob:encrypted_mypassword" | chpasswd --encrypted
答案2
我最终使用了这个,灵感来自这个帖子
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: $0 <user>"
else
u=${2%.*}
u=${u//[aeiou]}
echo "$2:$u" > .tmp
useradd $2
< .tmp chpasswd
fi