summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/basic/user-util.c3
-rw-r--r--src/firstboot/firstboot.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/basic/user-util.c b/src/basic/user-util.c
index 734122c2a3..6c5041230a 100644
--- a/src/basic/user-util.c
+++ b/src/basic/user-util.c
@@ -19,6 +19,7 @@
#include "fileio.h"
#include "format-util.h"
#include "macro.h"
+#include "mkdir.h"
#include "parse-util.h"
#include "path-util.h"
#include "path-util.h"
@@ -688,6 +689,8 @@ int take_etc_passwd_lock(const char *root) {
if (!path)
return log_oom_debug();
+ (void) mkdir_parents(path, 0755);
+
_cleanup_close_ int fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0600);
if (fd < 0)
return log_debug_errno(errno, "Cannot open %s: %m", path);
diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
index 45bb386da2..9e79f84691 100644
--- a/src/firstboot/firstboot.c
+++ b/src/firstboot/firstboot.c
@@ -904,8 +904,6 @@ static int process_root_account(void) {
return 0;
}
- (void) mkdir_parents(etc_passwd, 0755);
-
lock = take_etc_passwd_lock(arg_root);
if (lock < 0)
return log_error_errno(lock, "Failed to take a lock on %s: %m", etc_passwd);