Linux hostname допустимые символы

Allowed characters in Linux environment variable names

What characters are allowed in Linux environment variable names? My cursory search of man pages and the web did only produce information about how to work with variables, but not which names are allowed. I have a Java program that requires an defined environment variable containing a dot, like com.example.fancyproperty . With Windows I can set that variable, but I had no luck setting it in linux (tried in SuSE and Ubuntu). Is that variable name even allowed?

Luckily, I found that the program is just as happy with a Java system property (declared with a -D command line option), so it works now. Obviously the program looks in both variable sets without telling me. But still I am curious about which environment variable names are allowed.

@AleksandrDubinsky I deleted it. This is similar but about alias definition not exactly environment variables stackoverflow.com/questions/24690640/…

If you’re using Spring, then the default SystemEnvironmentPropertySource will also look up com_example_fancyproperty and COM_EXAMPLE_FANCYPROPERTY .

8 Answers 8

These strings have the form name=value; names shall not contain the character ‘=’. For values to be portable across systems conforming to IEEE Std 1003.1-2001, the value shall be composed of characters from the portable character set (except NUL and as indicated below).

So names may contain any character except = and NUL, but:

Environment variable names used by the utilities in the Shell and Utilities volume of IEEE Std 1003.1-2001 consist solely of uppercase letters, digits, and the ‘_’ (underscore) from the characters defined in Portable Character Set and do not begin with a digit. Other characters may be permitted by an implementation; applications shall tolerate the presence of such names.

So while the names may be valid, your shell might not support anything besides letters, numbers, and underscores.

Читайте также:  Read block device linux

Источник

ОПИСАНИЕ

Имена узлов (hostnames) представляют собой домены; домен — это иерархический список поддоменов, перечисленных через точку; например, имя машины «monet» в поддомене «example» домена «com» записывалось бы в виде «monet.example.com».

Каждый элемент имени узла должен быть от 1 до 63 символов, а полное имя узла, включая точки, может быть не более 253 символов. Допустимые символы в именах: буквы ASCII(7) от a до z, цифры от 0 до 9 и символ переноса (-). Имя узла не может начинаться с переноса.

Имена узлов часто используются клиентскими и серверными программами, которые перед использованием, обычно, должны преобразовать имя в адрес (эта задача, обычно, выполняется getaddrinfo(3) или устаревшей gethostbyname(3)).

Имена узлов в glibc преобразуются инфраструктурой NSS согласно настройке hosts в файле nsswitch.conf. Определитель имён на основе DNS (в NSS — служебный модуль dns) работает по следующему алгоритму:

Если имя состоит из одного компонента, то есть не содержит точки, и если в значении переменной окружения HOSTALIASES указано имя файла, то в этом файле выполняется поиск строки, совпадающей с именем узла. Файл должен содержать строки, которые состоят из двух частей, разделённых пробелом; в первой части задаётся псевдоним узла, а во второй — полное имя узла, которое используется вместо псевдонима. Если при поиске без учёта регистра найден искомый узел в первой части, то обработка останавливается и для поиска используется имя из второй части.

Если искомое имя оканчивается точкой, то эта точка удаляется и оставшееся имя ищется без дальнейшей обработки.

Если искомое имя не оканчивается точкой, то оно ищется со всеми доменами из списка до первого совпадения. По умолчанию, список поиска сначала содержит локальный домен, затем его родительские домены, имеющие не менее 2 компонентов в имени (от длинных к коротким). Например, в домене cs.example.com имя lithium.cchem сначала будет искаться как lithium.cchem.cs.example, а затем как lithium.cchem.example.com. lithium.cchem.com не будет искаться, так как в локальном домене остался только один компонент. Путь поиска по умолчанию можно изменить через системный файл настройки (смотрите resolver(5)).

Читайте также:  Dual boot linux mint and windows

СМ. ТАКЖЕ

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Yuri Kozlov и Иван Павлов

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

Powered by archmanweb, using mandoc for the conversion of manual pages.

The website is available under the terms of the GPL-3.0 license, except for the contents of the manual pages, which have their own license specified in the corresponding Arch Linux package.

Источник

ОПИСАНИЕ¶

Имена узлов (hostnames) представляют собой домены; домен — это иерархический список поддоменов, перечисленных через точку; например, имя машины «monet» в поддомене «example» домена «com» записывалось бы в виде «monet.example.com».

Каждый элемент имени узла должен быть от 1 до 63 символов, а полное имя узла, включая точки, может быть не более 253 символов. Допустимые символы в именах: буквы ASCII(7) от a до z, цифры от 0 до 9 и символ переноса (-). Имя узла не может начинаться с переноса.

Имена узлов часто используются клиентскими и серверными программами, которые перед использованием, обычно, должны преобразовать имя в адрес (эта задача, обычно, выполняется getaddrinfo(3) или устаревшей gethostbyname(3)).

Имена узлов в glibc преобразуются инфраструктурой NSS согласно настройке hosts в файле nsswitch.conf. Определитель имён на основе DNS (в NSS — служебный модуль dns) работает по следующему алгоритму:

Если имя состоит из одного компонента, то есть не содержит точки, и если в значении переменной окружения HOSTALIASES указано имя файла, то в этом файле выполняется поиск строки, совпадающей с именем узла. Файл должен содержать строки, которые состоят из двух частей, разделённых пробелом; в первой части задаётся псевдоним узла, а во второй — полное имя узла, которое используется вместо псевдонима. Если при поиске без учёта регистра найден искомый узел в первой части, то обработка останавливается и для поиска используется имя из второй части.

Читайте также:  Installation linux tar gz

Если искомое имя оканчивается точкой, то эта точка удаляется и оставшееся имя ищется без дальнейшей обработки.

Если искомое имя не оканчивается точкой, то оно ищется со всеми доменами из списка до первого совпадения. По умолчанию, список поиска сначала содержит локальный домен, затем его родительские домены, имеющие не менее 2 компонентов в имени (от длинных к коротким). Например, в домене cs.example.com имя lithium.cchem сначала будет искаться как lithium.cchem.cs.example, а затем как lithium.cchem.example.com. lithium.cchem.com не будет искаться, так как в локальном домене остался только один компонент. Путь поиска по умолчанию можно изменить через системный файл настройки (смотрите resolver(5)).

СМ. ТАКЖЕ¶

ЗАМЕЧАНИЯ¶

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД¶

Русский перевод этой страницы руководства был сделан Yuri Kozlov и Иван Павлов

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

Source file: hostname.7.ru.gz (from manpages-ru 4.18.1-1~bpo11+1)
Source last updated: 2023-04-16T06:11:30Z
Converted to HTML: 2023-05-30T09:36:50Z

Источник

Оцените статью
Adblock
detector