Closed XDTG closed 2 years ago
@XDTG 你好,书上描述的步骤应该没有问题,按照书上的步骤:
rename(ORIGINAL_LIBNSS, LIBNSS_PATH)
将/original_libnss_files.so.2移动到/lib/x86_64-linux-gnu/libnss_files.so.2,此时的libnss_files.so.2也不再是符号链接,而是实体文件。不过,上面这样操作后确实与实验前不同,libnss_files.so.2不再是符号链接。你提到的操作方式能够保证实验前后libnss_files.so.2都是符号链接。
@brant-ruan 确实,两种步骤都可以,只是感觉书上的操作多余了一步 readlink~,感谢回复
也谢谢你指出,下一次印刷时我们更新一下👍
P42 - 3.2.3.3 第三步:实现逃逸 正文倒数第一行:
此处移动的对象可以为 libnss_files.so.2 这个符号链接文件本身,不需要移动它所指向的库文件。 在 files-services.c 中添加的代码里,通过
rename(ORIGINAL_LIBNSS, LIBNSS_PATH)
恢复原始 libnss_files.so.2,如果是将库文件移动为 original_libnss_files.so.2,则原始的符号链接文件会被恢复成所指向库文件 ( libnss_files-2.27.so ),和此处本意不符。