#! /bin/sh #---------------------------------------------------------------------------- # /var/install/deinstall/inet - deinstall inet # # Copyright (c) 2001-2005 Ansgar Püster # # Creation: 11.10.2002 jh # Last Update: $Id$ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------- # include eislib . /var/install/include/eislib config_file=/etc/config.d/inet # # remove mode # 'strict' almost everything from the package is removed # SSH Server Keys may not be removed # RM_MODE='strict' # # check if SSH Server Keys should remain # TRUE SSH Server Keys will remain (will not be deleted) # FALSE SSH Server Keys will not remain (will be deleted) # RM_KEYS=FALSE # # remove option # 'v' use verbose rm # RM_OPTION="-v" # # WITH_INFO # TRUE use mecho -info # WITH_INFO=TRUE remove_empty_dir_old () { DIR=$1 if [ -d $DIR ] then COUNT=`ls -1 -a $DIR | wc -l` [ $COUNT = 2 ] && rm -rf $RM_OPTION $DIR fi } remove_empty_dir () { DIR=$1 if [ -d $DIR ] then if rmdir $DIR 2>/dev/null; then [ "$RM_OPTION" = '-v' ] && mecho "rmdir: removing directory, $DIR" else mecho -warn "directory $DIR is not empty, directory not removed" fi fi } remove_user_checked () { user=$1 if grep "^$user:" /etc/passwd >/dev/null 2>&1; then mecho "checking if user $user owns files or directories" ecount=$(find / -path '/proc' -prune -o -user $user | grep -v '/proc' | wc -l) #find / -path '/proc' -prune -o -user $user | grep -v '/proc' ecount=$(echo $ecount) if [ $ecount = 0 ]; then /var/install/bin/remove-user -f $user no mecho "user $user was removed" return 0 else mecho -warn "user $user owns $ecount files or directories" mecho -warn "user $user can't be removed" return 1 fi fi } delete_ssh_privsep_env () { /bin/grep "^sshd:" /etc/passwd > /dev/null # remove sshd user if [ "$?" = 0 ] then # user exists, delete it [ "$MMODE" = 'detailed' ] && mecho "Deleting sshd user account ..." # parameter: -f (force) [user][remove homedir yes/no] /var/install/bin/remove-user -f sshd no >/dev/null 2>&1 # remove sshd group /var/install/bin/remove-group -f sshd >/dev/null 2>&1 # home directory has been removed by user removal fi } green_echo () { if [ "$WITH_INFO" = 'TRUE' ] then mecho -info "$*" sleep 1 else mecho "$*" fi } # check if inet exists if [ -f $config_file ] then # Shut down services green_echo "Shut down services ..." /etc/init.d/sshd stop /etc/init.d/pure-ftpd stop /etc/init.d/xinetd stop sleep 2 fi green_echo "Removing start/stop scripts ..." sleep 1 rm -f $RM_OPTION /etc/rc2.d/[SK]50pure-ftpd rm -f $RM_OPTION /etc/rc2.d/[SK]51sshd rm -f $RM_OPTION /etc/rc2.d/[SK]50xinetd green_echo "Removing files of package inet ..." sleep 1 # files contained in inet.tar.gz rm -f $RM_OPTION /bin/scp rm -f $RM_OPTION /bin/sftp rm -f $RM_OPTION /bin/ssh rm -f $RM_OPTION /bin/ssh-add rm -f $RM_OPTION /bin/ssh-agent rm -f $RM_OPTION /bin/ssh-keygen rm -f $RM_OPTION /bin/ssh-keyscan rm -f $RM_OPTION /bin/ssh-copy-id rm -f $RM_OPTION /bin/slogin rm -f $RM_OPTION /etc/init.d/sshd rm -f $RM_OPTION /etc/init.d/pure-ftpd rm -f $RM_OPTION /etc/init.d/xinetd rm -f $RM_OPTION /etc/init.d/inet_shlib rm -f $RM_OPTION /etc/pam.d/pure-ftpd rm -f $RM_OPTION /etc/pam.d/sshd rm -f $RM_OPTION /etc/ssh_config rm -f $RM_OPTION /etc/sshd_config rm -f $RM_OPTION /etc/xinetd.d/telnet rm -f $RM_OPTION /etc/xinetd.d/tftp rm -f $RM_OPTION /etc/xinetd.d/ftp rm -f $RM_OPTION /etc/xinetd.d/time rm -f $RM_OPTION /etc/xinetd.d/sshd rm -f $RM_OPTION /etc/xinetd.conf rm -f $RM_OPTION /etc/moduli rm -f $RM_OPTION /var/run/pure-ftpd.upload.lock rm -f $RM_OPTION /var/run/pure-ftpd.upload.pipe rm -f $RM_OPTION /var/run/pure-ftpd/client-* remove_empty_dir /var/run/pure-ftpd/ rm -f $RM_OPTION /sbin/sftp-server.subsystem rm -f $RM_OPTION /sbin/sftp-server rm -f $RM_OPTION /sbin/sshd rm -f $RM_OPTION /usr/share/doc/inet/inet.txt rm -f $RM_OPTION /usr/share/doc/inet/changes.txt rm -f $RM_OPTION /usr/share/doc/inet/release-notes.txt rm -f $RM_OPTION /usr/share/doc/inet/examples/create_dot_ftpquota.sh rm -f $RM_OPTION /usr/share/doc/inet/examples/scanner.sh remove_empty_dir /usr/share/doc/inet/examples/ remove_empty_dir /usr/share/doc/inet/ #NONO rm -f $RM_OPTION /usr/bin/openssl #NONO rm -f $RM_OPTION /usr/bin/ssl/c_hash #NONO rm -f $RM_OPTION /usr/bin/ssl/c_info #NONO rm -f $RM_OPTION /usr/bin/ssl/c_issuer #NONO rm -f $RM_OPTION /usr/bin/ssl/c_name #NONO rm -f $RM_OPTION /usr/bin/ssl/c_rehash #NONO rm -f $RM_OPTION /usr/bin/ssl/c89.sh #NONO remove_empty_dir /usr/bin/ssl/ rm -f $RM_OPTION /usr/sbin/pure-ftpd rm -f $RM_OPTION /usr/sbin/pure-ftpwho rm -f $RM_OPTION /usr/sbin/pure-pw rm -f $RM_OPTION /usr/sbin/pure-quotacheck rm -f $RM_OPTION /usr/sbin/pure-statsdecode rm -f $RM_OPTION /usr/sbin/pure-uploadscript rm -f $RM_OPTION /usr/sbin/xinetd rm -f $RM_OPTION /usr/sbin/in.telnetd rm -f $RM_OPTION /usr/sbin/in.tftpd rm -f $RM_OPTION /usr/lib/telnetlogin rm -f $RM_OPTION /var/install/bin/sshd-create_keys rm -f $RM_OPTION /var/install/bin/inet-show-changes rm -f $RM_OPTION /var/install/bin/inet-show-documentation #NONO rm -f $RM_OPTION /var/install/bin/inet-menu2 #NONO rm -f $RM_OPTION /var/install/bin/inet-menu3 rm -f $RM_OPTION /var/install/bin/inet-list-vusers rm -f $RM_OPTION /var/install/bin/inet-check-vusers rm -f $RM_OPTION /var/install/bin/inet-show-vuser rm -f $RM_OPTION /var/install/bin/inet-create-cert #rm -f $RM_OPTION /var/install/bin/inet-show-manpages #rm -f $RM_OPTION /var/install/bin/inet-show-master #rm -f $RM_OPTION /var/install/bin/inet-show-pure-ftpd.8 #rm -f $RM_OPTION /var/install/bin/inet-show-pure-ftpwho.8 #rm -f $RM_OPTION /var/install/bin/inet-show-pure-pw.8 #rm -f $RM_OPTION /var/install/bin/inet-show-pure-quotacheck.8 #rm -f $RM_OPTION /var/install/bin/inet-show-pure-statsdecode.8 #rm -f $RM_OPTION /var/install/bin/inet-show-pure-uploadscript.8 #rm -f $RM_OPTION /var/install/bin/inet-show-scp.1 #rm -f $RM_OPTION /var/install/bin/inet-show-sftp-server.8 #rm -f $RM_OPTION /var/install/bin/inet-show-ssh-keygen.1 #rm -f $RM_OPTION /var/install/bin/inet-show-ssh.1 #rm -f $RM_OPTION /var/install/bin/inet-show-sshd.8 #rm -f $RM_OPTION /var/install/bin/inet-show-tftpd.8 #rm -f $RM_OPTION /var/install/bin/inet-show-xinetd.8 #rm -f $RM_OPTION /var/install/bin/inet-show-xinetd.conf.5 #rm -f $RM_OPTION /var/install/bin/inet-show-xinetd.log.5 rm -f $RM_OPTION /var/install/menu/setup.services.inet.menu rm -f $RM_OPTION /var/install/menu/setup.services.inet.doc.menu rm -f $RM_OPTION /var/install/menu/setup.services.inet.pure-ftpd.menu rm -f $RM_OPTION /usr/local/ssl/certs/pure-ftpd.pem rm -f $RM_OPTION /var/install/packages/inet rm -f $RM_OPTION /var/install/config.d/inet.sh rm -f $RM_OPTION /var/install/config.d/inet_update.sh rm -f $RM_OPTION /etc/default.d/inet rm -f $RM_OPTION /var/install/deinstall/inet remove_empty_dir /var/empty rm -f $RM_OPTION /etc/check.d/inet rm -f $RM_OPTION /etc/check.d/inet.exp rm -f $RM_OPTION /etc/check.d/inet.ext rm -f $RM_OPTION /var/install/form/inet rm -f $RM_OPTION /var/install/form/inet.docu rm -f $RM_OPTION /var/install/form/inet.main rm -f $RM_OPTION /var/install/form/inet.create.sshkeys rm -f $RM_OPTION /var/install/form/inet.pureftpd.admin rm -f $RM_OPTION /var/install/form/inet.pureftpd.checkvusers rm -f $RM_OPTION /var/install/form/inet.pureftpd.listvusers rm -f $RM_OPTION /var/install/form/inet.pureftpd.showvuser rm -f $RM_OPTION /var/install/form/inet.pureftpd.pure-ftpwho rm -f $RM_OPTION /var/install/form/inet.pureftpd.viewlog rm -f $RM_OPTION /var/install/form/inet.pureftpd.cert rm -f $RM_OPTION /var/install/help/inet rm -f $RM_OPTION /var/install/help/inet.cert rm -f $RM_OPTION /var/install/prep/inet.pureftpd.checkvusers.sh rm -f $RM_OPTION /var/install/prep/inet.pureftpd.listvusers.sh rm -f $RM_OPTION /var/install/prep/inet.pureftpd.showvuser.sh rm -f $RM_OPTION /var/install/prep/inet.pureftpd.pure-ftpwho.sh rm -f $RM_OPTION /var/install/prep/inet.pureftpd.viewlog.sh rm -f $RM_OPTION /var/install/servadm/inet.create.sshkeys.sh rm -f $RM_OPTION /var/install/servadm/inet.pureftpd.clean.sh rm -f $RM_OPTION /var/install/servadm/inet.pureftpd.showvuser.sh rm -f $RM_OPTION /var/install/servadm/inet.pureftpd.pure-ftpwho.sh rm -f $RM_OPTION /var/install/servadm/inet.pureftpd.cert.sh rm -f $RM_OPTION /etc/filelist.d/inet-files.txt # ACFH fmask='[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]' rm -f $RM_OPTION /etc/backup.d/inet.$fmask package=inet if [ -f /var/install/bin/del_advancedconfigmenu ]; then /var/install/bin/del_advancedconfigmenu -quiet $package fi menu_item="setup.services.inet.menu" if grep $menu_item /var/install/menu/setup.services.menu > /dev/null 2>&1 then green_echo "clearing /var/install/menu/setup.services.menu..." sleep 1 /var/install/bin/del-menu setup.services.menu $menu_item fi if [ "$RM_MODE" = 'strict' ]; then . $config_file if [ FTP_LOG = 'yes' ]; then rm -f $RM_OPTION $FTP_LOG_PATH fi delete_ssh_privsep_env remove_empty_dir /tftpboot remove_empty_dir /etc/xinetd.d remove_empty_dir /home/ftp remove_empty_dir /home/vftp remove_user_checked ftp remove_user_checked vftp rm -f $RM_OPTION /etc/ftpusers rm -f $RM_OPTION /etc/pureftpd.pdb rm -f $RM_OPTION /etc/pureftpd.passwd fi if [ "$RM_MODE" = 'strict' ]; then rm -f $RM_OPTION $config_file else green_echo "$config_file was not removed" fi if [ ! $RM_KEYS = TRUE ] then green_echo "SSH Server Keys (Host Keys) are not deleted" else green_echo "SSH Server Keys (Host Keys) are deleted" rm -f $RM_OPTION /etc/ssh_host_dsa_key rm -f $RM_OPTION /etc/ssh_host_dsa_key.pub rm -f $RM_OPTION /etc/ssh_host_key rm -f $RM_OPTION /etc/ssh_host_key.pub rm -f $RM_OPTION /etc/ssh_host_rsa_key rm -f $RM_OPTION /etc/ssh_host_rsa_key.pub fi #green_echo "Libraries /lib/libz.* /lib/libssl.* /lib/libcrypto.* are not removed"