我使用下面的命令在linux机器上创build一个用户:
useradd -d /home/dummy -g idiots -m -p 12345689 dummy
用户也被创build,主目录也是如此。
问题是我无法使用这个帐户login系统,因为-p期望crypto返回的crypto 。
问题 :我想通过bash脚本创build一个用户,我不知道encryption的crypto 。 我该怎么做,以便能够通过脚本自动创build这个用户,并得到密码的问题周围?
您可以使用openssl生成预encryption的密码string,以便与useradd的-p选项一起使用
echo "P4sSw0rD" | openssl passwd -1 -stdin $1$Jxmpx1Da$Y8MzBctIyDW8/7pFPbNWD1
-1表示生成一个MD5密码散列。 盐是自动生成的。
你可以使用
useradd -d /home/dummy -g idiots -m -p $(echo "P4sSw0rD" | openssl passwd -1 -stdin) dummy
添加用户。 以交互方式隐藏密码
useradd -d /home/dummy -g idiots -m -p $(read -sp Password: pw ; echo $pw | openssl passwd -1 -stdin) dummy
这是我如何做到这一点:
# cat user-pw_list john:p455W0rD geany:p455W0rD # cat CreateUsers.sh #!/bin/bash # # filename: CreateUsers.sh # usage: cat "User:passwd" | $0 # set -e # set -x while read ; do USER=${REPLY%%:*} PWD=${REPLY##*:} # alternative for random passwd, where $RANDOM is a bash function #PWD=${REPLY%%:*}$RANDOM$RANDOM echo -e "adding User $USER " # for disabled users: /usr/sbin/nologin, otherwise /bin/bash /usr/sbin/useradd -c automaticUser -m -k/dev/null -s /usr/sbin/nologin $USER echo "$USER:$PWD" | chpasswd --md5 $USER ## also add user to samba: #echo -e "$PWD\n$PWD" | pdbedit -t -u $USER done
当你要使用一个bash脚本,也许好的旧的newusers命令会对你有帮助吗? 它从格式如下的文本文件读取input:
pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
并且该文件中的密码应该是明文。 您可以根据需要在input文件中列出尽可能多的用户。
欲了解更多信息,请参阅man newusers 。
显然 ,你可以使用
echo "password" | passwd dummy --stdin
我从来没有试过这个。
或者,您可以将用户的公钥放在/home/dummy/.ssh/authorized_keys并完全忘记密码。 这是安全性最好的select。