The "statoverride" script appears to work on the first run for each
kernel.  However, any subsequent times the `dpkg-statoverride` command
exits with errorcode 2:

    $ apt-get install something-triggering-dkms

    Processing triggers for linux-image-5.4.0-96-generic (5.4.0-96.109) ...
    /etc/kernel/postinst.d/dkms:
     * dkms: running auto installation service for kernel 5.4.0-96-generic
       ...done.
    /etc/kernel/postinst.d/initramfs-tools:
    update-initramfs: Generating /boot/initrd.img-5.4.0-96-generic
    /etc/kernel/postinst.d/statoverride:
    dpkg-statoverride: error: an override for '/boot/vmlinuz-5.4.0-96-generic' 
already exists; aborting
    run-parts: /etc/kernel/postinst.d/statoverride exited with return code 2
    dpkg: error processing package linux-image-5.4.0-96-generic (--configure):
     installed linux-image-5.4.0-96-generic package post-installation script 
subprocess returned error exit status 1
    Errors were encountered while processing:
     linux-image-5.4.0-96-generic
    
    E: Sub-process /usr/bin/dpkg returned an error code (1)

Adding the `--force-statoverride-add` flag fixed the issue:

    #!/bin/sh
    
    # https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725
    
    set -e
    version="$1"
    if [ -z "$version" ]; then
        exit 0
    fi
    exec dpkg-statoverride --force-statoverride-add --update --add root root 
0644 "/boot/vmlinuz-${version}"


After that change, now the kernel dkms trigger succeeds:

    Setting up linux-image-5.4.0-96-generic (5.4.0-96.109) ...
    Processing triggers for linux-image-5.4.0-96-generic (5.4.0-96.109) ...
    /etc/kernel/postinst.d/dkms:
     * dkms: running auto installation service for kernel 5.4.0-96-generic
       ...done.
    /etc/kernel/postinst.d/initramfs-tools:
    update-initramfs: Generating /boot/initrd.img-5.4.0-96-generic
    /etc/kernel/postinst.d/statoverride:
    dpkg-statoverride: warning: an override for 
'/boot/vmlinuz-5.4.0-96-generic' already exists, but --force specified so will 
be ignored
    /etc/kernel/postinst.d/zz-update-grub:
    Sourcing file `/etc/default/grub'
    Sourcing file `/etc/default/grub.d/init-select.cfg'
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-5.4.0-96-generic
    Found initrd image: /boot/initrd.img-5.4.0-96-generic
    Found linux image: /boot/vmlinuz-5.4.0-94-generic
    Found initrd image: /boot/initrd.img-5.4.0-94-generic
    Found linux image: /boot/vmlinuz-5.4.0-91-generic
    Found initrd image: /boot/initrd.img-5.4.0-91-generic
    Found memtest86+ image: /boot/memtest86+.elf
    Found memtest86+ image: /boot/memtest86+.bin
    Found Ubuntu 20.04.3 LTS (20.04) on /dev/md126p1
    done

If this is to be added as a postinst.d to the libguestfs-tools package,
please don't forget the `--force-statoverride-add` flag... or else we
introduce a new dkms / kernel postinst.d trigger idempotency bug.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/759725

Title:
  The kernel is no longer readable by non-root users

Status in linux package in Ubuntu:
  Won't Fix

Bug description:
  The mode of the latest kernel has changed so it is no longer readable
  by non-root users:

  -rw-r--r-- 1 root root 4336016 2010-10-17 01:37 
/boot/vmlinuz-2.6.35-22-generic
  -rw-r--r-- 1 root root 4336912 2010-11-24 12:46 
/boot/vmlinuz-2.6.35-23-generic
  -rw-r--r-- 1 root root 4523072 2011-03-08 18:47 /boot/vmlinuz-2.6.38-6-generic
  -rw------- 1 root root 4523936 2011-04-11 05:24 /boot/vmlinuz-2.6.38-8-generic

  This prevents people from using this kernel to boot qemu
  virtual machines as non-root.

  Please change the mode back to make the kernel readable.

  ProblemType: Bug
  DistroRelease: Ubuntu 11.04
  Package: linux-image-2.6.38-8-generic 2.6.38-8.42
  Regression: Yes
  Reproducible: Yes
  ProcVersionSignature: Ubuntu 2.6.35-22.35-generic 2.6.35.4
  Uname: Linux 2.6.35-22-generic x86_64
  AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code 
2: ls: cannot access /dev/snd/: No such file or directory
  AplayDevices: aplay: device_list:240: no soundcards found...
  Architecture: amd64
  ArecordDevices: arecord: device_list:240: no soundcards found...
  CRDA: Error: [Errno 2] No such file or directory
  Date: Wed Apr 13 13:05:01 2011
  HibernationDevice: RESUME=UUID=112bf9c4-620e-441f-abb3-aeac6aa15294
  InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007)
  IwConfig:
   lo        no wireless extensions.
   
   eth0      no wireless extensions.
  Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  MachineType: Red Hat KVM
  PciMultimedia:
   
  ProcEnviron:
   LANG=en_GB.UTF-8
   SHELL=/bin/bash
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.35-22-generic 
root=UUID=1efa0b67-17df-484e-980c-8544fa2149fe ro quiet splash
  RelatedPackageVersions:
   linux-restricted-modules-2.6.35-22-generic N/A
   linux-backports-modules-2.6.35-22-generic  N/A
   linux-firmware                             1.50
  RfKill:
   
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 01/01/2007
  dmi.bios.vendor: Seabios
  dmi.bios.version: 0.5.1
  dmi.chassis.type: 1
  dmi.chassis.vendor: Red Hat
  dmi.modalias: 
dmi:bvnSeabios:bvr0.5.1:bd01/01/2007:svnRedHat:pnKVM:pvrRHEL6.0.0PC:cvnRedHat:ct1:cvr:
  dmi.product.name: KVM
  dmi.product.version: RHEL 6.0.0 PC
  dmi.sys.vendor: Red Hat

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


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to