Поскольку CentOS/Fedora/Redhat различная ОС гарантирует, чтобы у Вас были строки в файле /etc/sysconfig/network-script/ifcfg-interfacename
:
NM_CONTROLLED=no
ONBOOT=yes
Согласно комментарию slm, имя системного хоста поддерживается в памяти ядром, и правильный способ получения его программным обеспечением пользовательского уровня - системный вызов gethostname()
.
Имя хоста по умолчанию фактически компилируется в ядро (linux), так что если вы откатитесь от своего, вы можете установить его таким образом. Ядра дистрибутива обычно используют localhost
, я думаю (оно также может быть пустым).
Так как большинство людей, вероятно, не хотят компилировать ядро только для установки имени хоста, есть также системный вызов для его установки, sethostname()
; это используется такими командами, как hostname
. Обычно во время загрузки это делает служба init, используя значение из /etc/hostname
. Однако, это не является обязательным.
Нет никаких ограничений на то, на что вы устанавливаете имя хоста, но обратите внимание, что это не то же самое, что полное доменное имя /etc/hostname (FQDN). FQDN - это имя хоста плюс ваше доменное имя. Если вы используете метод, приведенный ниже, для установки доменного имени, то, вероятно, у вас не должно быть никаких точек в имени хоста.
роль и правильная настройка /etc/hosts по отношению к установке имени хоста (не только для разрешения? Какие имена и куда указывать?)
это для разрешения DNS, но у Патрика есть объяснение того, как его использование для установки доменного имени работает здесь. Это поиск по имени хоста, затем обратный поиск по IP адресу; что-то вроде схемы и путаницы по сравнению с просто установкой с имя хоста --fqdn
, но, казалось бы, более обычное явление.
Это не останавливает имя домена
от возврата (нет)
, но, возможно, это не имеет никакого значения.
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 .