getenv(3) - wariua/manpages-ko GitHub Wiki
getenv, secure_getenv - νκ²½ λ³μ μ»κΈ°
#include <stdlib.h>
char *getenv(const char *name);
char *secure_getenv(const char *name);
glibc κΈ°λ₯ νμΈ λ§€ν¬λ‘ μ건 (feature_test_macros(7) μ°Έκ³ ):
-
secure_getenv()
: _GNU_SOURCE
getenv()
ν¨μλ νκ²½ λͺ©λ‘μμ νκ²½ λ³μ name
μ νμν΄μ λμνλ value
λ¬Έμμ΄ ν¬μΈν°λ₯Ό λ°ννλ€.
GNU νμ μΈ secure_getenv()
ν¨μλ getenv()
μ λΉμ·νλ "μμ μ€ν"μ΄ μꡬλλ κ²½μ°μλ NULLμ λ°ννλ€. νΈμΆ νλ‘μΈμ€κ° λ리λ νλ‘κ·Έλ¨μ΄ μ μ¬λ λ λ€μ μ‘°κ±΄λ€ μ€ νλκ° μ°Έμ΄μμΌλ©΄ μμ μ€νμ΄ μꡬλλ€.
-
νλ‘μΈμ€μ μ€ν¨ μ¬μ©μ IDκ° κ·Έ μ€μ μ¬μ©μ IDμ μΌμΉνμ§ μμκ±°λ νλ‘μΈμ€μ μ€ν¨ κ·Έλ£Ή IDκ° κ·Έ μ€μ κ·Έλ£Ή IDμ μΌμΉνμ§ μμλ€. (λ³΄ν΅ μ΄λ set-user-ID λ΄μ§ set-group-ID νλ‘κ·Έλ¨μ μ€νν κ²°κ³Όλ€.)
-
μ€ν νμΌμ μ€ν¨ μλ₯ λΉνΈκ° μ€μ λΌ μμλ€.
-
νλ‘μΈμ€μ νμ© μλ₯ μ§ν©μ΄ λΉμ΄ μμ§ μλ€.
μ΄λ€ 리λ μ€ λ³΄μ λͺ¨λμ μν΄μ μμ μ€νμ΄ μꡬλ μλ μλ€.
secure_getenv()
ν¨μλ λ²μ© λΌμ΄λΈλ¬λ¦¬λ€μμ μ°κΈ° μν κ²μΌλ‘, set-user-ID λ΄μ§ set-group-ID νλ‘κ·Έλ¨μμ νκ²½μ μλͺ» μ λ’°ν κ²½μ° λ°μν μ μλ μ·¨μ½μ λ€μ νΌνκΈ° μν κ²μ΄λ€.
getenv()
ν¨μλ νκ²½ μμ κ°μ λν ν¬μΈν°λ₯Ό λ°ννλ€. μΌμΉνλ λ³μκ° μμΌλ©΄ NULLμ λ°ννλ€.
glibc 2.17μμ secure_getenv()
κ° μ²μ λ±μ₯νλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
getenv() , secure_getenv()
|
μ€λ λ μμ μ± | MT-Safe env |
getenv()
: POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
secure_getenv()
λ GNU νμ₯μ΄λ€.
νκ²½ λͺ©λ‘ μμ λ¬Έμμ΄λ€μ name=value
ννμ΄λ€.
μΌλ°μ μΈ κ΅¬ν λ°©μμμλ getenv()
κ° νκ²½ λͺ©λ‘ λ΄μ λ¬Έμμ΄μ λν ν¬μΈν°λ₯Ό λ°ννλ€. νΈμΆμκ° κ·Έ λ¬Έμμ΄μ λ³κ²½νμ§ μλλ‘ μ£Όμν΄μΌ νλ€. νλ‘μΈμ€μ νκ²½μ λ°κΎΈκ² λ μ μκΈ° λλ¬Έμ΄λ€.
getenv()
ꡬνμ΄ μ¬μ§μ
κ°λ₯μ΄ μλ μλ μλ€. getenv()
μ λ°ν κ°μ΄ κ°λ¦¬ν€λ λ¬Έμμ΄μ΄ μ μ μΌλ‘ ν λΉλΌ μμ μ μμΌλ©° κ·Έλμ μ΄μ΄μ§λ getenv()
, putenv(3), setenv(3), unsetenv(3) νΈμΆμ μν΄ λ°λ μ μλ€.
컀λμμ μ¬μ©μ 곡κ°μΌλ‘ μ λ¬λλ 보쑰 벑ν°μ λ΄κΈ΄ AT_SECURE
νλκ·Έκ° secure_getenv()
μ "μμ μ€ν" λͺ¨λλ₯Ό μ μ΄νλ€.
clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7)
2017-09-15