Author: fapeeler
Date: Tue May 14 16:38:00 2013
New Revision: 1482439
URL: http://svn.apache.org/r1482439
Log:
VCL-692
moved updating external_sshd.config to create_user routine
removed code related to updating updating AllowUsers
Modified:
vcl/trunk/managementnode/lib/VCL/Module/OS.pm
vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm
Modified: vcl/trunk/managementnode/lib/VCL/Module/OS.pm
URL:
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS.pm?rev=1482439&r1=1482438&r2=1482439&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS.pm Tue May 14 16:38:00 2013
@@ -2504,7 +2504,6 @@ sub manage_server_access {
my @userlist_admin;
my @userlist_login;
my %user_hash;
- my $allow_list = $user_login_id_owner;
if ($server_request_admingroupid) {
@userlist_admin =
getusergroupmembers($server_request_admingroupid);
@@ -2559,11 +2558,8 @@ sub manage_server_access {
next if (!($userid));
#Skip reservation owner, this account is processed in the new
and reserved states
if ($userid eq $user_id_owner) {
- #Add owner's login id if does not already exist
- $allow_list .= " $user_login_id_owner" if ($allow_list !~
/$user_login_id_owner/) ;
next;
}
- #my $standalone = 0;
my $standalone = $user_hash{$userid}{user_info}{STANDALONE};
if(!$self->user_exists($user_hash{$userid}{username})){
@@ -2571,16 +2567,6 @@ sub manage_server_access {
}
if(!exists($res_accounts{$userid}) || $request_laststate_name
eq "reinstall" ){
- # check affiliation
- notify($ERRORS{'DEBUG'}, 0, "checking affiliation for
$userid");
- #my $affiliation_name =
get_user_affiliation($user_hash{$userid}{vcl_user_id});
- #if(defined($affiliation_name)) {
-
- # if(!(grep(/$affiliation_name/, split(/,/,
$not_standalone_list) ))) {
- # $standalone = 1;
- # }
- #}
-
if($request_laststate_name ne "reinstall" ){
$user_hash{$userid}{"passwd"} = 0;
# Generate password if linux and standalone
affiliation
@@ -2613,23 +2599,17 @@ sub manage_server_access {
else {
notify($ERRORS{'WARNING'}, 0, "Failed to create
user on $computer_node_name ");
}
-
- $allow_list .= " $user_hash{$userid}{username}";
-
}
else {
notify($ERRORS{'DEBUG'}, 0, "$userid exists in
reservationaccounts table, assuming it exists on OS");
}
-
}
#Remove anyone listed in reservationaccounts list that is not in
user_hash
foreach my $res_userid (sort keys %res_accounts) {
notify($ERRORS{'OK'}, 0, "res_userid= $res_userid username=
$res_accounts{$res_userid}{username}");
- #Skip reservation owner, this account is processed in the new
and reserved states
+ #Skip reservation owner, this account is not to be removed from
the reservation.
if ($res_userid eq $user_login_id_owner) {
- #Add owner's login id if it does not already exist
- $allow_list .= " $user_login_id_owner" if ($allow_list !~
/$user_login_id_owner/) ;
#Skip group checks as the owner may not be a member
next;
}
@@ -2645,23 +2625,10 @@ sub manage_server_access {
}
next;
}
- $allow_list .= " $res_accounts{$res_userid}{username}";
- }
-
- notify($ERRORS{'OK'}, 0, "allow_list= $allow_list");
-
- $self->data->set_server_allow_users($allow_list);
-
- if ($self->can("update_server_access") ) {
- if ( $self->update_server_access($allow_list) ) {
- notify($ERRORS{'OK'}, 0, "updated remote access list");
- }
}
return 1;
-
}
-
#/////////////////////////////////////////////////////////////////////////////
=head2 process_connect_methods
Modified: vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm
URL:
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm?rev=1482439&r1=1482438&r2=1482439&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS/Linux.pm Tue May 14 16:38:00 2013
@@ -962,8 +962,16 @@ sub delete_user {
my $imagemeta_rootaccess = $self->data->get_imagemeta_rootaccess();
- # Remove AllowUsers lines from external_sshd_config
- $self->remove_lines_from_file('/etc/ssh/external_sshd_config',
'AllowUsers') || return;
+ # Remove user from external_sshd_config
+ my $rem_user_sshd_cmd = "sed -i -e \"/AllowUsers/s/$user_login_id//\"
/etc/ssh/external_sshd_config";
+ if ($self->execute($rem_user_sshd_cmd)) {
+ if (!$self->restart_service("ext_sshd")) {
+ notify($ERRORS{'WARNING'}, 0, "failed to restart ext_sshd service on
$computer_node_name after updating /etc/ssh/external_sshd_config");
+ }
+ }
+ else {
+ notify($ERRORS{'WARNING'}, 0, "Failed to remove user_login_id
from external_sshd_config");
+ }
# Remove lines from sudoers
$self->remove_lines_from_file('/etc/sudoers', "^$user_login_id .*") ||
return;
@@ -997,6 +1005,16 @@ sub reserve {
my $imagemeta_rootaccess = $self->data->get_imagemeta_rootaccess();
my $user_uid = $self->data->get_user_uid();
+ # Remove AllowUsers lines from external_sshd_config
+ if($self->remove_lines_from_file('/etc/ssh/external_sshd_config',
'AllowUsers')) {
+ notify($ERRORS{'WARNING'}, 0, "Error in cleaning AllowUsers
directive from external_sshd_config");
+ }
+
+ # Append AllowUsers line to the end of the file
+ if (!$self->append_text_file('/etc/ssh/external_sshd_config',
"AllowUsers \n")) {
+ notify($ERRORS{'WARNING'}, 0, "Error in appending AllowUsers
directive to external_sshd_config");
+ }
+
if ($self->add_vcl_usergroup()) {
}
@@ -1031,37 +1049,6 @@ sub grant_access {
my $computer_node_name = $self->data->get_computer_node_name();
my $server_request_id = $self->data->get_server_request_id();
- my $ext_sshd_config_file_path = '/etc/ssh/external_sshd_config';
-
- # Remove all AllowUsers lines from external_sshd_config
- if (!$self->remove_lines_from_file($ext_sshd_config_file_path,
'AllowUsers')) {
- notify($ERRORS{'WARNING'}, 0, "unable to grant access to
$computer_node_name, existing AllowUsers lines could not be removed from
$ext_sshd_config_file_path");
- return;
- }
-
- # Assemble the list of usernames to add to the AllowUsers line
- my $allow_users = $user_login_id;
-
- if ($server_request_id) {
- my $server_allow_user_list =
$self->data->get_server_allow_users();
- if ($server_allow_user_list) {
- notify($ERRORS{'DEBUG'}, 0, "server allow user list:
$server_allow_user_list");
- $allow_users .= " $server_allow_user_list";
- }
- }
-
- # Append AllowUsers line to the end of the file
- if (!$self->append_text_file($ext_sshd_config_file_path, "AllowUsers
$allow_users\n")) {
- notify($ERRORS{'WARNING'}, 0, "unable to grant access to
$computer_node_name, failed to add AllowUsers line $ext_sshd_config_file_path");
- return;
- }
-
- # Restart the ext_sshd service
- if (!$self->restart_service('ext_sshd')) {
- notify($ERRORS{'WARNING'}, 0, "unable to grant access to
$computer_node_name, failed to restart ext_sshd service after configuring
AllowUsers lines");
- return;
- }
-
# Process the connection methods, allow firewall access from any address
if ($self->process_connect_methods("", 1)) {
notify($ERRORS{'DEBUG'}, 0, "processed connection methods on
$computer_node_name setting 0.0.0.0 for all allowed ports");
@@ -2451,6 +2438,17 @@ sub create_user {
}
}
+ # Add user to external_sshd_config
+ my $add_user_sshd_cmd = "sed -i -e \"/AllowUsers/s/\$/ $username/\"
/etc/ssh/external_sshd_config";
+ if ($self->execute($add_user_sshd_cmd)) {
+ if (!$self->restart_service("ext_sshd")) {
+ notify($ERRORS{'WARNING'}, 0, "failed to restart
ext_sshd service on $computer_node_name after updating
/etc/ssh/external_sshd_config");
+ }
+ }
+ else {
+ notify($ERRORS{'CRITICAL'}, 0, "Failed to add username to
external_sshd_config");
+ }
+
if ($user_standalone) {
notify($ERRORS{'DEBUG'}, 0, "Standalone user setting single-use
password");
@@ -2508,55 +2506,6 @@ sub create_user {
} ## end sub create_user
#/////////////////////////////////////////////////////////////////////////////
-
-=head2 update_server_access
-
- Parameters :
- Returns :
- Description :
-
-=cut
-
-sub update_server_access {
- my ($self) = shift;
- if (ref($self) !~ /linux/i) {
- notify($ERRORS{'CRITICAL'}, 0, "subroutine was called as a
function, it must be called as a class method");
- return;
- }
-
- my $server_allow_user_list = shift ||
$self->data->get_server_allow_users();
-
- my $computer_node_name = $self->data->get_computer_node_name();
-
- my $ext_sshd_config_file_path = '/etc/ssh/external_sshd_config';
-
- if (!$server_allow_user_list) {
- notify($ERRORS{'DEBUG'}, 0, "$ext_sshd_config_file_path
AllowUsers setting not altered, server allow users list is empty");
- return 1;
- }
-
- # Remove all AllowUsers lines from external_sshd_config
- if (!$self->remove_lines_from_file($ext_sshd_config_file_path,
'AllowUsers')) {
- notify($ERRORS{'WARNING'}, 0, "unable to update server access
on $computer_node_name, failed to remove existing AllowUsers lines from
$ext_sshd_config_file_path");
- return;
- }
-
- # Add AllowUsers line to the end of the file
- if (!$self->append_text_file($ext_sshd_config_file_path, "AllowUsers
$server_allow_user_list\n")) {
- notify($ERRORS{'WARNING'}, 0, "unable to update server access
on $computer_node_name, failed to add line to $ext_sshd_config_file_path:
AllowUsers $server_allow_user_list");
- return;
- }
-
- if (!$self->restart_service("ext_sshd")) {
- notify($ERRORS{'WARNING'}, 0, "failed to restart ext_sshd
service on $computer_node_name after updating $ext_sshd_config_file_path");
- return;
- }
-
- return 1;
-}
-
-#/////////////////////////////////////////////////////////////////////////////
-
=head2 enable_dhcp
Parameters : $interface_name (optional)