003 File Manager
Current Path:
/usr/sbin
usr
/
sbin
/
π
..
π
ac
(10.36 KB)
π
accton
(5.66 KB)
π
acpiconf
(9.14 KB)
π
acpidb
(496.75 KB)
π
acpidump
(39.86 KB)
π
adduser
(23.38 KB)
π
ancontrol
(34.19 KB)
π
apm
(13.1 KB)
π
arp
(17.88 KB)
π
ath3kfw
(14.51 KB)
π
audit
(5.98 KB)
π
auditd
(21.79 KB)
π
auditdistd
(127.49 KB)
π
auditreduce
(15.34 KB)
π
authpf
(20.57 KB)
π
authpf-noip
(20.57 KB)
π
automount
(50.65 KB)
π
automountd
(50.65 KB)
π
autounmountd
(50.65 KB)
π
bcmfw
(8.68 KB)
π
bhyve
(374.03 KB)
π
bhyvectl
(41.55 KB)
π
bhyveload
(16.41 KB)
π
binmiscctl
(14.12 KB)
π
blacklistctl
(33.88 KB)
π
blacklistd
(41.85 KB)
π
bluetooth-config
(9.71 KB)
π
boot0cfg
(15.09 KB)
π
bootparamd
(15.81 KB)
π
bootpef
(38.09 KB)
π
bootptest
(17.37 KB)
π
bsdconfig
(11.98 KB)
π
bsdinstall
(3.44 KB)
π
bsnmpd
(136.55 KB)
π
bthidcontrol
(36.06 KB)
π
bthidd
(55.51 KB)
π
btpand
(32.42 KB)
π
btxld
(13.49 KB)
π
callbootd
(9.26 KB)
π
camdd
(37.59 KB)
π
cdcontrol
(22.45 KB)
π
certctl
(7.74 KB)
π
chkgrp
(9.04 KB)
π
chkprintcap
(18.22 KB)
π
chown
(10.23 KB)
π
chroot
(8.31 KB)
π
ckdist
(16.18 KB)
π
clear_locks
(6.23 KB)
π
config
(56.23 KB)
π
cpucontrol
(20.03 KB)
π
crashinfo
(8.21 KB)
π
cron
(44.9 KB)
π
ctladm
(66.98 KB)
π
ctld
(123.97 KB)
π
cxgbetool
(2.86 MB)
π
daemon
(15.76 KB)
π
dconschat
(22.84 KB)
π
devctl
(11.83 KB)
π
devinfo
(8.68 KB)
π
diskinfo
(19.2 KB)
π
dtrace
(35.91 KB)
π
dumpcis
(26.69 KB)
π
dwatch
(36.59 KB)
π
editmap
(84.02 KB)
π
edquota
(22.9 KB)
π
efibootmgr
(22.04 KB)
π
efidp
(9.79 KB)
π
efivar
(14.77 KB)
π
etcupdate
(43.94 KB)
π
extattrctl
(16.63 KB)
π
fdcontrol
(14.94 KB)
π
fdformat
(18.52 KB)
π
fdread
(17.14 KB)
π
fdwrite
(10.19 KB)
π
fifolog_create
(9.03 KB)
π
fifolog_reader
(31.19 KB)
π
fifolog_writer
(15.57 KB)
π
flowctl
(12.19 KB)
π
fmtree
(36.11 KB)
π
freebsd-update
(91.6 KB)
π
fstyp
(19.38 KB)
π
ftp-proxy
(28.19 KB)
π
fwcontrol
(32.87 KB)
π
gensnmptree
(29.26 KB)
π
getextattr
(11.24 KB)
π
getfmac
(6.78 KB)
π
getpmac
(6.9 KB)
π
gpioctl
(11.71 KB)
π
gssd
(34.37 KB)
π
gstat
(23.22 KB)
π
hccontrol
(174.81 KB)
π
hcsecd
(30.18 KB)
π
hcseriald
(10.12 KB)
π
hostapd
(876.65 KB)
π
hostapd_cli
(79.18 KB)
π
hoststat
(8.41 KB)
π
hv_kvp_daemon
(21.99 KB)
π
hv_vss_daemon
(9.45 KB)
π
i2c
(14.99 KB)
π
iasl
(1.34 MB)
π
idprio
(7.61 KB)
π
ifmcstat
(12.74 KB)
π
inetd
(47.88 KB)
π
iostat
(19.66 KB)
π
iovctl
(19.91 KB)
π
ip6addrctl
(12.2 KB)
π
ipfwpcap
(10.79 KB)
π
iprop-log
(24.89 KB)
π
iscsid
(37.38 KB)
π
iwmbtfw
(19.09 KB)
π
jail
(68.96 KB)
π
jexec
(8.85 KB)
π
jls
(15.11 KB)
π
kbdcontrol
(39.62 KB)
π
kbdmap
(16.16 KB)
π
keyserv
(24.67 KB)
π
kgmon
(13.02 KB)
π
kldxref
(29.59 KB)
π
kstash
(9.68 KB)
π
ktutil
(38.81 KB)
π
l2control
(12.84 KB)
π
l2ping
(10.6 KB)
π
lastlogin
(8.5 KB)
π
local-unbound
(148.45 KB)
π
local-unbound-anchor
(38.63 KB)
π
local-unbound-checkconf
(29.43 KB)
π
local-unbound-control
(33.32 KB)
π
local-unbound-setup
(11.7 KB)
π
lockstat
(49.98 KB)
π
lpc
(55.95 KB)
π
lpd
(82.2 KB)
π
lptcontrol
(6.48 KB)
π
lptest
(6.03 KB)
π
lsextattr
(11.24 KB)
π
mailstats
(73.28 KB)
π
mailwrapper
(8.41 KB)
π
makefs
(183.64 KB)
π
makemap
(89.47 KB)
π
manctl
(7.75 KB)
π
memcontrol
(11.88 KB)
π
mergemaster
(43.59 KB)
π
mfiutil
(75.3 KB)
π
mixer
(12.14 KB)
π
mld6query
(10.53 KB)
π
mlx5tool
(11.54 KB)
π
mlxcontrol
(19.72 KB)
π
mount_smbfs
(15.29 KB)
π
mountd
(54.05 KB)
π
moused
(40.59 KB)
π
mprutil
(33.95 KB)
π
mpsutil
(33.95 KB)
π
mptable
(15.74 KB)
π
mptutil
(46.35 KB)
π
mtest
(17.24 KB)
π
mtree
(60.94 KB)
π
ndis_events
(9.19 KB)
π
ndiscvt
(39.78 KB)
π
ndisgen
(15.83 KB)
π
ndp
(24.03 KB)
π
newsyslog
(46.39 KB)
π
nfscbd
(10.15 KB)
π
nfsd
(22.62 KB)
π
nfsdumpstate
(8.02 KB)
π
nfsrevoke
(6.08 KB)
π
nfsuserd
(16.87 KB)
π
ngctl
(29.15 KB)
π
nghook
(10.09 KB)
π
nmtree
(60.94 KB)
π
nologin
(625.77 KB)
π
nscd
(87.91 KB)
π
ntp-keygen
(205.75 KB)
π
ntpd
(842.26 KB)
π
ntpdate
(126.85 KB)
π
ntpdc
(268.29 KB)
π
ntptime
(83.42 KB)
π
pac
(28.74 KB)
π
pciconf
(37.38 KB)
π
periodic
(4.19 KB)
π
pkg
(32.22 KB)
π
plockstat
(22.91 KB)
π
pmc
(167.45 KB)
π
pmcannotate
(15.8 KB)
π
pmccontrol
(11.81 KB)
π
pmcstat
(77.77 KB)
π
pnfsdscopymr
(9.09 KB)
π
pnfsdsfile
(10.01 KB)
π
pnfsdskill
(6.26 KB)
π
portsnap
(29.86 KB)
π
powerd
(15.97 KB)
π
ppp
(427.13 KB)
π
pppctl
(15.77 KB)
π
praliases
(86.38 KB)
π
praudit
(9.13 KB)
π
prometheus_sysctl_exporter
(13.91 KB)
π
pstat
(14.47 KB)
π
purgestat
(8.41 KB)
π
pw
(74.28 KB)
π
pwd_mkdb
(16.71 KB)
π
pwm
(10.45 KB)
π
quot
(14.92 KB)
π
quotaoff
(8.29 KB)
π
quotaon
(8.29 KB)
π
rarpd
(16.11 KB)
π
repquota
(11.14 KB)
π
rfcomm_pppd
(13.8 KB)
π
rip6query
(7.69 KB)
π
rmextattr
(11.24 KB)
π
rmt
(9.48 KB)
π
rmuser
(8.96 KB)
π
route6d
(46.17 KB)
π
rpc.lockd
(64.46 KB)
π
rpc.statd
(22.27 KB)
π
rpc.umntall
(12.3 KB)
π
rpc.yppasswdd
(41.08 KB)
π
rpc.ypupdated
(18.19 KB)
π
rpc.ypxfrd
(16.12 KB)
π
rpcbind
(43.91 KB)
π
rrenumd
(34.28 KB)
π
rtadvctl
(31.52 KB)
π
rtadvd
(70.95 KB)
π
rtprio
(7.61 KB)
π
rtsold
(40.09 KB)
π
rwhod
(17.15 KB)
π
sa
(23.57 KB)
π
sade
(48.1 KB)
π
sdpcontrol
(15.98 KB)
π
sdpd
(38.07 KB)
π
sendmail
(8.41 KB)
π
service
(4.84 KB)
π
services_mkdb
(14.02 KB)
π
sesutil
(20.83 KB)
π
setextattr
(11.24 KB)
π
setfib
(7.2 KB)
π
setfmac
(14.27 KB)
π
setfsmac
(14.27 KB)
π
setpmac
(6.11 KB)
π
smbmsg
(10.09 KB)
π
snapinfo
(7.46 KB)
π
sntp
(324.31 KB)
π
spi
(15.59 KB)
π
spkrtest
(3.62 KB)
π
spray
(7.8 KB)
π
sshd
(302.45 KB)
π
swapinfo
(14.47 KB)
π
syslogd
(53.15 KB)
π
sysrc
(22.64 KB)
π
tcpdchk
(19.85 KB)
π
tcpdmatch
(16.88 KB)
π
tcpdrop
(10.25 KB)
π
tcpdump
(936.43 KB)
π
traceroute
(33.23 KB)
π
traceroute6
(30.32 KB)
π
trim
(9.41 KB)
π
trpt
(11.45 KB)
π
tzsetup
(20.19 KB)
π
uathload
(9.28 KB)
π
uefisign
(20.87 KB)
π
ugidfw
(8.57 KB)
π
uhsoctl
(26.11 KB)
π
usbconfig
(26.59 KB)
π
usbdump
(16.42 KB)
π
utx
(7.81 KB)
π
valectl
(12.23 KB)
π
vidcontrol
(27.79 KB)
π
vidfont
(16.16 KB)
π
vigr
(2.42 KB)
π
vipw
(7.2 KB)
π
wake
(7.33 KB)
π
watch
(12.79 KB)
π
watchdog
(15.37 KB)
π
watchdogd
(15.37 KB)
π
wlandebug
(16.26 KB)
π
wpa_cli
(529.82 KB)
π
wpa_passphrase
(37.72 KB)
π
wpa_supplicant
(926.5 KB)
π
yp_mkdb
(11.82 KB)
π
ypbind
(20.45 KB)
π
ypinit
(8.8 KB)
π
ypldap
(93.28 KB)
π
yppoll
(7.91 KB)
π
yppush
(23.81 KB)
π
ypserv
(43.55 KB)
π
ypset
(7.36 KB)
π
zdb
(164.94 KB)
π
zdump
(13.48 KB)
π
zfsd
(102.01 KB)
π
zhack
(16.02 KB)
π
zic
(42.48 KB)
π
zonectl
(13.94 KB)
π
zzz
(1.23 KB)
Editing: local-unbound-setup
#!/bin/sh #- # SPDX-License-Identifier: BSD-2-Clause-FreeBSD # # Copyright (c) 2013 Dag-Erling SmΓΈrgrav # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # D="${DESTDIR}" echo "destination: ${D}" # # Configuration variables # user="" unbound_conf="" forward_conf="" lanzones_conf="" control_conf="" control_socket="" workdir="" confdir="" chrootdir="" anchor="" pidfile="" resolv_conf="" resolvconf_conf="" service="" start_unbound="" use_tls="" forwarders="" # # Global variables # self=$(basename $(realpath "$0")) bkdir=/var/backups bkext=$(date "+%Y%m%d.%H%M%S") # # Regular expressions # RE_octet="([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" RE_ipv4="(${RE_octet}(\\.${RE_octet}){3})" RE_word="([0-9A-Fa-f]{1,4})" RE_ipv6="((${RE_word}:){1,}(:|${RE_word}?(:${RE_word})*)|::1)" RE_port="([1-9][0-9]{0,3}|[1-5][0-9]{4,4}|6([0-4][0-9]{3}|5([0-4][0-9]{2}|5([0-2][0-9]|3[0-5]))))" RE_dnsname="([0-9A-Za-z-]{1,}(\\.[0-9A-Za-z-]{1,})*\\.?)" RE_forward_addr="((${RE_ipv4}|${RE_ipv6})(@${RE_port})?)" RE_forward_name="(${RE_dnsname}(@${RE_port})?)" RE_forward_tls="(${RE_forward_addr}(#${RE_dnsname})?)" # # Set default values for unset configuration variables. # set_defaults() { : ${user:=unbound} : ${workdir:=/var/unbound} : ${confdir:=${workdir}/conf.d} : ${unbound_conf:=${workdir}/unbound.conf} : ${forward_conf:=${workdir}/forward.conf} : ${lanzones_conf:=${workdir}/lan-zones.conf} : ${control_conf:=${workdir}/control.conf} : ${control_socket:=/var/run/local_unbound.ctl} : ${anchor:=${workdir}/root.key} : ${pidfile:=/var/run/local_unbound.pid} : ${resolv_conf:=/etc/resolv.conf} : ${resolvconf_conf:=/etc/resolvconf.conf} : ${service:=local_unbound} : ${start_unbound:=yes} : ${use_tls:=no} } # # Verify that the configuration files are inside the working # directory, and if so, set the chroot directory accordingly. # set_chrootdir() { chrootdir="${workdir}" for file in "${unbound_conf}" "${forward_conf}" \ "${lanzones_conf}" "${control_conf}" "${anchor}" ; do if [ "${file#${workdir%/}/}" = "${file}" ] ; then echo "warning: ${file} is outside ${workdir}" >&2 chrootdir="" fi done if [ -z "${chrootdir}" ] ; then echo "warning: disabling chroot" >&2 fi } # # Scan through /etc/resolv.conf looking for uncommented nameserver # lines that don't point to localhost and return their values. # get_nameservers() { while read line ; do local bareline=${line%%\#*} local key=${bareline%% *} local value=${bareline#* } case ${key} in nameserver) case ${value} in 127.0.0.1|::1|localhost|localhost.*) ;; *) echo "${value}" ;; esac ;; esac done } # # Scan through /etc/resolv.conf looking for uncommented nameserver # lines. Comment out any that don't point to localhost. Finally, # append a nameserver line that points to localhost, if there wasn't # one already, and enable the edns0 option. # gen_resolv_conf() { local localhost=no local edns0=no while read line ; do local bareline=${line%%\#*} local key=${bareline%% *} local value=${bareline#* } case ${key} in nameserver) case ${value} in 127.0.0.1|::1|localhost|localhost.*) localhost=yes ;; *) echo -n "# " ;; esac ;; options) case ${value} in *edns0*) edns0=yes ;; esac ;; esac echo "${line}" done if [ "${localhost}" = "no" ] ; then echo "nameserver 127.0.0.1" fi if [ "${edns0}" = "no" ] ; then echo "options edns0" fi } # # Boilerplate # do_not_edit() { echo "# This file was generated by $self." echo "# Modifications will be overwritten." } # # Generate resolvconf.conf so it updates forward.conf in addition to # resolv.conf. Note "in addition to" rather than "instead of", # because we still want it to update the domain name and search path # if they change. Setting name_servers to "127.0.0.1" ensures that # the libc resolver will try unbound first. # gen_resolvconf_conf() { local style="$1" do_not_edit echo "resolv_conf=\"/dev/null\" # prevent updating ${resolv_conf}" if [ "${style}" = "dynamic" ] ; then echo "unbound_conf=\"${forward_conf}\"" echo "unbound_pid=\"${pidfile}\"" echo "unbound_service=\"${service}\"" # resolvconf(8) likes to restart rather than reload echo "unbound_restart=\"service ${service} reload\"" else echo "# Static DNS configuration" fi } # # Generate forward.conf # gen_forward_conf() { do_not_edit echo "forward-zone:" echo " name: ." for forwarder ; do echo "${forwarder}" ; done | if [ "${use_tls}" = "yes" ] ; then echo " forward-tls-upstream: yes" sed -nE \ -e "s/^${RE_forward_tls}\$/ forward-addr: \\1/p" else sed -nE \ -e "s/^${RE_forward_addr}\$/ forward-addr: \\1/p" \ -e "s/^${RE_forward_name}\$/ forward-host: \\1/p" fi } # # Generate lan-zones.conf # gen_lanzones_conf() { do_not_edit echo "server:" echo " # Unblock reverse lookups for LAN addresses" echo " unblock-lan-zones: yes" echo " insecure-lan-zones: yes" } # # Generate control.conf # gen_control_conf() { do_not_edit echo "remote-control:" echo " control-enable: yes" echo " control-interface: ${control_socket}" echo " control-use-cert: no" } # # Generate unbound.conf # gen_unbound_conf() { do_not_edit echo "server:" echo " username: ${user}" echo " directory: ${workdir}" echo " chroot: ${chrootdir}" echo " pidfile: ${pidfile}" echo " auto-trust-anchor-file: ${anchor}" if [ "${use_tls}" = "yes" ] ; then echo " tls-cert-bundle: /etc/ssl/cert.pem" fi echo "" if [ -f "${forward_conf}" ] ; then echo "include: ${forward_conf}" fi if [ -f "${lanzones_conf}" ] ; then echo "include: ${lanzones_conf}" fi if [ -f "${control_conf}" ] ; then echo "include: ${control_conf}" fi if [ -d "${confdir}" ] ; then echo "include: ${confdir}/*.conf" fi } # # Rename a file we are about to replace. # backup() { local file="$1" if [ -f "${D}${file}" ] ; then local bkfile="${bkdir}/${file##*/}.${bkext}" echo "Original ${file} saved as ${bkfile}" mv "${D}${file}" "${D}${bkfile}" fi } # # Wrapper for mktemp which respects DESTDIR # tmp() { local file="$1" mktemp -u "${D}${file}.XXXXX" } # # Replace one file with another, making a backup copy of the first, # but only if the new file is different from the old. # replace() { local file="$1" local newfile="$2" if [ ! -f "${D}${file}" ] ; then echo "${file} created" mv "${newfile}" "${D}${file}" elif ! cmp -s "${D}${file}" "${newfile}" ; then backup "${file}" mv "${newfile}" "${D}${file}" else echo "${file} not modified" rm "${newfile}" fi } # # Print usage message and exit # usage() { exec >&2 echo "usage: $self [options] [forwarder ...]" echo "options:" echo " -n do not start unbound" echo " -a path full path to trust anchor file" echo " -C path full path to additional configuration directory" echo " -c path full path to unbound configuration file" echo " -f path full path to forwarding configuration" echo " -O path full path to remote control socket" echo " -o path full path to remote control configuration" echo " -p path full path to pid file" echo " -R path full path to resolvconf.conf" echo " -r path full path to resolv.conf" echo " -s service name of unbound service" echo " -u user user to run unbound as" echo " -w path full path to working directory" exit 1 } # # Main # main() { umask 022 # # Parse and validate command-line options # while getopts "a:C:c:f:no:p:R:r:s:tu:w:" option ; do case $option in a) anchor="$OPTARG" ;; C) confdir="$OPTARG" ;; c) unbound_conf="$OPTARG" ;; f) forward_conf="$OPTARG" ;; n) start_unbound="no" ;; O) control_socket="$OPTARG" ;; o) control_conf="$OPTARG" ;; p) pidfile="$OPTARG" ;; R) resolvconf_conf="$OPTARG" ;; r) resolv_conf="$OPTARG" ;; s) service="$OPTARG" ;; t) use_tls="yes" ;; u) user="$OPTARG" ;; w) workdir="$OPTARG" ;; *) usage ;; esac done shift $((OPTIND-1)) set_defaults # # Get the list of forwarders, either from the command line or # from resolv.conf. # forwarders="$@" case "${forwarders}" in [Nn][Oo][Nn][Ee]) forwarders="none" style=recursing ;; "") if [ -f "${D}${resolv_conf}" ] ; then echo "Extracting forwarders from ${resolv_conf}." forwarders=$(get_nameservers <"${D}${resolv_conf}") fi style=dynamic ;; *) style=static ;; esac # # Generate forward.conf. # if [ -z "${forwarders}" ] ; then echo -n "No forwarders found in ${resolv_conf##*/}, " if [ -f "${forward_conf}" ] ; then echo "using existing ${forward_conf##*/}." else echo "unbound will recurse." fi elif [ "${forwarders}" = "none" ] ; then echo "Forwarding disabled, unbound will recurse." backup "${forward_conf}" else local tmp_forward_conf=$(tmp "${forward_conf}") gen_forward_conf ${forwarders} | unexpand >"${tmp_forward_conf}" replace "${forward_conf}" "${tmp_forward_conf}" fi # # Generate lan-zones.conf. # local tmp_lanzones_conf=$(tmp "${lanzones_conf}") gen_lanzones_conf | unexpand >"${tmp_lanzones_conf}" replace "${lanzones_conf}" "${tmp_lanzones_conf}" # # Generate control.conf. # local tmp_control_conf=$(tmp "${control_conf}") gen_control_conf | unexpand >"${tmp_control_conf}" replace "${control_conf}" "${tmp_control_conf}" # # Generate unbound.conf. # local tmp_unbound_conf=$(tmp "${unbound_conf}") set_chrootdir gen_unbound_conf | unexpand >"${tmp_unbound_conf}" replace "${unbound_conf}" "${tmp_unbound_conf}" # # Start unbound, unless requested not to. Stop immediately if # it is not enabled so we don't end up with a resolv.conf that # points into nothingness. We could "onestart" it, but it # wouldn't stick. # if [ "${start_unbound}" = "no" ] ; then # skip elif ! service "${service}" enabled ; then echo "Please enable $service in rc.conf(5) and try again." return 1 elif ! service "${service}" restart ; then echo "Failed to start $service." return 1 fi # # Rewrite resolvconf.conf so resolvconf updates forward.conf # instead of resolv.conf. # local tmp_resolvconf_conf=$(tmp "${resolvconf_conf}") gen_resolvconf_conf "${style}" | unexpand >"${tmp_resolvconf_conf}" replace "${resolvconf_conf}" "${tmp_resolvconf_conf}" # # Finally, rewrite resolv.conf. # local tmp_resolv_conf=$(tmp "${resolv_conf}") gen_resolv_conf <"${D}${resolv_conf}" | unexpand >"${tmp_resolv_conf}" replace "${resolv_conf}" "${tmp_resolv_conf}" } main "$@"
Upload File
Create Folder