LINUX.ORG.RU

Постоянный резолв собственного имени в терминале


0

1

Заметил это давно, но никогда не мог понять по какой причине ubuntu-хост при выполнении многих терминальных команд начал сам себя резолвить? о_О Сначала это было при командах «sudo», а сейчас прямо через каждый чих себя резолвит. В добавок к этому теперь именно требуется указывать имя железяки в hosts, иначе начинаются проблемы с DHCP.

★★

Ответ на: комментарий от zzdnx

PS1 переменная среды, отвечающая за формирование приглашения ввода в bash.

echo $PS1

Попробуйте уточнить проблему. Резолвинг идёт на любую команду в шелле, или на встроенные (echo, printf) резолвинга нет? Какой терминал, shell, версия ubuntu?

Что такое «имя железяки», которое требуется указывать в hosts?

mky ★★★★★
()
Ответ на: комментарий от mky

ubuntu 12.04, $PS1 стандартиш с момента установки. Шеллом является bash. Так как сейчас не за этой системой - не могу сказать, резолвит-ли она на echo и printf, но практически все команды, выполняемые от SUdo выполняются только после удачного саморезолва. Именно это является причиной того, что в hostname ОБЯЗАТЕЛЬНО НУЖНО ХОТЬ ЧТО-НИБУДЬ ПРОПИСАТЬ! (Иначе убунта сама себя не сможет резолвить и посылает на... В общем приходится грузиться под root`ом и править hostname)

zzdnx ★★
() автор топика
Ответ на: комментарий от zzdnx

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

Может где и есть такой sudo, который понимает, что если в файле sudoers прописано ALL, то резолвить хост не нужно, но я такого не встречал.

Относительно ручной правки /etc/hosts ничего не скажу, не пользовался ни ubuntu, ни dhcp, может в случае с dhcp там есть какая настойка, создающая нужную запись в этом файле.

mky ★★★★★
()
Ответ на: комментарий от mky

Кажись, объяснение получено.

1) При установке ОС требует указать имя будущего хоста.

2) «sudo и должен резолвить имена хостов, у него ведь формат файла такой, что там прописывается имя хоста, на котором можно выполнять определённые команды.»

3) запись в файле «sudoers»

Предварительные итоги:

I Если в sudoers не даны чёткие указания для sudo - то он обязательно должен будет резолвить машину, иначе он «не поймёт» кому должна дала быть адресована команда.

II Есть алиас на sudo в котором чётко прописано что при локальной команде нужно резолвить не localhost, а сетевое имя машины (записаное в hostname), либо sudo отучили от localhost и принудили читать hostname.

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

zzdnx ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.