需求: 有时候需要在脚本里面使用root用户直接修改某个用户的密码,这种情况下有两个要求:
1. 不能有交互
2. 脚本里不能出现明文密码
那么可以先用openssl passwd先将明文密码加密,然后使用chpasswd的-e选项修改,示例如下
例如想要将用户qingsong的密码修改为myPasswd,可以先使用如下命令:
node01:~ # openssl passwd -salt 'abcd'
Password: <-在这里输入待加密的密码myPasswd
abC3a7i.pGlkw
可以看到myPasswd加密之后的串为abC3a7i.pGlkw,然后使用这个加密串修改密码:
Linux:
node01:~ # echo "qingsong:abC3a7i.pGlkw" | chpasswd -e
AIX
node01:~ # echo "qingsong:abC3a7i.pGlkw" | chpasswd -e -c
备注1: openssl命令中可以不加salt参数,这样每次生成的密串就不一样。加了salt参数之后,对于同一个salt,同一个明文加密之后的串都是一样的。
备注2:如果是HP-UNIX,并且明文密码是8位(含)以下,那么可以使用/usr/sam/lbin/usermod.sam -p "加密后的密码" "用户名" 的方法来修改