亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2149 | 回復(fù): 2
打印 上一主題 下一主題

寫了一個expect改密碼的程序,發(fā)現(xiàn)改密碼不成功,哪位大大來幫幫忙? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-06-07 17:51 |只看該作者 |倒序瀏覽
程序代碼如下:

#!/usr/bin/perl

use strict;
use Expect;

my $hostname;
my $newpass;
my $host;
my $pass;
my $port;

open (FH, "</home/script/hostlist.txt") or die "cannot open file $!";

while (<FH>) {
        chomp;
        if ($_ !~ /^#/) {
            ($hostname, $host, $pass, $newpass, $port) = split;
        print "$host, $pass, $newpass\n";
        my $exp = Expect->new;
                $exp->log_stdout(0);
                if (defined $port) {
                        $exp = Expect->spawn("ssh -l root -p $port $host");
                } else {
                        $exp = Expect->spawn("ssh -l root $host");
                }
                $exp->log_file("ssh_host.log","a");
                $exp->expect(3,[
                                qr/connecting \(yes\/no\)/i,
                                sub {
                                        my $self = shift;
                                        $self->send("yes\n");
                                        exp_continue;
                                }
                        ],
                        [
                                qr/password:/i,
                                sub{
                                        my $self = shift;
                                        $self->send("$pass\n");
                                        exp_continue;
                                }
                        ]
                );
                open (COMMAN, "/home/script/hostcommand.txt") or die "cannot open file $!";

                while (<COMMAN>) {
                        if ($_ !~ /^#/) {
                                chomp;
                                if ($exp->expect(undef, '#')){
                                        $exp->send("$_\n");
                                        $exp->expect(3,[
                                                qr/password:/i,
                                                sub {
                                                        my $self = shift;
                                                        $self->send("$newpass\n");
                                                        exp_continue;
                                                }
                                        ]);
                                }
                        }
                }

                $exp->send("exit\n\n") if ($exp->expect(undef, '#'));
                $exp->log_file(undef);
                }
}

現(xiàn)在的情況是登錄服務(wù)器成功后, 執(zhí)行passwd 用戶名命令后, 提示輸入密碼, 但看程序是已經(jīng)執(zhí)行成功, 可密碼卻沒有改成功, 哪位幫忙看看, 主要問題應(yīng)該出在執(zhí)行完passwd 用戶名命令后的$exp->expect這部份.

論壇徽章:
0
2 [報告]
發(fā)表于 2010-06-07 20:22 |只看該作者
有哪位用過perl中的expect請指教~~

論壇徽章:
0
3 [報告]
發(fā)表于 2010-06-08 10:20 |只看該作者
修改/etc/shadow,不需要使用expect
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP