X7ROOT File Manager
Current Path:
/usr/libexec/webmin/nis
usr
/
libexec
/
webmin
/
nis
/
📁
..
📄
CHANGELOG
(308 B)
📄
aix-lib.pl
(9.79 KB)
📄
backup_config.pl
(817 B)
📄
build.cgi
(162 B)
📄
coherent-linux-lib.pl
(10.4 KB)
📄
config-aix
(181 B)
📄
config-coherent-linux
(116 B)
📄
config-debian-linux
(120 B)
📄
config-generic-linux
(116 B)
📄
config-mandrake-linux
(116 B)
📄
config-msc-linux
(116 B)
📄
config-open-linux
(117 B)
📄
config-openmamba-linux
(116 B)
📄
config-redhat-linux
(116 B)
📄
config-slackware-linux
(116 B)
📄
config-solaris
(167 B)
📄
config-solaris-8-ALL
(199 B)
📄
config-suse-linux
(116 B)
📄
config-trustix-linux
(116 B)
📄
config-united-linux
(116 B)
📄
config.info
(282 B)
📄
config.info.ca
(320 B)
📄
config.info.cs
(321 B)
📄
config.info.de
(321 B)
📄
config.info.es
(277 B)
📄
config.info.fr
(350 B)
📄
config.info.hu
(0 B)
📄
config.info.nl
(290 B)
📄
config.info.no
(297 B)
📄
config.info.pl
(309 B)
📄
config.info.ru
(491 B)
📄
config.info.sv
(132 B)
📄
config.info.uk
(500 B)
📄
debian-linux-lib.pl
(10.19 KB)
📄
edit_aliases.cgi
(1.2 KB)
📄
edit_client.cgi
(1.41 KB)
📄
edit_ethers.cgi
(1.14 KB)
📄
edit_group.cgi
(1.81 KB)
📄
edit_group_shadow.cgi
(1.83 KB)
📄
edit_hosts.cgi
(1.31 KB)
📄
edit_netgroup.cgi
(2.01 KB)
📄
edit_netmasks.cgi
(1.16 KB)
📄
edit_networks.cgi
(1.35 KB)
📄
edit_passwd.cgi
(4.8 KB)
📄
edit_passwd_shadow.cgi
(4.8 KB)
📄
edit_passwd_shadow_full.cgi
(4.8 KB)
📄
edit_protocols.cgi
(1.35 KB)
📄
edit_rpc.cgi
(1.3 KB)
📄
edit_security.cgi
(1.92 KB)
📄
edit_server.cgi
(607 B)
📄
edit_services.cgi
(1.52 KB)
📄
edit_services2.cgi
(1.53 KB)
📄
edit_switch.cgi
(1.74 KB)
📄
edit_tables.cgi
(6.24 KB)
📄
feedback_files.pl
(157 B)
📁
images
📄
index.cgi
(776 B)
📁
lang
📄
linux-lib.pl
(5.27 KB)
📄
list_switches.cgi
(772 B)
📄
mandrake-linux-lib.pl
(10.38 KB)
📄
md5-lib.pl
(7.44 KB)
📄
module.info
(346 B)
📄
module.info.af
(0 B)
📄
module.info.af.auto
(167 B)
📄
module.info.ar
(0 B)
📄
module.info.ar.auto
(195 B)
📄
module.info.be
(0 B)
📄
module.info.be.auto
(287 B)
📄
module.info.bg
(0 B)
📄
module.info.bg.auto
(250 B)
📄
module.info.ca
(163 B)
📄
module.info.ca.auto
(12 B)
📄
module.info.cs
(28 B)
📄
module.info.cs.auto
(145 B)
📄
module.info.da
(0 B)
📄
module.info.da.auto
(154 B)
📄
module.info.de
(136 B)
📄
module.info.de.auto
(12 B)
📄
module.info.el
(0 B)
📄
module.info.el.auto
(235 B)
📄
module.info.es
(31 B)
📄
module.info.es.auto
(138 B)
📄
module.info.eu
(0 B)
📄
module.info.eu.auto
(164 B)
📄
module.info.fa
(0 B)
📄
module.info.fa.auto
(248 B)
📄
module.info.fi
(0 B)
📄
module.info.fi.auto
(158 B)
📄
module.info.fr
(30 B)
📄
module.info.fr.auto
(141 B)
📄
module.info.he
(0 B)
📄
module.info.he.auto
(170 B)
📄
module.info.hr
(0 B)
📄
module.info.hr.auto
(171 B)
📄
module.info.hu
(34 B)
📄
module.info.hu.auto
(147 B)
📄
module.info.it
(0 B)
📄
module.info.it.auto
(152 B)
📄
module.info.ja
(49 B)
📄
module.info.ja.auto
(226 B)
📄
module.info.ko
(39 B)
📄
module.info.ko.auto
(154 B)
📄
module.info.lt
(0 B)
📄
module.info.lt.auto
(169 B)
📄
module.info.lv
(0 B)
📄
module.info.lv.auto
(169 B)
📄
module.info.ms
(149 B)
📄
module.info.ms.auto
(12 B)
📄
module.info.mt
(0 B)
📄
module.info.mt.auto
(144 B)
📄
module.info.nl
(30 B)
📄
module.info.nl.auto
(130 B)
📄
module.info.no
(29 B)
📄
module.info.no.auto
(117 B)
📄
module.info.pl
(107 B)
📄
module.info.pl.auto
(12 B)
📄
module.info.pt
(0 B)
📄
module.info.pt.auto
(164 B)
📄
module.info.pt_BR
(0 B)
📄
module.info.pt_BR.auto
(173 B)
📄
module.info.ro
(0 B)
📄
module.info.ro.auto
(156 B)
📄
module.info.ru
(41 B)
📄
module.info.ru.auto
(246 B)
📄
module.info.sk
(0 B)
📄
module.info.sk.auto
(165 B)
📄
module.info.sl
(0 B)
📄
module.info.sl.auto
(165 B)
📄
module.info.sv
(31 B)
📄
module.info.sv.auto
(123 B)
📄
module.info.th
(0 B)
📄
module.info.th.auto
(347 B)
📄
module.info.tr
(0 B)
📄
module.info.tr.auto
(169 B)
📄
module.info.uk
(0 B)
📄
module.info.uk.auto
(247 B)
📄
module.info.ur
(0 B)
📄
module.info.ur.auto
(244 B)
📄
module.info.vi
(0 B)
📄
module.info.vi.auto
(217 B)
📄
module.info.zh
(34 B)
📄
module.info.zh.auto
(120 B)
📄
module.info.zh_TW
(37 B)
📄
module.info.zh_TW.auto
(126 B)
📄
msc-linux-lib.pl
(10.38 KB)
📄
nis-lib.pl
(6.02 KB)
📄
nisupdate.conf
(1.94 KB)
📄
old_edit_passwd_shadow.cgi
(4.62 KB)
📄
old_edit_switch.cgi
(1.76 KB)
📄
old_save_switch.cgi
(533 B)
📄
open-linux-lib.pl
(7.89 KB)
📄
openmamba-linux-lib.pl
(10.38 KB)
📄
redhat-linux-lib.pl
(10.38 KB)
📄
save_aliases.cgi
(749 B)
📄
save_client.cgi
(661 B)
📄
save_ethers.cgi
(793 B)
📄
save_file.cgi
(588 B)
📄
save_group.cgi
(945 B)
📄
save_group_shadow.cgi
(1.04 KB)
📄
save_hosts.cgi
(758 B)
📄
save_netgroup.cgi
(1.04 KB)
📄
save_netmasks.cgi
(753 B)
📄
save_networks.cgi
(791 B)
📄
save_passwd_shadow.cgi
(2.36 KB)
📄
save_protocols.cgi
(806 B)
📄
save_rpc.cgi
(746 B)
📄
save_security.cgi
(996 B)
📄
save_server.cgi
(184 B)
📄
save_services.cgi
(775 B)
📄
save_services2.cgi
(776 B)
📄
save_switch.cgi
(932 B)
📄
slackware-linux-lib.pl
(9.91 KB)
📄
solaris-lib.pl
(10.45 KB)
📄
suse-linux-8.2-lib.pl
(11.05 KB)
📄
suse-linux-9.0-lib.pl
(11.05 KB)
📄
suse-linux-lib.pl
(11.88 KB)
📄
switch-lib.pl
(3.08 KB)
📄
trustix-linux-lib.pl
(10.38 KB)
📄
united-linux-lib.pl
(11.05 KB)
Editing: debian-linux-lib.pl
# debian-linux-lib.pl # NIS functions for debian linux NIS client and server $yp_makefile = "/var/yp/Makefile"; $ypserv_conf = "/etc/ypserv.conf"; $pid_file = "/var/run/ypserv.pid"; # get_nis_support() # Returns 0 for no support, 1 for client only, 2 for server and 3 for both sub get_nis_support { local $rv; $rv += 1 if (&has_command("ypbind")); $rv += 2 if (&has_command("ypserv")); return $rv; } # get_client_config() # Returns a hash ref containing details of the client's NIS settings sub get_client_config { local $nis = { 'broadcast' => 1 }; open(CONF, "<".$config{'client_conf'}); while(<CONF>) { s/\r|\n//g; s/#.*$//g; if (/^\s*domain\s*(\S+)\s*server\s*(\S+)/i) { push(@{$nis->{'servers'}}, $2); $nis->{'broadcast'} = 0; } elsif (/^\s*ypserver\s*(\S+)/) { push(@{$nis->{'servers'}}, $1); $nis->{'broadcast'} = 0; } } close(CONF); open(DOMAIN, "</etc/defaultdomain"); chop($nis->{'domain'} = <DOMAIN>); close(DOMAIN); return $nis; } # save_client_config(&config) # Saves and applies the NIS client configuration in the give hash. # Returns an error message if any, or undef on success. sub save_client_config { # Save the config file &open_tempfile(CONF, ">$config{'client_conf'}"); &open_tempfile(DOMAIN, ">/etc/defaultdomain"); if ($_[0]->{'domain'}) { if (!$_[0]->{'broadcast'}) { local @s = @{$_[0]->{'servers'}}; &print_tempfile(CONF, "domain $_[0]->{'domain'} server ",shift(@s),"\n"); foreach $s (@s) { &print_tempfile(CONF, "ypserver $s\n"); } } &print_tempfile(DOMAIN, $_[0]->{'domain'},"\n"); } &close_tempfile(CONF); &close_tempfile(DOMAIN); if ($_[0]->{'domain'}) { &init::enable_at_boot("nis"); } # Apply by running the init script local $init = &init_script("nis"); &system_logged("$init stop >/dev/null 2>&1"); &system_logged("killall ypbind >/dev/null 2>&1"); &system_logged("$init start >/dev/null 2>&1"); if ($_[0]->{'domain'}) { $out = `ypwhich 2>&1`; if ($?) { system("killall ypbind >/dev/null 2>&1"); return $text{'client_eypwhich'}; } } return undef; } @nis_files = ( "passwd", "shadow", "group", "gshadow", "adjunct", "aliases", "ethers", "bootparams", "hosts", "networks", "printcap", "protocols", "publickeys", "rpc", "services", "netgroup", "netid", "auto_master", "auto_home", "auto_local" ); @nis_tables = ( "passwd", "group", "hosts", "rpc", "services", "netid", "protocols", "netgrp", "mail", "shadow", "publickey", "networks", "ethers", "bootparams", "printcap", "amd.home", "auto.master", "auto.home", "auto.local", "passwd.adjunct" ); # show_server_config() # Display a form for editing NIS server options sub show_server_config { local ($var, $rule) = &parse_yp_makefile(); local $init = &init_script("nis"); open(INIT, "<".$init); while(<INIT>) { $mode = $1 if (/^\s*NISSERVER\s*=["\s]*([^"\s]+)/); } close(INIT); print "<tr> <td><b>$text{'server_boot'}</b></td>\n"; printf "<td><input type=radio name=boot value=1 %s> %s\n", $mode eq 'false' ? '' : 'checked', $text{'yes'}; printf "<input type=radio name=boot value=0 %s> %s</td>\n", $mode eq 'false' ? 'checked' : '', $text{'no'}; local $dom = $var->{'LOCALDOMAIN'}->{'value'}; print "<td><b>$text{'server_domain'}</b></td>\n"; printf "<td><input type=radio name=domain_auto value=1 %s> %s\n", $dom =~ /`.*domainname`/ ? 'checked' : '', $text{'server_domain_auto'}; printf "<input type=radio name=domain_auto value=0 %s>\n", $dom =~ /`.*domainname`/ ? '' : 'checked'; printf "<input name=domain size=20 value='%s'></td> </tr>\n", $dom =~ /`.*domainname`/ ? '' : $dom; print "<tr> <td><b>$text{'server_type'}</b></td>\n"; printf "<td colspan=3><input type=radio name=type value=1 %s> %s\n", $mode eq 'slave' ? '' : 'checked', $text{'server_master'}; printf "<input type=radio name=type value=0 %s> %s\n", $mode eq 'slave' ? 'checked' : '', $text{'server_slave'}; printf "<input name=slave size=30 value='%s'></td> </tr>\n", $mode eq 'slave' ? $config{'slave'} : ''; print "</table></td></tr></table><p>\n"; print "<table border width=100%>\n"; print "<tr $tb> <td><b>$text{'server_mheader'}</b></td> </tr>\n"; print "<tr $cb> <td><table width=100%>\n"; print "<tr> <td><b>$text{'server_dns'}</b></td>\n"; printf "<td><input type=radio name=b value='-b' %s> %s\n", $var->{'B'}->{'value'} eq '-b' ? 'checked' : '', $text{'yes'}; printf "<input type=radio name=b value='' %s> %s</td>\n", $var->{'B'}->{'value'} eq '-b' ? '' : 'checked', $text{'no'}; print "<td><b>$text{'server_push'}</b></td>\n"; printf "<td><input type=radio name=nopush value=false %s> %s\n", $var->{'NOPUSH'}->{'value'} eq 'true' ? '' : 'checked', $text{'yes'}; printf "<input type=radio name=nopush value=true %s> %s</td> </tr>\n", $var->{'NOPUSH'}->{'value'} eq 'true' ? 'checked' : '', $text{'no'}; local %inall; map { $inall{$_}++ } split(/\s+/,&expand_vars($rule->{'all'}->{'value'}, $var)); print "<tr> <td rowspan=2 valign=top><b>$text{'server_tables'}</b></td>\n"; print "<td rowspan=2><select multiple size=5 name=tables>\n"; foreach $t (grep { $rule->{$_} } @nis_tables) { printf "<option value=%s %s>%s</option>\n", $t, $inall{$t} ? 'selected' : '', $t; } print "</select></td>\n"; print "<td><b>$text{'server_minuid'}</b></td>\n"; printf "<td><input name=minuid size=10 value='%s'></td> </tr>\n", $var->{'MINUID'}->{'value'}; print "<td><b>$text{'server_mingid'}</b></td>\n"; printf "<td><input name=mingid size=10 value='%s'></td> </tr>\n", $var->{'MINGID'}->{'value'}; print "<tr> <td><b>$text{'server_slaves'}</b></td>\n"; open(SLAVES, "</var/yp/ypservers"); while(<SLAVES>) { s/\s//g; push(@slaves, $_) if ($_); } close(SLAVES); printf "<td colspan=3><input name=slaves size=60 value='%s'></td> </tr>\n", join(" ", @slaves); print "</table></td></tr></table><p>\n"; print "<table border width=100%>\n"; print "<tr $tb> <td><b>$text{'server_fheader'}</b></td> </tr>\n"; print "<tr $cb> <td><table width=100%>\n"; local $i = 0; foreach $t (@nis_files) { local $f = &expand_vars($var->{uc($t)}->{'value'}, $var); next if (!$f); print "<tr>\n" if ($i%2 == 0); print "<td><b>",&text('server_file', $text{"desc_$t"} ? $text{"desc_$t"} : $t),"</b></td>\n"; print "<td><input name=$t size=30 value='$f'></td>\n"; print "</tr>\n" if ($i++%2 == 1); } } # parse_server_config() # Parse and save the NIS server options sub parse_server_config { local ($var, $rule) = &parse_yp_makefile(); $in{'minuid'} =~ /^\d+$/ || &error($text{'server_eminuid'}); $in{'mingid'} =~ /^\d+$/ || &error($text{'server_emingid'}); $in{'domain_auto'} || $in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ || &error($text{'server_edomain'}); $in{'type'} || &to_ipaddress($in{'slave'}) || &to_ip6address($in{'slave'}) || &error($text{'server_eslave'}); &update_makefile($var->{'MINUID'}, $in{'minuid'}); &update_makefile($var->{'MINGID'}, $in{'mingid'}); &update_makefile($var->{'NOPUSH'}, $in{'nopush'}); &update_makefile($var->{'B'}, $in{'b'}); &update_makefile($var->{'LOCALDOMAIN'}, $in{'domain_auto'} ? "`domainname`" : $in{'domain'}); &update_makefile($rule->{'all'}, join(" ", split(/\0/, $in{'tables'})), ""); foreach $t (@nis_files) { local $old = &expand_vars($var->{uc($t)}->{'value'}, $var); next if (!$old); if ($old ne $in{$t}) { $in{$t} =~ /\S/ || &error(&text('server_efile', $text{"desc_$t"})); &update_makefile($var->{uc($t)}, $in{$t}); } } &open_tempfile(SLAVES, ">/var/yp/ypservers"); foreach $s (split(/\s+/, $in{'slaves'})) { &print_tempfile(SLAVES, "$s\n"); } &close_tempfile(SLAVES); if ($in{'boot'}) { &init::enable_at_boot("nis"); } local $init = &init_script("nis"); local $lref = &read_file_lines($init); foreach $l (@$lref) { if ($l =~ /^\s*NISSERVER=/) { $l = "NISSERVER=".(!$in{'boot'} ? 'false' : $in{'type'} ? 'master' : 'slave'); } } &flush_file_lines(); &system_logged("$init stop >/dev/null 2>&1"); &system_logged("$init start >/dev/null 2>&1"); if ($in{'type'}) { # Master server delete($config{'slave'}); &apply_table_changes() if ($in{'boot'}); } else { $out = &backquote_logged("/usr/lib/yp/ypinit -s $in{'slave'} 2>&1"); if ($?) { &error("<tt>$out</tt>"); } $config{'slave'} = $in{'slave'}; } &write_file("$module_config_directory/config", \%config); } # get_server_mode() # Returns 0 if the NIS server is inactive, 1 if active as a master, or 2 if # active as a slave. sub get_server_mode { if (&init::action_status("nis") != 2) { return 0; } elsif ($config{'slave'}) { return 2; } else { return 1; } } # list_nis_tables() # Returns a list of structures of all NIS tables sub list_nis_tables { local ($var, $rule) = &parse_yp_makefile(); local @rv; local $dom = $var->{'LOCALDOMAIN'}->{'value'}; chop($dom = `domainname`) if ($dom =~ /`.*domainname`/); local %file; map { $file{uc($_)} = &expand_vars($var->{uc($_)}->{'value'},$var) } @nis_files; local @all = split(/\s+/, &expand_vars($rule->{'all'}->{'value'}, $var)); foreach $t (@all) { local $table = { 'table' => $t, 'index' => scalar(@rv), 'domain' => $dom }; if ($t eq "passwd") { if ($var->{'MERGE_PASSWD'}->{'value'} eq 'true') { $table->{'type'} = 'passwd_shadow'; $table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ]; } elsif (&indexof('shadow', @all) >= 0) { # Show separate shadow and passwd tables as one table $table->{'type'} = 'passwd_shadow_full'; $table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ]; @all = grep { $_ ne 'shadow' } @all; } else { $table->{'type'} = 'passwd'; $table->{'files'} = [ $file{'PASSWD'} ]; } } elsif ($t eq "group") { if ($var->{'MERGE_GROUP'}->{'value'} eq 'true') { $table->{'type'} = 'group_shadow'; $table->{'files'} = [ $file{'GROUP'}, $file{'GSHADOW'} ]; } else { $table->{'type'} = 'group'; $table->{'files'} = [ $file{'GROUP'} ]; } } elsif ($t eq "netgrp") { $table->{'type'} = "netgroup"; $table->{'files'} = [ $file{'NETGROUP'} ]; } elsif ($t eq "mail") { $table->{'type'} = "aliases"; $table->{'files'} = [ $file{'ALIASES'} ]; } else { $table->{'type'} = $t; $table->{'files'} = [ $file{uc($t)} ]; } push(@rv, $table); } return @rv; } # apply_table_changes() # Do whatever is necessary for the table text files to be loaded into # the NIS server sub apply_table_changes { &system_logged("(cd /var/yp ; make) >/dev/null 2>&1 </dev/null"); } sub extra_config_files { return ( "/etc/defaultdomain", "/var/yp/ypservers" ); } 1;
Upload File
Create Folder