Don't unshare after entering global namespace (#2373)
Global namespace is usually used to publicly apply mounts so calling unshare after entering root namespace is not desired bahavior. This also keeps -M option same as Magisk.
This commit is contained in:
@@ -305,7 +305,6 @@ pub fn run() -> Result<()> {
|
|||||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||||
{
|
{
|
||||||
utils::switch_mnt_ns(1)?;
|
utils::switch_mnt_ns(1)?;
|
||||||
utils::unshare_mnt_ns()?;
|
|
||||||
}
|
}
|
||||||
match command {
|
match command {
|
||||||
Module::Install { zip } => module::install_module(&zip),
|
Module::Install { zip } => module::install_module(&zip),
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ pub fn grant_root(global_mnt: bool) -> Result<()> {
|
|||||||
command.pre_exec(move || {
|
command.pre_exec(move || {
|
||||||
if global_mnt {
|
if global_mnt {
|
||||||
let _ = utils::switch_mnt_ns(1);
|
let _ = utils::switch_mnt_ns(1);
|
||||||
let _ = utils::unshare_mnt_ns();
|
|
||||||
}
|
}
|
||||||
Result::Ok(())
|
Result::Ok(())
|
||||||
})
|
})
|
||||||
@@ -263,7 +262,6 @@ pub fn root_shell() -> Result<()> {
|
|||||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||||
if mount_master {
|
if mount_master {
|
||||||
let _ = utils::switch_mnt_ns(1);
|
let _ = utils::switch_mnt_ns(1);
|
||||||
let _ = utils::unshare_mnt_ns();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
set_identity(uid, gid, &groups);
|
set_identity(uid, gid, &groups);
|
||||||
|
|||||||
@@ -141,12 +141,6 @@ pub fn switch_mnt_ns(pid: i32) -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
|
||||||
pub fn unshare_mnt_ns() -> Result<()> {
|
|
||||||
unshare(UnshareFlags::NEWNS)?;
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn switch_cgroup(grp: &str, pid: u32) {
|
fn switch_cgroup(grp: &str, pid: u32) {
|
||||||
let path = Path::new(grp).join("cgroup.procs");
|
let path = Path::new(grp).join("cgroup.procs");
|
||||||
if !path.exists() {
|
if !path.exists() {
|
||||||
|
|||||||
Reference in New Issue
Block a user