I have verified the fix according to the test plan above, using
255.4-1ubuntu8.1 from noble-proposed. Note, as I mentioned in an earlier
comment, this fix is NOT available on Desktop with TPM FDE until the
appropriate snap is rebuilt.

I have previously prepared a noble VM, and installed dracut for
generating the initrd, which means running systemd in the initrd.
Currently, I can see the AppArmor denials for rsyslog:

ubuntu@ubuntu:~$ sudo dmesg | grep rsyslog
[    2.816998] systemd[1]: unit_file_build_name_map: normal unit file: 
/usr/lib/systemd/system/rsyslog.service
[    5.588869] audit: type=1400 audit(1716388183.334:149): apparmor="STATUS" 
operation="profile_replace" info="same as current profile, skipping" 
profile="unconfined" name="rsyslogd" pid=993 comm="apparmor_parser"
[    5.676353] audit: type=1400 audit(1716388183.422:150): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/notify" pid=1055 comm="rsyslogd" 
requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[    5.676388] audit: type=1400 audit(1716388183.422:151): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=1055 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[    5.676407] audit: type=1400 audit(1716388183.422:152): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=1055 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[    5.676425] audit: type=1400 audit(1716388183.422:153): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=1055 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[    5.676440] audit: type=1400 audit(1716388183.422:154): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=1055 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[   95.610731] audit: type=1400 audit(1716388273.356:166): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=1055 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[   95.974029] audit: type=1400 audit(1716388273.719:167): apparmor="STATUS" 
operation="profile_replace" info="same as current profile, skipping" 
profile="unconfined" name="rsyslogd" pid=2072 comm="apparmor_parser"
[   96.010658] audit: type=1400 audit(1716388273.756:168): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/notify" pid=2073 comm="rsyslogd" 
requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[   96.010664] audit: type=1400 audit(1716388273.756:169): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=2073 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[   96.010666] audit: type=1400 audit(1716388273.756:170): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=2073 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[   96.010669] audit: type=1400 audit(1716388273.756:171): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=2073 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
[   96.010670] audit: type=1400 audit(1716388273.756:172): apparmor="DENIED" 
operation="sendmsg" class="file" info="Failed name lookup - disconnected path" 
error=-13 profile="rsyslogd" name="systemd/journal/dev-log" pid=2073 
comm="rsyslogd" requested_mask="w" denied_mask="w" fsuid=102 ouid=0
ubuntu@ubuntu:~$ apt policy systemd
systemd:
  Installed: 255.4-1ubuntu8
  Candidate: 255.4-1ubuntu8
  Version table:
     255.4-1ubuntu8.1 100
        100 http://archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
 *** 255.4-1ubuntu8 500
        500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages
        100 /var/lib/dpkg/status


Now, I install systemd from noble-proposed, and then re-generate the initrd so 
that the patched systemd is in the initrd:

ubuntu@ubuntu:~$ sudo apt install systemd -y -t noble-proposed
[ ... ]
ubuntu@ubuntu:~$ sudo dracut --force
dracut[I]: Executing: /usr/bin/dracut --force
dracut[I]: Module 'mksh' will not be installed, because command 'mksh' could 
not be found!
dracut[I]: Module 'warpclock' will not be installed, because command 'hwclock' 
could not be found!
dracut[I]: Module 'systemd-pcrphase' will not be installed, because command 
'/usr/lib/systemd/systemd-pcrphase' could not be found!
dracut[I]: Module 'systemd-timesyncd' will not be installed, because command 
'/usr/lib/systemd/systemd-timesyncd' could not be found!
dracut[I]: Module 'modsign' will not be installed, because command 'keyctl' 
could not be found!
dracut[I]: Module 'dbus-broker' will not be installed, because command 
'dbus-broker' could not be found!
dracut[I]: Module 'rngd' will not be installed, because command 'rngd' could 
not be found!
dracut[I]: Module 'plymouth' will not be installed, because command 
'plymouth-set-default-theme' could not be found!
dracut[I]: Module 'btrfs' will not be installed, because command 'btrfs' could 
not be found!
dracut[I]: Module 'dmraid' will not be installed, because command 'dmraid' 
could not be found!
dracut[I]: Module 'multipath' will not be installed, because command 
'multipath' could not be found!
dracut[I]: Module 'pcsc' will not be installed, because command 'pcscd' could 
not be found!
dracut[I]: Module 'tpm2-tss' will not be installed, because command 'tpm2' 
could not be found!
dracut[I]: Module 'nvmf' will not be installed, because command 'nvme' could 
not be found!
dracut[I]: Module 'biosdevname' will not be installed, because command 
'biosdevname' could not be found!
dracut[I]: Module 'memstrack' will not be installed, because command 
'memstrack' could not be found!
dracut[I]: memstrack is not available
dracut[I]: If you need to use rd.memdebug>=4, please install memstrack and 
procps-ng
dracut[I]: *** Including module: systemd ***
dracut[I]: *** Including module: systemd-initrd ***
dracut[I]: *** Including module: console-setup ***
dracut[I]: *** Including module: i18n ***
dracut[I]: *** Including module: crypt ***
dracut[I]: *** Including module: dm ***
dracut[I]: *** Including module: kernel-modules ***
dracut[I]: *** Including module: kernel-modules-extra ***
dracut[I]: *** Including module: lvm ***
dracut[I]: *** Including module: mdraid ***
dracut[I]: *** Including module: nvdimm ***
dracut[I]: *** Including module: overlay-root ***
dracut[I]: *** Including module: qemu ***
dracut[I]: *** Including module: lunmask ***
dracut[I]: *** Including module: resume ***
dracut[I]: *** Including module: rootfs-block ***
dracut[I]: *** Including module: terminfo ***
dracut[I]: *** Including module: udev-rules ***
dracut[I]: *** Including module: virtfs ***
dracut[I]: *** Including module: virtiofs ***
dracut[I]: *** Including module: dracut-systemd ***
dracut[I]: *** Including module: usrmount ***
dracut[I]: *** Including module: base ***
dracut[I]: *** Including module: fs-lib ***
dracut[I]: *** Including module: shutdown ***
dracut[I]: *** Including modules done ***
dracut[I]: *** Installing kernel module dependencies ***
dracut[I]: *** Installing kernel module dependencies done ***
dracut[I]: *** Resolving executable dependencies ***
dracut[I]: *** Resolving executable dependencies done ***
dracut[I]: *** Hardlinking files ***
dracut[I]: *** Hardlinking files done ***
dracut[I]: *** Generating early-microcode cpio image ***
dracut[I]: *** Constructing AuthenticAMD.bin ***
dracut[I]: *** Constructing GenuineIntel.bin ***
dracut[I]: *** Store current command line parameters ***
dracut[I]: *** Stripping files ***
dracut[I]: *** Stripping files done ***
dracut[I]: *** Creating image file '/boot/initrd.img-6.8.0-31-generic' ***
dracut[I]: Using auto-determined compression method 'pigz'
dracut[I]: *** Creating initramfs image file 
'/boot/initrd.img-6.8.0-31-generic' done ***
ubuntu@ubuntu:~$ sudo reboot

After the reboot:

ubuntu@ubuntu:~$ journalctl -b --grep "Switching root"
May 22 10:33:50 localhost @ystemctl[467]: Switching root - root: /sysroot; 
init: n/a
May 22 10:33:50 localhost systemd[1]: Switching root.
ubuntu@ubuntu:~$ sudo dmesg | grep rsyslog
[sudo] password for ubuntu: 
[    2.278177] systemd[1]: unit_file_build_name_map: normal unit file: 
/usr/lib/systemd/system/rsyslog.service
ubuntu@ubuntu:~$ systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: 
enabled)
     Active: active (running) since Wed 2024-05-22 10:33:53 EDT; 59s ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             man:rsyslog.conf(5)
             https://www.rsyslog.com/doc/
   Main PID: 1055 (rsyslogd)
      Tasks: 4 (limit: 4608)
     Memory: 6.7M (peak: 7.0M)
        CPU: 513ms
     CGroup: /system.slice/rsyslog.service
             └─1055 /usr/sbin/rsyslogd -n -iNONE

May 22 10:33:53 ubuntu rsyslogd[1055]: rsyslogd's groupid changed to 102
May 22 10:33:53 ubuntu rsyslogd[1055]: rsyslogd's userid changed to 102
May 22 10:33:53 ubuntu rsyslogd[1055]: [origin software="rsyslogd" 
swVersion="8.2312.0" x-pid="1055" x-info="https://>
May 22 10:33:53 ubuntu systemd[1]: rsyslog.service: Got notification message 
from PID 1055 (READY=1)
May 22 10:33:53 ubuntu systemd[1]: rsyslog.service: Changed start -> running
May 22 10:33:53 ubuntu systemd[1]: rsyslog.service: Job 290 
rsyslog.service/start finished, result=done
May 22 10:33:53 ubuntu systemd[1]: Started rsyslog.service - System Logging 
Service.
May 22 10:33:54 ubuntu systemd[1]: rsyslog.service: System call riscv_hwprobe 
is not known, ignoring.
May 22 10:33:54 ubuntu systemd[1]: /usr/lib/systemd/system/rsyslog.service:21: 
System call riscv_hwprobe is not known>
May 22 10:33:54 ubuntu systemd[1]: rsyslog.service: Changed dead -> running
ubuntu@ubuntu:~$ apt policy systemd
systemd:
  Installed: 255.4-1ubuntu8.1
  Candidate: 255.4-1ubuntu8.1
  Version table:
 *** 255.4-1ubuntu8.1 100
        100 http://archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     255.4-1ubuntu8 500
        500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages

Hence, with the patched systemd in the initrd, we no longer see the
AppArmor denials, and rsyslog starts normally.


** Tags removed: verification-needed-noble
** Tags added: verification-done-noble

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2064096

Title:
  Services fail to start in noble deployed with TPM+FDE

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2064096/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to