Index: server/common/oursrc/accountadm/configure.in
===================================================================
--- server/common/oursrc/accountadm/configure.in	(revision 484)
+++ server/common/oursrc/accountadm/configure.in	(revision 485)
@@ -44,4 +44,5 @@
 LOCATE(sort)
 LOCATE(head)
+LOCATE(ldapadd)
 
 dnl Needed by mbash.in
Index: server/common/oursrc/accountadm/signup-scripts-backend.in
===================================================================
--- server/common/oursrc/accountadm/signup-scripts-backend.in	(revision 484)
+++ server/common/oursrc/accountadm/signup-scripts-backend.in	(revision 485)
@@ -65,9 +65,39 @@
 complain("gid already taken") if(getgrgid $gid1);
 
-# Add user to /etc/passwd
-`@sudo_path@ -u root @groupadd_path@ -g '$gid1' '$username'`;
-`@sudo_path@ -u root @useradd_path@ -M -d '$homedir' -s '/usr/local/bin/mbash' -u '$uid1' -g '$gid1' -G users '$username'`;
+my $pid;
+defined ($pid = open LDAP, '|-') or complain("internal error");
+if (!$pid) {
+	close STDOUT;
+	open STDOUT, '>/dev/null';
+	exec '@ldapadd_path@', '-c', '-x', '-D', 'cn=Directory Manager', '-y', '/etc/signup-ldap-pw';
+	exit 1;
+}
+print LDAP <<EOF;
+dn: uid=$username,ou=People,dc=scripts,dc=mit,dc=edu
+objectClass: posixAccount
+cn: $username
+uid: $username
+uidNumber: $uid1
+gidNumber: $gid1
+homeDirectory: $homedir
+loginShell: /usr/local/bin/mbash
+
+dn: cn=$username,ou=Groups,dc=scripts,dc=mit,dc=edu
+objectClass: posixGroup
+cn: $username
+gidNumber: $gid1
+
+dn: apacheServerName=$username.scripts.mit.edu,ou=VirtualHosts,dc=scripts,dc=mit,dc=edu
+objectclass: apacheConfig
+apacheServerName: $username.scripts.mit.edu
+apacheServerAlias: $username.scripts
+apacheDocumentRoot: $homedir
+apacheSuexecUid: $uid1
+apacheSuexecGid: $gid1
+
+EOF
+close LDAP or complain("internal error");
 # Add disk quota for user
-`@sudo_path@ -u root @setquota_path@ '$username' 0 25000 0 10000 -a`;
+#system('@sudo_path@', '-u', 'root', '/usr/sbin/setquota', $username, '0', '25000', '0', '10000', '-a');
 
 printexit("done", 0);
Index: server/fedora/specs/accountadm.spec
===================================================================
--- server/fedora/specs/accountadm.spec	(revision 484)
+++ server/fedora/specs/accountadm.spec	(revision 485)
@@ -50,18 +50,4 @@
 useradd -u 102 -g signup -d /afs/athena.mit.edu/contrib/scripts/signup -M signup || [ $? -eq 9 ]
 
-%post
-cat >>/etc/sudoers <<END
-signup  ALL=(root) NOPASSWD: /usr/sbin/useradd
-signup  ALL=(root) NOPASSWD: /usr/sbin/groupadd
-signup  ALL=(root) NOPASSWD: /usr/sbin/setquota
-END
-chmod 0440 /etc/sudoers
-
-%preun
-touch /etc/sudoers.tmp
-chmod 600 /etc/sudoers.tmp
-grep -v "^signup" /etc/sudoers > /etc/sudoers.tmp
-mv /etc/sudoers.tmp /etc/sudoers
-
 %postun
 userdel signup
