我正在尝试proot
在 Ubuntu 22.04 下创建一个具有单独主目录的隔离环境。我正在运行以下命令:
proot -r /home/user/testroot/ -w /home/user -b /bin:/bin! -b /dev -b /etc -b /lib:/lib! -b /lib32:/lib32! -b /lib64:/lib64! -b /libx32:/libx32! -b /proc -b /sbin:/sbin! -b /usr -b /var /bin/bash
运行正常,基本符合我的预期,但在环境中创建的文件存在一个小问题。具体来说,stat
根本找不到它们,除非“主机系统”上存在一个名称完全相同的文件。
user@vbox-ubuntu:~$ ll
ls: cannot access 'testfile_2': No such file or directory
total 16
drwxr-x--- 16 user user 4096 Dec 16 11:55 ./
drwxr-xr-x 3 root root 4096 Jan 26 2023 ../
-rw------- 1 user user 1090 Dec 16 11:26 .bash_history
-rw-r--r-- 1 user user 3817 Feb 2 2023 .bashrc
-rw-rw-r-- 1 user user 0 Dec 16 11:55 testfile
-????????? ? ? ? ? ? testfile_2
因此,在上面的例子中,testfile 存在于 /home/user 中,但 testfile_2 不存在。明确地说,我可以从 testfile_2 读取和写入,但stat
根本看不到它。有趣的是,我还可以用来stat
访问“来宾系统”中未包含的文件:
user@vbox-ubuntu:~$ stat .profile
File: .profile
Size: 807 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 399533 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2023-12-16 11:03:43.648320948 +0000
Modify: 2023-01-26 17:16:25.123261068 +0000
Change: 2023-01-26 17:16:25.123261068 +0000
Birth: 2023-01-26 17:16:25.123261068 +0000
user@vbox-ubuntu:~$ cat .profile
cat: .profile: No such file or directory
这是一个已知的错误proot
,还是我理解错了?