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