pw: respect path specified using -V when writing pw.conf, and -C is not
explicitly specified. -V path is already used to determine which file to read default values from, so it's only logical to write them to the same file. PR: 231653 Reviewed by: eugen, bapt Approved by: re (gjb), kib (mentor) Differential Revision: https://reviews.freebsd.org/D17566
This commit is contained in:
parent
bf79aaf374
commit
0f94e2c33c
@ -64,6 +64,7 @@ enum _which
|
||||
};
|
||||
|
||||
#define _DEF_DIRMODE (S_IRWXU | S_IRWXG | S_IRWXO)
|
||||
#define _PW_CONF "pw.conf"
|
||||
#define _PATH_PW_CONF "/etc/pw.conf"
|
||||
#define _UC_MAXLINE 1024
|
||||
#define _UC_MAXSHELLS 32
|
||||
|
@ -417,9 +417,13 @@ write_userconfig(struct userconf *cnf, const char *file)
|
||||
int i, j;
|
||||
struct sbuf *buf;
|
||||
FILE *fp;
|
||||
char cfgfile[MAXPATHLEN];
|
||||
|
||||
if (file == NULL)
|
||||
file = _PATH_PW_CONF;
|
||||
if (file == NULL) {
|
||||
snprintf(cfgfile, sizeof(cfgfile), "%s/" _PW_CONF,
|
||||
conf.etcpath);
|
||||
file = cfgfile;
|
||||
}
|
||||
|
||||
if ((fd = open(file, O_CREAT|O_RDWR|O_TRUNC|O_EXLOCK, 0644)) == -1)
|
||||
return (0);
|
||||
|
@ -71,7 +71,7 @@ get_userconfig(const char *config)
|
||||
|
||||
if (config != NULL)
|
||||
return (read_userconfig(config));
|
||||
snprintf(defaultcfg, sizeof(defaultcfg), "%s/pw.conf", conf.etcpath);
|
||||
snprintf(defaultcfg, sizeof(defaultcfg), "%s/" _PW_CONF, conf.etcpath);
|
||||
return (read_userconfig(defaultcfg));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user