发布于 2010-10-08 16:25:42
符号链接由内核处理,内核并不关心环境变量。所以,不是。
发布于 2020-01-07 20:30:49
即使符号链接是由内核解析的,您仍然可以使用LD_PRELOAD技巧,包装所有采用路径名的libc函数,并在'readlink‘返回的字符串中展开任何$XYZ组件(参数扩展)。然后将展开的路径提供给被包装的函数。正如jaztik所建议的,在创建链接时,您必须避开shell扩展中的目标路径。
由于注入的库具有对用户环境的完全访问权限,因此这将满足操作的所有期望。
发布于 2010-10-08 16:26:20
是。没问题。实际上,您不会在链接中实际使用$HOME变量,因此它不能用于智能解决方案,例如用户组。执行命令时,shell会转换变量,并在链接中使用变量的内容。
ln -s ~/test /tmp/test
被扩展为
/<path>/<to>/home/test -> /tmp/test
阿。并且只有调用ln的人的环境变量才会起作用。您不能在链接中存储其他人的环境变量。在调用该命令之前,将展开变量。
https://stackoverflow.com/questions/3888809
复制相似问题