cvs sucks even more
[clinton/scripts.git] / destroy-user
diff --git a/destroy-user b/destroy-user
new file mode 100755 (executable)
index 0000000..573987c
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+# MUST be executed:
+#  - on deleuze
+#  - as a user with an /etc/sudoers line
+#  - while holding system:administrator tokens
+
+USER=$1
+
+PATHBITS=`echo $USER | head -c 1`/`echo $USER | head -c 2`/$USER
+HOMEPATH=/afs/hcoop.net/user/$PATHBITS
+MAILPATH=/afs/hcoop.net/common/email/$PATHBITS
+DBPATH=/afs/.hcoop.net/common/.databases/$PATHBITS
+# We don't use separate partitions for logs
+#LOGSPATH=/afs/.hcoop.net/common/.logs/$USER
+
+sudo rm -f /etc/keytabs/mailfilter/$USER
+sudo rm -f /etc/keytabs/cgi/$USER
+
+# LDAP
+sudo ldapdelete -v -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret \
+       uid=$USER,ou=People,dc=hcoop,dc=net
+sudo ldapdelete -v -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret \
+       uid=$USER.cgi,ou=People,dc=hcoop,dc=net
+sudo ldapdelete -v -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret \
+       uid=$USER.mailfilter,ou=People,dc=hcoop,dc=net
+sudo ldapdelete -v -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret \
+       cn=$USER,ou=Group,dc=hcoop,dc=net
+sudo ldapdelete -v -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret \
+       cn=$USER.cgi,ou=Group,dc=hcoop,dc=net
+sudo ldapdelete -v -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret \
+       cn=$USER.mailfilter,ou=Group,dc=hcoop,dc=net
+
+# Invalidate nscd cache
+sudo nscd -i passwd
+sudo nscd -i group
+
+# Remove from databases
+sudo -u postgres psql -c "DROP TABLESPACE user_$USER"
+#sudo -u postgres psql -c "DROP USER $USER"
+#sudo -H mysql -e "DROP USER $USER@localhost"
+
+fs rm $MAILPATH
+fs rm $HOMEPATH
+#fs rm $LOGSPATH
+fs rm $DBPATH
+fs rm /afs/hcoop.net/old/user/$PATHBITS
+fs rm /afs/hcoop.net/old/mail/$PATHBITS
+vos remove deleuze.hcoop.net /vicepa user.$USER
+vos remove deleuze.hcoop.net /vicepa mail.$USER
+vos remove deleuze.hcoop.net /vicepa db.$USER
+#vos remove deleuze.hcoop.net /vicepa logs.$USER
+
+vos release common.databases
+#vos release common.logs
+
+sudo kadmin.local -q "delprinc -force $USER@HCOOP.NET"
+sudo kadmin.local -q "delprinc -force $USER/mailfilter@HCOOP.NET"
+sudo kadmin.local -q "delprinc -force $USER/cgi@HCOOP.NET"
+
+pts delete $USER
+pts delete $USER.mailfilter
+pts delete $USER.cgi
+
+#fs rm /afs/hcoop.net/old/user/$PATHBITS
+#fs rm /afs/hcoop.net/old/mail/$PATHBITS
+#fs rm /afs/hcoop.net/old/logs/$PATHBITS
+
+vos syncserv deleuze
+vos syncvldb deleuze
+fs checkvolumes
+