- 论坛徽章:
- 0
|
linux-sily:/home/huawei/mdn2000/hms/bin # cat test_env.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *pVal = getenv("LD_LIBRARY_PATH");
printf("LD_LIBRARY_PATH=%s\n", pVal);
pVal = getenv("PATH");
printf("PATH=%s\n\n", pVal);
return 0;
}
linux-sily:/home/huawei/mdn2000/hms/bin # gcc test_env.c -o test_env
切换到普通用户执行:
linux-sily /home/huawei/mdn2000/hms/bin > LD_LIBRARY_PATH=abc PATH=cba ./test_env
LD_LIBRARY_PATH=abc // 传递到程序里了
PATH=cba
切换到root,打开程序的设置用户ID权限位:
linux-sily:/home/huawei/mdn2000/hms/bin # chmod 4755 test_env
linux-sily:/home/huawei/mdn2000/hms/bin # l test_env
-rwsr-xr-x 1 huangting root 9268 Jan 7 16:43 test_env*
切换到普通用户执行:
linux-sily /home/huawei/mdn2000/hms/bin > LD_LIBRARY_PATH=abc PATH=cba ./test_env
LD_LIBRARY_PATH=(null) // 此时却没有传递进来
PATH=cba // 而PATH却传进来了
这是为什么?? 试过其他环境量名都没问题,唯独LD_LIBRARY_PATH不行.... |
|