home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <pwd.h>
-
- main (argc,argv)
-
- int argc;
- char *argv[];
-
- {
- struct passwd *getpwnam();
- struct passwd *pwd;
-
- int c;
- int eflg,aflg,errflg;
- char *username;
- char home[80];
- extern int optind;
- extern char *optarg;
-
- while ((c = getopt(argc,argv,"iu:")) != EOF)
- switch (c) {
- case 'i':
- aflg++;
- break;
- case 'u':
- username=optarg;
- break;
- case '?':
- eflg++;
- break;
- }
-
- if (errflg) {
- fprintf(stderr,"usage: email -i -u username\n");
- sleep(30);
- exit(2);
- }
-
- if ((pwd = getpwnam(username)) == NULL) {
- fprintf(stderr,"email: unknown username %s\n",username);
- sleep(30);
- exit(3);
- }
-
- setgid(pwd->pw_gid);
- setuid(pwd->pw_uid);
-
- strcpy(home,"HOME=");
- strcat(home,pwd->pw_dir);
- putenv(home);
-
- execl(MAILER,"mail",0);
-
-
- }
-