从 bash 脚本创建用户

从 bash 脚本创建用户

我正在制作一个 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

您可以使用useraddchpasswd来自动创建用户。例如

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

相关内容