X7ROOT File Manager
Current Path:
/usr/libexec/webmin/inetd
usr
/
libexec
/
webmin
/
inetd
/
📁
..
📄
CHANGELOG
(173 B)
📄
backup_config.pl
(754 B)
📄
cgi_args.pl
(145 B)
📄
config-aix
(302 B)
📄
config-cobalt-linux
(331 B)
📄
config-coherent-linux
(362 B)
📄
config-corel-linux
(331 B)
📄
config-debian-linux
(331 B)
📄
config-freebsd
(252 B)
📄
config-freebsd-2.1-2.2
(252 B)
📄
config-freebsd-8-ALL
(262 B)
📄
config-generic-linux
(277 B)
📄
config-hpux
(242 B)
📄
config-irix
(252 B)
📄
config-lfs-linux
(331 B)
📄
config-macos
(469 B)
📄
config-macos-1.5-ALL
(352 B)
📄
config-mandrake-linux
(353 B)
📄
config-msc-linux
(357 B)
📄
config-netbsd
(252 B)
📄
config-open-linux
(331 B)
📄
config-open-linux-3.1e
(353 B)
📄
config-openbsd
(235 B)
📄
config-openmamba-linux
(362 B)
📄
config-openserver
(323 B)
📄
config-osf1
(302 B)
📄
config-pardus-linux
(332 B)
📄
config-redhat-linux
(362 B)
📄
config-slackware-linux
(282 B)
📄
config-sol-linux
(277 B)
📄
config-solaris
(353 B)
📄
config-solaris-10-ALL
(335 B)
📄
config-solaris-8-9
(353 B)
📄
config-suse-linux
(331 B)
📄
config-suse-linux-6.3-8.0
(331 B)
📄
config-turbo-linux
(331 B)
📄
config-united-linux
(358 B)
📄
config-unixware
(323 B)
📄
config-windows
(145 B)
📄
config.info
(797 B)
📄
config.info.ca
(879 B)
📄
config.info.cs
(874 B)
📄
config.info.de
(944 B)
📄
config.info.es
(759 B)
📄
config.info.fr
(867 B)
📄
config.info.hu
(668 B)
📄
config.info.nl
(818 B)
📄
config.info.no
(852 B)
📄
config.info.pl
(723 B)
📄
config.info.ru
(767 B)
📄
config.info.sv
(691 B)
📄
config.info.tr
(620 B)
📄
config.info.uk
(788 B)
📄
config.info.zh
(545 B)
📄
config.info.zh_TW
(513 B)
📄
delete_rpc.cgi
(568 B)
📄
delete_serv.cgi
(610 B)
📄
edit_rpc.cgi
(4.19 KB)
📄
edit_serv.cgi
(4.63 KB)
📁
help
📁
images
📄
index.cgi
(4.03 KB)
📄
inetd-generic-lib.pl
(4.43 KB)
📄
inetd-lib.pl
(2.02 KB)
📄
inetd-solaris-10-lib.pl
(8.45 KB)
📄
install_check.pl
(336 B)
📁
lang
📄
log_parser.pl
(892 B)
📄
module.info
(239 B)
📄
module.info.af
(0 B)
📄
module.info.af.auto
(111 B)
📄
module.info.ar
(0 B)
📄
module.info.ar.auto
(146 B)
📄
module.info.be
(0 B)
📄
module.info.be.auto
(159 B)
📄
module.info.bg
(0 B)
📄
module.info.bg.auto
(158 B)
📄
module.info.ca
(0 B)
📄
module.info.ca.auto
(112 B)
📄
module.info.cs
(0 B)
📄
module.info.cs.auto
(111 B)
📄
module.info.da
(0 B)
📄
module.info.da.auto
(119 B)
📄
module.info.de
(0 B)
📄
module.info.de.auto
(126 B)
📄
module.info.el
(0 B)
📄
module.info.el.auto
(190 B)
📄
module.info.es
(0 B)
📄
module.info.es.auto
(116 B)
📄
module.info.eu
(0 B)
📄
module.info.eu.auto
(118 B)
📄
module.info.fa
(0 B)
📄
module.info.fa.auto
(136 B)
📄
module.info.fi
(0 B)
📄
module.info.fi.auto
(113 B)
📄
module.info.fr
(0 B)
📄
module.info.fr.auto
(122 B)
📄
module.info.he
(0 B)
📄
module.info.he.auto
(136 B)
📄
module.info.hr
(0 B)
📄
module.info.hr.auto
(111 B)
📄
module.info.hu
(0 B)
📄
module.info.hu.auto
(143 B)
📄
module.info.it
(0 B)
📄
module.info.it.auto
(114 B)
📄
module.info.ja
(0 B)
📄
module.info.ja.auto
(140 B)
📄
module.info.ko
(0 B)
📄
module.info.ko.auto
(154 B)
📄
module.info.lt
(0 B)
📄
module.info.lt.auto
(115 B)
📄
module.info.lv
(0 B)
📄
module.info.lv.auto
(122 B)
📄
module.info.ms
(0 B)
📄
module.info.ms.auto
(122 B)
📄
module.info.mt
(0 B)
📄
module.info.mt.auto
(119 B)
📄
module.info.nl
(0 B)
📄
module.info.nl.auto
(116 B)
📄
module.info.no
(0 B)
📄
module.info.no.auto
(118 B)
📄
module.info.pl
(0 B)
📄
module.info.pl.auto
(124 B)
📄
module.info.pt
(0 B)
📄
module.info.pt.auto
(113 B)
📄
module.info.pt_BR
(0 B)
📄
module.info.pt_BR.auto
(119 B)
📄
module.info.ro
(0 B)
📄
module.info.ro.auto
(123 B)
📄
module.info.ru
(0 B)
📄
module.info.ru.auto
(161 B)
📄
module.info.sk
(0 B)
📄
module.info.sk.auto
(111 B)
📄
module.info.sl
(0 B)
📄
module.info.sl.auto
(115 B)
📄
module.info.sv
(0 B)
📄
module.info.sv.auto
(119 B)
📄
module.info.th
(0 B)
📄
module.info.th.auto
(190 B)
📄
module.info.tr
(0 B)
📄
module.info.tr.auto
(119 B)
📄
module.info.uk
(0 B)
📄
module.info.uk.auto
(157 B)
📄
module.info.ur
(0 B)
📄
module.info.ur.auto
(191 B)
📄
module.info.vi
(0 B)
📄
module.info.vi.auto
(137 B)
📄
module.info.zh
(0 B)
📄
module.info.zh.auto
(110 B)
📄
module.info.zh_TW
(0 B)
📄
module.info.zh_TW.auto
(116 B)
📄
prefs.info
(29 B)
📄
restart_inetd.cgi
(296 B)
📄
save_rpc.cgi
(3.82 KB)
📄
save_serv.cgi
(5.31 KB)
Editing: save_serv.cgi
#!/usr/bin/perl # save_serv.cgi # Save or create an internet service. This can be called N ways # - create a new services file entry # - create a new inetd.conf entry (and maybe update or add to services file) # - update inetd.conf (and maybe services) # - remove an entry from inetd.conf (and maybe change services) require './inetd-lib.pl'; &error_setup($text{'error_saveservice'}); &ReadParse(); # Delete button clicked, redirect to correct CGI if ($in{'delete'}) { &redirect("delete_serv.cgi?spos=$in{'spos'}&ipos=$in{'ipos'}"); return; } # Check inputs $in{'name'} =~ /^[A-z][A-z0-9\_\-]+$/ || &error(&text('error_invalidservice' ,$in{'name'})); $in{'port'} =~ /^[0-9]*$/ || &error(&text('error_invalidport', $in{'port'})); if ($in{'port'} <= 0 || $in{'port'} > 65535) { &error(&text('error_portnum', $in{'port'})); } if ($in{'act'} && $in{'serv'} == 2) { $in{'program'} =~ /^\/\S+$/ || &error(&text('error_invalidprg', $in{program})); if ($in{'act'} == 2) { if (!$in{'qm'}) { -r $in{'program'} || &error(&text('error_notexist', $in{'program'})); -x $in{'program'} || &error(&text('error_notexecutable', $in{'program'})); } } $in{'args'} =~ /^\S+/ ||&error(&text('error_invalidarg', $in{'args'})); } elsif ($in{'act'} && $in{serv} == 3) { $in{tcpd} =~ /^\S+$/ || &error(&text('error_invalidwrapper', $in{tcpd})); } if ($in{'act'}) { $in{'user'} || &error($text{'error_nouser'}); defined(getpwnam($in{'user'})) || &error($text{'error_user'}); if ($config{'extended_inetd'} == 1) { $in{'group_def'} || defined(getgrnam($in{'group'})) || &error($text{'error_group'}); } } if ($config{'extended_inetd'} && !$in{'permin_def'} && $in{'permin'}!~/^\d+$/) { &error(&text('error_invalidpermin', $in{'permin'})); } if ($config{'extended_inetd'} == 2 && !$in{'child_def'} && $in{'child'} !~ /^\d+$/) { &error(&text('error_invalidchildnum', $in{'child'})); } # Build argument list @sargs = ($in{'name'}, $in{'port'}, $in{'protocol'}, join(' ', split(/\s+/, $in{'aliases'})) ); @iargs = ($in{'act'} == 2, $in{'name'}, $in{'protocol'} =~ /^tcp/ ? "stream" : "dgram", $in{'protocol'}); $wait = $in{'wait'}; $user = $in{'user'}; if ($config{'extended_inetd'} == 1) { if (!$in{'permin_def'}) { $wait .= ".$in{'permin'}"; } if (!$in{'group_def'}) { $user .= ".$in{'group'}"; } } elsif ($config{'extended_inetd'} == 2) { if (!$in{'child_def'}) { $wait .= "/$in{'child'}"; } if (!$in{'permin_def'} && $in{'child_def'}) { &error($text{'error_childnum'}); } if (!$in{'permin_def'}) { $wait .= "/$in{'permin'}"; } if ($in{'group'}) { $user .= ":$in{'group'}"; } if ($in{'class'}) { $user .= "/$in{'class'}"; } } push(@iargs, $wait); push(@iargs, $user); if (($in{'serv'} == 1) & (!$config{'no_internal'})) { push(@iargs, "internal", undef); } elsif (($in{'serv'} == 1) & ($config{'no_internal'})) { &error(&text('error_invalidcmd', $in{args})); } elsif ($in{serv} == 2) { push(@iargs, ($in{'qm'} ? "?" : "").$in{'program'}); push(@iargs, $in{'args'}); } elsif ($in{serv} == 3) { push(@iargs, $config{'tcpd_path'}); push(@iargs, $in{'tcpd'}); $iargs[$#iargs] .= " $in{'args2'}" if ($in{'args2'}); } &lock_inetd_files(); @servs = &list_services(); @inets = &list_inets(); foreach $s (@servs) { if ($s->[1] eq $sargs[0] && $s->[3] eq $sargs[2]) { $same_name = $s; } if ($s->[2] == $sargs[1] && $s->[3] eq $sargs[2]) { $same_port = $s; } } if ($in{'spos'} =~ /\d/) { # Changing a service.. @old_serv = @{$servs[$in{'spos'}]}; if ($in{'ipos'} =~ /\d/) { @old_inet = @{$inets[$in{'ipos'}]}; } if ($old_serv[1] ne $sargs[0] || $old_serv[2] != $sargs[1] || $old_serv[3] ne $sargs[2]) { if ($same_name && $same_name->[2] != $old_serv[2]) { &error(&text('error_nameexist', $sargs[0], $sargs[2])); } if ($same_port && $same_port->[1] ne $old_serv[1]) { &error(&text('error_serviceexist', $sargs[1], $sargs[2])); } } &modify_service($old_serv[0], @sargs); if ($in{'act'} && @old_inet) { # modify inetd &modify_inet($old_inet[0], @iargs, $old_inet[10]); } elsif ($in{'act'} && !@old_inet) { # add to inetd &create_inet(@iargs); } elsif (!$in{'act'} && @old_inet) { # remove from inetd &delete_inet($old_inet[0], $old_inet[10]); @iargs = (); } &unlock_inetd_files(); &webmin_log("modify", "serv", $sargs[0], { 'name' => $sargs[0], 'port' => $sargs[1], 'proto' => $sargs[2], 'active' => $iargs[0], 'user' => $iargs[5], 'wait' => $iargs[4], 'prog' => $in{'act'} ? join(" ", @iargs[6..@iargs-1]) : undef } ); } else { # Creating a new service... # Check for a service with the same name or port and protocol if ($same_name) { &error(&text('error_nameexist', $sargs[0], $sargs[2])); } if ($same_port) { &error(&text('error_serviceexist', $sargs[1], $sargs[2])); } # Check for an existing internet service if ($in{'act'}) { foreach $i (@inets) { if ($i->[3] eq $iargs[1] && $i->[5] eq $iargs[3]) { &error(&text('error_inetservice', $i->[3], $i->[5])); } } } &create_service(@sargs); if ($in{'act'}) { &create_inet(@iargs); } &unlock_inetd_files(); &webmin_log("create", "serv", $sargs[0], { 'name' => $sargs[0], 'port' => $sargs[1], 'proto' => $sargs[2], 'active' => $iargs[0], 'user' => $iargs[5], 'wait' => $iargs[4], 'prog' => $in{'act'} ? join(" ", @iargs[6..@iargs-1]) : undef } ); } &redirect("");
Upload File
Create Folder