mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
vmspawn: do not preserve access permissions and xattrs of template OVMF vars
This makes vmspawn work when /usr/share/qemu/edk2-i386-vars.fd is on disk with 0444 permissions as is the case on NixOS. The nix package manager does not store any access permissions, ownership, timestamps, or extended attributes in its package format to increase reproducibility. The only meta-data that is stored is the executable bit. Thus when unpacking a nix package, the executable bit is preserved, but no other access permissions are preserved and all files in /nix/store end up as read-only. This causes the template OVMF vars file to have 0444 permissions. If we preserve those permissions when copying the template file to /tmp that means QEMU can not write to the file and fails. So lets not preserve permissions and keep the 0600 permissions that are set by default.
This commit is contained in:
committed by
Yu Watanabe
parent
3590802fe3
commit
96e481bfbd
@@ -1948,9 +1948,7 @@ static int run_virtual_machine(int kvm_device_fd, int vhost_device_fd) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to copy bytes from %s to %s: %m", ovmf_vars_from, ovmf_vars_to);
|
||||
|
||||
/* These aren't always available so don't raise an error if they fail */
|
||||
(void) copy_xattr(source_fd, NULL, target_fd, NULL, 0);
|
||||
(void) copy_access(source_fd, target_fd);
|
||||
/* This isn't always available so don't raise an error if it fails */
|
||||
(void) copy_times(source_fd, target_fd, 0);
|
||||
|
||||
r = strv_extend_many(
|
||||
|
||||
Reference in New Issue
Block a user