getenv(3) - wariua/manpages-ko GitHub Wiki

NAME

getenv, secure_getenv - ν™˜κ²½ λ³€μˆ˜ μ–»κΈ°

SYNOPSIS

#include <stdlib.h>

char *getenv(const char *name);

char *secure_getenv(const char *name);

glibc κΈ°λŠ₯ 확인 맀크둜 μš”κ±΄ (feature_test_macros(7) μ°Έκ³ ):

secure_getenv():
_GNU_SOURCE

DESCRIPTION

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 ν”„λ‘œκ·Έλž¨μ—μ„œ ν™˜κ²½μ„ 잘λͺ» μ‹ λ’°ν•œ 경우 λ°œμƒν•  수 μžˆλŠ” 취약점듀을 ν”Όν•˜κΈ° μœ„ν•œ 것이닀.

RETURN VALUE

getenv() ν•¨μˆ˜λŠ” ν™˜κ²½ μ•ˆμ˜ 값에 λŒ€ν•œ 포인터λ₯Ό λ°˜ν™˜ν•œλ‹€. μΌμΉ˜ν•˜λŠ” λ³€μˆ˜κ°€ μ—†μœΌλ©΄ NULL을 λ°˜ν™˜ν•œλ‹€.

VERSIONS

glibc 2.17μ—μ„œ secure_getenv()κ°€ 처음 λ“±μž₯ν–ˆλ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)λ₯Ό 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
getenv(), secure_getenv() μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Safe env

CONFORMING TO

getenv(): POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.

secure_getenv()λŠ” GNU ν™•μž₯이닀.

NOTES

ν™˜κ²½ λͺ©λ‘ μ•ˆμ˜ λ¬Έμžμ—΄λ“€μ€ name=value ν˜•νƒœμ΄λ‹€.

일반적인 κ΅¬ν˜„ λ°©μ‹μ—μ„œλŠ” getenv()κ°€ ν™˜κ²½ λͺ©λ‘ λ‚΄μ˜ λ¬Έμžμ—΄μ— λŒ€ν•œ 포인터λ₯Ό λ°˜ν™˜ν•œλ‹€. ν˜ΈμΆœμžκ°€ κ·Έ λ¬Έμžμ—΄μ„ λ³€κ²½ν•˜μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•΄μ•Ό ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ ν™˜κ²½μ„ λ°”κΎΈκ²Œ 될 수 있기 λ•Œλ¬Έμ΄λ‹€.

getenv() κ΅¬ν˜„μ΄ μž¬μ§„μž… κ°€λŠ₯이 아닐 μˆ˜λ„ μžˆλ‹€. getenv()의 λ°˜ν™˜ 값이 κ°€λ¦¬ν‚€λŠ” λ¬Έμžμ—΄μ΄ μ •μ μœΌλ‘œ 할당돼 μžˆμ„ 수 있으며 κ·Έλž˜μ„œ μ΄μ–΄μ§€λŠ” getenv(), putenv(3), setenv(3), unsetenv(3) ν˜ΈμΆœμ— μ˜ν•΄ λ°”λ€” 수 μžˆλ‹€.

μ»€λ„μ—μ„œ μ‚¬μš©μž κ³΅κ°„μœΌλ‘œ μ „λ‹¬λ˜λŠ” 보쑰 벑터에 λ‹΄κΈ΄ AT_SECURE ν”Œλž˜κ·Έκ°€ secure_getenv()의 "μ•ˆμ „ μ‹€ν–‰" λͺ¨λ“œλ₯Ό μ œμ–΄ν•œλ‹€.

SEE ALSO

clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️