diff --git a/src/boot/ostree-tmpfiles.conf b/src/boot/ostree-tmpfiles.conf index 4cbba0bd..69c2d3f3 100644 --- a/src/boot/ostree-tmpfiles.conf +++ b/src/boot/ostree-tmpfiles.conf @@ -13,5 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see . +# ostree runtime configuration +d /run/ostree 0755 root root - # https://github.com/ostreedev/ostree/issues/393 R! /var/tmp/ostree-unlock-ovl.* diff --git a/tests/inst/src/sysroot.rs b/tests/inst/src/sysroot.rs index 301ef8b3..b10dbcd4 100644 --- a/tests/inst/src/sysroot.rs +++ b/tests/inst/src/sysroot.rs @@ -1,5 +1,8 @@ //! Tests that mostly use the API and access the booted sysroot read-only. +use std::os::unix::prelude::PermissionsExt; +use std::path::Path; + use anyhow::Result; use ostree_ext::prelude::*; use ostree_ext::{gio, ostree}; @@ -45,3 +48,13 @@ fn test_immutable_bit() -> Result<()> { cmd_has_output(sh_inline::bash_command!("lsattr -d /").unwrap(), "-i-")?; Ok(()) } + +#[itest] +fn test_tmpfiles() -> Result<()> { + if skip_non_ostree_host() { + return Ok(()); + } + let metadata = Path::new("/run/ostree").metadata()?; + assert_eq!(metadata.permissions().mode() & !nix::libc::S_IFMT, 0o755); + Ok(()) +}