如何在不知道密码的encryptionforms的情况下添加用户?

我使用下面的命令在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。