
Я пытаюсь выяснить и контролировать фактическое имя хоста во время ассоциации точки доступа DHCP.
Изменения в файле /etc/hostname нарушают работу sudo.
Проверка journalctl -u NetworkManager показывает, что Network Manager постоянно устанавливает для себя значение в указанном выше файле. В журналах ассоциаций Dmesg не упоминается имя хоста.
Согласно man NetworkManager.conf, Nm раньше включал опцию имени хоста, позволяющую задавать имя хоста для каждого соединения в файле конфигурации, но теперь это устарело (по какой-то причине, подразумевая, что, возможно, есть более очевидный способ добиться той же функциональности).
Параметр hostname также отображается в dhclient.conf, как и параметр NetworkManager.conf; но Network Manager по-прежнему показывает, что hostname задано в соответствии со значением в /etc/hostname с помощью hostnamed, независимо от записи dhclient.conf:
NetworkManager[9405]:[1595351700.9848] settings: hostname: using hostnamed
NetworkManager[9405]: <info> [1595351700.9849] settings: hostname changed from (none) to "debian"
Это кажется основой безопасности, по крайней мере, если имя хоста можно перехватить или проверить в журналах ассоциаций точек доступа.
Какая ценность на самом деле раздается в ассоциации DHCP и как ее можно легко контролировать?
решение1
Возможно, вы неправильно смотрите на эту проблему. Если вам нужно только одно имя хоста, то вы должны иметь возможность изменить его в /etc/hostname, и все остальное должно работать вокруг него.
Я заметил, что иногда sudo жалуется после изменения имени хоста, потому что не может найти новое имя хоста. Я добавил имя хоста в /etc/hosts, и это исправило проблему.
Вы можете добавить HOSTNAME в /etc/hosts, запустив echo "127.0.0.1 HOSTNAME" >> /etc/hosts
(не забудьте sudo, если он вам нужен). После этого у меня не было проблем с sudo, а имя хоста в /etc/hostname используется для сетевых подключений, таких как dhclient и т. п.
Надеюсь, это поможет решить вашу проблему.
решение2
Кажется, ответ был правильным. Имя хоста можно изменить, изменив верхнюю запись в hosts, читающую 127.0.0.1 hostname debian, на hostname [name], не нарушая sudo.
$ sudo journalctl -u NetworkManager | grep hostname
NetworkManager[5592]: <info> [1595532318.9762] settings: hostname: using hostnamed
NetworkManager[5592]: <info> [1595532318.9763] settings: hostname changed from (none) to "debian"
NetworkManager[7887]: <info> [1595538936.1117] settings: hostname: using hostnamed
NetworkManager[7887]: <info> [1595538936.1117] settings: hostname changed from (none) to "vegetables"
Кроме того, очевидно, что имя хоста зарегистрировано в локальных беспроводных сетях, и ОС, по-видимому, разрешила:
https://documentation.meraki.com/MR/Monitoring_and_Reporting/Hostname_Visibility