getenv, secure_getenv -
возвращают
значения
переменной
окружения
Standard C library (
libc,
-lc)
#include <stdlib.h>
char *getenv(const char *name);
char *secure_getenv(const char *name);
secure_getenv():
_GNU_SOURCE
Функция
getenv()
ищет в
списке
окружения
переменную
окружения
name и
возвращает
указатель
на
соответствующую
строку
value.
Специальная
функция 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()
возвращает
указатель
на
значение в
окружении
или NULL, если
ничего не
найдено.
Функция
secure_getenv()
впервые
появилась
в glibc версии 2.17.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
getenv(), secure_getenv() |
Безвредность
в нитях |
MT-Safe env |
getenv(): POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
Функция
secure_getenv()
является
расширением
GNU.
Строки в
списке
окружения
имеют вид
имя=значение.
В типичной
реализации
getenv()
возвращает
указатель
на строку в
списке
окружения.
Вызывающий
не должен
изменять
эту строку,
так как это
изменить
окружение
процесса.
Реализации
getenv() не
требуется
быть
реентерабельной.
Строка,
указанная
в
возвращаемом
значение
getenv(), может
быть
выделена
статически
и может
изменяться
после
вызова
getenv() с
помощью
putenv(3),
setenv(3) или
unsetenv(3).
Режим
«безопасного
выполнения»
в
secure_getenv()
управляется
флагом
AT_SECURE
вспомогательного
вектора,
передаваемого
из ядра в
пользовательское
пространство.
clearenv(3),
getauxval(3),
putenv(3),
setenv(3),
unsetenv(3),
capabilities(7),
environ(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Vladislav <
[email protected]>,
Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]