@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b MountAPIVFS = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
- readonly b BindJournalSockets = ...;
+ readonly b BindLogSockets = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s KeyringMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
<!--property MountAPIVFS is not documented!-->
- <!--property BindJournalSockets is not documented!-->
+ <!--property BindLogSockets is not documented!-->
<!--property KeyringMode is not documented!-->
<variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>
- <variablelist class="dbus-property" generated="True" extra-ref="BindJournalSockets"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="BindLogSockets"/>
<variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b MountAPIVFS = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
- readonly b BindJournalSockets = ...;
+ readonly b BindLogSockets = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s KeyringMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
<!--property MountAPIVFS is not documented!-->
- <!--property BindJournalSockets is not documented!-->
+ <!--property BindLogSockets is not documented!-->
<!--property KeyringMode is not documented!-->
<variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>
- <variablelist class="dbus-property" generated="True" extra-ref="BindJournalSockets"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="BindLogSockets"/>
<variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b MountAPIVFS = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
- readonly b BindJournalSockets = ...;
+ readonly b BindLogSockets = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s KeyringMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
<!--property MountAPIVFS is not documented!-->
- <!--property BindJournalSockets is not documented!-->
+ <!--property BindLogSockets is not documented!-->
<!--property KeyringMode is not documented!-->
<variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>
- <variablelist class="dbus-property" generated="True" extra-ref="BindJournalSockets"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="BindLogSockets"/>
<variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b MountAPIVFS = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
- readonly b BindJournalSockets = ...;
+ readonly b BindLogSockets = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s KeyringMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
<!--property MountAPIVFS is not documented!-->
- <!--property BindJournalSockets is not documented!-->
+ <!--property BindLogSockets is not documented!-->
<!--property KeyringMode is not documented!-->
<variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>
- <variablelist class="dbus-property" generated="True" extra-ref="BindJournalSockets"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="BindLogSockets"/>
<variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>
<varname>LiveMountResult</varname>,
<varname>PrivateTmpEx</varname>,
<varname>ImportCredentialEx</varname>, and
- <varname>BindJournalSockets</varname> were added in version 257.</para>
+ <varname>BindLogSockets</varname> were added in version 257.</para>
</refsect2>
<refsect2>
<title>Socket Unit Objects</title>
<varname>PassFileDescriptorsToExec</varname> were added in version 256.</para>
<para><varname>PrivateTmpEx</varname>,
<varname>ImportCredentialEx</varname>, and
- <varname>BindJournalSockets</varname> were added in version 257.</para>
+ <varname>BindLogSockets</varname> were added in version 257.</para>
</refsect2>
<refsect2>
<title>Mount Unit Objects</title>
<varname>MemoryZSwapWriteback</varname> were added in version 256.</para>
<para><varname>PrivateTmpEx</varname>,
<varname>ImportCredentialEx</varname>, and
- <varname>BindJournalSockets</varname> were added in version 257.</para>
+ <varname>BindLogSockets</varname> were added in version 257.</para>
</refsect2>
<refsect2>
<title>Swap Unit Objects</title>
<varname>MemoryZSwapWriteback</varname> were added in version 256.</para>
<para><varname>PrivateTmpEx</varname>,
<varname>ImportCredentialEx</varname>, and
- <varname>BindJournalSockets</varname> were added in version 257.</para>
+ <varname>BindLogSockets</varname> were added in version 257.</para>
</refsect2>
<refsect2>
<title>Slice Unit Objects</title>
</varlistentry>
<varlistentry>
- <term><varname>BindJournalSockets=</varname></term>
+ <term><varname>BindLogSockets=</varname></term>
<listitem><para>Takes a boolean argument. If true, sockets from <citerefentry>
<refentrytitle>systemd-journald.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry>
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_personality, personality, unsigned long);
static BUS_DEFINE_PROPERTY_GET(property_get_ioprio, "i", ExecContext, exec_context_get_effective_ioprio);
static BUS_DEFINE_PROPERTY_GET(property_get_mount_apivfs, "b", ExecContext, exec_context_get_effective_mount_apivfs);
-static BUS_DEFINE_PROPERTY_GET(property_get_bind_journal_sockets, "b", ExecContext, exec_context_get_effective_bind_journal_sockets);
+static BUS_DEFINE_PROPERTY_GET(property_get_bind_log_sockets, "b", ExecContext, exec_context_get_effective_bind_log_sockets);
static BUS_DEFINE_PROPERTY_GET2(property_get_ioprio_class, "i", ExecContext, exec_context_get_effective_ioprio, ioprio_prio_class);
static BUS_DEFINE_PROPERTY_GET2(property_get_ioprio_priority, "i", ExecContext, exec_context_get_effective_ioprio, ioprio_prio_data);
static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_empty_string, "s", NULL);
SD_BUS_PROPERTY("BindReadOnlyPaths", "a(ssbt)", property_get_bind_paths, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("TemporaryFileSystem", "a(ss)", property_get_temporary_filesystems, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("MountAPIVFS", "b", property_get_mount_apivfs, 0, SD_BUS_VTABLE_PROPERTY_CONST),
- SD_BUS_PROPERTY("BindJournalSockets", "b", property_get_bind_journal_sockets, 0, SD_BUS_VTABLE_PROPERTY_CONST),
+ SD_BUS_PROPERTY("BindLogSockets", "b", property_get_bind_log_sockets, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("KeyringMode", "s", property_get_exec_keyring_mode, offsetof(ExecContext, keyring_mode), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("ProtectProc", "s", property_get_protect_proc, offsetof(ExecContext, protect_proc), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("ProcSubset", "s", property_get_proc_subset, offsetof(ExecContext, proc_subset), SD_BUS_VTABLE_PROPERTY_CONST),
if (streq(name, "MountAPIVFS"))
return bus_set_transient_tristate(u, name, &c->mount_apivfs, message, flags, error);
- if (streq(name, "BindJournalSockets"))
- return bus_set_transient_tristate(u, name, &c->bind_journal_sockets, message, flags, error);
+ if (streq(name, "BindLogSockets"))
+ return bus_set_transient_tristate(u, name, &c->bind_log_sockets, message, flags, error);
if (streq(name, "PrivateNetwork"))
return bus_set_transient_bool(u, name, &c->private_network, message, flags, error);
.private_tmp = needs_sandboxing ? context->private_tmp : false,
.mount_apivfs = needs_sandboxing && exec_context_get_effective_mount_apivfs(context),
- .bind_journal_sockets = needs_sandboxing && exec_context_get_effective_bind_journal_sockets(context),
+ .bind_log_sockets = needs_sandboxing && exec_context_get_effective_bind_log_sockets(context),
/* If NNP is on, we can turn on MS_NOSUID, since it won't have any effect anymore. */
.mount_nosuid = needs_sandboxing && context->no_new_privileges && !mac_selinux_use(),
context->ipc_namespace_path ||
context->private_mounts > 0 ||
context->mount_apivfs > 0 ||
- context->bind_journal_sockets > 0 ||
+ context->bind_log_sockets > 0 ||
context->n_bind_mounts > 0 ||
context->n_temporary_filesystems > 0 ||
context->root_directory ||
if (r < 0)
return r;
- r = serialize_item_tristate(f, "exec-context-bind-journal-sockets", c->bind_journal_sockets);
+ r = serialize_item_tristate(f, "exec-context-bind-log-sockets", c->bind_log_sockets);
if (r < 0)
return r;
r = safe_atoi(val, &c->mount_apivfs);
if (r < 0)
return r;
- } else if ((val = startswith(l, "exec-context-bind-journal-sockets="))) {
- r = safe_atoi(val, &c->bind_journal_sockets);
+ } else if ((val = startswith(l, "exec-context-bind-log-sockets="))) {
+ r = safe_atoi(val, &c->bind_log_sockets);
if (r < 0)
return r;
} else if ((val = startswith(l, "exec-context-memory-ksm="))) {
context->directories[EXEC_DIRECTORY_LOGS].n_items > 0))
return true;
- if (exec_context_get_effective_bind_journal_sockets(context))
+ if (exec_context_get_effective_bind_log_sockets(context))
return true;
return false;
.tty_cols = UINT_MAX,
.private_mounts = -1,
.mount_apivfs = -1,
- .bind_journal_sockets = -1,
+ .bind_log_sockets = -1,
.memory_ksm = -1,
.set_login_environment = -1,
};
"%sProtectHome: %s\n"
"%sProtectSystem: %s\n"
"%sMountAPIVFS: %s\n"
- "%sBindJournalSockets: %s\n"
+ "%sBindLogSockets: %s\n"
"%sIgnoreSIGPIPE: %s\n"
"%sMemoryDenyWriteExecute: %s\n"
"%sRestrictRealtime: %s\n"
prefix, protect_home_to_string(c->protect_home),
prefix, protect_system_to_string(c->protect_system),
prefix, yes_no(exec_context_get_effective_mount_apivfs(c)),
- prefix, yes_no(exec_context_get_effective_bind_journal_sockets(c)),
+ prefix, yes_no(exec_context_get_effective_bind_log_sockets(c)),
prefix, yes_no(c->ignore_sigpipe),
prefix, yes_no(c->memory_deny_write_execute),
prefix, yes_no(c->restrict_realtime),
return false;
}
-bool exec_context_get_effective_bind_journal_sockets(const ExecContext *c) {
+bool exec_context_get_effective_bind_log_sockets(const ExecContext *c) {
assert(c);
/* If log namespace is specified, "/run/systemd/journal.namespace/" would be bind mounted to
- * "/run/systemd/journal/", which effectively means BindJournalSockets=yes */
+ * "/run/systemd/journal/", which effectively means BindLogSockets=yes */
if (c->log_namespace)
return true;
- if (c->bind_journal_sockets >= 0)
- return c->bind_journal_sockets > 0;
+ if (c->bind_log_sockets >= 0)
+ return c->bind_log_sockets > 0;
if (exec_context_get_effective_mount_apivfs(c))
return true;
int private_mounts;
int mount_apivfs;
- int bind_journal_sockets;
+ int bind_log_sockets;
int memory_ksm;
PrivateTmp private_tmp;
bool private_network;
int exec_context_get_effective_ioprio(const ExecContext *c);
bool exec_context_get_effective_mount_apivfs(const ExecContext *c);
-bool exec_context_get_effective_bind_journal_sockets(const ExecContext *c);
+bool exec_context_get_effective_bind_log_sockets(const ExecContext *c);
void exec_context_free_log_extra_fields(ExecContext *c);
{{type}}.ProtectHome, config_parse_protect_home, 0, offsetof({{type}}, exec_context.protect_home)
{{type}}.MountFlags, config_parse_exec_mount_propagation_flag, 0, offsetof({{type}}, exec_context.mount_propagation_flag)
{{type}}.MountAPIVFS, config_parse_tristate, 0, offsetof({{type}}, exec_context.mount_apivfs)
-{{type}}.BindJournalSockets, config_parse_tristate, 0, offsetof({{type}}, exec_context.bind_journal_sockets)
+{{type}}.BindLogSockets, config_parse_tristate, 0, offsetof({{type}}, exec_context.bind_log_sockets)
{{type}}.Personality, config_parse_personality, 0, offsetof({{type}}, exec_context.personality)
{{type}}.RuntimeDirectoryPreserve, config_parse_exec_preserve_mode, 0, offsetof({{type}}, exec_context.runtime_directory_preserve_mode)
{{type}}.RuntimeDirectoryMode, config_parse_mode, 0, offsetof({{type}}, exec_context.directories[EXEC_DIRECTORY_RUNTIME].mode)
size_t n_mounts;
} MountList;
-static const BindMount bind_journal_sockets_table[] = {
+static const BindMount bind_log_sockets_table[] = {
{ (char*) "/run/systemd/journal/socket", (char*) "/run/systemd/journal/socket", .read_only = true, .nosuid = true, .noexec = true, .nodev = true, .ignore_enoent = true },
{ (char*) "/run/systemd/journal/stdout", (char*) "/run/systemd/journal/stdout", .read_only = true, .nosuid = true, .noexec = true, .nodev = true, .ignore_enoent = true },
{ (char*) "/run/systemd/journal/dev-log", (char*) "/run/systemd/journal/dev-log", .read_only = true, .nosuid = true, .noexec = true, .nodev = true, .ignore_enoent = true },
/* We assume /run/systemd/journal/ is available if not changing root, which isn't entirely accurate
* but shouldn't matter, as either way the user would get ENOENT when accessing /dev/log */
- if ((!p->root_image && !p->root_directory) || p->bind_journal_sockets) {
+ if ((!p->root_image && !p->root_directory) || p->bind_log_sockets) {
const char *devlog = strjoina(temporary_mount, "/dev/log");
if (symlink("/run/systemd/journal/dev-log", devlog) < 0)
log_debug_errno(errno,
.source_malloc = TAKE_PTR(q),
};
- } else if (p->bind_journal_sockets) {
- r = append_bind_mounts(&ml, bind_journal_sockets_table, ELEMENTSOF(bind_journal_sockets_table));
+ } else if (p->bind_log_sockets) {
+ r = append_bind_mounts(&ml, bind_log_sockets_table, ELEMENTSOF(bind_log_sockets_table));
if (r < 0)
return r;
}
bool private_ipc;
bool mount_apivfs;
- bool bind_journal_sockets;
+ bool bind_log_sockets;
bool mount_nosuid;
ProtectHome protect_home;
[Service]
MountAPIVFS=yes
-BindJournalSockets=yes
+BindLogSockets=yes
BindReadOnlyPaths=/etc/machine-id
BindReadOnlyPaths=-/etc/resolv.conf
BindReadOnlyPaths=/run/dbus/system_bus_socket
[Service]
MountAPIVFS=yes
-BindJournalSockets=yes
+BindLogSockets=yes
BindReadOnlyPaths=/etc/machine-id
BindReadOnlyPaths=/run/dbus/system_bus_socket
DynamicUser=yes
[Service]
MountAPIVFS=yes
-BindJournalSockets=yes
+BindLogSockets=yes
BindReadOnlyPaths=/etc/machine-id
DynamicUser=yes
RemoveIPC=yes
"ProtectClock",
"ProtectControlGroups",
"MountAPIVFS",
- "BindJournalSockets",
+ "BindLogSockets",
"CPUSchedulingResetOnFork",
"LockPersonality",
"ProtectHostname",
systemd-dissect --umount "$IMAGE_DIR/mount"
systemd-dissect --umount "$IMAGE_DIR/mount2"
-# Test BindJournalSockets=
+# Test BindLogSockets=
systemd-run --wait -p RootImage="$MINIMAL_IMAGE.raw" mountpoint /run/systemd/journal/socket
-(! systemd-run --wait -p RootImage="$MINIMAL_IMAGE.raw" -p BindJournalSockets=no ls /run/systemd/journal/socket)
+(! systemd-run --wait -p RootImage="$MINIMAL_IMAGE.raw" -p BindLogSockets=no ls /run/systemd/journal/socket)
(! systemd-run --wait -p RootImage="$MINIMAL_IMAGE.raw" -p MountAPIVFS=no ls /run/systemd/journal/socket)
systemd-run -P -p RootImage="$MINIMAL_IMAGE.raw" cat /usr/lib/os-release | grep -q -F "MARKER=1"
-p RootImage="$MINIMAL_IMAGE.raw" \
-p RootHash="$MINIMAL_IMAGE.foohash" \
-p RootVerity="$MINIMAL_IMAGE.fooverity" \
- -p BindJournalSockets=yes \
+ -p BindLogSockets=yes \
cat /usr/lib/os-release | grep -q -F "MARKER=1"
# Let's use the long option name just here as a test
systemd-run -P \