Shell 脚本实现自动修改 Linux 用户密码
Linux 系统下通过 passwd
命令修改密码会进入交互模式,此时系统会等待用户输入。如果我们不希望进入交互模式,通过脚本或者文件自动完成输入,或者通过接收到的参数完成输入操作,如此就能省去人工输入。结合EOF就能完美解决这个问题,下面通过自动化修改 pure-FTPd 用户密码的脚本 passwd.sh 实例来说明。
#!/bin/bash
# $1 $2 分别代表执行此脚本时的第一和第二个参数
/usr/local/pureftpd/bin/pure-pw passwd $1 <<EOF
$2
$2
EOF
/usr/local/pureftpd/bin/pure-pw mkdb
按如下格式执行脚本:/bin/bash passwd.sh ftpuser1 ftppassword
如果需要隐藏命令提示文字(标准输出),可添加 >/dev/null 2>&1
,具体如下:
#!/bin/bash
# $1 $2 分别代表执行此脚本时的第一和第二个参数
/usr/local/pureftpd/bin/pure-pw passwd $1 <<EOF >/dev/null 2>&1
$2
$2
EOF
/usr/local/pureftpd/bin/pure-pw mkdb