我正在使用 unshare 来创建每个进程的挂载,它运行得非常好
unshare -m --map-root-user
Run Code Online (Sandbox Code Playgroud)
但是,在创建了我的绑定安装之后
mount --bind src dst
Run Code Online (Sandbox Code Playgroud)
我想将 UID 更改为我的原始用户,以便whoami
(和其他人)像echo $USER
这样响应我的用户名。
我已经尝试过Simulate chroot with unshare的答案
但是,在做su – user1
之后chroot /
,我得到
su: Authentication failure
(Ignored)
setgid: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我已经在 Ubuntu 18.04 Beta、Debian stretch、openSUSE-Leap-42.3 上测试过这个。全部都是一样。我猜自从这个答案起作用以来,内核中发生了一些变化。
什么是可行且正确的方法来做到这一点(当然没有真正的根)?