summaryrefslogtreecommitdiffstats
path: root/zellij-server/src/lib.rs
diff options
context:
space:
mode:
authorThomas Linford <tlinford@users.noreply.github.com>2021-10-12 14:41:16 +0200
committerGitHub <noreply@github.com>2021-10-12 18:11:16 +0530
commit45af3e427985be811c6de6c79c3bf931b9ae2439 (patch)
tree7d5bf40545c94b5d941384aff93e94b279262a87 /zellij-server/src/lib.rs
parent21901c6e79c0f0d190c42513be27b008752306ff (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.rs7
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");