Понимание имен хостов

Поскольку CentOS/Fedora/Redhat различная ОС гарантирует, чтобы у Вас были строки в файле /etc/sysconfig/network-script/ifcfg-interfacename:

NM_CONTROLLED=no
ONBOOT=yes
4
02.11.2014, 17:27
2 ответа

Согласно комментарию slm, имя системного хоста поддерживается в памяти ядром, и правильный способ получения его программным обеспечением пользовательского уровня - системный вызов gethostname().

Имя хоста по умолчанию фактически компилируется в ядро (linux), так что если вы откатитесь от своего, вы можете установить его таким образом. Ядра дистрибутива обычно используют localhost, я думаю (оно также может быть пустым).

Так как большинство людей, вероятно, не хотят компилировать ядро только для установки имени хоста, есть также системный вызов для его установки, sethostname(); это используется такими командами, как hostname. Обычно во время загрузки это делает служба init, используя значение из /etc/hostname. Однако, это не является обязательным.

Нет никаких ограничений на то, на что вы устанавливаете имя хоста, но обратите внимание, что это не то же самое, что полное доменное имя /etc/hostname (FQDN). FQDN - это имя хоста плюс ваше доменное имя. Если вы используете метод, приведенный ниже, для установки доменного имени, то, вероятно, у вас не должно быть никаких точек в имени хоста.

роль и правильная настройка /etc/hosts по отношению к установке имени хоста (не только для разрешения? Какие имена и куда указывать?)

это для разрешения DNS, но у Патрика есть объяснение того, как его использование для установки доменного имени работает здесь. Это поиск по имени хоста, затем обратный поиск по IP адресу; что-то вроде схемы и путаницы по сравнению с просто установкой с имя хоста --fqdn, но, казалось бы, более обычное явление.

Это не останавливает имя домена от возврата (нет), но, возможно, это не имеет никакого значения.

3
27.01.2020, 20:54

POSIXly:

find / -xdev -type d -exec sh -c 'for d; do ls -lsd "$d"/*; done' sh {} +

-xdev имеет то же влияние, что и -mount , но является переносимым.

Обратите внимание, что это не произойдет в пустом каталоге.

-121--150764-

Я хотел бы добавить еще несколько пунктов здесь.

Кнопка '...' фактически называется подстановкой команды . Цель подстановки команды состоит в том, чтобы вычислить команду, которая помещается внутри обратной линии связи, и предоставить ее результат в качестве аргумента для фактической команды.

Подстановка команды может быть выполнена двумя способами: $ (...) , а другой - '...' . Оба работают одинаково, но форма $ (...) является современным способом и обладает большей четкостью и читаемостью.

И поэтому

sudo chown $(id -u) /somedir

может быть предпочтительнее другого.

И еще одну вещь, которую необходимо отметить здесь, это замена команды связь с правилами предложения bash , как упомянуто в документе bash .

Если подстановка появляется в двойных кавычках, разделение слов и расширение имени файла не выполняется для результатов.

-121--835-

Сначала имя хоста системы инициализируется во время загрузки системы. Имя хоста не скомпилировано с ядром.

В Debian /etc/init.d/hostname.sh запускается как часть сценариев запуска. Этот сценарий считывает имя хоста из /etc/hostname и использует команду hostname для его установки.

Имя хоста системы должно просто идентифицировать себя. Даже если система не подключена к сети, системе необходимо имя для себя, в основном для ведения журнала и других целей. Например, все сообщения журнала имеют имя хоста. Это просто идентифицировать себя.

Hostname не имеет связи с /etc/hosts и полностью использует /etc/hostname .

/etc/hostname должен содержать только часть hostname , а не полное доменное имя.

Ниже вы можете узнать разницу.

$ hostname
kannan

$ hostname -d
oongil.com

$ hostname -f
kannan.oongil.com

Теперь полное доменное имя (FQDN).

Полное доменное имя (FQDN) в основном требуется, если ваша система является частью огромной сети и ее необходимо идентифицировать самостоятельно.

/etc/hosts содержит таблицу поиска имен хостов, и полное доменное имя системы отображается здесь

127,0,1,1 kannan.oongil.com kannan

В системах на основе Debian 127,0,1,1 сопоставляется с полным доменным именем систем. Поэтому при вызове hostname -fqdn система запрашивает /etc/hosts для получения этой информации.

Порядок содержания /etc/hosts очень важен.

Если не требуется запрашивать полное доменное имя /etc/hosts , можно изменить порядок в /etc/nsswitch.conf .

Моя конфигурация приведена ниже, здесь /etc/hosts запрашивается сначала DNS.

хосты:файлы mdns4_minimal [NOTFOUND = return] dns mdns4

Если вам нужно узнать больше о hostname и FQDN , обратитесь к этому потоку рассылки Debian .

2
27.01.2020, 20:54

Теги

Похожие вопросы