]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - TODO
Merge pull request #15703 from poettering/homed-tweak-default-storage
[thirdparty/systemd.git] / TODO
diff --git a/TODO b/TODO
index b2fb1262af2e922b34359ad2d51e15b50855b876..b59ba01208b55b87f1e8ee29128b187b3ee23af0 100644 (file)
--- a/TODO
+++ b/TODO
@@ -22,7 +22,42 @@ Janitorial Clean-ups:
 
 Features:
 
-* journalctl --image= which is like --root= but operates on disk images
+* All tools that support --root= should also learn --image= so that they can
+  operate on disk images directly. Specifically: bootctl, firstboot, tmpfiles,
+  sysusers, systemctl, repart, journalctl, coredumpctl.
+
+* per-service credential system. Specifically: add LoadCredential= (for loading
+  cred from file), AcquireCredential= (for asking user for cred, via
+  ask-password), PassCredential= (for passing on credential systemd itself
+  got). Then, place credentials in a per-service, immutable ramfs instance (so
+  that it cannot be swapped out), destroy after use. Also pass via keyring
+  (with graceful fallback to cover for containers). Define CredentialPath= for
+  defining subdir of /run/credentials/ where to place it. Set $CREDENTIAL_PATH
+  env var for services to the result. Also pass via fd passing (optionally).
+
+* homed: add native recovery key support. use 48 lowercase modhex characters
+  (192bit), show qr code of it, include pattern expression in user record.
+
+* homed: introduce "degraded" state for home directories that weren't cleanly
+  unmounted (use xattr we add and remove on the loop back file)
+
+* homed: during login resize fs automatically towards size goal. Specifically,
+  resize to diskSize if possible, but leave a certain amount (configured by a
+  new value diskLeaveFreeSize) of space free on the backing fs.
+
+* homed: permit multiple private keys to be used locally, and pick the right
+  one for signing records automatically depending on a pre-existing signature
+
+* homed: add a way to "adopt" a home directory, i.e. strip foreign signatures
+  and insert a local signature instead.
+
+* Maybe expose path_is_encrypted() as a new ConditionPathIsEncrypted=?
+
+* busctl: maybe expose a verb "ping" for pinging a dbus service to see if it
+  exists and responds.
+
+* homed: maybe pre-create ~/.cache as subvol so that it can have separate quota
+  easily?
 
 * when systemd-nspawn and suchlike dissect an OS image, and there are multiple
   root partitions, do an strverscmp() on the partition label and boot
@@ -30,17 +65,13 @@ Features:
   thus allows defining OS images which can be A/B updated and we default to the
   newest version automatically, both in nspawn and in sd-boot
 
-* drop sd_bus_message_set_priority() from sd-bus API and documentation as much
-  as we can, it's a kdbus left-over and unlikely to come back on AF_UNIX, since
-  it's not really implementable there.
-
 * cryptsetup/homed: also support FIDO2 HMAC password logic for unlocking
   devices. (see: https://github.com/mjec/fido2-hmac-secret)
 
 * systemd-gpt-auto should probably set x-systemd.growfs on the mounts it
   creates
 
-* homed/userdb: distuingish passwords and recovery keys in the records, since
+* homed/userdb: distinguish passwords and recovery keys in the records, since
   we probably want to use different PBKDF algorithms/settings for them:
   passwords have low entropy but recovery keys should have good entropy key
   hence we can make them quicker to work.
@@ -53,9 +84,6 @@ Features:
 * by default, in systemd --user service bump the OOMAdjust to 100, as privs
   allow so that systemd survives
 
-* honour specifiers in unit files that resolve to some very basic
-  /etc/os-release data, such as ID, VERSION_ID, BUILD_ID, VARIANT_ID.
-
 * cryptsetup: allow encoding key directly in /etc/crypttab, maybe with a
   "base64:" prefix. Useful in particular for pkcs11 mode.
 
@@ -63,7 +91,7 @@ Features:
   systemd-makefs.service instead.
 
 * socket units: allow creating a udev monitor socket with ListenDevices= or so,
-  with matches, then actviate app thorugh that passing socket oveer
+  with matches, then activate app through that passing socket over
 
 * unify on openssl:
   - port sd_id128_get_machine_app_specific() over from khash
@@ -87,11 +115,11 @@ Features:
   that the device paths stay the same, regardless if crypto is used or not.
 
 * systemd-repart: by default generate minimized partition tables (i.e. tables
-  that only covere the space actually used, excluding any free space at the
+  that only cover the space actually used, excluding any free space at the
   end), in order to maximize dd'ability. Requires libfdisk work, see
   https://github.com/karelzak/util-linux/issues/907
 
-* systemd-repart: optionally, allow specifiying a path to initialize new
+* systemd-repart: optionally, allow specifying a path to initialize new
   partitions from, i.e. an fs image file or a source device node. This would
   then turn systemd-repart into a simple installer: with a few .repart files
   you could replicate the host system on another device. a full installer would
@@ -128,9 +156,14 @@ Features:
 
 * systemd-repart: allow config of partition uuid
 
+* systemd-repart: add --make= switch for fallocating a new file of the
+  specified size first.
+
 * userdb: allow username prefix searches in varlink API, allow realname and
   realname substr searches in varlink API
 
+* userdb: allow uid/gid range checks
+
 * userdb: allow existence checks
 
 * pid: activation by journal search expression
@@ -217,7 +250,6 @@ Features:
   - rollback when resize fails mid-operation
   - GNOME's side for forget key on suspend (requires rework so that lock screen runs outside of uid)
   - resize on login?
-  - fstrim on logout?
   - shrink fs on logout?
   - update LUKS password on login if we find there's a password that unlocks the JSON record but not the LUKS device.
   - create on activate?
@@ -227,7 +259,7 @@ Features:
     systemd --user is shut down.
   - logind: maybe keep a "busy fd" as long as there's a non-released session around or the user@.service
   - maybe make automatic, read-only, time-based reflink-copies of LUKS disk images (think: time machine)
-  - distuingish destroy / remove (i.e. currently we can unregister a user, unregister+remove their home directory, but not just remove their home directory)
+  - distinguish destroy / remove (i.e. currently we can unregister a user, unregister+remove their home directory, but not just remove their home directory)
   - in systemd's PAMName= logic: query passwords with ssh-askpassword, so that we can make "loginctl set-linger" mode work
   - fingerprint authentication, pattern authentication, …
   - make sure "classic" user records can also be managed by homed
@@ -1165,7 +1197,7 @@ Features:
      a carrier is lost on a link. It should be removed instantly.
    - expose in the API the following bits:
          - option 15, domain name and/or option 119, search list
-         - option 12, host name and/or option 81, fqdn
+         - option 12, hostname and/or option 81, fqdn
          - option 123, 144, geolocation
          - option 252, configure http proxy (PAC/wpad)
    - provide a way to define a per-network interface default metric value