Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.35
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
sbin /
Delete
Unzip
Name
Size
Permission
Date
Action
a2disconf
15.89
KB
-rwxr-xr-x
2019-06-16 11:49
a2dismod
15.89
KB
-rwxr-xr-x
2019-06-16 11:49
a2dissite
15.89
KB
-rwxr-xr-x
2019-06-16 11:49
a2enconf
15.89
KB
-rwxr-xr-x
2019-06-16 11:49
a2enmod
15.89
KB
-rwxr-xr-x
2019-06-16 11:49
a2ensite
15.89
KB
-rwxr-xr-x
2019-06-16 11:49
a2query
9.64
KB
-rwxr-xr-x
2022-03-18 13:54
accessdb
10.23
KB
-rwxrwxrwx
2016-12-13 14:10
add-shell
860
B
-rwxrwxrwx
2017-04-02 19:10
addgnupghome
3.01
KB
-rwxrwxrwx
2019-02-07 21:57
addgroup
33.7
KB
-rwxrwxrwx
2016-06-27 00:55
adduser
33.7
KB
-rwxrwxrwx
2016-06-27 00:55
anacron
34.02
KB
-rwxr-xr-x
2017-05-29 18:36
apache2
651.16
KB
-rwxr-xr-x
2022-03-18 13:54
apache2ctl
7.05
KB
-rwxr-xr-x
2019-10-13 17:39
apachectl
7.05
KB
-rwxr-xr-x
2019-10-13 17:39
applygnupgdefaults
2.17
KB
-rwxrwxrwx
2019-02-07 21:57
arp
62.03
KB
-rwxrwxrwx
2016-12-26 06:58
arpaname
9.99
KB
-rwxr-xr-x
2022-03-19 14:43
arpd
46.84
KB
-rwxrwxrwx
2017-11-24 10:22
aspell-autobuildhash
13.22
KB
-rwxrwxrwx
2016-10-10 11:58
backup-manager
6.94
KB
-rwxrwxrwx
2016-08-23 12:51
bacula-console
44.77
KB
-rwxr-xr-x
2020-08-26 20:03
bacula-fd
239.47
KB
-rwxr-xr-x
2020-08-26 20:03
bconsole
44.77
KB
-rwxr-xr-x
2020-08-26 20:03
biosdecode
18.82
KB
-rwxrwxrwx
2016-09-01 04:59
bsmtp
18.52
KB
-rwxr-xr-x
2020-08-26 20:03
btraceback
2.27
KB
-rwxr-xr-x
2020-08-26 20:03
check_forensic
952
B
-rwxr-xr-x
2011-04-26 17:10
chgpasswd
57.8
KB
-rwxr-xr-x
2021-03-17 10:27
chpasswd
49.9
KB
-rwxr-xr-x
2021-03-17 10:27
chroot
38.88
KB
-rwxrwxrwx
2017-02-22 13:23
clamd
202.1
KB
-rwxr-xr-x
2022-05-27 11:18
clamonacc
190.09
KB
-rwxr-xr-x
2022-05-27 11:18
convertquota
71.74
KB
-rwxrwxrwx
2018-02-24 07:55
cpgr
52
KB
-rwxr-xr-x
2021-03-17 10:27
cppw
52
KB
-rwxr-xr-x
2021-03-17 10:27
cron
47.48
KB
-rwxr-xr-x
2021-10-29 22:04
dbconfig-generate-include
12.37
KB
-rwxrwxrwx
2017-01-05 20:23
dbconfig-load-include
5.57
KB
-rwxrwxrwx
2017-01-05 20:23
ddns-confgen
17.99
KB
-rwxr-xr-x
2022-03-19 14:43
delgroup
15.43
KB
-rwxrwxrwx
2016-06-27 00:55
deluser
15.43
KB
-rwxrwxrwx
2016-06-27 00:55
dmidecode
102.49
KB
-rwxrwxrwx
2016-09-01 04:59
dnssec-checkds
10.66
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-coverage
28.07
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-dsfromkey
50
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-dsfromkey-pkcs11
50
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-importkey
50
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-importkey-pkcs11
50
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-keyfromlabel
54
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-keyfromlabel-pkcs11
54
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-keygen
62
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-keygen-pkcs11
62
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-revoke
46
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-revoke-pkcs11
46
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-settime
54
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-settime-pkcs11
54
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-signzone
102.03
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-signzone-pkcs11
102.03
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-verify
46.01
KB
-rwxr-xr-x
2022-03-19 14:43
dnssec-verify-pkcs11
46.01
KB
-rwxr-xr-x
2022-03-19 14:43
dovecot
86.09
KB
-rwxr-xr-x
2021-01-05 13:19
dpkg-preconfigure
3.52
KB
-rwxrwxrwx
2017-05-21 19:08
dpkg-reconfigure
4.23
KB
-rwxrwxrwx
2017-05-21 19:08
e2freefrag
10.07
KB
-rwxrwxrwx
2020-07-25 11:03
e4crypt
22.07
KB
-rwxrwxrwx
2020-07-25 11:03
e4defrag
25.99
KB
-rwxrwxrwx
2020-07-25 11:03
edquota
80.11
KB
-rwxrwxrwx
2018-02-24 07:55
fdformat
30.66
KB
-rwxrwxrwx
2018-03-07 19:29
filefrag
14.02
KB
-rwxrwxrwx
2020-07-25 11:03
genccode
10.59
KB
-rwxr-xr-x
2021-10-12 12:29
gencmn
10.64
KB
-rwxr-xr-x
2021-10-12 12:29
genl
50.79
KB
-rwxrwxrwx
2017-11-24 10:22
gennorm2
43.38
KB
-rwxr-xr-x
2021-10-12 12:29
genrandom
10
KB
-rwxr-xr-x
2022-03-19 14:43
gensprep
18.98
KB
-rwxr-xr-x
2021-10-12 12:29
groupadd
57.86
KB
-rwxr-xr-x
2021-03-17 10:27
groupdel
53.65
KB
-rwxr-xr-x
2021-03-17 10:27
groupmems
53.84
KB
-rwxr-xr-x
2021-03-17 10:27
groupmod
68.22
KB
-rwxr-xr-x
2021-03-17 10:27
grpck
53.77
KB
-rwxr-xr-x
2021-03-17 10:27
grpconv
49.65
KB
-rwxr-xr-x
2021-03-17 10:27
grpunconv
49.65
KB
-rwxr-xr-x
2021-03-17 10:27
grub-bios-setup
790.19
KB
-rwxrwxrwx
2019-06-12 13:20
grub-install
996.58
KB
-rwxrwxrwx
2019-06-12 13:20
grub-macbless
777.88
KB
-rwxrwxrwx
2019-06-12 13:20
grub-mkconfig
7.82
KB
-rwxrwxrwx
2019-06-12 13:20
grub-mkdevicemap
204.47
KB
-rwxrwxrwx
2019-06-12 13:20
grub-probe
790.19
KB
-rwxrwxrwx
2019-06-12 13:20
grub-reboot
4.01
KB
-rwxrwxrwx
2019-06-12 13:20
grub-set-default
3.48
KB
-rwxrwxrwx
2019-06-12 13:20
httxt2dbm
9.99
KB
-rwxr-xr-x
2022-03-18 13:54
iconvconfig
22.66
KB
-rwxrwxrwx
2019-02-06 22:17
icupkg
19.18
KB
-rwxr-xr-x
2021-10-12 12:29
inetd
34.38
KB
-rwxrwxrwx
2017-01-02 11:49
install-sgmlcatalog
4.44
KB
-rwxrwxrwx
2016-11-07 08:06
invoke-rc.d
17.69
KB
-rwxrwxrwx
2017-05-02 12:20
ip6tables-apply
6.85
KB
-rwxrwxrwx
2017-04-12 11:41
iptables-apply
6.85
KB
-rwxrwxrwx
2017-04-12 11:41
irqbalance
55.38
KB
-rwxrwxrwx
2017-03-10 19:56
isc-hmac-fixup
9.99
KB
-rwxr-xr-x
2022-03-19 14:43
ispell-autobuildhash
15.39
KB
-rwxrwxrwx
2016-10-10 11:58
ldattach
30.71
KB
-rwxrwxrwx
2018-03-07 19:29
locale-gen
1.5
KB
-rwxrwxrwx
2017-07-31 16:32
logrotate
75.27
KB
-rwxrwxrwx
2017-01-07 19:54
logwatch
58
KB
-rwxr-xr-x
2017-01-21 17:44
make-ssl-cert
3.78
KB
-rwxrwxrwx
2017-04-28 21:58
mkinitramfs
10.01
KB
-rwxrwxrwx
2017-04-26 03:00
mklost+found
9.99
KB
-rwxrwxrwx
2020-07-25 11:03
mysqld
17.05
MB
-rwxr-xr-x
2021-03-22 19:49
named
622.24
KB
-rwxr-xr-x
2022-03-19 14:43
named-checkconf
34.19
KB
-rwxr-xr-x
2022-03-19 14:43
named-checkzone
30.19
KB
-rwxr-xr-x
2022-03-19 14:43
named-compilezone
30.19
KB
-rwxr-xr-x
2022-03-19 14:43
named-journalprint
9.99
KB
-rwxr-xr-x
2022-03-19 14:43
named-pkcs11
622.24
KB
-rwxr-xr-x
2022-03-19 14:43
named-rrchecker
13.99
KB
-rwxr-xr-x
2022-03-19 14:43
netfilter-persistent
1.05
KB
-rwxr-xr-x
2020-05-02 21:33
newusers
78.43
KB
-rwxr-xr-x
2021-03-17 10:27
nfnl_osf
13.99
KB
-rwxrwxrwx
2017-04-12 11:41
nginx
1.01
MB
-rwxr-xr-x
2021-06-07 21:02
nologin
5.99
KB
-rwxr-xr-x
2021-03-17 10:27
nsec3hash
10
KB
-rwxr-xr-x
2022-03-19 14:43
ntp-keygen
73.77
KB
-rwxrwxrwx
2018-02-15 12:45
ntp-wait
3.13
KB
-rwxrwxrwx
2018-02-15 12:45
ntpd
713.22
KB
-rwxrwxrwx
2018-02-15 12:45
ntpdate
75.17
KB
-rwxrwxrwx
2018-02-15 12:45
ntpdate-debian
534
B
-rwxrwxrwx
2018-02-15 12:45
ntptime
18.12
KB
-rwxrwxrwx
2018-02-15 12:45
ownership
10.13
KB
-rwxrwxrwx
2016-09-01 04:59
pam-auth-update
19.03
KB
-rwxrwxrwx
2017-05-27 17:44
pam_getenv
2.82
KB
-rwxrwxrwx
2017-05-27 17:44
pam_timestamp_check
10.37
KB
-rwxrwxrwx
2017-05-27 17:44
paperconfig
4.07
KB
-rwxrwxrwx
2016-11-11 12:28
passenger-memory-stats
5.65
KB
-rwxrwxrwx
2019-03-17 19:40
passenger-status
10.68
KB
-rwxrwxrwx
2019-03-17 19:40
phpdismod
7.11
KB
-rwxrwxrwx
2017-01-01 20:43
phpenmod
7.11
KB
-rwxrwxrwx
2017-01-01 20:43
phpquery
6.26
KB
-rwxrwxrwx
2017-01-01 20:43
pkcs11-destroy
9.99
KB
-rwxr-xr-x
2022-03-19 14:43
pkcs11-keygen
15.58
KB
-rwxr-xr-x
2022-03-19 14:43
pkcs11-list
9.99
KB
-rwxr-xr-x
2022-03-19 14:43
pkcs11-tokens
9.99
KB
-rwxr-xr-x
2022-03-19 14:43
pma-configure
299
B
-rwxr-xr-x
2020-10-23 11:41
pma-secure
157
B
-rwxr-xr-x
2020-10-23 11:41
postalias
17.99
KB
-rwxr-xr-x
2020-02-16 20:59
postcat
14.06
KB
-rwxr-xr-x
2020-02-16 20:59
postconf
175.28
KB
-rwxr-xr-x
2020-02-16 20:59
postdrop
14.12
KB
-rwxr-sr-x
2020-02-16 20:59
postfix
14.07
KB
-rwxr-xr-x
2020-02-16 20:59
postfix-add-filter
4.9
KB
-rwxrwxrwx
2020-02-16 20:59
postfix-add-policy
3.83
KB
-rwxrwxrwx
2020-02-16 20:59
postkick
9.99
KB
-rwxr-xr-x
2020-02-16 20:59
postlock
9.99
KB
-rwxr-xr-x
2020-02-16 20:59
postlog
10.15
KB
-rwxr-xr-x
2020-02-16 20:59
postmap
17.99
KB
-rwxr-xr-x
2020-02-16 20:59
postmulti
26.38
KB
-rwxr-xr-x
2020-02-16 20:59
postqueue
22.07
KB
-rwxr-sr-x
2020-02-16 20:59
postsuper
22.32
KB
-rwxr-xr-x
2020-02-16 20:59
posttls-finger
34.09
KB
-rwxrwxrwx
2020-02-16 20:59
pure-authd
18.41
KB
-rwxrwxrwx
2016-12-08 13:28
pure-ftpd
161.4
KB
-rwxrwxrwx
2016-12-08 13:28
pure-ftpd-control
1.68
KB
-rwxrwxrwx
2016-12-08 13:28
pure-ftpd-virtualchroot
165.4
KB
-rwxrwxrwx
2016-12-08 13:28
pure-ftpd-wrapper
12.16
KB
-rwxrwxrwx
2016-12-08 13:28
pure-ftpwho
22.02
KB
-rwxrwxrwx
2016-12-08 13:28
pure-mrtginfo
9.99
KB
-rwxrwxrwx
2016-12-08 13:28
pure-quotacheck
14.01
KB
-rwxrwxrwx
2016-12-08 13:28
pure-uploadscript
14.26
KB
-rwxrwxrwx
2016-12-08 13:28
pwck
49.84
KB
-rwxr-xr-x
2021-03-17 10:27
pwconv
45.74
KB
-rwxr-xr-x
2021-03-17 10:27
pwunconv
41.72
KB
-rwxr-xr-x
2021-03-17 10:27
qmqp-sink
13.99
KB
-rwxrwxrwx
2020-02-16 20:59
qmqp-source
18.01
KB
-rwxrwxrwx
2020-02-16 20:59
qshape
12.55
KB
-rwxrwxrwx
2020-02-16 20:59
quot
67.48
KB
-rwxrwxrwx
2018-02-24 07:55
quota_nld
75.8
KB
-rwxrwxrwx
2018-02-24 07:55
quotastats
14.38
KB
-rwxrwxrwx
2018-02-24 07:55
quotatool
26.45
KB
-rwxrwxrwx
2014-12-21 21:54
readprofile
18.59
KB
-rwxrwxrwx
2018-03-07 19:29
remove-default-ispell
2.86
KB
-rwxrwxrwx
2016-10-10 11:58
remove-default-wordlist
2.86
KB
-rwxrwxrwx
2016-10-10 11:58
remove-shell
904
B
-rwxrwxrwx
2017-04-02 19:10
repquota
72.05
KB
-rwxrwxrwx
2018-02-24 07:55
rmail
13.99
KB
-rwxrwxrwx
2020-02-16 20:59
rmt
55.03
KB
-rwxr-xr-x
2021-11-27 22:50
rmt-tar
55.03
KB
-rwxr-xr-x
2021-11-27 22:50
rndc
29.99
KB
-rwxr-xr-x
2022-03-19 14:43
rndc-confgen
17.99
KB
-rwxr-xr-x
2022-03-19 14:43
rpc.rquotad
75.96
KB
-rwxrwxrwx
2018-02-24 07:55
rsyslogd
636.3
KB
-rwxr-xr-x
2022-05-20 21:25
rtcwake
42.81
KB
-rwxrwxrwx
2018-03-07 19:29
safe_finger
10.08
KB
-rwxrwxrwx
2016-12-26 00:08
select-default-ispell
3.23
KB
-rwxrwxrwx
2016-10-10 11:58
select-default-wordlist
3.21
KB
-rwxrwxrwx
2016-10-10 11:58
sendmail
26.15
KB
-rwxr-xr-x
2020-02-16 20:59
service
9.83
KB
-rwxrwxrwx
2017-05-02 12:20
setquota
84.11
KB
-rwxrwxrwx
2018-02-24 07:55
smartctl
663.63
KB
-rwxrwxrwx
2016-07-30 19:10
smartd
591.07
KB
-rwxrwxrwx
2016-07-30 19:10
smtp-sink
30.93
KB
-rwxrwxrwx
2020-02-16 20:59
smtp-source
22.02
KB
-rwxrwxrwx
2020-02-16 20:59
snmpd
30.01
KB
-rwxr-xr-x
2020-08-04 17:15
split-logfile
2.36
KB
-rwxr-xr-x
2022-03-18 13:54
sshd
772.48
KB
-rwxrwxrwx
2019-07-15 15:32
tarcat
936
B
-rwxr-xr-x
2021-11-27 22:50
tcpd
10
KB
-rwxrwxrwx
2016-12-26 00:08
tcpdchk
22.13
KB
-rwxrwxrwx
2016-12-26 00:08
tcpdmatch
18.04
KB
-rwxrwxrwx
2016-12-26 00:08
tcpdump
1007.6
KB
-rwxr-xr-x
2020-11-10 15:22
tcptraceroute
1.56
KB
-rwxrwxrwx
2016-08-29 17:45
tcptraceroute.db
1.56
KB
-rwxrwxrwx
2016-08-29 17:45
traceroute
67.16
KB
-rwxrwxrwx
2016-08-29 17:45
try-from
10
KB
-rwxrwxrwx
2016-12-26 00:08
tsig-keygen
17.99
KB
-rwxr-xr-x
2022-03-19 14:43
tunelp
26.61
KB
-rwxrwxrwx
2018-03-07 19:29
tzconfig
106
B
-rwxr-xr-x
2019-10-11 09:23
ufw
4.4
KB
-rwx------
2017-01-10 22:16
unhide
38.26
KB
-rwxrwxrwx
2019-12-17 18:08
unhide-linux
38.26
KB
-rwxrwxrwx
2019-12-17 18:08
unhide-posix
10
KB
-rwxrwxrwx
2019-12-17 18:08
unhide-tcp
18.85
KB
-rwxrwxrwx
2019-12-17 18:08
unhide.rb
13.97
KB
-rwxrwxrwx
2015-11-09 01:23
unhide_rb
14.09
KB
-rwxrwxrwx
2019-12-17 18:08
update-ca-certificates
4.85
KB
-rwxr-xr-x
2021-03-13 18:38
update-catalog
9.15
KB
-rwxrwxrwx
2016-11-07 08:06
update-default-aspell
1
KB
-rwxrwxrwx
2016-10-10 11:58
update-default-ispell
9.68
KB
-rwxrwxrwx
2016-10-10 11:58
update-default-wordlist
7.5
KB
-rwxrwxrwx
2016-10-10 11:58
update-dictcommon-aspell
1
KB
-rwxrwxrwx
2016-10-10 11:58
update-dictcommon-hunspell
782
B
-rwxrwxrwx
2016-10-10 11:58
update-grub
64
B
-rwxrwxrwx
2019-06-12 13:20
update-grub2
64
B
-rwxrwxrwx
2019-06-12 13:20
update-gsfontmap
450
B
-rwxr-xr-x
2022-05-01 17:15
update-inetd
6.05
KB
-rwxrwxrwx
2017-01-15 12:37
update-initramfs
8.02
KB
-rwxrwxrwx
2017-03-06 23:42
update-locale
2.99
KB
-rwxrwxrwx
2016-03-21 00:45
update-mime
8.84
KB
-rwxrwxrwx
2016-05-01 13:20
update-passwd
30.41
KB
-rwxrwxrwx
2017-01-16 16:52
update-rc.d
15.69
KB
-rwxrwxrwx
2017-05-02 12:20
update-xmlcatalog
16.88
KB
-rwxrwxrwx
2016-11-07 15:53
upgrade-from-grub-legacy
1.49
KB
-rwxrwxrwx
2019-06-12 13:20
useradd
119.29
KB
-rwxr-xr-x
2021-03-17 10:27
userdel
82.49
KB
-rwxr-xr-x
2021-03-17 10:27
usermod
119.1
KB
-rwxr-xr-x
2021-03-17 10:27
validlocale
1.73
KB
-rwxrwxrwx
2016-03-21 00:45
vigr
60.22
KB
-rwxr-xr-x
2021-03-17 10:27
vipw
60.22
KB
-rwxr-xr-x
2021-03-17 10:27
visudo
200.34
KB
-rwxr-xr-x
2021-01-23 10:10
vpddecode
14.27
KB
-rwxrwxrwx
2016-09-01 04:59
warnquota
84.11
KB
-rwxrwxrwx
2018-02-24 07:55
xqmstats
14.36
KB
-rwxrwxrwx
2018-02-24 07:55
zic
42.54
KB
-rwxrwxrwx
2019-02-06 22:17
Save
Rename
#!/bin/sh # set some defaults format="sh" dbuser_varname="dbuser" dbpass_varname="dbpass" dbname_varname="dbname" dbserver_varname="dbserver" dbport_varname="dbport" dbtype_varname="dbtype" basepath_varname="basepath" # the version will always be < the package version VERSION="$Revision$" version(){ prog=$(basename $0) cat << EOF $prog v$VERSION copyright (c) 2005 sean finney <seanius@debian.org> EOF } usage(){ version cat << EOF usage: $prog [-hv] [-f format] [-a] [-d[varname]] [-u[varname]] [-p[varname]] [-s[varname]] [-P[varname]] [-t[varname]] [-C[comment]] [-O owner[:group]] [-m mode] [-U] infile [outfile] infile use the given dbconfig-common config file as input outfile use the given file as input (default: stdout) -f|--format use the given output format (default: sh) -o|--options provide output-format-specific options -a|--all include all information in output (default) -b|--basepath include the basepath in the output -d|--dbname include the dbname in the output -p|--dbpass include the dbpass in the output -s|--dbserver include the dbserver in the output -P|--dbport include the dbport in the output -u|--dbuser include the dbuser in the output -t|--dbtype include the dbtype in the output -C|--comment comment out unset variables -O|--owner set the owner:group of the output file -m|--mode set the permissions on the output file -U|--ucf register the outputfile with ucf -h|--help display this helpful message -v|--version output the version and exit format is one of a list of include-file style formats for various programming languages. the current list includes: sh - /bin/sh style include file perl - perl parseable include file php - php parseable include file template - perform pattern substitution on a pre-existing template cpp - c-style header file, using #define'd constants EOF } check_permissions(){ local line if dpkg-statoverride --list "$outputfile" >/dev/null; then line=$(dpkg-statoverride --list "$outputfile") owner=$(echo $line | cut -d' ' -f1,2 | tr ' ' ':') perms=$(echo $line | cut -d' ' -f3) fi } # Protect strings for use in the right hand side of a sed "s" command # # Without protection, double backslashes are interpreted as one # protected backslash, therefore "\\" -> "\\\\" # Without protection, an & "refers to that portion of the pattern # space which matched", therefore "&" -> "\\&" # The / is used as the seperator, so it needs escaping too, # therefore "/" -> "\\/" sed_rhs_escape(){ sed -e 's/\\/\\&/g' -e 's/&/\\&/g' -e 's,/,\\&,g' << EOF $1 EOF } # Protect strings for use in shell files where the variable is # quoted in single quotes sh_sq_escape(){ sed -e "s,','\\\\'',g" << EOF $1 EOF } # Protect strings for use in php files where the variable is # quoted in single quotes php_sq_escape(){ sed -e 's/\\/\\&/g' -e "s,',' . \"'\" . ',g" << EOF $1 EOF } # Protect strings for use in perl files where the variable is # quoted in single quotes perl_sq_escape(){ php_sq_escape "$1" } TEMP=$(getopt -o af:hb::d::m:o:p::u::s::t::C::O:P::Uv --long help,dbuser::,dbname::,dbpass::,dbport::,dbserver::,dbtype::,basepath::,output:,format:,options:,comment::,owner:,mode:,ucf,version -n $0 -- "$@") if [ $? != 0 ] ; then usage >&2 ; exit 1 ; fi eval set -- "$TEMP" while true; do case "$1" in -a|--all) use_all="yes" shift ;; -b|--basepath) use_basepath="yes" if [ ! -z "$2" ]; then basepath_varname="$2" fi shift 2 ;; -d|--dbname) use_dbname="yes" if [ ! -z "$2" ]; then dbname_varname="$2" fi shift 2 ;; -u|--dbuser) use_dbuser="yes" if [ ! -z "$2" ]; then dbuser_varname="$2" fi shift 2 ;; -p|--dbpass) use_dbpass="yes" if [ ! -z "$2" ]; then dbpass_varname="$2" fi shift 2 ;; -s|--dbserver) use_dbserver="yes" if [ ! -z "$2" ]; then dbserver_varname="$2" fi shift 2 ;; -P|--dbport) use_dbport="yes" if [ ! -z "$2" ]; then dbport_varname="$2" fi shift 2 ;; -t|--dbtype) use_dbtype="yes" if [ ! -z "$2" ]; then dbtype_varname="$2" fi shift 2 ;; -f|--format) format="$2" shift 2 ;; -C|--comment) use_comment="yes" if [ ! -z "$2" ]; then comment_string="$2" fi shift 2 ;; -O|--owner) owner="$2" shift 2 ;; -m|--mode) perms="$2" shift 2 ;; -h|--help) usage exit ;; -v|--version) version exit ;; -U|--ucf) do_ucf=1 shift ;; -o|--options) eval $2 shift 2 ;; --) shift break ;; *) echo "eh? $1" >&2 exit 1 ;; esac done # if they asked for all vars, or didn't ask for anything (which defaults to all) if [ "$use_all" ] || [ ! "${use_dbuser}${use_dbpass}${use_basepath}${use_dbname}${use_dbserver}${use_dbtype}${use_dbport}" ]; then use_dbuser="yes" use_dbpass="yes" use_basepath="yes" use_dbname="yes" use_dbserver="yes" use_dbport="yes" use_dbtype="yes" fi inputfile=$1 outputfile=$2 if [ ! "$inputfile" ]; then echo "you must specify an inputfile" >&2 usage >&2 exit 1 fi if [ "$outputfile" ]; then tmpout=$(mktemp -t dbconfig-generate-include.XXXXXX) if [ ! -f "$tmpout" ]; then echo "unable to create temporary file $tmpout" >&2 exit 1 fi if [ -e "$outputfile" ] ; then # In order to preserve all local attributes of the # original file, copy them to the tmpout file, so that # later on they are copied back (by ucf or mv command). cp --preserve=all --attributes-only "$outputfile" "$tmpout" fi exec > $tmpout fi if [ ! -f "$inputfile" ] || [ ! -r "$inputfile" ]; then echo "unable to read input file $inputfile" >&2 exit 1 fi if ! . $inputfile ; then echo "error processing $inputfile, check file contents" >&2 exit 1 fi # if commenting-out is enabled if [ "$use_comment" ]; then # if a comment string was not explicitly specified set a default if [ ! "$comment_string" ]; then case $format in sh|php|perl) comment_string="#" ;; cpp) comment_string="//" ;; template) echo "E: must specify a comment string for 'template' format" >&2 exit 1 ;; esac fi # now determine which things should be commented out if any [ ! "$dbc_dbuser" ] && comment_dbuser="${comment_string}" [ ! "$dbc_dbpass" ] && comment_dbpass="${comment_string}" [ ! "$dbc_basepath" ] && comment_basepath="${comment_string}" [ ! "$dbc_dbname" ] && comment_dbname="${comment_string}" [ ! "$dbc_dbserver" ] && comment_dbserver="${comment_string}" [ ! "$dbc_dbport" ] && comment_dbport="${comment_string}" [ ! "$dbc_dbtype" ] && comment_dbtype="${comment_string}" fi case $format in sh) cat << EOF ## ## database access settings in /bin/sh format ## automatically generated from $inputfile ## by $0 ## ## by default this file is managed via ucf, so you shouldn't have to ## worry about manual changes being silently discarded. *however*, ## you'll probably also want to edit the configuration file mentioned ## above too. ## EOF [ "$use_dbuser" ] && echo "${comment_dbuser}$dbuser_varname='$(sh_sq_escape "$dbc_dbuser")'" [ "$use_dbpass" ] && echo "${comment_dbpass}$dbpass_varname='$(sh_sq_escape "$dbc_dbpass")'" [ "$use_basepath" ] && echo "${comment_basepath}$basepath_varname='$(sh_sq_escape "$dbc_basepath")'" [ "$use_dbname" ] && echo "${comment_dbname}$dbname_varname='$(sh_sq_escape "$dbc_dbname")'" [ "$use_dbserver" ] && echo "${comment_dbserver}$dbserver_varname='$(sh_sq_escape "$dbc_dbserver")'" [ "$use_dbport" ] && echo "${comment_dbport}$dbport_varname='$(sh_sq_escape "$dbc_dbport")'" [ "$use_dbtype" ] && echo "${comment_dbtype}$dbtype_varname='$(sh_sq_escape "$dbc_dbtype")'" ;; php) cat << EOF <?php ## ## database access settings in php format ## automatically generated from $inputfile ## by $0 ## ## by default this file is managed via ucf, so you shouldn't have to ## worry about manual changes being silently discarded. *however*, ## you'll probably also want to edit the configuration file mentioned ## above too. ## EOF [ "$use_dbuser" ] && echo "${comment_dbuser}\$$dbuser_varname='$(php_sq_escape "$dbc_dbuser")';" [ "$use_dbpass" ] && echo "${comment_dbpass}\$$dbpass_varname='$(php_sq_escape "$dbc_dbpass")';" [ "$use_basepath" ] && echo "${comment_basepath}\$$basepath_varname='$(php_sq_escape "$dbc_basepath")';" [ "$use_dbname" ] && echo "${comment_dbname}\$$dbname_varname='$(php_sq_escape "$dbc_dbname")';" [ "$use_dbserver" ] && echo "${comment_dbserver}\$$dbserver_varname='$(php_sq_escape "$dbc_dbserver")';" [ "$use_dbport" ] && echo "${comment_dbport}\$$dbport_varname='$(php_sq_escape "$dbc_dbport")';" [ "$use_dbtype" ] && echo "${comment_dbtype}\$$dbtype_varname='$(php_sq_escape "$dbc_dbtype")';" cat << EOF EOF ;; perl) cat << EOF ## ## database access settings in perl format ## automatically generated from $inputfile ## by $0 ## ## by default this file is managed via ucf, so you shouldn't have to ## worry about manual changes being silently discarded. *however*, ## you'll probably also want to edit the configuration file mentioned ## above too. ## EOF [ "$use_dbuser" ] && echo "${comment_dbuser}our \$$dbuser_varname='$(perl_sq_escape "$dbc_dbuser")';" [ "$use_dbpass" ] && echo "${comment_dbpass}our \$$dbpass_varname='$(perl_sq_escape "$dbc_dbpass")';" [ "$use_basepath" ] && echo "${comment_basepath}our \$$basepath_varname='$(perl_sq_escape "$dbc_basepath")';" [ "$use_dbname" ] && echo "${comment_dbname}our \$$dbname_varname='$(perl_sq_escape "$dbc_dbname")';" [ "$use_dbserver" ] && echo "${comment_dbserver}our \$$dbserver_varname='$(perl_sq_escape "$dbc_dbserver")';" [ "$use_dbport" ] && echo "${comment_dbport}our \$$dbport_varname='$(perl_sq_escape "$dbc_dbport")';" [ "$use_dbtype" ] && echo "${comment_dbtype}our \$$dbtype_varname='$(perl_sq_escape "$dbc_dbtype")';" cat << EOF 1; EOF ;; cpp) cat << EOF /* * database access settings in cpp header format * why you would ever need this, who knows? :) * automatically generated from $inputfile * by $0 * * by default this file is managed via ucf, so you shouldn't have to * worry about manual changes being silently discarded. *however*, * you'll probably also want to edit the configuration file mentioned * above too. * */ #ifndef _DBCONFIG_COMMON_CONFIG_ #define _DBCONFIG_COMMON_CONFIG_ EOF [ "$use_dbuser" ] && echo " ${comment_dbuser}#define $dbuser_varname \"$dbc_dbuser\";" [ "$use_dbpass" ] && echo " ${comment_dbpass}#define $dbpass_varname \"$dbc_dbpass\";" [ "$use_basepath" ] && echo "${comment_basepath}#define $basepath_varname \"$dbc_basepath\";" [ "$use_dbname" ] && echo " ${comment_dbname}#define $dbname_varname \"$dbc_dbname\";" [ "$use_dbserver" ] && echo " ${comment_dbserver}#define $dbserver_varname \"$dbc_dbserver\";" [ "$use_dbport" ] && echo " ${comment_dbport}#define $dbport_varname \"$dbc_dbport\";" [ "$use_dbtype" ] && echo " ${comment_dbtype}#define $dbtype_varname \"$dbc_dbtype\";" cat << EOF #endif /* _DBCONFIG_COMMON_CONFIG_ */ EOF ;; template) if [ ! "$template_infile" ]; then cat << EOF >&2 error: you must specify a template file. for example: '-o template_infile=foo' EOF exit 1 elif [ ! -f "$template_infile" ]; then echo "error: template infile $template_infile does not exist" >&2 exit 1 fi sedtmp=$(mktemp -t dbconfig-generate-include.sed.XXXXXX) if [ ! -f "$sedtmp" ]; then echo "unable to create temporary file $sedtmp" >&2 exit 1 fi # we do not want _DBC_DBSERVER_ to be expanded to "" (which means "use # the best available method to connect to the local db): expand it to # "localhost" if needed if [ -z "$dbc_dbserver" ] ; then _dbc_dbserver="localhost" else _dbc_dbserver="$dbc_dbserver" fi cat << EOF > "$sedtmp" s/^\(.*\)_DBC_DBUSER_/${comment_dbuser}\1$(sed_rhs_escape "$dbc_dbuser")/g s/^\(.*\)_DBC_DBPASS_/${comment_dbpass}\1$(sed_rhs_escape "$dbc_dbpass")/g s/^\(.*\)_DBC_BASEPATH_/${comment_basepath}\1$(sed_rhs_escape "$dbc_basepath")/g s/^\(.*\)_DBC_DBNAME_/${comment_dbname}\1$(sed_rhs_escape "$dbc_dbname")/g s/^\(.*\)_DBC_DBSERVER_/${comment_dbserver}\1$(sed_rhs_escape "$_dbc_dbserver")/g s/^\(.*\)_DBC_DBPORT_/${comment_dbport}\1$(sed_rhs_escape "$dbc_dbport")/g s/^\(.*\)_DBC_DBTYPE_/${comment_dbtype}\1$(sed_rhs_escape "$dbc_dbtype")/g EOF sed -f "$sedtmp" < "$template_infile" rm -f "$sedtmp" ;; esac if [ "$outputfile" ]; then if [ "$do_ucf" ]; then ucf --debconf-ok "$tmpout" "$outputfile" >&2 rm -f "$tmpout" else mv "$tmpout" "$outputfile" fi check_permissions if [ -e "$outputfile" ] ; then [ "$owner" ] && chown $owner $outputfile [ "$perms" ] && chmod $perms $outputfile fi fi exit 0