背景:由于项目需要提高便捷性,实现一键部署,所以需要通过 shell 脚本自动配置用户密码。
当时网上搜索相关资料,搜索到如下第一和第二种方法,但是我的 Linux 环境中并不支持,故而自己摸索出第三种方法,而且也更简单易用。
-
利用 expect 脚本
基本任何需要交互式登陆或者自动填充密码的场景,expect 都可以解决。
此方法需要移植 expect 程序,未尝试。
-
使用 passwd 程序中标准输入获取密码的参数
--stdin
格式如下:
$ sudo echo "pwd" | passwd --stdin user
如将用户
root
的密码设置为123456
,命令如下:$ sudo echo "123456" | passwd --stdin root
此方法,由于我的 Linux 环境中 passwd 程序被裁减,没有
--stdin
参数,所以未采用。 -
使用 echo 命令
由于我的 Linux 环境比较特殊,所以摸索出如下方式进行自动化设置,格式如下:
$ sudo echo -e "pwd\npwd" | passwd user_name
注意中间有个换行符
\n
.如将用户
root
的密码设置为123456
,则命令如下:$ sudo echo -e "123456\n123456" | passwd root