diff --git a/crates/tauri-plugin-clash-verge-sysinfo/src/lib.rs b/crates/tauri-plugin-clash-verge-sysinfo/src/lib.rs index 3d8642145..47be5fb5b 100644 --- a/crates/tauri-plugin-clash-verge-sysinfo/src/lib.rs +++ b/crates/tauri-plugin-clash-verge-sysinfo/src/lib.rs @@ -7,6 +7,8 @@ pub mod commands; #[cfg(windows)] use deelevate::{PrivilegeLevel, Token}; +#[cfg(unix)] +pub use libc; use parking_lot::RwLock; use sysinfo::{Networks, System}; use tauri::{ diff --git a/src-tauri/src/core/manager/state.rs b/src-tauri/src/core/manager/state.rs index e2c9e2302..7494c716b 100644 --- a/src-tauri/src/core/manager/state.rs +++ b/src-tauri/src/core/manager/state.rs @@ -31,6 +31,8 @@ impl CoreManager { let clash_core = Config::verge().await.latest_arc().get_valid_clash_core(); let config_dir = dirs::app_home_dir()?; + #[cfg(unix)] + let previous_mask = unsafe { tauri_plugin_clash_verge_sysinfo::libc::umask(0o007) }; let (mut rx, child) = app_handle .shell() .sidecar(clash_core.as_str())? @@ -47,6 +49,10 @@ impl CoreManager { &IClashTemp::guard_external_controller_ipc(), ]) .spawn()?; + #[cfg(unix)] + unsafe { + tauri_plugin_clash_verge_sysinfo::libc::umask(previous_mask) + }; let pid = child.pid(); logging!(trace, Type::Core, "Sidecar started with PID: {}", pid);