thomascube
2009-06-30 8e9a55abd88256de03185a737fc25d6045533ace
Add SASL password wrapper program + update SASL instructions in README

1 files modified
1 files added
33 ■■■■■ changed files
plugins/password/README 6 ●●●● patch | view | raw | blame | history
plugins/password/drivers/chgsaslpasswd.c 27 ●●●●● patch | view | raw | blame | history
plugins/password/README
@@ -123,13 +123,13 @@
 Installation:
 Edit the chgsaslpasswd.c and chgsaslpasswd.sh files as is documented
 within them.
 Change into the drivers directory. Edit the chgsaslpasswd.c file as is
 documented within it.
 Compile the wrapper program:
    gcc -o chgsaslpasswd chgsaslpasswd.c
 Chown the chgsaslpasswd and chgsaslpasswd.sh to the cyrus user and group
 Chown the compiled chgsaslpasswd binary to the cyrus user and group
 that your browser runs as, then chmod them to 4550.
 For example, if your cyrus user is 'cyrus' and the apache server group is
plugins/password/drivers/chgsaslpasswd.c
New file
@@ -0,0 +1,27 @@
#include <stdio.h>
#include <unistd.h>
// set the UID this script will run as (cyrus user)
#define UID 96
// set the path to saslpasswd or saslpasswd2
#define CMD "/usr/sbin/saslpasswd2"
/* INSTALLING:
  gcc -o chgsaslpasswd chgsaslpasswd.c
  chown root.apache chgsaslpasswd
  strip chgsaslpasswd
  chmod 4550 chgsaslpasswd
*/
main(int argc, char *argv[])
{
  int rc,cc;
  cc = setuid(UID);
  rc = execvp(CMD, argv);
  if ((rc != 0) || (cc != 0))
  {
    fprintf(stderr,"__ %s:  failed %d  %d\n",argv[0],rc,cc);
    exit(1);
  }
}