fix for 2889577, do not delete authorized_keys* files when runnning xdsh -K, if they existed
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4543 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
8ff84d74b6
commit
1204862fa9
@ -1349,9 +1349,42 @@ rmdir \"/tmp/$to_userid\"";
|
||||
|
||||
close FILE;
|
||||
chmod 0777,"$home/.ssh/copy.sh";
|
||||
|
||||
my $auth_key=0;
|
||||
my $auth_key2=0;
|
||||
if (xCAT::Utils->isMN())
|
||||
{ # if on Management Node
|
||||
# if there is an authorized_keys or authorized_keys2 file in
|
||||
# root home directory, back it up to authorized_keys*.xcatbackup
|
||||
# we are going to build a new one to send to the nodes and need
|
||||
# to restore the admins files after we are finished
|
||||
#
|
||||
|
||||
if (-e("$home/.ssh/authorized_keys")) {
|
||||
my $cmd="mv $home/.ssh/authorized_keys $home/.ssh/authorized_keys.xcatbackup";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
return (1);
|
||||
|
||||
}
|
||||
$auth_key=1;
|
||||
}
|
||||
if (-e("$home/.ssh/authorized_keys2")) {
|
||||
my $cmd="mv $home/.ssh/authorized_keys2 $home/.ssh/authorized_keys2.xcatbackup";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
return (1);
|
||||
|
||||
}
|
||||
$auth_key2=1;
|
||||
}
|
||||
if ($from_userid eq "root")
|
||||
{
|
||||
|
||||
@ -1398,21 +1431,73 @@ rmdir \"/tmp/$to_userid\"";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
|
||||
}
|
||||
|
||||
#remove $home/.ssh/authorized_keys*
|
||||
#Easy to remote this code, if we want
|
||||
#The MN to be able to ssh to itself and nodes to ssh to the MN
|
||||
# if on the MN
|
||||
# remove the created authorized_keys* and restore if a backed up
|
||||
# version of authorized_keys* was created because the file
|
||||
# existed when the command was run
|
||||
if (xCAT::Utils->isMN())
|
||||
{
|
||||
$cmd = "rm $home/.ssh/authorized_keys*";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
if ($auth_key == 1) { # need to restore
|
||||
my $cmd="cp $home/.ssh/authorized_keys.xcatbackup $home/.ssh/authorized_keys";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
return (1);
|
||||
|
||||
}
|
||||
$cmd = "rm $home/.ssh/authorized_keys.xcatbackup";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
}
|
||||
} else { # just delete
|
||||
$cmd = "rm $home/.ssh/authorized_keys";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
return (1);
|
||||
|
||||
}
|
||||
}
|
||||
if ($auth_key2 == 1) { # need to restore
|
||||
my $cmd=
|
||||
"cp $home/.ssh/authorized_keys2.xcatbackup $home/.ssh/authorized_keys2";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
return (1);
|
||||
|
||||
}
|
||||
$cmd = "rm $home/.ssh/authorized_keys2.xcatbackup";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
}
|
||||
|
||||
} else { # just delete it
|
||||
$cmd = "rm $home/.ssh/authorized_keys2";
|
||||
xCAT::Utils->runcmd($cmd, 0);
|
||||
my $rsp = {};
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
$rsp->{data}->[0] = "$cmd failed.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user