[systemd-commits] 2 commits - TODO man/systemd.exec.xml src/core

Lennart Poettering lennart at kemper.freedesktop.org
Fri Mar 22 15:29:50 PDT 2013


 TODO                     |   16 +++++-----------
 man/systemd.exec.xml     |   37 +++++++++++++++++++++++--------------
 src/core/load-fragment.c |    6 ------
 src/core/unit.c          |    9 ++++++++-
 4 files changed, 36 insertions(+), 32 deletions(-)

New commits:
commit 356ce9915ab1a4a1e6dc26954df34936a69e7c12
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Mar 22 23:28:36 2013 +0100

    update TODO

diff --git a/TODO b/TODO
index 7f973d4..d481238 100644
--- a/TODO
+++ b/TODO
@@ -44,6 +44,10 @@ Fedora 19:
 
 Features:
 
+* add ConditionArchitecture= or so
+
+* teach ConditionKernelCommandLine= globs or regexes (in order to match foobar={no,0,off})
+
 * hostnamectl: when a passed pretty hostname also qualifies as low-level name, then only set low-level name, and unset the pretty hostname
 
 * we should log capabilities too
@@ -65,10 +69,6 @@ Features:
 
 * disallow .include from included files
 
-* timedatectl needs to show whether NTP is available at all
-
-* reduce caps of systemd-localed
-
 * safe_atod() is too naive, as it is vulnerable to locale parameters, should be locale independent.
 
 * think about requeuing jobs when daemon-reload is issued? usecase:
@@ -127,8 +127,6 @@ Features:
 
 * use "log level" rather than "log priority" everywhere
 
-* unit_name_mangle() is currently not used on "systemctl enable" and friends, only on "systemctl start"
-
 * ensure sd_journal_seek_monotonic actually works properly.
 
 * timedate: have global on/off switches for auto-time (NTP), and auto-timezone that connman can subscribe to.
@@ -143,7 +141,7 @@ Features:
   so that libudev reports them as present, and systemd's .device units
   will be activated.
 
-* merge service_kill() logic into unit_kill_context() and unify the code paths
+* merge unit_kill_common() and unit_kill_context()
 
 * introduce ExecCondition= in services
 
@@ -174,7 +172,6 @@ Features:
   - logind: spawn user at ..service on login
   - logind: non-local X11 server handling
   - logind: add equivalent to sd_pid_get_owner_uid() to the D-Bus API
-  - pam_systemd: try to get old session id from cgroup, if audit sessionid cannot be determined
   - pam: when leaving a session explicitly exclude the ReleaseSession() caller process from the killing spree
   - logind: GetSessionByPID() should accept 0 as PID value
 
@@ -298,7 +295,6 @@ Features:
 * fedup: generator
 
 * timedated:
-  - timedated: export boolean that clarifies whether NTP is even available
   - timedated: refuse time changes when NTP is on
 
 * clean up date formatting and parsing so that all absolute/relative timestamps we format can also be parsed
@@ -409,8 +405,6 @@ Features:
   - syscall filter: port to libseccomp
   - system-wide seccomp filter
 
-* systemd-analyze: data collection tools should be lightweight (few dependencies); data analysis tools can be heavyweight
-
 * .device aliases need to be implemented with the "following" logic, probably.
 
 * load-fragment: when loading a unit file via a chain of symlinks

commit d91c34f21ff7445dcee3efe2368aebe2d6c266db
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Mar 22 23:25:54 2013 +0100

    exec: Assigning the empty string to CapabilityBoundSet= should drop all caps
    
    Previously, it would set all caps, but it should drop them all, anything
    else makes little sense.
    
    Also, document that this works as it does, and what to do in order to
    assign all caps to the bounding set.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=914705

diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml
index b1cd685..69ee4fc 100644
--- a/man/systemd.exec.xml
+++ b/man/systemd.exec.xml
@@ -719,29 +719,38 @@
                                 for details. Takes a whitespace
                                 separated list of capability names as
                                 read by
-                                <citerefentry><refentrytitle>cap_from_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
+                                <citerefentry><refentrytitle>cap_from_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+                                e.g. <literal>CAP_SYS_ADMIN
+                                CAP_DAC_OVERRIDE
+                                CAP_SYS_PTRACE</literal>.
                                 Capabilities listed will be included
                                 in the bounding set, all others are
                                 removed. If the list of capabilities
-                                is prefixed with ~ all but the listed
-                                capabilities will be included, the
-                                effect of the assignment
-                                inverted. Note that this option also
-                                effects the respective capabilities in
-                                the effective, permitted and
-                                inheritable capability sets, on top of
-                                what <varname>Capabilities=</varname>
+                                is prefixed with <literal>~</literal>
+                                all but the listed capabilities will
+                                be included, the effect of the
+                                assignment inverted. Note that this
+                                option also affects the respective
+                                capabilities in the effective,
+                                permitted and inheritable capability
+                                sets, on top of what
+                                <varname>Capabilities=</varname>
                                 does. If this option is not used the
                                 capability bounding set is not
                                 modified on process execution, hence
                                 no limits on the capabilities of the
                                 process are enforced. This option may
                                 appear more than once in which case
-                                the bounding sets are merged. If the empty
-                                string is assigned to this option the
-                                bounding set is reset, and all prior
-                                settings have no
-                                effect.</para></listitem>
+                                the bounding sets are merged. If the
+                                empty string is assigned to this
+                                option the bounding set is reset to
+                                the empty capability set, and all
+                                prior settings have no effect. If set
+                                to <literal>~</literal> (without any
+                                further argument) the bounding set is
+                                reset to the full set of available
+                                capabilities, also undoing any
+                                previous settings.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index 2204c67..6d90428 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -889,12 +889,6 @@ int config_parse_bounding_set(
         assert(rvalue);
         assert(data);
 
-        if (isempty(rvalue)) {
-                /* An empty assignment resets */
-                *capability_bounding_set_drop = 0;
-                return 0;
-        }
-
         if (rvalue[0] == '~') {
                 invert = true;
                 rvalue++;
diff --git a/src/core/unit.c b/src/core/unit.c
index a1249dc..d43558e 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -2645,7 +2645,14 @@ int unit_kill(Unit *u, KillWho w, int signo, DBusError *error) {
         return UNIT_VTABLE(u)->kill(u, w, signo, error);
 }
 
-int unit_kill_common(Unit *u, KillWho who, int signo, pid_t main_pid, pid_t control_pid, DBusError *error) {
+int unit_kill_common(
+                Unit *u,
+                KillWho who,
+                int signo,
+                pid_t main_pid,
+                pid_t control_pid,
+                DBusError *error) {
+
         int r = 0;
 
         if (who == KILL_MAIN && main_pid <= 0) {



More information about the systemd-commits mailing list