Add option to enable global namespace (#497)
Disabled by default. To enable/disable use terminal with root. To enable: echo 1 > /sys/module/ksu/parameters/global_namespace_enable To disable: echo 0 > /sys/module/ksu/parameters/global_namespace_enable Value will be reset to 0 (disabled) on reboot.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
#include "linux/fs.h"
|
#include "linux/fs.h"
|
||||||
#include "linux/module.h"
|
#include "linux/module.h"
|
||||||
|
#include "linux/moduleparam.h"
|
||||||
#include "linux/workqueue.h"
|
#include "linux/workqueue.h"
|
||||||
|
|
||||||
#include "allowlist.h"
|
#include "allowlist.h"
|
||||||
@@ -9,6 +10,9 @@
|
|||||||
#include "ksu.h"
|
#include "ksu.h"
|
||||||
#include "uid_observer.h"
|
#include "uid_observer.h"
|
||||||
|
|
||||||
|
int global_namespace_enable;
|
||||||
|
module_param(global_namespace_enable, int, S_IRUSR | S_IWUSR);
|
||||||
|
|
||||||
static struct workqueue_struct *ksu_workqueue;
|
static struct workqueue_struct *ksu_workqueue;
|
||||||
|
|
||||||
bool ksu_queue_work(struct work_struct *work)
|
bool ksu_queue_work(struct work_struct *work)
|
||||||
|
|||||||
@@ -229,7 +229,10 @@ pub fn root_shell() -> Result<()> {
|
|||||||
|
|
||||||
// switch to global mount namespace
|
// switch to global mount namespace
|
||||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||||
if mount_master {
|
let global_namespace_enable =
|
||||||
|
std::fs::read_to_string("/sys/module/ksu/parameters/global_namespace_enable")
|
||||||
|
.unwrap_or("0".to_string());
|
||||||
|
if global_namespace_enable.trim() == "1" || mount_master {
|
||||||
let _ = utils::switch_mnt_ns(1);
|
let _ = utils::switch_mnt_ns(1);
|
||||||
let _ = utils::unshare_mnt_ns();
|
let _ = utils::unshare_mnt_ns();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user