|
Lines 179-185
Link Here
|
| 179 |
if (strchr(cnf->home+1, '/') == NULL) { |
179 |
if (strchr(cnf->home+1, '/') == NULL) { |
| 180 |
strcpy(dbuf, "/usr"); |
180 |
strcpy(dbuf, "/usr"); |
| 181 |
strncat(dbuf, cnf->home, MAXPATHLEN-5); |
181 |
strncat(dbuf, cnf->home, MAXPATHLEN-5); |
| 182 |
if (mkdir(dbuf, 0755) != -1 || errno == EEXIST) { |
182 |
if (mkdir(dbuf, 0777) != -1 || errno == EEXIST) { |
| 183 |
chown(dbuf, 0, 0); |
183 |
chown(dbuf, 0, 0); |
| 184 |
symlink(dbuf, cnf->home); |
184 |
symlink(dbuf, cnf->home); |
| 185 |
} |
185 |
} |
|
Lines 191-197
Link Here
|
| 191 |
while ((p = strchr(++p, '/')) != NULL) { |
191 |
while ((p = strchr(++p, '/')) != NULL) { |
| 192 |
*p = '\0'; |
192 |
*p = '\0'; |
| 193 |
if (stat(dbuf, &st) == -1) { |
193 |
if (stat(dbuf, &st) == -1) { |
| 194 |
if (mkdir(dbuf, 0755) == -1) |
194 |
if (mkdir(dbuf, 0777) == -1) |
| 195 |
goto direrr; |
195 |
goto direrr; |
| 196 |
chown(dbuf, 0, 0); |
196 |
chown(dbuf, 0, 0); |
| 197 |
} else if (!S_ISDIR(st.st_mode)) |
197 |
} else if (!S_ISDIR(st.st_mode)) |
|
Lines 200-206
Link Here
|
| 200 |
} |
200 |
} |
| 201 |
} |
201 |
} |
| 202 |
if (stat(dbuf, &st) == -1) { |
202 |
if (stat(dbuf, &st) == -1) { |
| 203 |
if (mkdir(dbuf, 0755) == -1) { |
203 |
if (mkdir(dbuf, 0777) == -1) { |
| 204 |
direrr: err(EX_OSFILE, "mkdir '%s'", dbuf); |
204 |
direrr: err(EX_OSFILE, "mkdir '%s'", dbuf); |
| 205 |
} |
205 |
} |
| 206 |
chown(dbuf, 0, 0); |
206 |
chown(dbuf, 0, 0); |
|
Lines 734-740
Link Here
|
| 734 |
* existing files will *not* be overwritten. |
734 |
* existing files will *not* be overwritten. |
| 735 |
*/ |
735 |
*/ |
| 736 |
if (!PWALTDIR() && getarg(args, 'm') != NULL && pwd->pw_dir && *pwd->pw_dir == '/' && pwd->pw_dir[1]) { |
736 |
if (!PWALTDIR() && getarg(args, 'm') != NULL && pwd->pw_dir && *pwd->pw_dir == '/' && pwd->pw_dir[1]) { |
| 737 |
copymkdir(pwd->pw_dir, cnf->dotdir, 0755, pwd->pw_uid, pwd->pw_gid); |
737 |
copymkdir(pwd->pw_dir, cnf->dotdir, 0777, pwd->pw_uid, pwd->pw_gid); |
| 738 |
pw_log(cnf, mode, W_USER, "%s(%ld) home %s made", |
738 |
pw_log(cnf, mode, W_USER, "%s(%ld) home %s made", |
| 739 |
pwd->pw_name, (long) pwd->pw_uid, pwd->pw_dir); |
739 |
pwd->pw_name, (long) pwd->pw_uid, pwd->pw_dir); |
| 740 |
} |
740 |
} |