tape: set correct ownership on lock file
This commit is contained in:
parent
2f8809c6bc
commit
988e8de122
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
use std::collections::{HashMap, BTreeMap};
|
use std::collections::{HashMap, BTreeMap};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
use std::os::unix::io::AsRawFd;
|
||||||
|
|
||||||
use anyhow::{bail, Error};
|
use anyhow::{bail, Error};
|
||||||
use serde::{Serialize, Deserialize};
|
use serde::{Serialize, Deserialize};
|
||||||
|
@ -16,6 +17,7 @@ use proxmox::tools::{
|
||||||
fs::{
|
fs::{
|
||||||
open_file_locked,
|
open_file_locked,
|
||||||
replace_file,
|
replace_file,
|
||||||
|
fchown,
|
||||||
file_get_json,
|
file_get_json,
|
||||||
CreateOptions,
|
CreateOptions,
|
||||||
},
|
},
|
||||||
|
@ -126,7 +128,16 @@ impl Inventory {
|
||||||
|
|
||||||
/// Lock the database
|
/// Lock the database
|
||||||
pub fn lock(&self) -> Result<std::fs::File, Error> {
|
pub fn lock(&self) -> Result<std::fs::File, Error> {
|
||||||
open_file_locked(&self.lockfile_path, std::time::Duration::new(10, 0), true)
|
let file = open_file_locked(&self.lockfile_path, std::time::Duration::new(10, 0), true)?;
|
||||||
|
if cfg!(test) {
|
||||||
|
// We cannot use chown inside test environment (no permissions)
|
||||||
|
return Ok(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
let backup_user = crate::backup::backup_user()?;
|
||||||
|
fchown(file.as_raw_fd(), Some(backup_user.uid), Some(backup_user.gid))?;
|
||||||
|
|
||||||
|
Ok(file)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn load_media_db(path: &Path) -> Result<BTreeMap<Uuid, MediaStateEntry>, Error> {
|
fn load_media_db(path: &Path) -> Result<BTreeMap<Uuid, MediaStateEntry>, Error> {
|
||||||
|
|
Loading…
Reference in New Issue