Bug #117 ยป pw-createmailbox.patch
| pw.conf.5 19 Mar 2006 19:25:05 -0000 | ||
|---|---|---|
|
days after which account expires
|
||
|
.It password_days
|
||
|
days after which password expires
|
||
|
.It createmailbox
|
||
|
create mailbox for new users
|
||
|
.El
|
||
|
.Pp
|
||
|
Valid values for
|
||
| ... | ... | |
|
.Ql \&0
|
||
|
in either field will disable the corresponding (account or password)
|
||
|
expiration date.
|
||
|
.Pp
|
||
|
The
|
||
|
.Ar createmailbox
|
||
|
option is used when creating new account.
|
||
|
If enabled then user mailbox will be created unless
|
||
|
.Fl V
|
||
|
command line option was also specified.
|
||
|
Contents of an already existing mail file are preserved.
|
||
|
The default value for this option is yes.
|
||
|
.Sh LIMITS
|
||
|
The maximum line length of
|
||
|
.Pa /etc/pw.conf
|
||
| pw.h 19 Mar 2006 18:32:08 -0000 | ||
|---|---|---|
|
gid_t min_gid, max_gid; /* Allowed range of gids */
|
||
|
int expire_days; /* Days to expiry */
|
||
|
int password_days; /* Days to password expiry */
|
||
|
int create_mailbox; /* Create mailbox for new account? */
|
||
|
int numgroups; /* (internal) size of default_group array */
|
||
|
};
|
||
| pw_conf.c 19 Mar 2006 18:33:18 -0000 | ||
|---|---|---|
|
_UC_MAXGID,
|
||
|
_UC_EXPIRE,
|
||
|
_UC_PASSWORD,
|
||
|
_UC_MAILBOX,
|
||
|
_UC_FIELDS
|
||
|
};
|
||
| ... | ... | |
|
1000, 32000, /* Allowed range of gids */
|
||
|
0, /* Days until account expires */
|
||
|
0, /* Days until password expires */
|
||
|
1, /* Create mailbox for new account */
|
||
|
0 /* size of default_group array */
|
||
|
};
|
||
| ... | ... | |
|
"\n# Range of valid default group ids\n",
|
||
|
NULL,
|
||
|
"\n# Days after which account expires (0=disabled)\n",
|
||
|
"\n# Days after which password expires (0=disabled)\n"
|
||
|
"\n# Days after which password expires (0=disabled)\n",
|
||
|
"\n# Create mailbox for new account? (yes or no)\n"
|
||
|
};
|
||
|
static char const *kwds[] =
|
||
| ... | ... | |
|
"maxgid",
|
||
|
"expire_days",
|
||
|
"password_days",
|
||
|
"createmailbox",
|
||
|
NULL
|
||
|
};
|
||
| ... | ... | |
|
if ((q = unquote(q)) != NULL && isdigit(*q))
|
||
|
config.password_days = atoi(q);
|
||
|
break;
|
||
|
case _UC_MAILBOX:
|
||
|
config.create_mailbox = boolean_val(q, 1);
|
||
|
break;
|
||
|
case _UC_FIELDS:
|
||
|
case _UC_NONE:
|
||
|
break;
|
||
| ... | ... | |
|
sprintf(buf, "%d", config.password_days);
|
||
|
quote = 0;
|
||
|
break;
|
||
|
case _UC_MAILBOX:
|
||
|
val = boolean_str(config.create_mailbox);
|
||
|
break;
|
||
|
case _UC_NONE:
|
||
|
break;
|
||
|
}
|
||
| pw_user.c 19 Mar 2006 18:33:33 -0000 | ||
|---|---|---|
|
* doesn't hurt anything to create the empty mailfile
|
||
|
*/
|
||
|
if (mode == M_ADD) {
|
||
|
if (!PWALTDIR()) {
|
||
|
if (!PWALTDIR() && cnf->create_mailbox) {
|
||
|
sprintf(line, "%s/%s", _PATH_MAILDIR, pwd->pw_name);
|
||
|
close(open(line, O_RDWR | O_CREAT, 0600)); /* Preserve contents &
|
||
|
* mtime */
|
||