diff --git a/proxmox-product-config/src/filesystem_helpers.rs b/proxmox-product-config/src/filesystem_helpers.rs index 9c5be6b4..c5a372fa 100644 --- a/proxmox-product-config/src/filesystem_helpers.rs +++ b/proxmox-product-config/src/filesystem_helpers.rs @@ -1,4 +1,7 @@ +use std::path::Path; + use anyhow::Error; +use nix::sys::stat::Mode; use proxmox_sys::fs::CreateOptions; @@ -7,7 +10,7 @@ use super::{get_api_user, get_priv_user}; /// Return [CreateOptions] for files owned by `api_user.uid/api_user.gid` with mode `0640`. pub fn default_create_options() -> CreateOptions { let api_user = get_api_user(); - let mode = nix::sys::stat::Mode::from_bits_truncate(0o0640); + let mode = Mode::from_bits_truncate(0o0640); proxmox_sys::fs::CreateOptions::new() .perm(mode) .owner(api_user.uid) @@ -20,7 +23,7 @@ pub fn default_create_options() -> CreateOptions { pub fn privileged_create_options() -> CreateOptions { let api_user = get_api_user(); let priv_user = get_priv_user(); - let mode = nix::sys::stat::Mode::from_bits_truncate(0o0640); + let mode = Mode::from_bits_truncate(0o0640); proxmox_sys::fs::CreateOptions::new() .perm(mode) .owner(priv_user.uid) @@ -32,7 +35,7 @@ pub fn privileged_create_options() -> CreateOptions { /// Only the superuser can read and write those files. pub fn secret_create_options() -> CreateOptions { let priv_user = get_priv_user(); - let mode = nix::sys::stat::Mode::from_bits_truncate(0o0600); + let mode = Mode::from_bits_truncate(0o0600); proxmox_sys::fs::CreateOptions::new() .perm(mode) .owner(priv_user.uid) @@ -44,7 +47,7 @@ pub fn secret_create_options() -> CreateOptions { /// Everyone can read, but only the superuser can write those files. This is usually used /// for system configuration files inside "/etc/" (i.e. "/etc/resolv.conf"). pub fn system_config_create_options() -> CreateOptions { - let mode = nix::sys::stat::Mode::from_bits_truncate(0o0644); + let mode = Mode::from_bits_truncate(0o0644); proxmox_sys::fs::CreateOptions::new() .perm(mode) .owner(nix::unistd::ROOT) @@ -55,7 +58,7 @@ pub fn system_config_create_options() -> CreateOptions { pub fn lockfile_create_options() -> CreateOptions { let api_user = get_api_user(); proxmox_sys::fs::CreateOptions::new() - .perm(nix::sys::stat::Mode::from_bits_truncate(0o660)) + .perm(Mode::from_bits_truncate(0o660)) .owner(api_user.uid) .group(api_user.gid) } @@ -63,17 +66,14 @@ pub fn lockfile_create_options() -> CreateOptions { /// Atomically write data to file owned by `priv_user.uid:api-user.gid` with permission `0640` /// /// Only the superuser can write those files, but group 'api-user' can read them. -pub fn replace_privileged_config>( - path: P, - data: &[u8], -) -> Result<(), Error> { +pub fn replace_privileged_config>(path: P, data: &[u8]) -> Result<(), Error> { let options = privileged_create_options(); proxmox_sys::fs::replace_file(path, data, options, true)?; Ok(()) } /// Atomically write data to file owned by `api-user.uid:api-user.gid` with permission `0660`. -pub fn replace_config>(path: P, data: &[u8]) -> Result<(), Error> { +pub fn replace_config>(path: P, data: &[u8]) -> Result<(), Error> { let options = default_create_options(); proxmox_sys::fs::replace_file(path, data, options, true)?; Ok(()) @@ -82,7 +82,7 @@ pub fn replace_config>(path: P, data: &[u8]) -> Result /// Atomically write data to file owned by `priv_user.uid:priv_user.gid` with permission `0600`. /// /// Only the superuser can read and write those files. -pub fn replace_secret_config>(path: P, data: &[u8]) -> Result<(), Error> { +pub fn replace_secret_config>(path: P, data: &[u8]) -> Result<(), Error> { let options = secret_create_options(); proxmox_sys::fs::replace_file(path, data, options, true)?; Ok(()) @@ -92,7 +92,7 @@ pub fn replace_secret_config>(path: P, data: &[u8]) -> /// /// Everyone can read, but only the superuser can write those files. This is usually used /// for system configuration files inside "/etc/" (i.e. "/etc/resolv.conf"). -pub fn replace_system_config>(path: P, data: &[u8]) -> Result<(), Error> { +pub fn replace_system_config>(path: P, data: &[u8]) -> Result<(), Error> { let options = system_config_create_options(); proxmox_sys::fs::replace_file(path, data, options, true)?; Ok(()) @@ -119,7 +119,7 @@ pub unsafe fn create_mocked_lock() -> ApiLockGuard { /// The lock is released as soon as you drop the returned lock guard. /// /// Note: This method needs to be called by user `root` or `api-user`. -pub fn open_api_lockfile>( +pub fn open_api_lockfile>( path: P, timeout: Option, exclusive: bool,