Index: server/common/oursrc/sql-signup/Makefile
===================================================================
--- server/common/oursrc/sql-signup/Makefile	(revision 119)
+++ server/common/oursrc/sql-signup/Makefile	(revision 119)
@@ -0,0 +1,12 @@
+install:
+	install -Dpm 644 sql-signup-capps ${DESTDIR}/etc/security/console.apps/sql-signup
+	install -Dpm 644 sql-signup-pam ${DESTDIR}/etc/pam.d/sql-signup
+	install -DpT sql-signup-sbin ${DESTDIR}/usr/sbin/sql-signup
+	mkdir -p ${DESTDIR}/usr/bin
+	ln -nfs /usr/bin/consolehelper ${DESTDIR}/usr/bin/sql-signup
+
+clean:
+	rm -f ${DESTDIR}/usr/bin/sql-signup
+	rm -f ${DESTDIR}/usr/sbin/sql-signup
+	rm -f ${DESTDIR}/etc/pam.d/sql-signup
+	rm -f ${DESTDIR}/etc/security/console.apps/sql-signup
Index: server/common/oursrc/sql-signup/sql-signup-capps
===================================================================
--- server/common/oursrc/sql-signup/sql-signup-capps	(revision 119)
+++ server/common/oursrc/sql-signup/sql-signup-capps	(revision 119)
@@ -0,0 +1,1 @@
+PROGRAM=/usr/sbin/sql-signup
Index: server/common/oursrc/sql-signup/sql-signup-pam
===================================================================
--- server/common/oursrc/sql-signup/sql-signup-pam	(revision 119)
+++ server/common/oursrc/sql-signup/sql-signup-pam	(revision 119)
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth		sufficient	pam_succeed_if.so uid >= 500 quiet
+auth		include		config-util
+account		include		config-util
+session		include		config-util
Index: server/common/oursrc/sql-signup/sql-signup-sbin
===================================================================
--- server/common/oursrc/sql-signup/sql-signup-sbin	(revision 119)
+++ server/common/oursrc/sql-signup/sql-signup-sbin	(revision 119)
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+
+from pwd import getpwuid
+from os import getenv, setuid, setgid, execv
+from sys import exit
+
+SQLUID = 537704221
+SQLGID = 537704221
+SQLBIN = '/afs/athena.mit.edu/contrib/sql/web_scripts/main/batch/signup.php'
+
+caller = int(getenv('USERHELPER_UID'))
+if caller is None or caller == 0:
+	exit('No user specified.')
+else:
+	pw = getpwuid(caller)
+	(user_name, user_uid, user_gid) = (pw[0], pw[2], pw[3])
+
+	if len(user_name) and user_uid > 1000:
+		setgid(SQLGID)
+		setuid(SQLUID)
+		execv(SQLBIN, [SQLBIN, str(user_name), str(user_uid), str(user_gid)])
+	else:
+		print 'Invalid UID:', user_uid
