fopen没有使用softlink

时间:2013-11-25 07:12:09

标签: c fopen symlink chroot

Linux- Red Hat

我在/var/ROOT/位置使用chroot运行我的二进制文件 现在两个文件之间有一个软链接

ln -s /usr/local/rmgr.txt /var/ROOT/usr/local/rmgr.txt

ll /usr/local/rmgr.txt

prw-r--r--    1 root     root            39 Nov 25 12:04 /usr/local/rmgr.txt

ll /var/ROOT/usr/local/rmgr.txt

lrwxrwxrwx    1 root     root           39 Nov 25 12:04 /var/ROOT/usr/local/rmgr.txt -> /usr/local/rmgr.txt

在我的二进制文件中我使用了函数fopen

fopen("/usr/local/rmgr.txt","r")

但有些人怎么没有得到这个文件!

Error Opening File : /usr/local/rmgr.txt.

1 个答案:

答案 0 :(得分:3)

Softlink不仅仅是一个包含引用文件路径的小文本文件。这意味着,软链接不能指向chroot()jail之外(根据定义)。引用的路径将从中读出并在chroot()内解释。

硬链接和绑定挂载是特殊的文件系统/内核实体,因此它们可用于交叉chroot()文件访问。