|
@@ -99,8 +99,14 @@ int deluser_main(int argc, char **argv)
|
|
|
pfile = bb_path_passwd_file;
|
|
|
if (ENABLE_FEATURE_SHADOWPASSWDS)
|
|
|
sfile = bb_path_shadow_file;
|
|
|
- if (opt_delhome)
|
|
|
- remove_file(pw->pw_dir, FILEUTILS_RECUR);
|
|
|
+ if (opt_delhome) {
|
|
|
+ struct stat st;
|
|
|
+
|
|
|
+ /* Make sure home is an actual directory before
|
|
|
+ * removing it (e.g. users with /dev/null as home) */
|
|
|
+ if (stat(pw->pw_dir, &st) == 0 && S_ISDIR(st.st_mode))
|
|
|
+ remove_file(pw->pw_dir, FILEUTILS_RECUR);
|
|
|
+ }
|
|
|
} else {
|
|
|
struct group *gr;
|
|
|
do_delgroup:
|