用一条命令将一些内容输入到一个文件中
#!/bin/bash (echo "poiu09" usleep 10 echo "poiu08" usleep 10 echo "poiu08")|passwd
[freebsd:~/shcode ]$echo '#!/bin/bash > (echo "poiu09" > usleep 10 > echo "poiu08" > usleep 10 > echo "poiu08")|passwd' > sh900.sh[freebsd:~/shcode ]$cat sh900.sh#!/bin/bash (echo "poiu09" usleep 10 echo "poiu08" usleep 10 echo "poiu08")|passwd[freebsd:~/shcode ]$
[解决办法]
你本来的办法也是一个命令,只是命令长了点.可以把你的命令放到一个脚本文件中,从脚本运行的参数取得oldpass和newpass.
~> cat /tmp/changepass
#! /bin/bash
(echo $1
usleep 10
echo $2
usleep 10
echo $3) | passwd
要改密码的话, 运行(我没测试过):
~> /tmp/changepass oldpass newpass newpass
[解决办法]
[root@RHEL6A ~]# echo aaaaaa|passwd --stdin user25
这样可以,但是只能root这样,普通用户不能这样做
几个星期前才给别人回答过这个问题,居然想了大半天才想起是这么做的