Browse Source

This completes the NSS PAM interface, they both can be turned off or on via

the Yard Box now.
master
freesource 23 years ago
parent
commit
1791729abd
  1. 52
      BootRoot/Yard.pm
  2. 56
      BootRoot/YardBox.pm

52
BootRoot/Yard.pm

@ -486,45 +486,55 @@ sub read_contents_file {
# Uses include_file # Uses include_file
sub extra_links { sub extra_links {
my ($contents_file) = @_; my ($contents_file, $nss_pam) = @_;
#info(0, "PASS 2: Picking up extra files from links, and finding pam and nss service modules...\n"); #info(0, "PASS 2: Picking up extra files from links, and finding pam and nss service modules...\n");
info(0, "PASS 2: Picking up extra files from links...\n"); info(0, "PASS 2: Picking up extra files from links...\n");
# First we find nss and pam stuff if asked for. # First we find nss and pam stuff if asked for.
my $find_nss = $nss_pam->{60}{conf_nss};
my $find_pam = $nss_pam->{61}{conf_pam};
for my $file (keys %Included) { if ( $find_nss == 1 || $find_pam == 1 ) {
##### Use replacement file if specified for my $file (keys %Included) {
$file = $replaced_by{$file} if defined($replaced_by{$file});
## Here's where some cool stuff happens ##### Use replacement file if specified
## This can be turned on/off from the YardBox $file = $replaced_by{$file} if defined($replaced_by{$file});
## pam service modules are check for dependencies,
## mostly this translates into libnsl.
## NSS --freesource ## Here's where some cool stuff happens
if ( $file =~ m,/nsswitch.conf, ) { ## This can be turned on/off from the YardBox
## pam service modules are check for dependencies,
## mostly this translates into libnsl. --freesource
## NSS
if ( $find_nss == 1 ) {
if ( $file =~ m,/nsswitch.conf, ) {
my @nss_libs = find_nss($file);
foreach ( @nss_libs ) {
$Included{$_} = 1; # adding on the run
}
my @nss_libs = find_nss($file); }
foreach ( @nss_libs ) {
$Included{$_} = 1; # adding on the run
} }
} ## PAM
if ( $find_pam == 1 ) {
if ( $file =~ m,/pam\.conf|/pam\.d/, ) {
## PAM my @pam_libs = find_pam($file);
if ( $file =~ m,/pam\.conf|/pam\.d/, ) { foreach ( @pam_libs ) {
$Included{$_} = 1; # adding on the run
}
my @pam_libs = find_pam($file); }
foreach ( @pam_libs ) {
$Included{$_} = 1; # adding on the run
} }
} } # for loop
} } # end for nss pam
info(0,"\n"); info(0,"\n");

56
BootRoot/YardBox.pm

@ -143,11 +143,13 @@ my @menu_items = ( { path => '/File',
{ path => '/Edit/Settings/settings_separator', { path => '/Edit/Settings/settings_separator',
type => '<Separator>' }, type => '<Separator>' },
{ path => '/Edit/Settings/NSS Config', { path => '/Edit/Settings/NSS Config',
action => "1111", action => "60",
type => '<CheckItem>' }, type => '<CheckItem>',
callback => \&nss_pam },
{ path => '/Edit/Settings/PAM Config', { path => '/Edit/Settings/PAM Config',
action => '1112', action => '61',
type => '<CheckItem>' }, type => '<CheckItem>',
callback => \&nss_pam },
{ path => '/Edit/Stages/' }, { path => '/Edit/Stages/' },
{ path => '/Edit/Stages/one-by-one', { path => '/Edit/Stages/one-by-one',
@ -602,9 +604,38 @@ sub check {
} }
############
# NSS PAM #
############
my %nss_pam = (
60 => {
conf_nss => 1,
},
61 => {
conf_pam => 1,
},
);
sub nss_pam {
my ($widget,$action) = @_;
my @label = keys( % { $nss_pam{$action} } );
# off
if ($nss_pam{$action}{$label[0]} == 1) {
$nss_pam{$action}{$label[0]} = 0;
}
# on
else {
$nss_pam{$action}{$label[0]} = 1;
}
}
sub links_deps { sub links_deps {
my $error = extra_links($changed_text); my $error = extra_links($changed_text, \%nss_pam);
return if $error && $error eq "ERROR"; return if $error && $error eq "ERROR";
$error = hard_links(); $error = hard_links();
@ -703,6 +734,7 @@ sub test {
return if $error && $error eq "ERROR"; return if $error && $error eq "ERROR";
} }
######################### #########################
# CHECK STAGE VARIABLES # # CHECK STAGE VARIABLES #
######################### #########################
@ -856,7 +888,11 @@ sub yard_box {
# 34 test_passwd 1 (default) 0 # 34 test_passwd 1 (default) 0
# 35 test_pam 1 (default) 0 # 35 test_pam 1 (default) 0
# 36 test_nss 1 (default) 0 # 36 test_nss 1 (default) 0
#
# NSS PAM Conf <CheckItem> HOH = %nss_pam
# -----------------------------------------
# 60 conf_nss 1 (default) 0
# 61 conf_nss 1 (default) 0
# Stages # Stages
$one_by_one = $item_factory->get_item('/Edit/Stages/one-by-one'); $one_by_one = $item_factory->get_item('/Edit/Stages/one-by-one');
@ -992,6 +1028,12 @@ sub yard_box {
my $test_nss = $item_factory->get_item('/Tests/nss'); my $test_nss = $item_factory->get_item('/Tests/nss');
$test_nss->active(1); $test_nss->active(1);
# PAM NSS Conf
my $conf_nss = $item_factory->get_item('/Edit/Settings/NSS Config');
$conf_nss->active(1);
my $conf_pam = $item_factory->get_item('/Edit/Settings/PAM Config');
$conf_pam->active(1);
#_______________________________________ #_______________________________________
# Create the GtkText widget # Create the GtkText widget
$text = new Gtk::Text( undef, undef ); $text = new Gtk::Text( undef, undef );
@ -1807,7 +1849,7 @@ Selection Shortcuts
Searching Shortcuts Searching Shortcuts
Alt-S Search Template Alt-S Search Template
File Shortcuts File Shortcuts

Loading…
Cancel
Save