1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
#!/usr/bin/perl
# Drakwizard
# Copyright (C) 2002,2005 Mandriva
#
# Authors: antoine Ginies <aginies@mandriva>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package MDK::Wizard::Sshd;
use strict;
use common;
use services;
use MDK::Wizard::Wizcommon;
use Libconf::Templates;
use Libconf::Glueconf::Ssh::Sshd_config;
my $wiz = new MDK::Wizard::Wizcommon;
my $conf = "/etc/ssh/sshd_config";
# remove anoying \t in /etc/ssh/sshd_config to permit Glueconf to read it
substInFile { s/\t/ /gi } $conf;
# we ask glueconf to give us the structure representing /etc/ssh/sshd_config
my $sshd = new Libconf::Glueconf::Ssh::Sshd_config({ filename => '/etc/ssh/sshd_config' });
# ------ debug
use Data::Dumper;
print Dumper($sshd);
my $o = {
name => 'Samba wizard',
var => {
wiz_ => '',
},
init => sub {
test_host_domain($SHORTHOSTNAME, $DOMAINNAME);
},
needed_rpm => [ 'openssh-server' ],
defaultimage => "/usr/share/wizards/sshd_wizard/images/sshd.png"
};
my @yesorno = qw(yes no); push @yesorno, "";
$o->{pages} = {
welcome => {
name => N(''),
},
end => {
name => N('Congratulations') . "\n\n" . N('The wizard successfully configured your Ssh server.'),
no_back => 1,
end => 1,
next => 0
},
error_end => {
name => N("Failed"),
data => [ { label => N("Please relaunch drakwizard, and try to change some parameters.") } ],
no_back => 1,
end => 1,
next => 0,
},
};
sub new {
my ($class, $conf) = @_;
bless {
o => $o,
}, $class;
}
sub write_conf_restart_ssh {
$sshd->write_conf($conf);
if (services::is_service_running('sshd')) {
services::restart('sshd')
} else { services::start('sshd') }
}
sub do_it {
$::testing and return;
# display a wait dialog box
my $in = 'interactive'->vnew('su', 'Ssh');
my $w = $in->wait_message(N("Ssh server"), N("Configuring your Ssh server..."));
write_conf_restart_sshd();
# remove wait message
undef $w;
check_started('sshd');
}
1;
|