VPN перейменував ваш Mac? Порівняйте три значення імені хоста
Змінене запрошення Terminal — не перейменування. ComputerName, LocalHostName і HostName зберігають різні значення, і одне з них часто просто не задане.
Запрошення, яке раніше показувало одне, тепер показує інше, а з'єднанням, яке змінилося, був VPN. Це всі докази, які має більшість, перш ніж зробити висновок, що Mac перейменували, і їх недостатньо. macOS зберігає щонайменше три окремі значення імені, кожне має інше завдання, а запрошення оболонки показує щонайбільше одне з них так, що його легко прочитати неправильно.
Їх порівняння потребує трьох команд і вирішує питання до того, як хтось щось змінить.
Три значення, три завдання
Усі три — рядки, які система охоче повідомить, і спокуса в тому, щоб вважати перше знайдене значення авторитетним. Так користувач зрештою «виправляє» не те поле і спостерігає, як симптом зберігається.
| Value | What it is responsible for |
|---|---|
ComputerName | The friendly name a person sees in About and on the network browser; this is the one users mean by "my Mac's name" |
LocalHostName | The Bonjour name used on the local link, usually shown with a .local suffix in Sharing |
HostName | An explicitly configured host name that may simply not be set at all |
Третій рядок — місце, де починається більшість плутанини. Незадане HostName — нормальний стан, а не пошкодження, і воно означає, що система звертається до інших джерел, коли їй потрібне ім'я хоста. Читання цієї порожнечі як пошкодження веде до виправлення, яке ніколи не було потрібним. Воно також приховує справжнє питання, яке не в тому, як називається машина, а в тому, яке ім'я використовує конкретний пошук чи запрошення в той момент. Дайте відповідь на це, і порожнє значення перестане виглядати як дефект.
Спочатку прочитайте, потім пишіть
Ці три команди лише повідомляють значення. Вони нічого не змінюють, тому їх безпечно запускати під час розслідування.
scutil --get ComputerName
scutil --get LocalHostName
scutil --get HostName
Запустіть їх у тій самій локальній сесії до та після дозволеного підключення VPN і занотуйте, яке значення справді відрізняється. Якщо нічого не відрізняється, а запрошення все ще виглядає неправильно, ім'я ніколи не було проблемою: щось у конфігурації оболонки або у віддаленій сесії показує інший рядок.
Посібник Apple про імена комп'ютерів і локальні імена хостів розміщує дружнє ім'я в розділах General і About, а локальне ім'я — у General і Sharing. Він також описує автоматичний суфікс, який додається, коли інший Mac на тому самому з'єднанні вже використовує ім'я, і це варто знати, перш ніж вважати несподіване число доказом втручання.
Що насправді доводить запрошення оболонки
Запрошення — це рядок, який будує оболонка, і його елемент імені хоста може походити з розгорнутого імені хоста, його скороченої форми або значення, жорстко записаного у файлі профілю. Воно може також належати сесії SSH на зовсім іншій машині, що є найменш ефектним поясненням і безумовно найчастішим для запрошення, яке змінилося в момент підключення VPN.
Перевірте, де ви перебуваєте, перш ніж перевіряти, як вас звати. Запустіть hostname і порівняйте його з трьома збереженими значеннями, потім подивіться на налаштування запрошення оболонки, чи показує воно хост узагалі. Якщо запрошення містить буквальний рядок, який хтось ввів у файл конфігурації роки тому, жодна зміна системи ніколи не змусить його збігтися.
Порівняння важливе і для звіту. Запрошення, яке виглядає інакше, і збережене ComputerName, яке справді змінилося, — це дві знахідки з двома різними власниками, і об'єднання їх в одне речення відправляє наступного інженера не туди.
Де VPN може законно торкнутися іменування
VPN змінює те, які резолвери та домени пошуку є актуальними, і може передати клієнту ім'я хоста через DHCP, якщо клієнт налаштований приймати його. Це реальний механізм, і він також вужчий за «VPN перейменував мій Mac». Те, що резолвер змінює, яке ім'я розв'язується для даної адреси, не переписує збережені локальні значення.
Тому розділіть два питання. Чи відрізняється власна ідентичність машини, чи відрізняється ім'я, яке вона використовує, щоб дістатися чогось іншого? На перше відповідають три збережені значення; на друге — запити DNS і використовуваний профіль з'єднання. Якщо вважати їх одним питанням, зміни налаштувань ідентичності відбуваються у відповідь на проблему розв'язання імен.
Якщо постійне ім'я хоста справді потрібне
Встановлення значення — це навмисна адміністративна дія, а не косметична перевага, і значення має надходити від того, хто володіє політикою іменування машини. Перезапис керованого імені, щоб запрошення виглядало знайомим, може зламати перевірки сертифікатів, моніторинг і все інше, що ідентифікує хост.
Там, де зміна справді потрібна, той самий інструмент, який прочитав значення, їх і записує, а HostName приймає повністю кваліфіковане ім'я, тоді як два інші очікують локальні форми. Запишіть, що ви змінили і чому, бо це саме той вид правки, який дивує наступну людину, що гляне на машину.
Для більшості звітів правильна відповідь менша, ніж припускає питання: прочитайте всі три значення, визначте, яке відрізняється, і виправте лише його. Запрошення було симптомом чогось, і три команди підкажуть, чого саме.