# Functions for parsing nsswitch.conf $nsswitch_config_file = $config{'nsswitch_conf'} || "/etc/nsswitch.conf"; # get_nsswitch_config() # Returns an array ref of information from nsswitch.conf sub get_nsswitch_config { if (!scalar(@get_nsswitch_cache)) { @get_nsswitch_cache = ( ); local $lnum = 0; open(CONF, "<".$nsswitch_config_file); while(<CONF>) { s/\r|\n//g; s/#.*$//; if (/^\s*(\S+)\s*:\s*(.*)/) { # Found a switch config file local $switch = { 'name' => $1, 'line' => $lnum }; local $servs = $2; local @srcs = ( ); while($servs =~ /\S/) { if ($servs =~ /^\s*\[([^\]]*)\](.*)/) { # Actions for some source $servs = $2; foreach $av (split(/\s+/, $1)) { local ($a, $v) = split(/=/,$av); $srcs[$#srcs]->{lc($a)} =lc($v); } } elsif ($servs =~ /^\s*(\S+)(.*)/) { # A source push(@srcs, { 'src' => $1 }); $servs = $2; } } $switch->{'srcs'} = \@srcs; push(@get_nsswitch_cache, $switch); } $lnum++; } close(CONF); } return \@get_nsswitch_cache; } # save_nsswitch_config(&switch) # Update one service sub save_nsswitch_config { local ($switch) = @_; local $lref = &read_file_lines($nsswitch_config_file); local $line = "$switch->{'name'}:"; foreach my $s (@{$switch->{'srcs'}}) { $line .= " ".$s->{'src'}; local @acts; foreach my $st (keys %$s) { if ($st ne "src") { push(@acts, uc($st)."=".$s->{$st}); } } if (@acts) { $line .= " [".join(" ", @acts)."]"; } } $lref->[$switch->{'line'}] = $line; &flush_file_lines($nsswitch_config_file); } # list_switch_sources() # Returns a list of valid nsswitch.conf sources for this OS, and a map from # sources to allowed services sub list_switch_sources { if ($gconfig{'os_type'} =~ /-linux$/) { # All Linux variants return ( [ 'files', 'nisplus', 'nis', 'compat', 'dns', 'db', 'hesiod', 'ldap', 'sss' ], { 'dns' => [ 'hosts' ], 'compat' => [ 'passwd', 'shadow', 'group' ] } ); } elsif ($gconfig{'os_type'} eq 'solaris' && $gconfig{'os_version'} < 8) { # Older Solaris return ( [ 'files', 'nis', 'nisplus', 'compat', 'dns' ], { 'dns' => [ 'hosts' ], 'compat' => [ 'passwd', 'group' ] } ); } elsif ($gconfig{'os_type'} eq 'solaris' && $gconfig{'os_version'} >= 8) { # Newer Solaris return ( [ 'files', 'nis', 'nisplus', 'compat', 'dns', 'ldap', 'user', 'xfn' ], { 'dns' => [ 'hosts' ], 'compat' => [ 'passwd', 'group' ], 'user' => [ 'printers' ], 'xfn' => [ 'printers' ] } ); } elsif ($gconfig{'os_type'} eq 'aix') { # IBM AIX return ( [ 'files', 'nis', 'nisplus', 'compat', 'dns', 'ldap', 'user', 'xfn' ], { 'dns' => [ 'hosts' ], 'compat' => [ 'passwd', 'group' ], 'user' => [ 'printers' ], 'xfn' => [ 'printers' ] } ); } elsif ($gconfig{'os_type'} eq 'unixware') { # All Linux variants return ( [ 'files', 'dns', 'nis', 'nisplus' ], { 'dns' => [ 'hosts' ] } ); } else { # Punt! return ( [ 'files', 'dns', 'nis', 'nisplus' ] ); } } sub list_switch_statuses { return ( 'success', 'notfound', 'unavail', 'tryagain' ); } sub list_switch_actions { return ( 'return', 'continue' ); } 1;
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 1.1 KB | 0644 |
|
atboot.cgi | File | 483 B | 0755 |
|
browser.cgi | File | 2.29 KB | 0755 |
|
check.cgi | File | 2.93 KB | 0755 |
|
config-ALL-linux | File | 79 B | 0644 |
|
config-AlmaLinux-6.0-ALL | File | 66 B | 0644 |
|
config-CentOS-Linux-6.0-ALL | File | 66 B | 0644 |
|
config-CentOS-Stream-Linux-8.0-ALL | File | 66 B | 0644 |
|
config-CloudLinux-8.0-ALL | File | 66 B | 0644 |
|
config-Oracle-Linux-8.0-ALL | File | 66 B | 0644 |
|
config-Redhat-Enterprise-Linux-6.0-ALL | File | 66 B | 0644 |
|
config-Rocky-Linux-6.0-ALL | File | 66 B | 0644 |
|
config-Scientific-Linux-6.0-ALL | File | 66 B | 0644 |
|
config-debian-linux-3.1 | File | 100 B | 0644 |
|
config-debian-linux-4.0-5.9 | File | 65 B | 0644 |
|
config-debian-linux-6.0-6.9 | File | 128 B | 0644 |
|
config-debian-linux-7.0-ALL | File | 65 B | 0644 |
|
config-pardus-linux | File | 74 B | 0644 |
|
config-redhat-linux-13.0-ALL | File | 89 B | 0644 |
|
config.info | File | 556 B | 0644 |
|
config.info.ca | File | 732 B | 0644 |
|
config.info.de | File | 593 B | 0644 |
|
config.info.nl | File | 473 B | 0644 |
|
config.info.no | File | 528 B | 0644 |
|
config.info.pt_BR | File | 599 B | 0644 |
|
cpan_modules.pl | File | 82 B | 0755 |
|
edit_base.cgi | File | 2.47 KB | 0755 |
|
edit_pam.cgi | File | 1.36 KB | 0755 |
|
edit_server.cgi | File | 3.27 KB | 0755 |
|
edit_switch.cgi | File | 1.74 KB | 0755 |
|
fixpam.cgi | File | 364 B | 0755 |
|
index.cgi | File | 2.36 KB | 0755 |
|
install_check.pl | File | 334 B | 0755 |
|
ldap-client-lib.pl | File | 11.53 KB | 0755 |
|
list_switches.cgi | File | 772 B | 0755 |
|
log_parser.pl | File | 461 B | 0755 |
|
module.info | File | 158 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 96 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 122 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 144 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 161 B | 0644 |
|
module.info.ca | File | 97 B | 0644 |
|
module.info.cs | File | 0 B | 0644 |
|
module.info.cs.auto | File | 105 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 97 B | 0644 |
|
module.info.de | File | 99 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 148 B | 0644 |
|
module.info.es | File | 0 B | 0644 |
|
module.info.es.auto | File | 99 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 106 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 159 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 110 B | 0644 |
|
module.info.fr | File | 0 B | 0644 |
|
module.info.fr.auto | File | 120 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 126 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 99 B | 0644 |
|
module.info.hu | File | 0 B | 0644 |
|
module.info.hu.auto | File | 117 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 95 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 144 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 128 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 108 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 99 B | 0644 |
|
module.info.ms | File | 103 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 107 B | 0644 |
|
module.info.nl | File | 20 B | 0644 |
|
module.info.nl.auto | File | 83 B | 0644 |
|
module.info.no | File | 20 B | 0644 |
|
module.info.no.auto | File | 80 B | 0644 |
|
module.info.pl | File | 0 B | 0644 |
|
module.info.pl.auto | File | 95 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 101 B | 0644 |
|
module.info.pt_BR | File | 24 B | 0644 |
|
module.info.pt_BR.auto | File | 83 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 105 B | 0644 |
|
module.info.ru | File | 0 B | 0644 |
|
module.info.ru.auto | File | 170 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 108 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 102 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 104 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 204 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 123 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 146 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 189 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 145 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 84 B | 0644 |
|
module.info.zh_TW | File | 0 B | 0644 |
|
module.info.zh_TW.auto | File | 90 B | 0644 |
|
popup_browser.cgi | File | 2.73 KB | 0755 |
|
restart.cgi | File | 329 B | 0755 |
|
save_base.cgi | File | 1.86 KB | 0755 |
|
save_pam.cgi | File | 1.31 KB | 0755 |
|
save_server.cgi | File | 3.53 KB | 0755 |
|
save_switch.cgi | File | 932 B | 0755 |
|
start.cgi | File | 282 B | 0755 |
|
stop.cgi | File | 254 B | 0755 |
|
switch-lib.pl | File | 3.08 KB | 0755 |
|