]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fileio: add WRITE_DATA_FILE_MODE_0400 mode
authorLennart Poettering <lennart@amutable.com>
Mon, 9 Mar 2026 12:06:42 +0000 (13:06 +0100)
committerLennart Poettering <lennart@amutable.com>
Thu, 26 Mar 2026 13:34:56 +0000 (14:34 +0100)
src/basic/fileio.c
src/basic/fileio.h

index 66d06484dc98105d87d29c2c4b2d15a71932ffd2..7edf54edf37fee3c0651abe516ccf9520f207ec7 100644 (file)
@@ -1706,7 +1706,7 @@ int write_data_file_atomic_at(
                         return r;
         }
 
-        r = fchmod_umask(fd, 0644);
+        r = fchmod_umask(fd, FLAGS_SET(flags, WRITE_DATA_FILE_MODE_0400) ? 0400 : 0644);
         if (r < 0)
                 return r;
 
index 3e2372c4dddbc7b3446e7731304c431b12190c23..274fdfbd7c89a328defc5f973f77c9f40910d332 100644 (file)
@@ -166,6 +166,7 @@ int fopen_mode_to_flags(const char *mode);
 
 typedef enum WriteDataFileFlags {
         WRITE_DATA_FILE_MKDIR_0755 = 1 << 0,
+        WRITE_DATA_FILE_MODE_0400  = 1 << 1,
 } WriteDataFileFlags;
 
 int write_data_file_atomic_at(int dir_fd, const char *path, const struct iovec *iovec, WriteDataFileFlags flags);