]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Make sure unit and preset directories exist in configure_ssh()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 22 Aug 2023 07:08:18 +0000 (09:08 +0200)
committerJörg Behrmann <behrmann@physik.fu-berlin.de>
Tue, 22 Aug 2023 08:17:11 +0000 (10:17 +0200)
Fixes #1811

mkosi/__init__.py

index 0c82ec4d84bf601671ddd8109148156491396756..22e53af1bab5ebef91b0cc5a581e4821ef25f76e 100644 (file)
@@ -1379,8 +1379,12 @@ def configure_ssh(state: MkosiState) -> None:
     if not state.config.ssh:
         return
 
+    unitdir = state.root / "usr/lib/systemd/system"
+    with umask(~0o755):
+        unitdir.mkdir(parents=True, exist_ok=True)
+
     with umask(~0o644):
-        (state.root / "usr/lib/systemd/system/ssh.socket").write_text(
+        (unitdir / "ssh.socket").write_text(
             textwrap.dedent(
                 """\
                 [Unit]
@@ -1398,7 +1402,7 @@ def configure_ssh(state: MkosiState) -> None:
             )
         )
 
-        (state.root / "usr/lib/systemd/system/ssh@.service").write_text(
+        (unitdir / "ssh@.service").write_text(
             textwrap.dedent(
                 """\
                 [Unit]
@@ -1418,8 +1422,11 @@ def configure_ssh(state: MkosiState) -> None:
             )
         )
 
-        presetdir = state.root / "usr/lib/systemd/system-preset"
-        (presetdir / "80-mkosi-ssh.preset").write_text("enable ssh.socket\n")
+    preset = state.root / "usr/lib/systemd/system-preset/80-mkosi-ssh.preset"
+    with umask(~0o755):
+        preset.parent.mkdir(parents=True, exist_ok=True)
+    with umask(~0o644):
+        preset.write_text("enable ssh.socket\n")
 
 
 def configure_initrd(state: MkosiState) -> None: