linux脚本账号密码加密,shell脚本中添加用户并设置密码

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

useradd -m -p encryptedPassword username

参数说明:

-m : 自动建立用户的登入目录;

-p encryptedPassword : 加密后的密码, 方法crypt()的返回值.

username 需要添加的用户名

怎么生成一个加密密码:

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

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

输出如下:

sa3tHJ3/KuYvI

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

$ password="1YelloDog@"

$ 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.cnblogs.com/cord/p/9226505.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值