shell脚本中添加用户并设置密码

Posted 堕落门徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本中添加用户并设置密码相关的知识,希望对你有一定的参考价值。

有时候在初始化shell脚本中希望能顺便创建用户并指定密码,使用useradd命令可以达到该效果:

useradd -m -p encryptedPassword username

参数说明:

  • -m : 自动建立用户的登入目录;
  • -p encryptedPassword : 加密后的密码, 方法crypt()的返回值.
  • username 需要添加的用户名
怎么生成一个加密密码:

使用perl的crypt()方法即可加密明文密码,示例如下:

$ perl -e ‘print crypt("password", "salt"),"
"‘

输出如下:

sa3tHJ3/KuYvI

对于useradd命令需要用到的加密密码,使用‘password‘作为盐,具体语法如下:

$ password="[email protected]"
$ pass=$(perl -e ‘print crypt($ARGV[0], "password")‘ $password)
$ echo $pass
paU5t8Al/qf6M

示例shell脚本用于创建用户:

adduser.sh

#!/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用户下执行该脚本:

# ./adduser.sh
Enter username : roja
Enter password : HIDDEN
User has been added to system!
附自己使用的一段增加用户的shell:
...
#如果是生产环境,为了防止明文密码泄露,可以对shell脚本进行加密
password="[email protected]"
username="py"
pass=$(perl -e ‘print crypt($ARGV[0], "password")‘ $password)
useradd -m -p $pass $username
...

参考链接:

https://www.cyberciti.biz/tips/howto-write-shell-script-to-add-user.html

以上是关于shell脚本中添加用户并设置密码的主要内容,如果未能解决你的问题,请参考以下文章

案例九:shell脚本自动创建多个新用户,并设置密码

(转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

shell脚本之利用位置变量添加账户并设置密码

案例九:shell脚本自动创建多个新用户,并设置密码

原创ElasticSearch使用shell脚本的方式为其增加用户并添加密码

原创ElasticSearch使用shell脚本的方式为其增加用户并添加密码