说明
getenv()函数搜索环境列表以查找环境变量名称,并返回指向相应值字符串的指针。
GNU特定的secure_getenv()函数与getenv()相似,不同之处在于在需要"安全执行"的情况下它返回NULL。加载由调用进程运行的程序时,如果满足以下条件之一,则需要安全执行:
- *
- 进程的有效用户ID与实际用户ID不匹配,或者进程的有效组ID与实际用户ID不匹配(通常是执行set-user-ID或set-group-ID程序的结果);
- *
- 在可执行文件上设置了有效功能位;要么
- *
- 该过程具有非空的允许功能集。
如果由某些Linux安全模块触发,也可能需要安全执行。
secure_getenv()函数旨在用于通用库中,以避免在set-user-ID或set-group-ID程序意外信任环境时可能发生的漏洞。
名称
getenv,secure_getenv-获取环境变量
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
getenv(),secure_getenv() | Thread safety | MT-Safe env |
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。
版本
secure_getenv()首次出现在glibc 2.17中。
Linux程序员手册 第3部分
更新日期: 2017-09-15
语法
#include <stdlib.h> char *getenv(const char *name); char *secure_getenv(const char *name);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
secure_getenv():_GNU_SOURCE
返回值
getenv()函数返回指向环境中值的指针;如果不匹配,则返回NULL。
遵循规范
getenv():POSIX.1-2001,POSIX.1-2008,C89,C99,SVr4、4.3BSD。
secure_getenv()是GNU扩展。
日期:2019-08-20 18:00:27 来源:oir作者:oir