Mac отказывается менять имя хоста - PullRequest
6 голосов
/ 11 ноября 2011

Я пытался выяснить, как использовать postfix на моем Mac, и что-то пошло ужасно неправильно, и я не могу исправить это.

Я считаю, что проблема связана с запуском Postfix.

По сути, Mac, похоже, отказывается менять свое имя хоста.В bash пользователь отображается как «admin @ (null)», если я также наберу «hostname», то мне также присваивается «(null)».

Изменение имени хоста в разделе «Общий доступ из системных настроек» вызывает второй примеризменить (где говорится, например, «Другие пользователи могут получить доступ к общим папкам на этом компьютере, а администраторы всех томов - по адресу afp: // null / или« lion2 ».»), но первый остается нулевым.

Я даже пытался / etc / hostconfig вручную установить имя хоста, но ничего не работает.

Есть ли где-то еще имя хоста, которое пытается быть установлено, но, возможно, повреждено?Или содержит недопустимый символ или что-то?

Это приводит к тому, что Postfix не работает и сообщает:

postfix: предупреждение: valid_hostname: недопустимый символ 40 (десятичное число): (ноль) postfix: fatal: не могу использовать свое собственное имя хоста

Пожалуйста, я действительно надеюсь, что кто-то может помочь мне исправить это.Я пытался часами.

Приветствия,

Скотт

Ответы [ 4 ]

13 голосов
/ 11 ноября 2011

Вы пробовали scutil?

sudo scutil --get pref покажет текущее значение, а sudo scutil --set pref name установит значение имя .pref может быть одним из них:

           ComputerName   The user-friendly name for the system.

           LocalHostName  The local (Bonjour) host name.

           HostName       The name associated with hostname(1) and gethostname(3).

Вот что я получаю на своей машине:

$ sudo scutil --get ComputerName
SteveBook2
$ sudo scutil --get LocalHostName
SteveBook2
$ sudo scutil --get HostName
HostName: not set
4 голосов
/ 14 февраля 2012

Вы должны были попытаться запустить / bin / hostname напрямую, чтобы установить имя хоста на уровне unix / bsd, значения из scutil - это настройки SystemConfiguration, то есть более высокий уровень, к которому unix не обращает внимания.

Совершенно нормально, что sudo scutil --get HostName возвращает не заданное значение, даже если при запуске / bin / hostname показывает имя хоста.

Комуустановите имя хоста run sudo hostname Foo.bar (это в основном идентично вызову sethostname () BSD в коде, заданном другим ответом)

При желании вы можете затем запустить sudo scutil --set HostName Foo.bar, чтобы синхронизировать настройки SystemConfiguration

ПРИМЕЧАНИЕ. Имя хоста в SystemConfiguration может отличаться от LocalHostName и ComputerName, оно также может отличаться от того, что возвращает / bin / hostname , но лучше всего, чтобы все они были синхронизированы, поэтому вы можететакже сделайте:

sudo scutil --set LocalHostName Foo 
sudo scutil --set ComputerName Foo
2 голосов
/ 11 ноября 2011

Все остальные ответы и помощь были высоко оценены, однако после долгих исследований проблема, по-видимому, связана с моим маршрутизатором и iMac: маршрутизатор не позволяет iMac изменить свое имя хоста на стороне клиента ИЛИ, возможно, отправляет странное имя хоста в iMac дляэто использовать.

1 голос
/ 11 ноября 2011

Если вы запустите эту маленькую программу перед запуском postfix, она будет работать?

#include <unistd.h>

int main(int argc, char* argv[]) {
    char host[] = "newhostname";
    sethostname(host, sizeof(host));
    return 0;
}

Я не берусь знать, что еще может зависеть от вашего старого имени хоста - проведите некоторое тестирование на всех ваших сервисах после запуска этого.

Подробности по адресу: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/gethostname.3.html

Обновление

Чтобы скомпилировать и запустить эту маленькую программу, сохраните ее содержимое в файл (подойдет /tmp/newhostname.c) и запустите:

cd /tmp
make newhostname
sudo ./newhostname

По крайней мере, я предполагаю, что ваш make(1) знает, как компилировать из исходников C в исполняемые двоичные файлы с правилами по умолчанию.

Если компилятор еще не установлен, возможно, у кого-то есть идея получше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...