
Mitchell,
There are a few steps to do what you want. Maybe there are better ways, but I use the "sudo" program to allow the web user ("nobody" on most systems) to issue the "newlist" mailman command as root. It also allows "nobody" to append to /etc/aliases and issue the "newaliases" command.
First, you can create a php form like so:
form_newlist.php:
<? print ' <P> <TABLE BORDER=0> <TR> <TD COLSPAN=2 ALIGN="middle"> <FONT FACE="Arial, Helvetica"><B>Add a List</B></FONT> </TD></TR> <FORM ACTION="act_newlist.php" METHOD="post"> <TR> <TD>List name:</TD><TD><INPUT TYPE="text" NAME="listname" SIZE="50"></TD> </TR> <TR> <TD>Admin Email</TD><TD><INPUT TYPE="text" NAME="adminemail" SIZE="50"></TD> </TR> <TR> <TD>Admin Password</TD><TD><INPUT TYPE="password" NAME="adminpass" SIZE="50"></TD> </TR> </TABLE> <INPUT TYPE="submit" VALUE="submit"> </FORM> '; ?>
The above form, when submitted, will execute the script below:
act_newlist.php:
<? // Issue newlist command, append output to /etc/aliases $newlist = exec("/usr/local/bin/sudo /home/mailman/bin/newlist --quiet --output=/etc/aliases$listname $adminemail $adminpass ",$alloutput,$returnvalue);
// Issue newaliases command $newaliases = exec("/usr/local/bin/sudo /usr/bin/newaliases"); print "List created.\n"; ?>
Notice that both the "newlist" and "newaliases" commands are prepended with the /usr/local/bin/sudo command.
To get sudo, go to http://www.courtesan.com/sudo
Once you have downloaded and installed it, create your sudoers file which will look like this:
/etc/sudoers:
# sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. #
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification root ALL=(ALL) ALL nobody ALL = NOPASSWD: /home/mailman/bin/newlist nobody ALL = NOPASSWD: /usr/bin/newaliases
If you want to create other forms to, say, add members, delete lists, etc., just do the same kind of thing and remember to add the new commands to the sudoers file.
Be very careful about how you set up sudo. It's a great program but can be harmful if misused.
Hope this helps.
- Kevin
participants (1)
-
Kevin McCann