summaryrefslogtreecommitdiff
path: root/deluser.local
blob: 77c68ecaf7a996ad6410fbe79157ba10f68dad90 (plain)
  1. #!/bin/sh
  2. OLDUSERNAME=$1
  3. OLDUID=$2
  4. OLDGID=$3
  5. OLDHOMEDIR=$4
  6. . /etc/adduser.conf
  7. #. /etc/deluser.conf
  8. # Workaround: default deluser.conf is not sh-compatible (like adduser.conf)
  9. REMOVE_HOME=`grep REMOVE_HOME /etc/deluser.conf | awk -F= '{print $2}' | head -1 | sed 's/^ //g'`
  10. # Ignore non-human accounts silently
  11. [ "$OLDUID" -ge "$FIRST_UID" -a "$OLDUID" -le "$LAST_UID" ] || exit 0
  12. [ -f /etc/local/users.conf ] && . /etc/local/users.conf
  13. # Samba password
  14. if [ -e /etc/samba/smbpasswd -a -x /usr/bin/smbpasswd ]; then
  15. /usr/bin/smbpasswd -x $OLDUSERNAME || true
  16. fi
  17. #TODO: Netatalk password
  18. # Mailinglists
  19. if [ -x /usr/sbin/remove_members ]; then
  20. if [ -d /var/lib/mailman/lists/users ]; then
  21. /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \
  22. | /usr/sbin/remove_members -f - users
  23. fi
  24. if [ -d /var/lib/mailman/lists/friends ]; then
  25. /bin/echo $OLDUSERNAME@`/bin/dnsdomainname` \
  26. | /usr/sbin/remove_members -f - friends
  27. fi
  28. fi
  29. # Check for dummy shared files if enabled in /etc/local/users.conf
  30. if [ -n "$DUMMYSHAREDDIR" ]; then
  31. if [ -d $DUMMYSHAREDDIR/$OLDUSERNAME -a -n "$OLDUSERNAME" ]; then
  32. echo -n "It seems this was a dummy user. Remove shared files (y/N)? "
  33. read remove_files
  34. case $remove_files in
  35. y|Y)
  36. rm -rf $DUMMYSHAREDDIR/$OLDUSERNAME
  37. ;;
  38. esac
  39. fi
  40. fi
  41. # Workaround: It seems deluser avoids symlinks when told to remove homedir
  42. if [ "$REMOVE_HOME" -a -d $OLDHOMEDIR ]; then
  43. echo "Removing $OLDHOMEDIR..."
  44. rm -rf $OLDHOMEDIR
  45. fi