Firejail --private 无法在主目录中启动 .sh 文件

Firejail --private 无法在主目录中启动 .sh 文件

我可以创建一个 bash 脚本,然后使用带有 private 选项的 firejail 启动它:

phil@GLaDOS:~$ echo "echo success" > /media/phil/Stockage/firejailtest.sh; chmod +x /media/phil/Stockage/firejailtest.sh 
phil@GLaDOS:~$ firejail --noprofile --private /media/phil/Stockage/firejailtest.sh 
Parent pid 117110, child pid 117111
Child process initialized in 8.67 ms
success

Parent is shutting down, bye...

效果很好。

但是,如果我的脚本位于我的主目录或主目录中的任何文件夹中,则上述操作将失败:

phil@GLaDOS:~$ echo "echo success" > /home/phil/firejailtest.sh; chmod +x /home/phil/firejailtest.sh 
phil@GLaDOS:~$ firejail --noprofile --private /home/phil/firejailtest.sh 
Parent pid 117357, child pid 117358
Child process initialized in 8.73 ms
/bin/bash: ligne 1: /home/phil/firejailtest.sh: No such file or directory

Parent is shutting down, bye...

如何使用 firejail 在我的主目录中启动脚本或程序,并使用“private”来确保不会对我的任何文件进行修改?

答案1

man firejail

--private

在临时文件系统中挂载新/root目录。/home/user当沙箱关闭时,所有修改都将被丢弃。

例子:

$ firejail --private firefox

--private-home=file,directory

在临时文件系统中建立一个新的用户主目录,并将列表中的文件和目录复制到新主目录中。列表中的文件和目录必须表示为相对于当前用户的主目录。沙箱关闭时,所有修改都将被丢弃。

例子:

$ firejail --private-home=.mozilla firefox

所有意图和目的的选项都在做同样的事情。所以你可以改用:

firejail --noprofile --private-home=firejailtest.sh /home/phil/firejailtest.sh

您可以验证唯一的区别是这个附加文件:

firejail --noprofile --private find /home/phil

相对:

firejail --noprofile --private-home=firejailtest.sh find /home/phil

吹毛求疵:两个选项都在做几乎相同但不完全相同(因此:上面的“出于所有意图和目的”),可以看出:

 firejail --noprofile --private cat /proc/self/mountinfo

相对:

 firejail --noprofile --private-home=firejailtest.sh cat /proc/self/mountinfo

相关内容