我正在尝试使用FUSE在root用户上安装虚拟FS。
我编译了一个简单的program,它安装了一个包含单个文件(hello
)的只读虚拟FS,其中包含内容Hello world
。
编译程序后,我跑(以root身份)
mkdir /mnt/test
chmod 777 /mnt/test
a.out -d -oallow_other mnt/test
当我以root用户身份运行ls /mnt/test
时,一切都按预期工作。
当我以任何其他用户或任何其他应用程序(explorer / adb shell)运行ls /mnt/test
时,我会收到底层文件系统的内容(在本例中为根文件系统),而不是来自FUSE fs。
在深入研究之后,我发现当用户运行cat /proc/mounts
时,FUSE挂载不会显示,但它确实显示为root用户。 android(或者甚至是linux?)是否有特殊的工具来隐藏特定用户的挂载点?
解决方案: 我决定在initrc中将我的程序作为守护进程运行,并且它运行良好
on post-fs-data
start hello
service hello /sbin/hello
seclabel u:r:su:s0