mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
0ddd608a6d
Programs run by udev triggers may need to execute the bpf() syscall. Even more so, since on a cgroup v2 system, the only way to set up device access filtering is to install a BPF program on the cgroup in question and one way of passing data to such program is through BPF maps, which can only be access using the bpf() syscall. One such use case was identified in RHBZ#2025264 related to snap-device-helper, and led to RHBZ#2027627 being filed. Unfortunately there is no finer grained control over what gets passed in the syscall, so just enable bpf() and leave fine grained mediation to other security layers (eg. SELinux). Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2027627 Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com>
44 lines
1.3 KiB
SYSTEMD
44 lines
1.3 KiB
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Rule-based Manager for Device Events and Files
|
|
Documentation=man:systemd-udevd.service(8) man:udev(7)
|
|
DefaultDependencies=no
|
|
After=systemd-sysusers.service systemd-hwdb-update.service
|
|
Before=sysinit.target
|
|
ConditionPathIsReadWrite=/sys
|
|
|
|
[Service]
|
|
DeviceAllow=block-* rwm
|
|
DeviceAllow=char-* rwm
|
|
Type=notify
|
|
# Note that udev will reset the value internally for its workers
|
|
OOMScoreAdjust=-1000
|
|
Sockets=systemd-udevd-control.socket systemd-udevd-kernel.socket
|
|
Restart=always
|
|
RestartSec=0
|
|
ExecStart={{ROOTLIBEXECDIR}}/systemd-udevd
|
|
ExecReload=udevadm control --reload --timeout 0
|
|
KillMode=mixed
|
|
TasksMax=infinity
|
|
PrivateMounts=yes
|
|
ProtectClock=yes
|
|
ProtectHostname=yes
|
|
MemoryDenyWriteExecute=yes
|
|
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
|
|
RestrictRealtime=yes
|
|
RestrictSUIDSGID=yes
|
|
SystemCallFilter=@system-service @module @raw-io bpf
|
|
SystemCallErrorNumber=EPERM
|
|
SystemCallArchitectures=native
|
|
LockPersonality=yes
|
|
IPAddressDeny=any
|
|
{{SERVICE_WATCHDOG}}
|