summaryrefslogtreecommitdiff
path: root/deluser.local
blob: 91bf2c88d470efa25438ac270a05454fd020ccea (plain)
  1. #!/bin/sh
  2. #
  3. # /usr/local/sbin/deluser.local
  4. # Copyright 2001-2002 Jonas Smedegaard <dr@jones.dk>
  5. #
  6. # $Id: deluser.local,v 1.11 2002-04-02 07:16:39 jonas Exp $
  7. #
  8. # Common deluser additions for Spiff and Xenux networks
  9. #
  10. OLDUSERNAME=$1
  11. OLDUID=$2
  12. OLDGID=$3
  13. OLDHOMEDIR=$4
  14. . /etc/adduser.conf
  15. #. /etc/deluser.conf
  16. # Workaround: default deluser.conf is not sh-compatible (like adduser.conf)
  17. REMOVE_HOME=`grep REMOVE_HOME /etc/deluser.conf | awk -F= '{print $2}' | head -1 | sed 's/^ //g'`
  18. # Ignore non-human accounts silently
  19. [ "$OLDUID" -ge "$FIRST_UID" -a "$OLDUID" -le "$LAST_UID" ] || exit 0
  20. [ -f /etc/local/users.conf ] && . /etc/local/users.conf
  21. # Samba password
  22. if [ -e /etc/samba/smbpasswd -a -x /usr/bin/smbpasswd ]; then
  23. /usr/bin/smbpasswd -x $OLDUSERNAME || true
  24. fi
  25. #TODO: Netatalk password
  26. # Mailinglists
  27. #FIXME: Be more generic - support other mailinglists than mailman!
  28. echo "Remove from all mailinglists..."
  29. listdir="/var/lib/mailman/lists"
  30. lists=""
  31. [ -d $listdir ] && \
  32. lists=`find $listdir -type d -mindepth 1 -maxdepth 1 -exec basename '{}' \;`
  33. for list in $lists; do
  34. if [ -d $listdir/$list -a -x /usr/sbin/remove_members ]; then
  35. /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \
  36. | /usr/sbin/remove_members -f - $list
  37. fi
  38. done
  39. # Check for dummy shared files if enabled in /etc/local/users.conf
  40. if [ -n "$DUMMYSHAREDDIR" ]; then
  41. if [ -d $DUMMYSHAREDDIR/$OLDUSERNAME -a -n "$OLDUSERNAME" ]; then
  42. echo -n "It seems this was a dummy user. Remove shared files (y/N)? "
  43. read remove_files
  44. case $remove_files in
  45. y|Y)
  46. rm -rf $DUMMYSHAREDDIR/$OLDUSERNAME
  47. ;;
  48. esac
  49. fi
  50. fi
  51. # Workaround: It seems deluser avoids symlinks when told to remove homedir
  52. if [ "$REMOVE_HOME" = "1" -a -d $OLDHOMEDIR ]; then
  53. echo "Removing $OLDHOMEDIR..."
  54. rm -rf $OLDHOMEDIR
  55. fi