有时候在初始化shell脚本中但愿能顺便建立用户并指定密码,使用useradd命令能够达到该效果:html
useradd -m -p encryptedPassword username
参数说明:shell
使用perl的crypt()方法便可加密明文密码,示例以下:bash
$ perl -e 'print crypt("password", "salt"),"\n"'
输出以下:加密
sa3tHJ3/KuYvI
对于useradd命令须要用到的加密密码,使用'password'做为盐,具体语法以下:code
$ password="1YelloDog@" $ pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) $ echo $pass paU5t8Al/qf6M
示例shell脚本用于建立用户:htm
adduser.ship
#!/bin/bash # Script to add a user to Linux system if [ $(id -u) -eq 0 ]; then read -p "Enter username : " username read -s -p "Enter password : " password egrep "^$username" /etc/passwd >/dev/null if [ $? -eq 0 ]; then echo "$username exists!" exit 1 else pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m -p $pass $username [ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!" fi else echo "Only root may add a user to the system" exit 2 fi
在root用户下执行该脚本:ci
# ./adduser.sh Enter username : roja Enter password : HIDDEN User has been added to system!
... #若是是生产环境,为了防止明文密码泄露,能够对shell脚本进行加密 password="py@123" username="py" pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m -p $pass $username ...
参考连接:it
https://www.cyberciti.biz/tips/howto-write-shell-script-to-add-user.htmlclass