diff options
author | Thomas Linford <tlinford@users.noreply.github.com> | 2021-10-12 14:41:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-12 18:11:16 +0530 |
commit | 45af3e427985be811c6de6c79c3bf931b9ae2439 (patch) | |
tree | 7d5bf40545c94b5d941384aff93e94b279262a87 /zellij-server/src/lib.rs | |
parent | 21901c6e79c0f0d190c42513be27b008752306ff (diff) |
Preserve current umask (#777)
* preserve umask when starting server
* make sure log files are created with explicit permissions
Diffstat (limited to 'zellij-server/src/lib.rs')
-rw-r--r-- | zellij-server/src/lib.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/zellij-server/src/lib.rs b/zellij-server/src/lib.rs index 2e1b901d7..2c92ec49b 100644 --- a/zellij-server/src/lib.rs +++ b/zellij-server/src/lib.rs @@ -17,6 +17,7 @@ use std::{ sync::{Arc, Mutex, RwLock}, thread, }; +use zellij_utils::nix::sys::stat::{umask, Mode}; use zellij_utils::pane_size::Size; use zellij_utils::zellij_tile; @@ -175,9 +176,13 @@ impl SessionState { pub fn start_server(mut os_input: Box<dyn ServerOsApi>, socket_path: PathBuf) { info!("Starting Zellij server!"); + + // preserve the current umask: read current value by setting to another mode, and then restoring it + let current_umask = umask(Mode::all()); + umask(current_umask); daemonize::Daemonize::new() .working_directory(std::env::current_dir().unwrap()) - .umask(0o077) + .umask(current_umask.bits()) .start() .expect("could not daemonize the server process"); |