]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
man: document that too strict system call filters may affect the service manager
authorLennart Poettering <lennart@poettering.net>
Tue, 25 Oct 2016 14:08:38 +0000 (16:08 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 2 Nov 2016 14:55:24 +0000 (08:55 -0600)
If execve() or socket() is filtered the service manager might get into trouble
executing the service binary, or handling any failures when this fails. Mention
this in the documentation.

The other option would be to implicitly whitelist all system calls that are
required for these codepaths. However, that appears less than desirable as this
would mean socket() and many related calls have to be whitelisted
unconditionally. As writing system call filters requires a certain level of
expertise anyway it sounds like the better option to simply document these
issues and suggest that the user disables system call filters in the service
temporarily in order to debug any such failures.

See: #3993.

man/systemd.exec.xml

index 7daa3ae78ea875ba283e7e158d36a13fb6fa3d52..3c350df11fb1c3aa0602abf9047e313e3dd74577 100644 (file)
         filter is reset, all prior assignments will have no effect. This does not affect commands prefixed with
         <literal>+</literal>.</para>
 
+        <para>Note that strict system call filters may impact execution and error handling code paths of the service
+        invocation. Specifically, access to the <function>execve</function> system call is required for the execution
+        of the service binary — if it is blocked service invocation will necessarily fail. Also, if execution of the
+        service binary fails for some reason (for example: missing service executable), the error handling logic might
+        require access to an additional set of system calls in order to process and log this failure correctly. It
+        might be necessary to temporarily disable system call filters in order to simplify debugging of such
+        failures.</para>
+
         <para>If you specify both types of this option (i.e.
         whitelisting and blacklisting), the first encountered will
         take precedence and will dictate the default action