我们在一个嵌入式系统上使用linux,它有busyBox 1.20.2用于各种shell命令.我们有一个非常奇怪的问题,即env现在显示LD_LIBRARY_PATH的值:
@H_404_5@$export LD_LIBRARY_PAT=/usr/bin $export LD_LIBRARY_PATH=/usr/bin $export LD_LIBRARY_PATH1=/usr/bin $env | sort ENV=/etc/profile.environment HISTFILE=/tmp/.ash_history.debug.357 HOME=/home/debug LD_LIBRARY_PAT=/usr/bin LD_LIBRARY_PATH1=/usr/bin LOGNAME=debug MAIL=/var/mail/debug PATH=/home/debug/bin:/usr/bin:/bin:/usr/sbin:/sbin PWD=/home/debug PYTHONPATH=:/home/debug/tools/tools-0.0.0/common SHELL=/bin/bash SHLVL=1 SSH_CLIENT=10.10.10.22 58307 22 SSH_CONNECTION=10.10.10.22 58307 10.10.12.23 22 SSH_TTY=/dev/pts/0 TERM=xterm USER=debug _=/usr/bin/env $ $echo $LD_LIBRARY_PAT /usr/bin $echo $LD_LIBRARY_PATH /usr/bin $echo $LD_LIBRARY_PATH1 /usr/bin
如您所见,LD_LIBRARY_PATH已设置,但它不会显示在env的输出中. AFAIK,它是唯一发生这种情况的环境变量.
任何人都可以解释为什么会这样吗?谢谢!
解决方法:
Linux won’t let you mess with the LD_LIBRARY_PATH因为busyBox(可能)的setuid位已打开. BusyBox在其二进制文件中内置了一堆常见的linux命令,因此需要setuid.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。