diff --git a/config/dconf-debian.conf b/config/dconf-debian.conf new file mode 100644 index 0000000..240746f --- /dev/null +++ b/config/dconf-debian.conf @@ -0,0 +1,402 @@ +### Changes to this file may get lost when upgrading dconf +### Customizations should go into /etc/dconf-custom.conf + +### Please send improvements or fixes to: Dag Wieers +### Initial debian version: Leo Eraly +### Main configuration +[main] +logdir = /var/log/dconf +include = /etc/dconf-custom.conf + +### System information +[apm] +files = /etc/apm/event.d/* + /etc/apm/resume.d/* + /etc/apm/suspend.d/* + /etc/apm/scripts.d/* + +[boot] +files = + /etc/grub.conf + /etc/inittab + /etc/lilo.conf + /etc/modules + /proc/cmdline + +[dhcp] +files = + /etc/dhclient.conf + /etc/dhclient-script + /etc/dhcpd.conf + /etc/pump.conf + /etc/default/dhcp + +[filesystems] +cmds = + fdisk -l 2>/dev/null + sfdisk -l + df -h + mount +files = + /etc/exports + /etc/raidtab + /etc/fstab + /proc/filesystems + /proc/mounts + /etc/mdadm/mdadm.conf + /etc/default/hdparm + /etc/hdparm.conf + +[firewall] +cmds = + ebtables -L + ipchains -L -xnv + iptables-save + iptables -L -t filter -n | sed -e 's| [0-9]\+ packets, [0-9]\+ bytes||' + iptables -L -t mangle -n | sed -e 's| [0-9]\+ packets, [0-9]\+ bytes||' + iptables -L -t nat -n | sed -e 's| [0-9]\+ packets, [0-9]\+ bytes||' +files = + /etc/init.d/iptables + /etc/default/iptables + /proc/net/ip_conntrack + /proc/sys/net/ipv4/ip_* + +[iproute2] +files = + /etc/iproute2/ematch_map + /etc/iproute2/rt_dsfield + /etc/iproute2/rt_protos + /etc/iproute2/rt_realms + /etc/iproute2/rt_scopes + /etc/iproute2/rt_tables + +[ipsec] +cmds = + ipsec auto --status + +files = + /etc/ipsec.conf + /etc/ipsec.d/* + /proc/net/ipsec_version + +[ipvs] +cmds = ipvsadm -L +files = + /etc/sysconfig/ipvsadm + /etc/ipvsadm.rules + +[kernel] +cmds = + ipcs -l + sysctl -e -p + dmesg +files = /etc/sysctl.conf + +[network] +cmds = + ip addr + ip route +### Too much noise +# netstat -lnpt | grep -v ":60.. " | perl -p -e "s|^(\w+)(\s+\S+){2}|\$1 |; s|(\d+\|PID)/||;" +# netstat -lnpu | grep -v "/local " | perl -p -e "s|^(\w+)(\s+\S+){2}|\$1 |; s|(\d+\|PID)/||;" + route -n +files = + /etc/host.conf + /etc/hosts + /etc/nsswitch.conf + /etc/default/avahi-daemon + /etc/resolv.conf + /etc/network/interfaces + /etc/network/if-down.d/* + /etc/network/if-post-down.d/* + /etc/network/if-pre-up.d/* + /etc/network/if-up.d/ + /etc/network/ip-down.d/* + /etc/network/ip-up.d/* + /etc/network/options + /proc/net/dev +#maybe another location for unix sockets? + /proc/net/unix + +[packages] +cmds = + dpkg -l + dpkg --get-selections + +[printer] +files = + /etc/cups/cupsd.conf + /etc/cups/printers.conf + /etc/cups/client.conf + /etc/lpd.conf + /etc/printcap + +[root user] +files = + /root/.Xresources + /root/.bash_logout + /root/.bash_profile + /root/.bashrc + /root/.cshrc + /root/.tcshrc + +[security] +files = + /etc/group + /etc/gshadow + /etc/hosts.allow + /etc/hosts.deny + /etc/passwd + /etc/shadow + /etc/sudoers + +[services] +dirs = /etc/security +files = + /etc/inetd.conf + +[shell] +files = + /etc/bashrc + /etc/bash.bashrc + /etc/bash_completion + /etc/bash_completion.d/* + /etc/profile + +[system] +cmds = uname -a +files = /etc/debian_version + /etc/default/rcS + +### Hardware info +[hardware] +cmds = + dmidecode + lspci -v + lsusb -vv +# for i in /dev/hd[a-z] /dev/sd[a-z]; do smartctl -a $i; done +files = + /etc/modprobe.conf + /etc/modules.conf + /proc/cpuinfo + /proc/devices + /proc/dma + /proc/driver/nvram + /proc/ide/drivers + /proc/ide/ide?/hd?/{cache,capacity,media,model,settings} + /proc/ide/piix + /proc/ide/via + /proc/iomem + /proc/mdstat + /proc/misc + /proc/modules + /proc/mtrr + /proc/ppc64/lparcfg + /proc/ppc64/rtas/poweron + /proc/ppc64/rtas/sensors + /proc/scsi + /proc/scsi/IBMchanger + /proc/scsi/IBMtape + /proc/swaps + /proc/tty/drivers + +dirs = /etc/modutils + +[amavisd-new] +files = + /etc/amavis/amavisd.conf + +[apache] +files = + /etc/apache/httpd.conf + /etc/apache/conf.d/* + +[bind] +files = + /etc/bind/named.conf + /etc/bind/rndc.key + +[maradns] +files = + /etc/maradns/* + +[clamav] +files = + /etc/clamav/clamd.conf + /etc/clamav/clamav.conf + /etc/clamav/freshclam.conf + +[cron] +files = /etc/crontab +cmds = crontab -l +# ls -l /etc/cron.*/ + +dirs = /etc/cron.daily + /etc/cron.weekly + /etc/cron.monthly + /etc/cron.hourly + /etc/cron.d + +[dconf] +files = + /etc/dconf.conf + /etc/dconf-custom.conf + +[mysql] +files = /etc/mysql/my.cnf + /etc/mysql/debian.cnf + +[postgresql] +dirs = /etc/postgresql + /etc/postgresql-common + +[nagios] +files = + /etc/nagios/*.cfg + +[nfs] +cmds = + exportfs + showmount -d + showmount -e +files = + /etc/exports + /etc/default/nfs-common + +[nscd] +files = /etc/nscd.conf + +[dbus] +files = /etc/default/dbus + /etc/dbus-1/* + /etc/dbus-1/event.d/* + /etc/dbus-1/system.d/* + +[ntp] +files = + /etc/ntp.conf + /etc/ntp/keys + /etc/ntp/ntpservers + /etc/ntp/step-tickers + /etc/sysconfig/ntpd + +[openldap] +files = +# this ldap.conf is used for nss + /etc/ldap.conf +# this is the openldap client conf + /etc/ldap/ldap.conf + /etc/ldap.secrets + /etc/ldap/slapd.conf +#maybe the schema? + +[openssh] +files = + /etc/ssh/shosts.equiv + /etc/ssh/ssh_config + /etc/ssh/sshd_config + /etc/default/ssh + +[php] +files = + /etc/php4/apache/php.ini + + +[postfix] +files = + /etc/postfix/access + /etc/postfix/aliases + /etc/postfix/canonical + /etc/postfix/sender_canonical + /etc/postfix/recipient_canonical + /etc/postfix/main.cf + /etc/postfix/master.cf + /etc/postfix/pcre_table + /etc/postfix/regexp_table + /etc/postfix/relocated + /etc/postfix/transport + /etc/postfix/virtual + +[proftpd] +files = + /etc/ftpusers + /etc/proftpd.conf + /var/ftp/welcome.msg + /etc/default/proftpd + +[qmail] +cmds = /var/qmail/bin/qmail-showctl +dirs = + /var/qmail/alias/ + /var/qmail/popboxes/ + /var/qmail/users/ + /var/qmail/control + +[rsync] +files = /etc/rsyncd.conf + +[samba] +files = + /etc/samba/smb.conf + /etc/samba/smbusers + /etc/samba/lmhosts + /etc/samba/smb.conf + /etc/samba/smbpasswd + /etc/samba/smbusers + +[sendmail] +files = + /etc/aliases + /etc/mail/access + /etc/mail/domaintable + /etc/mail/local-host-names + /etc/mail/mailertable + /etc/mail/sendmail.mc + /etc/mail/submit.mc + /etc/mail/trusted-users + /etc/mail/virtusertable + +[smbldap] +files = + /etc/smbldap-tools/smbldap.conf + /etc/smbldap-tools/smbldap_bind.conf + +[snort] +files = + /etc/snort/*.config + /etc/sysconfig/snort + +[spamassassin] +files = + /etc/spamassassin/*.cf + /etc/default/spamassassin + +[squid] +files = + /etc/squid/mime.conf + /etc/squid/msntauth.conf + /etc/squid/squid.conf + +[syslog] +files = + /etc/syslog.conf + /etc/default/syslogd + +[webalizer] +files = /etc/webalizer.conf + +[apt] +files = /etc/apt/sources.list + listchanges.conf +dirs = /etc/apt/apt.conf.d + +[rkhunter] +files => /etc/default/rkhunter + /etc/rkhunter.conf + +[openvz] +files = + /etc/vz/vz.conf + /etc/vz/conf/* + +### Add your own customizations to /etc/dconf-custom.conf diff --git a/config/redhat.conf b/config/redhat.conf index 2c44b02..e29b2fa 100644 --- a/config/redhat.conf +++ b/config/redhat.conf @@ -6,134 +6,134 @@ ### System information [acpi] files = - /etc/logrotate.d/acpid - /etc/acpi/actions/* - /etc/acpi/events/* + /etc/logrotate.d/acpid + /etc/acpi/actions/* + /etc/acpi/events/* [apm] files = - /etc/sysconfig/apm-scripts/* - /etc/sysconfig/apmd + /etc/sysconfig/apm-scripts/* + /etc/sysconfig/apmd [boot] cmds = lilo -q files = - /etc/sysconfig/firstboot - /etc/sysconfig/i18n - /etc/sysconfig/init - /etc/grub.conf - /etc/initlog.conf - /etc/inittab - /etc/lilo.conf - /etc/rc.d/rc.local - /proc/cmdline + /etc/sysconfig/firstboot + /etc/sysconfig/i18n + /etc/sysconfig/init + /etc/grub.conf + /etc/initlog.conf + /etc/inittab + /etc/lilo.conf + /etc/rc.d/rc.local + /proc/cmdline [dhcp] files = - /etc/dhclient-*.conf - /etc/dhcpd.conf - /etc/pump.conf - /etc/sysconfig/dhcpd - /etc/sysconfig/dhcrelay + /etc/dhclient-*.conf + /etc/dhcpd.conf + /etc/pump.conf + /etc/sysconfig/dhcpd + /etc/sysconfig/dhcrelay [diskdump] files = - /etc/sysconfig/diskdump + /etc/sysconfig/diskdump [fam] files = - /etc/fam.conf - /etc/xinetd.d/sgi_fam + /etc/fam.conf + /etc/xinetd.d/sgi_fam [filesystems] cmds = - fdisk -l 2>/dev/null - sfdisk -d - mount + fdisk -l 2>/dev/null + sfdisk -d + mount files = - /etc/exports - /etc/fstab - /proc/filesystems + /etc/exports + /etc/fstab + /proc/filesystems [firewall] cmds = - ebtables -L - ipchains -L -n - iptables -L -xn -t filter - iptables -L -xn -t mangle - iptables -L -xn -t nat -files = - /etc/rc.d/rc.firewall - /etc/sysconfig/ipchains - /etc/sysconfig/iptables - /etc/sysconfig/iptables-config - /etc/sysconfig/ebtables.broute - /etc/sysconfig/ebtables.filter - /etc/sysconfig/ebtables.nat + ebtables -L + ipchains -L -n + iptables -L -xn -t filter + iptables -L -xn -t mangle + iptables -L -xn -t nat +files = + /etc/rc.d/rc.firewall + /etc/sysconfig/ipchains + /etc/sysconfig/iptables + /etc/sysconfig/iptables-config + /etc/sysconfig/ebtables.broute + /etc/sysconfig/ebtables.filter + /etc/sysconfig/ebtables.nat [fonts] files = - /etc/fonts/fonts.conf - /etc/fonts/local.conf + /etc/fonts/fonts.conf + /etc/fonts/local.conf [hal] files = - /etc/dbus-1/system.d/hal.conf - /etc/hal/hald.conf + /etc/dbus-1/system.d/hal.conf + /etc/hal/hald.conf [iproute2] files = - /etc/iproute2/ematch_map - /etc/iproute2/rt_dsfield - /etc/iproute2/rt_protos - /etc/iproute2/rt_realms - /etc/iproute2/rt_scopes - /etc/iproute2/rt_tables + /etc/iproute2/ematch_map + /etc/iproute2/rt_dsfield + /etc/iproute2/rt_protos + /etc/iproute2/rt_realms + /etc/iproute2/rt_scopes + /etc/iproute2/rt_tables [ipsec] files = - /etc/ipsec.conf - /etc/ipsec.secrets - /etc/ipsec.d/aacerts/* - /etc/ipsec.d/cacerts/* - /etc/ipsec.d/certs/* - /etc/ipsec.d/crls/* - /etc/ipsec.d/examples/* - /etc/ipsec.d/ocspcerts/* - /etc/ipsec.d/policies/* - /etc/ipsec.d/private/* - /etc/racoon/psk.txt - /etc/racoon/racoon.conf - /proc/net/ipsec_version + /etc/ipsec.conf + /etc/ipsec.secrets + /etc/ipsec.d/aacerts/* + /etc/ipsec.d/cacerts/* + /etc/ipsec.d/certs/* + /etc/ipsec.d/crls/* + /etc/ipsec.d/examples/* + /etc/ipsec.d/ocspcerts/* + /etc/ipsec.d/policies/* + /etc/ipsec.d/private/* + /etc/racoon/psk.txt + /etc/racoon/racoon.conf + /proc/net/ipsec_version [ipvs] -cmds = ipvsadm -L +cmds = ipvsadm -L files = - /etc/sysconfig/ipvsadm - /etc/ipvsadm.rules + /etc/sysconfig/ipvsadm + /etc/ipvsadm.rules [kerberos] files = - /etc/krb5.conf - /etc/krb.conf - /etc/krb.realms - /etc/xinetd.d/eklogin - /etc/xinetd.d/gssftp - /etc/xinetd.d/klogin - /etc/xinetd.d/krb5-telnet - /etc/xinetd.d/kshell + /etc/krb5.conf + /etc/krb.conf + /etc/krb.realms + /etc/xinetd.d/eklogin + /etc/xinetd.d/gssftp + /etc/xinetd.d/klogin + /etc/xinetd.d/krb5-telnet + /etc/xinetd.d/kshell [kernel] cmds = - ipcs -l -# sysctl -e -p -# sysctl -a -e | grep -vE '^(fs\.(dentry-state|inode-nr|inode-state)|kernel\.random\.(uuid|entropy_avail)) = ' -files = /etc/sysctl.conf + ipcs -l +# sysctl -e -p +# sysctl -a -e | grep -vE '^(fs\.(dentry-state|inode-nr|inode-state)|kernel\.random\.(uuid|entropy_avail)) = ' +files = /etc/sysctl.conf [ld.so] files = - /etc/ld.so.conf - /etc/ld.so.conf.d/*.conf + /etc/ld.so.conf + /etc/ld.so.conf.d/*.conf [lsb] cmds = lsb_release -a @@ -141,269 +141,270 @@ cmds = lsb_release -a [lvm] files = /etc/lvm/lvm.conf cmds = - lvdisplay - lvm dumpconfig - lvs - vgdisplay - vgs + lvdisplay + lvm dumpconfig + lvs + vgdisplay + vgs [mouse] file = - /etc/gpm-root.conf - /etc/sysconfig/mouse + /etc/gpm-root.conf + /etc/sysconfig/mouse [network] cmds = - ip addr - ip route + ip addr + ip route ### Too much noise -# netstat -lnpt | grep -v ":60.. " | perl -p -e "s|^(\w+)(\s+\S+){2}|\$1 |; s|(\d+\|PID)/||;" -# netstat -lnpu | grep -v "/local " | perl -p -e "s|^(\w+)(\s+\S+){2}|\$1 |; s|(\d+\|PID)/||;" - route -n -files = - /etc/ethers - /etc/host.conf - /etc/hosts - /etc/networks - /etc/nsswitch.conf - /etc/resolv.conf - /etc/sysconfig/netplugd - /etc/sysconfig/network - /etc/sysconfig/network-scripts/ifcfg-* - /etc/sysconfig/network-scripts/keys-* - /etc/sysconfig/network-scripts/route-* - /etc/sysconfig/static-routes - /proc/net/bond0/info - /proc/net/bonding/bond0 +# netstat -lnpt | grep -v ":60.. " | perl -p -e "s|^(\w+)(\s+\S+){2}|\$1 |; s|(\d+\|PID)/||;" +# netstat -lnpu | grep -v "/local " | perl -p -e "s|^(\w+)(\s+\S+){2}|\$1 |; s|(\d+\|PID)/||;" + route -n +files = + /etc/ethers + /etc/host.conf + /etc/hosts + /etc/networks + /etc/nsswitch.conf + /etc/resolv.conf + /etc/sysconfig/netplugd + /etc/sysconfig/network + /etc/sysconfig/network-scripts/ifcfg-* + /etc/sysconfig/network-scripts/keys-* + /etc/sysconfig/network-scripts/route-* + /etc/sysconfig/static-routes + /proc/net/bond0/info + /proc/net/bonding/bond0 [openvz] files = - /etc/sysconfig/vz-scripts/*.conf - /etc/vz/names/*.conf - /etc/vz/vz.conf - /proc/vz/devperms - /proc/vz/veinfo - /proc/vz/veip - /proc/vz/veth + /etc/sysconfig/vz-scripts/*.conf + /etc/vz/names/*.conf + /etc/vz/vz.conf + /proc/vz/devperms + /proc/vz/veinfo + /proc/vz/veip + /proc/vz/veth cmds = vzlist [packages] -cmds = rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}\n' | sort +cmds = rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}\n' | sort [pam] files = - /etc/pam.conf - /etc/pam.d/* + /etc/pam.conf + /etc/pam.d/* [printer] cmds = - lpstat -t + lpstat -t files = - /etc/cups/*.conf - /etc/logrotate.d/cups - /etc/lpd.conf - /etc/lpd.perms - /etc/printcap - /etc/xinetd.d/cups-lpd + /etc/cups/*.conf + /etc/logrotate.d/cups + /etc/lpd.conf + /etc/lpd.perms + /etc/printcap + /etc/xinetd.d/cups-lpd [raid] files = - /etc/mdadm.conf - /etc/raidtab - /proc/mdstat + /etc/mdadm.conf + /etc/raidtab + /proc/mdstat [root user] files = - /root/.Xresources - /root/.bash_logout - /root/.bash_profile - /root/.bashrc - /root/.cshrc - /root/.tcshrc + /root/.Xresources + /root/.bash_logout + /root/.bash_profile + /root/.bashrc + /root/.cshrc + /root/.tcshrc [rpm] files = - /etc/cron.daily/rpm - /etc/logrotate.d/rpm - /etc/rpm/macros + /etc/cron.daily/rpm + /etc/logrotate.d/rpm + /etc/rpm/macros [sasl] files = /etc/sysconfig/saslauthd [security] -dirs = /etc/security/ -files = - /etc/group - /etc/gshadow - /etc/hosts.allow - /etc/hosts.deny - /etc/op.conf - /etc/passwd - /etc/shadow - /etc/sudoers - /etc/sysconfig/system-config-securitylevel +dirs = /etc/security/ +files = + /etc/group + /etc/gshadow + /etc/hosts.allow + /etc/hosts.deny + /etc/op.conf + /etc/passwd + /etc/shadow + /etc/sudoers + /etc/sysconfig/system-config-securitylevel [services] -cmds = chkconfig --list +cmds = chkconfig --list files = - /etc/inetd.conf - /etc/sysconfig/identd + /etc/inetd.conf + /etc/sysconfig/identd [shell] files = - /etc/bashrc - /etc/shells - /etc/skel/.* - /etc/profile - /etc/profile.d/*.{csh,sh} + /etc/bashrc + /etc/shells + /etc/skel/.* + /etc/profile + /etc/profile.d/*.{csh,sh} [system] cmds = - getconf -a - locale - uname -a -files = - /etc/issue - /etc/issue.net - /etc/redhat-release - /etc/sysconfig/prelink - /etc/sysconfig/rhn/rhnsd - /etc/sysconfig/rhn/sources - /etc/sysconfig/rhn/up2date - /etc/sysconfig/rhn/up2date-uuid - /proc/version + getconf -a + locale + uname -a +files = + /etc/issue + /etc/issue.net + /etc/redhat-release + /etc/sysconfig/prelink + /etc/sysconfig/rhn/install-num + /etc/sysconfig/rhn/rhnsd + /etc/sysconfig/rhn/sources + /etc/sysconfig/rhn/up2date + /etc/sysconfig/rhn/up2date-uuid + /proc/version [user management] -files = /etc/sysconfig/system-config-users +files = /etc/sysconfig/system-config-users ### Hardware info [hardware] cmds = - cpuid - dmidecode - lspci -v - lsusb -vv -# for i in /dev/hd[a-z] /dev/sd[a-z]; do smartctl -a $i; done -files = - /etc/cpuspeed.conf - /etc/hotplug/blacklist - /etc/hotswaprc - /etc/killpower - /etc/makedev.d/* - /etc/modprobe.conf - /etc/modprobe.d/* - /etc/modules.conf - /etc/smartd.conf - /etc/sysconfig/bluetooth - /etc/sysconfig/clock - /etc/sysconfig/cpudynd - /etc/sysconfig/cpufreqd - /etc/sysconfig/devlabel - /etc/sysconfig/dund - /etc/sysconfig/harddisks - /etc/sysconfig/hidd - /etc/sysconfig/irda - /etc/sysconfig/irqbalance - /etc/sysconfig/isdncard - /etc/sysconfig/kudzu - /etc/sysconfig/lm_sensors - /etc/sysconfig/netdump - /etc/sysconfig/noflushd - /etc/sysconfig/pand - /etc/sysconfig/pcmcia - /etc/sysconfig/sensors - /etc/sysconfig/smartmontools - /etc/sysconfig/ups - /etc/ups/upsmon.conf - /proc/cpuinfo - /proc/devices - /proc/dma - /proc/driver/nvram - /proc/ide/drivers - /proc/ide/ide?/hd?/{cache,capacity,media,model,settings} - /proc/ide/piix - /proc/ide/via - /proc/iomem - /proc/ioports - /proc/misc - /proc/modules - /proc/mtrr - /proc/partitions - /proc/ppc64/lparcfg - /proc/ppc64/rtas/poweron - /proc/ppc64/rtas/sensors - /proc/scsi/IBMchanger - /proc/scsi/IBMtape - /proc/scsi/scsi - /proc/swaps - /proc/tty/driver/serial - /proc/tty/drivers + cpuid + dmidecode + lspci -v + lsusb -vv +# for i in /dev/hd[a-z] /dev/sd[a-z]; do smartctl -a $i; done +files = + /etc/cpuspeed.conf + /etc/hotplug/blacklist + /etc/hotswaprc + /etc/killpower + /etc/makedev.d/* + /etc/modprobe.conf + /etc/modprobe.d/* + /etc/modules.conf + /etc/smartd.conf + /etc/sysconfig/bluetooth + /etc/sysconfig/clock + /etc/sysconfig/cpudynd + /etc/sysconfig/cpufreqd + /etc/sysconfig/devlabel + /etc/sysconfig/dund + /etc/sysconfig/harddisks + /etc/sysconfig/hidd + /etc/sysconfig/irda + /etc/sysconfig/irqbalance + /etc/sysconfig/isdncard + /etc/sysconfig/kudzu + /etc/sysconfig/lm_sensors + /etc/sysconfig/netdump + /etc/sysconfig/noflushd + /etc/sysconfig/pand + /etc/sysconfig/pcmcia + /etc/sysconfig/sensors + /etc/sysconfig/smartmontools + /etc/sysconfig/ups + /etc/ups/upsmon.conf + /proc/cpuinfo + /proc/devices + /proc/dma + /proc/driver/nvram + /proc/ide/drivers + /proc/ide/ide?/hd?/{cache,capacity,media,model,settings} + /proc/ide/piix + /proc/ide/via + /proc/iomem + /proc/ioports + /proc/misc + /proc/modules + /proc/mtrr + /proc/partitions + /proc/ppc64/lparcfg + /proc/ppc64/rtas/poweron + /proc/ppc64/rtas/sensors + /proc/scsi/IBMchanger + /proc/scsi/IBMtape + /proc/scsi/scsi + /proc/swaps + /proc/tty/driver/serial + /proc/tty/drivers [mpp] -cmds = mppUtil -V +cmds = mppUtil -V files = - /etc/mpp.conf - /var/mpp/devicemapping + /etc/mpp.conf + /var/mpp/devicemapping [qlogic] -cmds = /root/qla-autoconf -v +cmds = /root/qla-autoconf -v files = - /etc/qla2300.conf - /proc/scsi/qla2300/? | grep -v -i -E '(number| reqs| free count) ' + /etc/qla2300.conf + /proc/scsi/qla2300/? | grep -v -i -E '(number| reqs| free count) ' [thinkpad] files = - /etc/sysconfig/tp-scroll - /etc/tpbrc + /etc/sysconfig/tp-scroll + /etc/tpbrc ### Software tools [afick] files = /etc/afick.conf [aide] -files = /etc/aide.conf +files = /etc/aide.conf [amanda] files = - /etc/amandates - /var/lib/amanda/.amandahosts + /etc/amandates + /var/lib/amanda/.amandahosts [amavisd-new] files = - /etc/amavisd.conf - /etc/amavis/amavisd.conf - /etc/cron.daily/amavisd - /etc/logrotate.d/amavisd - /etc/sysconfig/amavisd + /etc/amavisd.conf + /etc/amavis/amavisd.conf + /etc/cron.daily/amavisd + /etc/logrotate.d/amavisd + /etc/sysconfig/amavisd [anacron] files = - /etc/anacrontab - /etc/cron.daily/0anacron - /etc/cron.monthly/0anacron - /etc/cron.weekly/0anacron + /etc/anacrontab + /etc/cron.daily/0anacron + /etc/cron.monthly/0anacron + /etc/cron.weekly/0anacron [apache] files = - /etc/httpd/conf/httpd.conf - /etc/httpd/conf.d/* - /etc/logrotate.d/httpd - /etc/sysconfig/httpd + /etc/httpd/conf/httpd.conf + /etc/httpd/conf.d/* + /etc/logrotate.d/httpd + /etc/sysconfig/httpd [apt] files = - /etc/apt/apt.conf - /etc/apt/apt.conf.d/*.conf - /etc/apt/preferences - /etc/apt/rpmpriorities - /etc/apt/sources.list - /etc/apt/sources.list.d/*.list - /etc/apt/vendors.list + /etc/apt/apt.conf + /etc/apt/apt.conf.d/*.conf + /etc/apt/preferences + /etc/apt/rpmpriorities + /etc/apt/sources.list + /etc/apt/sources.list.d/*.list + /etc/apt/vendors.list [arpwatch] files = - /etc/sysconfig/arpwatch - /var/arpwatch/arp.dat + /etc/sysconfig/arpwatch + /var/arpwatch/arp.dat [at] files = /etc/at.deny @@ -413,100 +414,100 @@ files = /etc/ident.key [autofs] files = - /etc/auto.master - /etc/auto.misc - /etc/auto.net - /etc/sysconfig/autofs + /etc/auto.master + /etc/auto.misc + /etc/auto.net + /etc/sysconfig/autofs [automount] files = - /etc/amd.conf - /etc/amd.net - /etc/sysconfig/amd + /etc/amd.conf + /etc/amd.net + /etc/sysconfig/amd [autoupdate] files = - /etc/autoupdate.d/autoupdate.conf - /etc/autoupdate.d/*.{get,dld} + /etc/autoupdate.d/autoupdate.conf + /etc/autoupdate.d/*.{get,dld} [awstats] files = - /etc/awstats/*.conf - /etc/httpd/conf.d/awstats.conf + /etc/awstats/*.conf + /etc/httpd/conf.d/awstats.conf [axfrdns] files = - /etc/axfrdns/env/* - /etc/axfrdns/run - /etc/axfrdns/tcp + /etc/axfrdns/env/* + /etc/axfrdns/run + /etc/axfrdns/tcp [bind] files = - /etc/named.conf - /etc/rndc.conf - /etc/rndc.key - /etc/logrotate.d/named - /etc/sysconfig/named - /var/named/*.zone - /var/named/chroot/etc/named.conf - /var/named/chroot/var/named/*.zone + /etc/named.conf + /etc/rndc.conf + /etc/rndc.key + /etc/logrotate.d/named + /etc/sysconfig/named + /var/named/*.zone + /var/named/chroot/etc/named.conf + /var/named/chroot/var/named/*.zone [cdrecord] files = /etc/cdrecord.conf [clamav] files = - /etc/clamd.conf - /etc/cron.daily/freshclam - /etc/freshclam.conf - /etc/logrotate.d/clamav - /etc/logrotate.d/freshclam - /etc/sysconfig/clamav-milter + /etc/clamd.conf + /etc/cron.daily/freshclam + /etc/freshclam.conf + /etc/logrotate.d/clamav + /etc/logrotate.d/freshclam + /etc/sysconfig/clamav-milter [cpu] files = /etc/cpu.conf [cron] -cmds = crontab -l -# ls -l /etc/cron.*/ +cmds = crontab -l +# ls -l /etc/cron.*/ files = - /etc/crontab - /etc/sysconfig/crond + /etc/crontab + /etc/sysconfig/crond [dante] files = - /etc/logrotate.d/sockd - /etc/sockd.conf - /etc/socks.conf + /etc/logrotate.d/sockd + /etc/sockd.conf + /etc/socks.conf [dar] files = /etc/dar/dar.conf [dconf] files = - /etc/dconf.conf - /etc/dconf.d/*.conf + /etc/dconf.conf + /etc/dconf.d/*.conf [dillo] files = - /etc/dillorc - /etc/dpidrc + /etc/dillorc + /etc/dpidrc [distcache] files = - /etc/sysconfig/distcache + /etc/sysconfig/distcache [distcc] files = - /etc/logrotate.d/distccd - /etc/sysconfig/distccd - /etc/xinetd.d/distccd + /etc/logrotate.d/distccd + /etc/sysconfig/distccd + /etc/xinetd.d/distccd [dnscache] files = - /etc/dnscache/run - /etc/dnscache/env/* - /etc/dnscache/root/* + /etc/dnscache/run + /etc/dnscache/env/* + /etc/dnscache/root/* [dnsmasq] files = /etc/dnsmasq.conf @@ -516,23 +517,23 @@ files = /etc/dosbox.conf [dovecot] files = - /etc/dovecot.conf - /etc/dovecot/passwd - /etc/dovecot/users + /etc/dovecot.conf + /etc/dovecot/passwd + /etc/dovecot/users [drbd] files = /etc/drbd.conf [dwall firewall] files = - /etc/dwall/alias.conf - /etc/dwall/chains/* - /etc/dwall/dwall.conf - /etc/dwall/firewall - /etc/dwall/scripts/*.sh - /etc/dwall/services/* - /etc/dwall/zone.conf - /etc/logrotate.d/dwall + /etc/dwall/alias.conf + /etc/dwall/chains/* + /etc/dwall/dwall.conf + /etc/dwall/firewall + /etc/dwall/scripts/*.sh + /etc/dwall/services/* + /etc/dwall/zone.conf + /etc/logrotate.d/dwall [esound] files = /etc/esd.conf @@ -545,72 +546,72 @@ files = /etc/evms.conf [exim] files = - /etc/exim/exim.conf - /etc/logrotate.d/exim - /etc/sysconfig/exim + /etc/exim/exim.conf + /etc/logrotate.d/exim + /etc/sysconfig/exim [fish] files = - /etc/fish - /etc/fish.d/*.fish - /etc/fish_inputrc + /etc/fish + /etc/fish.d/*.fish + /etc/fish_inputrc [fragroute] files = - /etc/fragroute.conf + /etc/fragroute.conf [gammu] files = - /etc/gammurc + /etc/gammurc [gnokii] -files = /etc/gnokiirc +files = /etc/gnokiirc [hammerhead] dirs = /etc/hammerhead/ [heartbeat] files = - /etc/ha.d/ha.cf - /etc/ha.d/haresources - /etc/ha.d/authkeys - /etc/ha.d/route.d/* + /etc/ha.d/ha.cf + /etc/ha.d/haresources + /etc/ha.d/authkeys + /etc/ha.d/route.d/* [ldirectord] files = - /etc/ha.d/ldirectord.cf - /etc/ha.d/conf/* + /etc/ha.d/ldirectord.cf + /etc/ha.d/conf/* [hercules] dirs = /etc/hercules/ [hylafax] files = - /etc/hfaxd.conf - /etc/hosts.hfaxd - /etc/hyla.conf - /etc/faxmail.conf - /var/spool/fax/etc/dialrules - /var/spool/fax/etc/setup.cache - /var/spool/fax/etc/config.* + /etc/hfaxd.conf + /etc/hosts.hfaxd + /etc/hyla.conf + /etc/faxmail.conf + /var/spool/fax/etc/dialrules + /var/spool/fax/etc/setup.cache + /var/spool/fax/etc/config.* [john] files = /etc/john.ini [keepalived] -files = /etc/keepalived/keepalived.conf +files = /etc/keepalived/keepalived.conf [kismet] files = - /etc/kismet.conf - /etc/kismet_drone.conf - /etc/kismet_ui.conf + /etc/kismet.conf + /etc/kismet_drone.conf + /etc/kismet_ui.conf [l2tpd] files = - /etc/l2tpd/l2tp-secrets - /etc/l2tpd/l2tpd.conf - /etc/ppp/options.l2tpd + /etc/l2tpd/l2tp-secrets + /etc/l2tpd/l2tpd.conf + /etc/ppp/options.l2tpd [laus] dirs = /etc/audit/ @@ -623,448 +624,454 @@ files = /etc/logrotate.conf [ltsp] files = - /etc/ltsp.conf - /opt/ltsp/*/etc/lts.conf + /etc/ltsp.conf + /opt/ltsp/*/etc/lts.conf [ltrace] files = /etc/ltrace.conf [mirror] -files = /etc/mirror.conf +files = /etc/mirror.conf [mon] files = - /etc/mon/auto.cf - /etc/mon/mon.cf - /etc/mon/userfile + /etc/mon/auto.cf + /etc/mon/mon.cf + /etc/mon/userfile [monit] -files = /etc/monit.conf +files = /etc/monit.conf [mplayerplug-in] files = - /etc/mplayerplug-in.conf - /etc/mplayerplug-in.types + /etc/mplayerplug-in.conf + /etc/mplayerplug-in.types [mrepo] files = - /etc/cron.daily/mrepo - /etc/httpd/conf.d/mrepo.conf - /etc/sysconfig/mrepo - /etc/mrepo.conf - /etc/mrepo.conf.d/*.conf - /var/mrepo/*/systemid + /etc/cron.daily/mrepo + /etc/httpd/conf.d/mrepo.conf + /etc/sysconfig/mrepo + /etc/mrepo.conf + /etc/mrepo.conf.d/*.conf + /var/mrepo/*/systemid [mrtg] files = - /etc/cron.d/mrtg + /etc/cron.d/mrtg [mysql] files = /etc/my.cnf [nagios] files = - /etc/httpd/conf.d/nagios - /etc/nagios/*.cfg + /etc/httpd/conf.d/nagios + /etc/nagios/*.cfg [nfs] cmds = - exportfs - showmount -d - showmount -e - wire-test + exportfs + showmount -d + showmount -e + wire-test files = - /etc/exports - /etc/gssapi_mech.conf - /etc/idmapd.conf - /etc/sysconfig/nfs + /etc/exports + /etc/gssapi_mech.conf + /etc/idmapd.conf + /etc/sysconfig/nfs [nscd] -files = /etc/nscd.conf +files = /etc/nscd.conf [ntp] files = - /etc/ntp.conf - /etc/ntp/keys - /etc/ntp/ntpservers - /etc/ntp/step-tickers - /etc/sysconfig/ntpd + /etc/ntp.conf + /etc/ntp/keys + /etc/ntp/ntpservers + /etc/ntp/step-tickers + /etc/sysconfig/ntpd [op] files = - /etc/op.conf - /etc/op.d/*.conf + /etc/op.conf + /etc/op.d/*.conf [openldap] files = - /etc/ldap.conf - /etc/ldap.secrets - /etc/openldap/ldap.conf - /etc/openldap/ldapfilter.conf - /etc/openldap/ldapsearchprefs.conf - /etc/openldap/ldaptemplates.conf - /etc/openldap/slapd.conf - /etc/openldap/ud.conf - /etc/sysconfig/ldap + /etc/ldap.conf + /etc/ldap.secrets + /etc/openldap/ldap.conf + /etc/openldap/ldapfilter.conf + /etc/openldap/ldapsearchprefs.conf + /etc/openldap/ldaptemplates.conf + /etc/openldap/slapd.conf + /etc/openldap/ud.conf + /etc/sysconfig/ldap [openntpd] files = /etc/ntpd.conf [openssh] files = - /etc/ssh/shosts.equiv - /etc/ssh/ssh_config - /etc/ssh/sshd_config - /etc/sysconfig/sshd - /root/.ssh/authorized_keys - /root/.ssh/sshd_config - /root/.ssh/sshd_config + /etc/ssh/shosts.equiv + /etc/ssh/ssh_config + /etc/ssh/sshd_config + /etc/sysconfig/sshd + /root/.ssh/authorized_keys + /root/.ssh/sshd_config + /root/.ssh/sshd_config [p0f] -files = /etc/sysconfig/p0f +files = /etc/sysconfig/p0f [partimaged] files = - /etc/partimaged/partimagedusers - /etc/sysconfig/partimaged + /etc/partimaged/partimagedusers + /etc/sysconfig/partimaged [pearpc] -files = /etc/ppc.conf +files = /etc/ppc.conf [pen] -files = /etc/httpd/conf.d/pen.conf +files = /etc/httpd/conf.d/pen.conf [php] files = - /etc/httpd/conf.d/php.conf - /etc/pear.conf - /etc/php.ini - /etc/php.d/*.ini + /etc/httpd/conf.d/php.conf + /etc/pear.conf + /etc/php.ini + /etc/php.d/*.ini [pine] files = - /etc/pine.conf - /etc/pine.conf.fixed + /etc/pine.conf + /etc/pine.conf.fixed [portmap] files = /etc/sysconfig/portmap [postfix] files = - /etc/pam.d/smtp.postfix - /etc/postfix/access - /etc/postfix/aliases - /etc/postfix/canonical - /etc/postfix/generic - /etc/postfix/header_checks - /etc/postfix/main.cf - /etc/postfix/makedefs.out - /etc/postfix/master.cf - /etc/postfix/mx_access - /etc/postfix/pcre_table - /etc/postfix/regexp_table - /etc/postfix/relocated - /etc/postfix/sasl_passwd - /etc/postfix/tls_per_site - /etc/postfix/transport - /etc/postfix/virtual - /etc/postfix/vmail/*.txt - /usr/lib/sasl/smtpd.conf - /usr/lib/sasl2/smtpd.conf - /usr/lib64/sasl/smtpd.conf - /usr/lib64/sasl2/smtpd.conf + /etc/pam.d/smtp.postfix + /etc/postfix/access + /etc/postfix/aliases + /etc/postfix/canonical + /etc/postfix/generic + /etc/postfix/header_checks + /etc/postfix/main.cf + /etc/postfix/makedefs.out + /etc/postfix/master.cf + /etc/postfix/mx_access + /etc/postfix/pcre_table + /etc/postfix/regexp_table + /etc/postfix/relocated + /etc/postfix/sasl_passwd + /etc/postfix/tls_per_site + /etc/postfix/transport + /etc/postfix/virtual + /etc/postfix/vmail/*.txt + /usr/lib/sasl/smtpd.conf + /usr/lib/sasl2/smtpd.conf + /usr/lib64/sasl/smtpd.conf + /usr/lib64/sasl2/smtpd.conf [postgresql] files = - /var/lib/pgsql/data/pg_hba.conf - /var/lib/pgsql/data/pg_ident.conf - /var/lib/pgsql/data/postgresql.conf - /var/lib/pgsql/data/postmaster.opts - /var/lib/pgsql/data/server.key - /var/lib/pgsql/data/server.crt - /var/lib/pgsql/data/root.crt + /var/lib/pgsql/data/pg_hba.conf + /var/lib/pgsql/data/pg_ident.conf + /var/lib/pgsql/data/postgresql.conf + /var/lib/pgsql/data/postmaster.opts + /var/lib/pgsql/data/server.key + /var/lib/pgsql/data/server.crt + /var/lib/pgsql/data/root.crt [ppp] files = - /etc/ppp/chap-secrets - /etc/ppp/options - /etc/ppp/pap-secrets + /etc/ppp/chap-secrets + /etc/ppp/options + /etc/ppp/pap-secrets [prelink] files = - /etc/prelink.conf - /etc/sysconfig/prelink + /etc/prelink.conf + /etc/sysconfig/prelink [proftpd] files = - /etc/ftpusers - /etc/logrotate.d/proftpd - /etc/proftpd.conf - /etc/proftpd.ftpusers - /etc/proftpd/proftpd.conf - /var/ftp/welcome.msg + /etc/ftpusers + /etc/logrotate.d/proftpd + /etc/proftpd.conf + /etc/proftpd.ftpusers + /etc/proftpd/proftpd.conf + /var/ftp/welcome.msg [qmail] -cmds = /var/qmail/bin/qmail-showctl +cmds = /var/qmail/bin/qmail-showctl dirs = - /var/qmail/alias/ - /var/qmail/popboxes/ - /var/qmail/users/ + /var/qmail/alias/ + /var/qmail/popboxes/ + /var/qmail/users/ [rpc] cmds = - rpcinfo -p -files = /etc/rpc + rpcinfo -p +files = /etc/rpc [rsct] cmds = - lsclcfg - lscomg - for i in \\$(seq 1 9); do lscomg -i CG\\$i; done - lscondition - lsnodeid - lsrsrc - lssrc -ls cthags - lsrpdomain - lsrpnode - lssrc -a -files = - /var/ct/cfg/clusters - /var/ct/cfg/ct_node_id - /var/ct/cfg/ctsec.nodeinfo - /var/ct/cfg/ctrmc.acls - /var/ct/cfg/current_cluster - + lsclcfg + lscomg + for i in \\$(seq 1 9); do lscomg -i CG\\$i; done + lscondition + lsnodeid + lsrsrc + lssrc -ls cthags + lsrpdomain + lsrpnode + lssrc -a +files = + /var/ct/cfg/clusters + /var/ct/cfg/ct_node_id + /var/ct/cfg/ctsec.nodeinfo + /var/ct/cfg/ctrmc.acls + /var/ct/cfg/current_cluster + [rsync] files = - /etc/rsyncd.conf - /etc/xinetd.d/rsync + /etc/rsyncd.conf + /etc/xinetd.d/rsync [samba] files = - /etc/lmhosts - /etc/MACHINE.SID - /etc/smb.conf - /etc/smbusers - /etc/samba/lmhosts - /etc/samba/smb.conf - /etc/samba/smbpasswd - /etc/samba/smbusers - /etc/sysconfig/samba + /etc/lmhosts + /etc/MACHINE.SID + /etc/smb.conf + /etc/smbusers + /etc/samba/lmhosts + /etc/samba/smb.conf + /etc/samba/smbpasswd + /etc/samba/smbusers + /etc/sysconfig/samba [sendmail] files = - /etc/aliases - /etc/mail/access - /etc/mail/domaintable - /etc/mail/local-host-names - /etc/mail/mailertable - /etc/mail/sendmail.mc - /etc/mail/submit.mc - /etc/mail/trusted-users - /etc/mail/virtusertable - /etc/sysconfig/sendmail + /etc/aliases + /etc/mail/access + /etc/mail/domaintable + /etc/mail/local-host-names + /etc/mail/mailertable + /etc/mail/sendmail.mc + /etc/mail/submit.mc + /etc/mail/trusted-users + /etc/mail/virtusertable + /etc/sysconfig/sendmail [shorewall] files = /etc/shorewall/* [slocate] files = - /etc/cron.daily/slocate.cron - /etc/updatedb.conf + /etc/cron.daily/slocate.cron + /etc/updatedb.conf [smbldap] files = - /etc/smbldap-tools/smbldap.conf - /etc/smbldap-tools/smbldap_bind.conf + /etc/smbldap-tools/smbldap.conf + /etc/smbldap-tools/smbldap_bind.conf [smunge] -files = /etc/sysconfig/smunged +files = /etc/sysconfig/smunged [snort] files = - /etc/snort/*.config - /etc/sysconfig/snort + /etc/snort/*.config + /etc/sysconfig/snort [spamassassin] files = - /etc/sysconfig/spamassassin - /etc/mail/spamassassin/*.cf + /etc/sysconfig/spamassassin + /etc/mail/spamassassin/*.cf [speechd] files = - /etc/speechd.sub - /etc/speechdrc + /etc/speechd.sub + /etc/speechdrc [squid] files = - /etc/squid/mime.conf - /etc/squid/msntauth.conf - /etc/squid/squid.conf - /etc/sysconfig/squid + /etc/squid/mime.conf + /etc/squid/msntauth.conf + /etc/squid/squid.conf + /etc/sysconfig/squid [squidguard] -dirs = /etc/squid/local/ +dirs = /etc/squid/local/ files = - /etc/squid/squidguard.conf - /etc/squid/squidguard-blacklists.conf + /etc/squid/squidguard.conf + /etc/squid/squidguard-blacklists.conf [squirrelmail] files = - /etc/httpd/conf.d/squirrelmail.conf - /etc/squirrelmail/config.php - /etc/squirrelmail/config_local.php + /etc/httpd/conf.d/squirrelmail.conf + /etc/squirrelmail/config.php + /etc/squirrelmail/config_local.php + +[stunnel] +files = + /etc/stunnel/*.conf [syslog] files = - /etc/logrotate.d/syslog - /etc/sysconfig/syslog - /etc/syslog.conf + /etc/sysconfig/syslog + /etc/syslog.conf + /etc/syslog.conf [syslog-ng] files = /etc/syslog-ng/syslog-ng.conf [sysstat] files = - /etc/cron.d/sysstat - /etc/sysconfig/sysstat + /etc/cron.d/sysstat + /etc/sysconfig/sysstat [tinydns] files = - /etc/tinydns/run - /etc/tinydns/env/* - /etc/tinydns/root/data + /etc/tinydns/run + /etc/tinydns/env/* + /etc/tinydns/root/data [tpb] -files = /etc/tpbrc +files = /etc/tpbrc [tsocks] -files = /etc/tsocks.conf +files = /etc/tsocks.conf [ucarp] files = /etc/sysconfig/carp/* [vsftpd] files = - /etc/vsftpd.ftpusers - /etc/vsftpd.user_list - /etc/vsftpd/vsftpd.conf - /etc/logrotate.d/vsftpd.log + /etc/vsftpd.ftpusers + /etc/vsftpd.user_list + /etc/vsftpd/vsftpd.conf + /etc/logrotate.d/vsftpd.log [vtund] -files = /etc/vtund.conf +files = /etc/vtund.conf [webalizer] files = - /etc/cron.daily/00webalizer - /etc/webalizer.conf + /etc/cron.daily/00webalizer + /etc/webalizer.conf [webmin] files = - /etc/sysconfig/daemons/webmin - /etc/webmin/config + /etc/sysconfig/daemons/webmin + /etc/webmin/config [wuftpd] files = - /etc/ftpaccess - /etc/ftpconversions - /etc/ftpgroups - /etc/ftphosts - /etc/ftpservers - /etc/ftpusers + /etc/ftpaccess + /etc/ftpconversions + /etc/ftpgroups + /etc/ftphosts + /etc/ftpservers + /etc/ftpusers [xinetd] files = - /etc/sysconfig/xinetd - /etc/xinetd.conf - /etc/xinetd.d/chargen* - /etc/xinetd.d/daytime* - /etc/xinetd.d/echo* - /etc/xinetd.d/services - /etc/xinetd.d/time* + /etc/sysconfig/xinetd + /etc/xinetd.conf + /etc/xinetd.d/chargen* + /etc/xinetd.d/daytime* + /etc/xinetd.d/echo* + /etc/xinetd.d/services + /etc/xinetd.d/time* [xl2tpd] files = - /etc/xl2tpd/l2tp-secrets - /etc/xl2tpd/xl2tpd.conf - /etc/ppp/options.xl2tpd + /etc/xl2tpd/l2tp-secrets + /etc/xl2tpd/xl2tpd.conf + /etc/ppp/options.xl2tpd [yp] -cmds = ypwhich -dirs = /var/yp/ +cmds = ypwhich +dirs = /var/yp/ files = - /etc/yp.conf - /var/yp/nicknames + /etc/yp.conf + /var/yp/nicknames [yum] files = - /etc/yum.conf - /etc/yum.repos.d/*.repo - /etc/yum/repos.d/*.repo - /etc/yum/pluginconf.d/* + /etc/yum.conf + /etc/yum.repos.d/*.repo + /etc/yum/repos.d/*.repo + /etc/yum/pluginconf.d/* ### Proprietary software [gpfs] -cmds = - /usr/lpp/mmfs/bin/mmgetstate -aL -# /usr/lpp/mmfs/bin/mmfsadm dump config - /usr/lpp/mmfs/bin/mmlscluster - /usr/lpp/mmfs/bin/mmlsconfig - /usr/lpp/mmfs/bin/mmlsmgr 2>/dev/null - /usr/lpp/mmfs/bin/mmlsnode -a - /usr/lpp/mmfs/bin/mmlsnsd -files = - /etc/cluster.nodes - /etc/profile.d/mmfs.sh - /proc/fs/gpfs/version - /var/mmfs/etc/cluster.preferences - /var/mmfs/etc/mmfs.cfg - /var/mmfs/etc/*.scr - /var/mmfs/etc/nsddevices - /var/mmfs/gen/mmfsNodeData - /var/mmfs/gen/mmsdrfs +cmds = + /usr/lpp/mmfs/bin/mmgetstate -aL +# /usr/lpp/mmfs/bin/mmfsadm dump config + /usr/lpp/mmfs/bin/mmlscluster + /usr/lpp/mmfs/bin/mmlsconfig + /usr/lpp/mmfs/bin/mmlsmgr 2>/dev/null + /usr/lpp/mmfs/bin/mmlsnode -a + /usr/lpp/mmfs/bin/mmlsnsd +files = + /etc/cluster.nodes + /etc/profile.d/mmfs.sh + /proc/fs/gpfs/version + /var/mmfs/etc/cluster.preferences + /var/mmfs/etc/mmfs.cfg + /var/mmfs/etc/*.scr + /var/mmfs/etc/nsddevices + /var/mmfs/gen/mmfsNodeData + /var/mmfs/gen/mmsdrfs [netiq] files = - /etc/rc.d/init.d/nqmdaemon - /usr/netiq/UnixAgent/etc/mo_version.map - /usr/netiq/UnixAgent/etc/nqmumomapping.xml - /usr/netiq/UnixAgent/etc/uaconf.xml - /usr/netiq/UnixAgent/data/Config_1/NqmComms.xml - /usr/netiq/UnixAgent/log/SilentInstall.ini + /etc/rc.d/init.d/nqmdaemon + /usr/netiq/UnixAgent/etc/mo_version.map + /usr/netiq/UnixAgent/etc/nqmumomapping.xml + /usr/netiq/UnixAgent/etc/uaconf.xml + /usr/netiq/UnixAgent/data/Config_1/NqmComms.xml + /usr/netiq/UnixAgent/log/SilentInstall.ini [powerbroker] files = - /etc/xinetd.d/pbguid - /etc/xinetd.d/pblocald - /etc/xinetd.d/pblogd - /etc/xinetd.d/pbmasterd - /etc/xinetd.d/pbsguid - /etc/pb.key - /etc/pb.settings + /etc/xinetd.d/pbguid + /etc/xinetd.d/pblocald + /etc/xinetd.d/pblogd + /etc/xinetd.d/pbmasterd + /etc/xinetd.d/pbsguid + /etc/pb.key + /etc/pb.settings [tsm] files = - /etc/logrotate.d/tsm - /etc/profile.d/tsm.sh - /etc/rc.d/init.d/tsm - /etc/sysconfig/tsm - /opt/tivoli/tsm/client/ba/bin/dsm.opt - /opt/tivoli/tsm/client/ba/bin/dsm.sys - /opt/tivoli/tsm/client/ba/bin/inclexcl + /etc/logrotate.d/tsm + /etc/profile.d/tsm.sh + /etc/rc.d/init.d/tsm + /etc/sysconfig/tsm + /opt/tivoli/tsm/client/ba/bin/dsm.opt + /opt/tivoli/tsm/client/ba/bin/dsm.sys + /opt/tivoli/tsm/client/ba/bin/inclexcl [vas-client] files = - /etc/opt/quest/vas/.licenses/license.txt - /etc/opt/quest/vas/access.d/* - /etc/opt/quest/vas/group-override - /etc/opt/quest/vas/user-override - /etc/opt/quest/vas/users.allow - /etc/opt/quest/vas/users.allow - /etc/opt/quest/vas/users.deny - /etc/opt/quest/vas/vas.conf - /etc/opt/vas/.licenses/license.txt - /etc/opt/vas/access.d/* - /etc/opt/vas/users.allow - /etc/opt/vas/users.deny - /etc/opt/vas/vas.conf + /etc/opt/quest/vas/.licenses/license.txt + /etc/opt/quest/vas/access.d/* + /etc/opt/quest/vas/group-override + /etc/opt/quest/vas/user-override + /etc/opt/quest/vas/users.allow + /etc/opt/quest/vas/users.allow + /etc/opt/quest/vas/users.deny + /etc/opt/quest/vas/vas.conf + /etc/opt/vas/.licenses/license.txt + /etc/opt/vas/access.d/* + /etc/opt/vas/users.allow + /etc/opt/vas/users.deny + /etc/opt/vas/vas.conf + +# vim: set ts=4,et diff --git a/dconf b/dconf index 06a6354..6e2cadb 100755 --- a/dconf +++ b/dconf @@ -12,56 +12,56 @@ disable = ('no', 'off', 'false', '0') excludelist = 'CVS CVS.adm RCS RCSLOG SCCS TAGS cvslog.* tags .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.lo *.la *.obj *.so *.exe *.Z *.elc *.ln core core.[0-9]* .svn *.rpmorig *.rpmnew *.rpmsave .DS_Store' class Options: - def __init__(self, args): - self.configfile = '/etc/dconf.conf' - self.dist = None - self.output = None - self.quiet = False - self.verbose = 1 - - try: - opts, args = getopt.getopt (args, 'c:ho:qv', - ['config=', 'help', 'output=', 'quiet', 'verbose', 'version']) - except getopt.error, exc: - print 'dconf: %s, try dconf -h for a list of all the options' % str(exc) - sys.exit(1) - - for opt, arg in opts: - if opt in ['-c', '--config']: - self.configfile = os.path.abspath(arg) - elif opt in ['-h', '--help']: - self.usage() - self.help() - sys.exit(0) - elif opt in ('-o', '--output'): - self.output=arg - elif opt in ['-q', '--quiet']: - self.quiet = True - elif opt in ['-v', '--verbose']: - self.verbose = self.verbose + 1 - elif opt in ['--version']: - self.version() - sys.exit(0) - - if self.quiet: - self.verbose = 0 - - if self.verbose >= 3: - print 'Verbosity set to level %d' % (self.verbose - 1) - print 'Using configfile %s' % self.configfile - - def version(self): - print 'dconf %s' % VERSION - print 'Written by Dag Wieers ' - print - print 'platform %s/%s' % (os.name, sys.platform) - print 'python %s' % sys.version - - def usage(self): - print 'usage: dconf [-q] [-v] [-c config] [-o output]' - - def help(self): - print '''Create a system's hardware and software configuration snapshot + def __init__(self, args): + self.configfile = '/etc/dconf.conf' + self.dist = None + self.output = None + self.quiet = False + self.verbose = 1 + + try: + opts, args = getopt.getopt (args, 'c:ho:qv', + ['config=', 'help', 'output=', 'quiet', 'verbose', 'version']) + except getopt.error, exc: + print 'dconf: %s, try dconf -h for a list of all the options' % str(exc) + sys.exit(1) + + for opt, arg in opts: + if opt in ['-c', '--config']: + self.configfile = os.path.abspath(arg) + elif opt in ['-h', '--help']: + self.usage() + self.help() + sys.exit(0) + elif opt in ('-o', '--output'): + self.output=arg + elif opt in ['-q', '--quiet']: + self.quiet = True + elif opt in ['-v', '--verbose']: + self.verbose = self.verbose + 1 + elif opt in ['--version']: + self.version() + sys.exit(0) + + if self.quiet: + self.verbose = 0 + + if self.verbose >= 3: + print 'Verbosity set to level %d' % (self.verbose - 1) + print 'Using configfile %s' % self.configfile + + def version(self): + print 'dconf %s' % VERSION + print 'Written by Dag Wieers ' + print + print 'platform %s/%s' % (os.name, sys.platform) + print 'python %s' % sys.version + + def usage(self): + print 'usage: dconf [-q] [-v] [-c config] [-o output]' + + def help(self): + print '''Create a system's hardware and software configuration snapshot Dconf options: -c, --config=file specify alternative configfile @@ -72,407 +72,407 @@ Dconf options: ''' class Config: - def __init__(self): - self.sections = {} - - self.read(op.configfile) - - self.confdir = self.getoption('main', 'confdir', '/etc/dconf.d') - self.logdir = self.getoption('main', 'logdir', '/var/log/dconf') - - if not op.output: - op.output = self.getoption('main', 'output', None) - - self.quiet = not self.getoption('main', 'quiet', 'no') in disable - if op.verbose == 1 and self.quiet: - op.verbose = 0 - - def read(self, configfile): - self.cfg = ConfigParser.ConfigParser() - - info(2, 'Reading config file %s' % (configfile)) - - (s,b,p,q,f,o) = urlparse.urlparse(configfile) - if s in ('http', 'ftp', 'file'): - configfh = urllib.urlopen(configfile) - try: - self.cfg.readfp(configfh) - except ConfigParser.MissingSectionHeaderError, e: - die(6, 'Error accessing URL: %s' % configfile) - else: - if os.access(configfile, os.R_OK): - try: - self.cfg.read(configfile) - except: - die(7, 'Syntax error reading file: %s' % configfile) - else: - die(6, 'Error accessing file: %s' % configfile) - - self.compression = self.getoption('main', 'compression', 'gzip') - self.cron = self.getoption('main', 'cron', None) - self.mailfrom = self.getoption('main', 'mailfrom', 'mrepo@%s' % os.uname()[1]) - self.mailto = self.getoption('main', 'mailto', None) - self.smtpserver = self.getoption('main', 'smtp-server', 'localhost') - self.rpm = not self.getoption('main', 'rpm', 'no') in disable - self.exclude = self.getoption('main', 'exclude', excludelist).split() - - sections = self.cfg.sections() - sections.sort() - for section in sections: - if section in ('main', ): - continue - else: - self.sections[section] = {} - for option in self.cfg.options(section): - if option in ('cmds', 'dirs', 'files'): - self.sections[section][option] = self.getoption(section, option, '').split('\n') - - def getoption(self, section, option, var): - "Get an option from a section from configfile" - try: - var = self.cfg.get(section, option) -# info(3, 'Setting option %s in section [%s] to: %s' % (option, section, var)) - except ConfigParser.NoSectionError, e: -# info(4, 'Failed to find section [%s] in %s' % (section, op.configfile)) - pass - except ConfigParser.NoOptionError, e: -# info(4, 'Setting option %s in section [%s] to: %s (default)' % (option, section, var)) - pass - return var + def __init__(self): + self.sections = {} + + self.read(op.configfile) + + self.confdir = self.getoption('main', 'confdir', '/etc/dconf.d') + self.logdir = self.getoption('main', 'logdir', '/var/log/dconf') + + if not op.output: + op.output = self.getoption('main', 'output', None) + + self.quiet = not self.getoption('main', 'quiet', 'no') in disable + if op.verbose == 1 and self.quiet: + op.verbose = 0 + + def read(self, configfile): + self.cfg = ConfigParser.ConfigParser() + + info(2, 'Reading config file %s' % (configfile)) + + (s,b,p,q,f,o) = urlparse.urlparse(configfile) + if s in ('http', 'ftp', 'file'): + configfh = urllib.urlopen(configfile) + try: + self.cfg.readfp(configfh) + except ConfigParser.MissingSectionHeaderError, e: + die(6, 'Error accessing URL: %s' % configfile) + else: + if os.access(configfile, os.R_OK): + try: + self.cfg.read(configfile) + except: + die(7, 'Syntax error reading file: %s' % configfile) + else: + die(6, 'Error accessing file: %s' % configfile) + + self.compression = self.getoption('main', 'compression', 'gzip') + self.cron = self.getoption('main', 'cron', None) + self.mailfrom = self.getoption('main', 'mailfrom', 'mrepo@%s' % os.uname()[1]) + self.mailto = self.getoption('main', 'mailto', None) + self.smtpserver = self.getoption('main', 'smtp-server', 'localhost') + self.rpm = not self.getoption('main', 'rpm', 'no') in disable + self.exclude = self.getoption('main', 'exclude', excludelist).split() + + sections = self.cfg.sections() + sections.sort() + for section in sections: + if section in ('main', ): + continue + else: + self.sections[section] = {} + for option in self.cfg.options(section): + if option in ('cmds', 'dirs', 'files'): + self.sections[section][option] = self.getoption(section, option, '').split('\n') + + def getoption(self, section, option, var): + "Get an option from a section from configfile" + try: + var = self.cfg.get(section, option) +# info(3, 'Setting option %s in section [%s] to: %s' % (option, section, var)) + except ConfigParser.NoSectionError, e: +# info(4, 'Failed to find section [%s] in %s' % (section, op.configfile)) + pass + except ConfigParser.NoOptionError, e: +# info(4, 'Setting option %s in section [%s] to: %s (default)' % (option, section, var)) + pass + return var def dzopen(filename, arg='r'): - "Opens a file using compression based on file's extension" - if fnmatch.fnmatch(filename, '*.gz'): - return gzip.open(filename, arg) - elif fnmatch.fnmatch(filename, '*.bz2'): - return BZ2File.open(filename, arg) - else: - return open(filename, arg) + "Opens a file using compression based on file's extension" + if fnmatch.fnmatch(filename, '*.gz'): + return gzip.open(filename, arg) + elif fnmatch.fnmatch(filename, '*.bz2'): + return BZ2File.open(filename, arg) + else: + return open(filename, arg) def md5sum(filename): - "Return md5 from file" - md5o = md5.new(); f = dzopen(filename); md5o.update(f.read()); f.close() - return md5o + "Return md5 from file" + md5o = md5.new(); f = dzopen(filename); md5o.update(f.read()); f.close() + return md5o ### FIXME: Also check timestamps/owner/perms def md5check(h, filename): - "Check if md5sum is the same as in rpmdb" - if os.path.exists(filename): - for file in h.fiFromHeader(): - if file[0] == filename: - if md5sum(filename).hexdigest() == file[12]: - return True - return False + "Check if md5sum is the same as in rpmdb" + if os.path.exists(filename): + for file in h.fiFromHeader(): + if file[0] == filename: + if md5sum(filename).hexdigest() == file[12]: + return True + return False def sha1sum(filename): - "Return sha1 from file" - sha1o = sha.new(); f = dzopen(filename); sha1o.update(f.read()); f.close() - return sha1o + "Return sha1 from file" + sha1o = sha.new(); f = dzopen(filename); sha1o.update(f.read()); f.close() + return sha1o ### BOGUS function, rpmdb only has md5 ? def sha1check(h, filename): - "Check if sha1sum is the same as in rpmdb" - if os.path.exists(filename): - for file in h.fiFromHeader(): - if file[0] == filename: - if sha1sum(filename).hexdigest() == file[12]: - return True - return False + "Check if sha1sum is the same as in rpmdb" + if os.path.exists(filename): + for file in h.fiFromHeader(): + if file[0] == filename: + if sha1sum(filename).hexdigest() == file[12]: + return True + return False def fromrpmdb(filename): - "Check if file is inside rpmdb" - if not ts: return None - mi = ts.dbMatch('basenames', filename) - for h in mi: - return h - else: - info(5, 'File %s not in rpmdb, including' % filename) - return None + "Check if file is inside rpmdb" + if not ts: return None + mi = ts.dbMatch('basenames', filename) + for h in mi: + return h + else: + info(5, 'File %s not in rpmdb, including' % filename) + return None def info(level, str): - "Output info message" - if level <= op.verbose: - print str + "Output info message" + if level <= op.verbose: + print str def die(ret, str): - "Print error and exit with errorcode" - info(0, str) - sys.exit(ret) + "Print error and exit with errorcode" + info(0, str) + sys.exit(ret) def cleanup(): - "Clean up logfile when interrupted." - logfile = os.path.join(cf.logdir, 'dconf-' + hostname + '-' + timestamp + '.log' + extension) - if os.path.isfile(logfile): - remove(logfile) + "Clean up logfile when interrupted." + logfile = os.path.join(cf.logdir, 'dconf-' + hostname + '-' + timestamp + '.log' + extension) + if os.path.isfile(logfile): + remove(logfile) def symlink(src, dst): - "Create a symbolic link, force if dst exists" - if not os.path.islink(dst) and os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) + "Create a symbolic link, force if dst exists" + if not os.path.islink(dst) and os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) ### Not using filecmp increases speed with 15% -# if os.path.isfile(dst) and filecmp.cmp(src, dst) == 0: - if os.path.isfile(dst): - os.unlink(dst) - if os.path.islink(dst): - os.unlink(dst) - mkdir(os.path.dirname(dst)) - if not os.path.exists(dst): - os.symlink(src, dst) +# if os.path.isfile(dst) and filecmp.cmp(src, dst) == 0: + if os.path.isfile(dst): + os.unlink(dst) + if os.path.islink(dst): + os.unlink(dst) + mkdir(os.path.dirname(dst)) + if not os.path.exists(dst): + os.symlink(src, dst) def remove(*files): - "Remove files or directories" - for file in files: - if os.path.islink(file): - os.unlink(file) - elif os.path.isdir(file): - try: - os.rmdir(file) - except: - os.path.walk(file, removedir, ()) - elif os.path.exists(file): - os.unlink(file) + "Remove files or directories" + for file in files: + if os.path.islink(file): + os.unlink(file) + elif os.path.isdir(file): + try: + os.rmdir(file) + except: + os.path.walk(file, removedir, ()) + elif os.path.exists(file): + os.unlink(file) def removedir(void, dir, files): - for file in files: - remove(os.path.join(dir, file)) + for file in files: + remove(os.path.join(dir, file)) def mkdir(path): - "Create a directory, and parents if needed" - if not os.path.exists(path): - os.makedirs(path) + "Create a directory, and parents if needed" + if not os.path.exists(path): + os.makedirs(path) def getowner(uid, gid): - try: - owner = pwd.getpwuid(uid)[0] - except: - owner = uid - try: - group = grp.getgrgid(gid)[0] - except: - group = gid - return owner, group + try: + owner = pwd.getpwuid(uid)[0] + except: + owner = uid + try: + group = grp.getgrgid(gid)[0] + except: + group = gid + return owner, group def sectiontitle(section): - info(3, 'Processing section [%s]' % section) - stitle = '== ' + section.upper() + ' ==' - return stitle + '=' * (80 - len(stitle)) + '\n' + info(3, 'Processing section [%s]' % section) + stitle = '== ' + section.upper() + ' ==' + return stitle + '=' * (80 - len(stitle)) + '\n' def which(cmd): - "Find executables in PATH environment" - for path in os.environ.get('PATH','$PATH').split(':'): - if os.path.isfile(os.path.join(path, cmd)): - info(4, 'Found command %s in path %s' % (cmd, path)) - return os.path.join(path, cmd) - return None + "Find executables in PATH environment" + for path in os.environ.get('PATH','$PATH').split(':'): + if os.path.isfile(os.path.join(path, cmd)): + info(4, 'Found command %s in path %s' % (cmd, path)) + return os.path.join(path, cmd) + return None def diff(fromfile, tofile): - "Create a unified diff from 2 files" - msg = '' - fromfd = dzopen(fromfile) - tofd = dzopen(tofile) - for line in difflib.unified_diff(fromfd.readlines(), tofd.readlines(), fromfile, tofile, os.stat(fromfile).st_mtime, os.stat(tofile).st_mtime): - msg = msg + line - tofd.close() - fromfd.close() - return msg + "Create a unified diff from 2 files" + msg = '' + fromfd = dzopen(fromfile) + tofd = dzopen(tofile) + for line in difflib.unified_diff(fromfd.readlines(), tofd.readlines(), fromfile, tofile, os.stat(fromfile).st_mtime, os.stat(tofile).st_mtime): + msg = msg + line + tofd.close() + fromfd.close() + return msg def fnmatches(file): - for entry in cf.exclude: - if fnmatch.fnmatch(file, entry): -# info(6, 'File %s matches against glob %s' % (file, entry)) - return True - return False + for entry in cf.exclude: + if fnmatch.fnmatch(file, entry): +# info(6, 'File %s matches against glob %s' % (file, entry)) + return True + return False def mail(subject, msg): - info(2, 'Sending mail to: %s' % cf.mailto) - try: - import smtplib - smtp = smtplib.SMTP(cf.smtpserver) -# server.set_debuglevel(1) - msg = 'Subject: [dconf] %s\n\nCurrent time:\n%s\nSystem information:\n%s\nUptime:\n%s\nCurrently logged on users:\n%s\n%s\n\n%s' % (subject, os.popen('date').read(), os.popen('uname -a').read(), os.popen('uptime').read(), os.popen('who').read(), subject, msg) - for email in cf.mailto.split(): - smtp.sendmail(cf.mailfrom, email, 'To: %s\n%s' % (email, msg)) - smtp.quit() - except: - info(1, 'Sending mail via %s failed.' % cf.smtpserver) + info(2, 'Sending mail to: %s' % cf.mailto) + try: + import smtplib + smtp = smtplib.SMTP(cf.smtpserver) +# server.set_debuglevel(1) + msg = 'Subject: [dconf] %s\n\nCurrent time:\n%s\nSystem information:\n%s\nUptime:\n%s\nCurrently logged on users:\n%s\n%s\n\n%s' % (subject, os.popen('date').read(), os.popen('uname -a').read(), os.popen('uptime').read(), os.popen('who').read(), subject, msg) + for email in cf.mailto.split(): + smtp.sendmail(cf.mailfrom, email, 'To: %s\n%s' % (email, msg)) + smtp.quit() + except: + info(1, 'Sending mail via %s failed.' % cf.smtpserver) def readconfig(): - cf = Config() - if cf.confdir and os.path.isdir(cf.confdir): - files = glob.glob(os.path.join(cf.confdir, '*.conf')) - files.sort() - for configfile in files: - cf.read(configfile) -# cf.update(configfile) - return cf + cf = Config() + if cf.confdir and os.path.isdir(cf.confdir): + files = glob.glob(os.path.join(cf.confdir, '*.conf')) + files.sort() + for configfile in files: + cf.read(configfile) +# cf.update(configfile) + return cf def main(): - global extension, hostname, timestamp, ts - -# if cf.rpm or which('rpm'): - try: - import rpm - ts = rpm.TransactionSet() -# ts.setVSFlags(rpm.RPMVSF_NORSA | rpm.RPMVSF_NODSA) - ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES | rpm.RPMVSF_NOHDRCHK | rpm._RPMVSF_NODIGESTS | rpm.RPMVSF_NEEDPAYLOAD) - except: -# else: - info(2, 'Disabling RPM capability since the rpm-python bindings could not be loaded.') - cf.rpm = False - ts = None - - if cf.compression == 'gzip': - extension = '.log.gz' - elif cf.compression == 'bzip2': - extension = '.log.bz2' - else: - extension = '.log' - - hostname = os.uname()[1].split('.')[0] -# hostname = os.uname()[1] -# hostname = socket.gethostbyaddr(socket.gethostname())[0] - timestamp = time.strftime('%Y%m%d-%H%M%S', time.localtime()) - - os.umask(077) - -# os.setenv('LC_ALL', 'C') - os.environ['LC_ALL'] = 'C' - - syslog.openlog('dconf[%d]' % os.getpid()) - syslog.syslog('Dconf %s started.' % VERSION) - - ### Add to cron - if cf.cron and not op.output: - if cf.cron in ('hourly', 'daily', 'weekly', 'monthly'): - cronfile = os.path.join('/etc', 'cron.%s' % cf.cron, 'dconf') - if os.path.isdir(os.path.dirname(cronfile)): - if (os.path.realpath(cronfile) != which('dconf')): - info(2, 'Adding dconf to cron (%s).' % cf.cron) - symlink(which('dconf'), cronfile) - else: - info(2, 'Path %s does not exist, ignoring.' % os.path.dirname(cronfile)) - else: - info(2, 'Option cron should be set to hourly, daily, weekly or monthly.') - - ### Remove from cron - for item in ('hourly', 'daily', 'weekly', 'monthly'): - if item != cf.cron: - cronfile = os.path.join('/etc', 'cron.%s' % item, 'dconf') - if os.path.isfile(cronfile): - info(2, 'Removing dconf from cron (%s).' % item) - remove(cronfile) - - if op.output == '-': - logfile = '- (stdout)' - log = sys.stdout - op.quiet = True - op.verbose = 0 - elif op.output: - logfile = op.output - log = dzopen(logfile, 'w') - else: - logfile = os.path.join(cf.logdir, 'dconf-' + hostname + '-' + timestamp + extension) - latestlog = os.path.join(cf.logdir, 'dconf-' + hostname + '-latest' + extension) - previouslog = os.path.join(cf.logdir, 'dconf-' + hostname + '-previous' + extension) - oldestlog = os.path.join(cf.logdir, 'dconf-' + hostname + '-oldest' + extension) - mkdir(cf.logdir) - os.chmod(cf.logdir, 0700) - log = dzopen(logfile, 'w') - - info(2, 'Building file: %s' % logfile) - sections = cf.sections.keys() - sections.sort() - for section in sections: - stitle = False - - if cf.sections[section].has_key('cmds'): - for line in cf.sections[section]['cmds']: - cmdline = line.split() - if not cmdline: continue - - cmd = which(cmdline[0].strip()) - extra = ' '.join(cmdline[1:]) - if not cmd: - info(5, 'Cmd %s not found in PATH, excluding.' % cmdline[0].strip()) - continue - - if not os.access(cmd, os.X_OK): - info(1, 'Cmd %s cannot be executed, excluding.' % cmd) - continue - - if not stitle: - stitle = True - log.write(sectiontitle(section)) - - info(4, 'Processing cmd %s' % cmd) - (mode, t, t, t, uid, gid, size, t, t, t) = os.stat(cmd) - owner, group = getowner(uid, gid) - title = '--[ Cmd: %s %s ]--(%04o, %s, %s, %s)--' % (cmd, extra, stat.S_IMODE(mode), owner, group, size) - log.write(title + '-' * (80 - len(title)) + '\n') - (o, i) = popen2.popen4('%s %s' % (cmd, extra)) - log.write(o.read() + '\n') - - if cf.sections[section].has_key('files'): - for line in cf.sections[section]['files']: - flist = line.split('|') - if not flist: continue - extra = '|'.join(flist[1:]) - if extra: extra = extra + ' ' - for file in glob.glob(flist[0].strip()): - if not file or not os.path.isfile(file): continue - - if fnmatches(file): - info(5, 'File %s is in the exclude list, excluding.' % file) - continue - - (mode, t, t, t, uid, gid, size, t, t, t) = os.stat(file) - if not size: continue - - if ts: - h = fromrpmdb(file) - if h and md5check(h, file): - info(5, 'File %s has not been changed since installation, excluding.' % file) - continue - - if not os.access(file, os.R_OK): - info(1, 'File %s cannot be read, excluding.' % file) - continue - - if not stitle: - stitle = True - log.write(sectiontitle(section)) - - info(4, 'Processing file %s' % file) - owner, group = getowner(uid, gid) - title = '--[ File: %s %s]--(%04o, %s, %s, %s)--' % (file, extra, stat.S_IMODE(mode), owner, group, size) - log.write(title + '-' * (80 - len(title)) + '\n') - (o, i) = popen2.popen4('cat %s %s' % (file, extra)) - log.write(o.read() + '\n') - log.close() - - syslog.syslog('Dconf %s ended succesfully.' % VERSION) - syslog.closelog() - - if op.output: - return - - if os.path.isfile(latestlog): - if sha1sum(latestlog).digest() != sha1sum(logfile).digest(): - info(2, 'New logfile is different than last logfile, keeping.') - symlink(os.path.basename(os.path.realpath(latestlog)), previouslog) - symlink(os.path.basename(logfile), latestlog) - if cf.mailto: - mail('changes to %s' % os.uname()[1], diff(os.path.realpath(previouslog), os.path.realpath(latestlog))) - else: - info(2, 'New logfile is identical to last logfile, removing.') - remove(logfile) - else: - info(2, 'Marking this as a first time run, symlinking.') - symlink(os.path.basename(logfile), oldestlog) - symlink(os.path.basename(logfile), previouslog) - symlink(os.path.basename(logfile), latestlog) - if cf.mailto: - mail('initial config for %s' % os.uname()[1], dzopen(logfile, 'r').read()) + global extension, hostname, timestamp, ts + +# if cf.rpm or which('rpm'): + try: + import rpm + ts = rpm.TransactionSet() +# ts.setVSFlags(rpm.RPMVSF_NORSA | rpm.RPMVSF_NODSA) + ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES | rpm.RPMVSF_NOHDRCHK | rpm._RPMVSF_NODIGESTS | rpm.RPMVSF_NEEDPAYLOAD) + except: +# else: + info(2, 'Disabling RPM capability since the rpm-python bindings could not be loaded.') + cf.rpm = False + ts = None + + if cf.compression == 'gzip': + extension = '.log.gz' + elif cf.compression == 'bzip2': + extension = '.log.bz2' + else: + extension = '.log' + + hostname = os.uname()[1].split('.')[0] +# hostname = os.uname()[1] +# hostname = socket.gethostbyaddr(socket.gethostname())[0] + timestamp = time.strftime('%Y%m%d-%H%M%S', time.localtime()) + + os.umask(077) + +# os.setenv('LC_ALL', 'C') + os.environ['LC_ALL'] = 'C' + + syslog.openlog('dconf[%d]' % os.getpid()) + syslog.syslog('Dconf %s started.' % VERSION) + + ### Add to cron + if cf.cron and not op.output: + if cf.cron in ('hourly', 'daily', 'weekly', 'monthly'): + cronfile = os.path.join('/etc', 'cron.%s' % cf.cron, 'dconf') + if os.path.isdir(os.path.dirname(cronfile)): + if (os.path.realpath(cronfile) != which('dconf')): + info(2, 'Adding dconf to cron (%s).' % cf.cron) + symlink(which('dconf'), cronfile) + else: + info(2, 'Path %s does not exist, ignoring.' % os.path.dirname(cronfile)) + else: + info(2, 'Option cron should be set to hourly, daily, weekly or monthly.') + + ### Remove from cron + for item in ('hourly', 'daily', 'weekly', 'monthly'): + if item != cf.cron: + cronfile = os.path.join('/etc', 'cron.%s' % item, 'dconf') + if os.path.isfile(cronfile): + info(2, 'Removing dconf from cron (%s).' % item) + remove(cronfile) + + if op.output == '-': + logfile = '- (stdout)' + log = sys.stdout + op.quiet = True + op.verbose = 0 + elif op.output: + logfile = op.output + log = dzopen(logfile, 'w') + else: + logfile = os.path.join(cf.logdir, 'dconf-' + hostname + '-' + timestamp + extension) + latestlog = os.path.join(cf.logdir, 'dconf-' + hostname + '-latest' + extension) + previouslog = os.path.join(cf.logdir, 'dconf-' + hostname + '-previous' + extension) + oldestlog = os.path.join(cf.logdir, 'dconf-' + hostname + '-oldest' + extension) + mkdir(cf.logdir) + os.chmod(cf.logdir, 0700) + log = dzopen(logfile, 'w') + + info(2, 'Building file: %s' % logfile) + sections = cf.sections.keys() + sections.sort() + for section in sections: + stitle = False + + if cf.sections[section].has_key('cmds'): + for line in cf.sections[section]['cmds']: + cmdline = line.split() + if not cmdline: continue + + cmd = which(cmdline[0].strip()) + extra = ' '.join(cmdline[1:]) + if not cmd: + info(5, 'Cmd %s not found in PATH, excluding.' % cmdline[0].strip()) + continue + + if not os.access(cmd, os.X_OK): + info(1, 'Cmd %s cannot be executed, excluding.' % cmd) + continue + + if not stitle: + stitle = True + log.write(sectiontitle(section)) + + info(4, 'Processing cmd %s' % cmd) + (mode, t, t, t, uid, gid, size, t, t, t) = os.stat(cmd) + owner, group = getowner(uid, gid) + title = '--[ Cmd: %s %s ]--(%04o, %s, %s, %s)--' % (cmd, extra, stat.S_IMODE(mode), owner, group, size) + log.write(title + '-' * (80 - len(title)) + '\n') + (o, i) = popen2.popen4('%s %s' % (cmd, extra)) + log.write(o.read() + '\n') + + if cf.sections[section].has_key('files'): + for line in cf.sections[section]['files']: + flist = line.split('|') + if not flist: continue + extra = '|'.join(flist[1:]) + if extra: extra = extra + ' ' + for file in glob.glob(flist[0].strip()): + if not file or not os.path.isfile(file): continue + + if fnmatches(file): + info(5, 'File %s is in the exclude list, excluding.' % file) + continue + + (mode, t, t, t, uid, gid, size, t, t, t) = os.stat(file) + if not size: continue + + if ts: + h = fromrpmdb(file) + if h and md5check(h, file): + info(5, 'File %s has not been changed since installation, excluding.' % file) + continue + + if not os.access(file, os.R_OK): + info(1, 'File %s cannot be read, excluding.' % file) + continue + + if not stitle: + stitle = True + log.write(sectiontitle(section)) + + info(4, 'Processing file %s' % file) + owner, group = getowner(uid, gid) + title = '--[ File: %s %s]--(%04o, %s, %s, %s)--' % (file, extra, stat.S_IMODE(mode), owner, group, size) + log.write(title + '-' * (80 - len(title)) + '\n') + (o, i) = popen2.popen4('cat %s %s' % (file, extra)) + log.write(o.read() + '\n') + log.close() + + syslog.syslog('Dconf %s ended succesfully.' % VERSION) + syslog.closelog() + + if op.output: + return + + if os.path.isfile(latestlog): + if sha1sum(latestlog).digest() != sha1sum(logfile).digest(): + info(2, 'New logfile is different than last logfile, keeping.') + symlink(os.path.basename(os.path.realpath(latestlog)), previouslog) + symlink(os.path.basename(logfile), latestlog) + if cf.mailto: + mail('changes to %s' % os.uname()[1], diff(os.path.realpath(previouslog), os.path.realpath(latestlog))) + else: + info(2, 'New logfile is identical to last logfile, removing.') + remove(logfile) + else: + info(2, 'Marking this as a first time run, symlinking.') + symlink(os.path.basename(logfile), oldestlog) + symlink(os.path.basename(logfile), previouslog) + symlink(os.path.basename(logfile), latestlog) + if cf.mailto: + mail('initial config for %s' % os.uname()[1], dzopen(logfile, 'r').read()) ### Workaround for python <= 2.2.1 try: @@ -483,15 +483,15 @@ except NameError: ### Main entrance if __name__ == '__main__': - op = Options(sys.argv[1:]) - cf = readconfig() - try: - main() - except KeyboardInterrupt, e: - cleanup() - die(6, 'Exiting on user request') - except: - cleanup() - raise - -# vim:ts=4:sw=4 + op = Options(sys.argv[1:]) + cf = readconfig() + try: + main() + except KeyboardInterrupt, e: + cleanup() + die(6, 'Exiting on user request') + except: + cleanup() + raise + +# vim:ts=4:sw=4:et