8

О смене юзернейма в MacOS

Ночью сел и часок-другой потратил на то, чтобы поменять username главного аккаунта на MacOS

Штука больше эстетичная, с элементом челленджа и легкой ноткой экстрима в виде возможности потери работоспособности операционной системы, что приведет к её переустановке.

Но я решительно его сменил везде, и вот больше года сижу со старым на ноуте...
Где-то читал что это можно сделать только снаружи системы, с рекавери мода или внешней системы
Формулировки не точные, но суть именно такая была

Но загуглив снова - я нашел официальное руководство на сайте Apple
В нём не хватает инструкции по переименованию директорий и восстановлению символьных ссылок только...

В целом операция довольно простая, притом явно проще, чем для Linux.
UPD. (Для рядового юзера) В линуксе юзернейм меняется всего одной командой:
usermod -l new_username old_username

Просто создаем второго админа, логинимся под ним, в настройках меняем имя пользователя и путь к его домашней директории.
Проблемы могут возникнуть именно со вторым пунктом, когда понадобится переименовать директорию (эт надо сделать вручную).
У меня не хватило любопытства разобраться в том как это сделать, т.к. мне выбивало Permission denied даже под sudo и su.
Видимо, есть еще доп права на эту операцию для вторичных админов.
Так что я просто при помощи su в терминале залогинился под главным пользователем, которому и меняю юзернейм и домашнюю директорию. И из-под него с sudo переименовал его же директорию, словив панику в консоле. (Самая высокая степень критичности ошибки)
Благо что паника не ядра, а каких-то консольных утилит 😂
Потом перепроверил - всё ок, задумка удалась. Директория переименована.
Заменил ему юзернейм и перезагрузил компьютер.

В целом на этом этапе 99% юзерам можно закончить.
Только вот есть один нюанс: этим юзерам не нужно переименовывать пользователя, а уж тем более менять путь домашней директории.
И, скорее, всего они даже не в курсе об их существовании, просто есть Finder, файлы и, в лучшем случае они не называют «директории» - «папками» 🤓

Так вот в системе, особенно в инструментах разработки активно используются символьные ссылки.
И именно тут может крыться дьявол. А дьявол, как мы помним - в деталях.

Мы не только сменили имя пользователя, а и путь к его домашней директории.
И все ссылки, которые вели к её содержимому, с этого момента теперь битые.
А значит у нас перестанут работать множество утилит.

Из первого что приходит на ум, использующее символьные ссылки в своей работе:
yarn, n, кэши, poetry и множество других утилит
В них в первую очередь можно будет столкнуться с проблемами.

Так что пришлось применить знания, которые были получены в процессе пользования семейством линуксовых дистрибутивов:
Был собран список всех битых ссылок при помощи команды:
find . -type l ! -exec test -e {} \; -print > broken-symlinks.txt
Затем этот файл был прочтен и построчно перепроверен Python скриптом
Я не делал никакой унификации, чисто одноразовый проход мне нужен был, так что готового скрипта прикреплять не стану, в силу его отсутствия.
После перепроверки получившегося списка - я убедился что правильно помню как работать с pathlib
(Как по мне, один из лучших вариантов для работы с файловой системой, хотя бывает, в редких случаях, функционала не хватает)
Далее уже пошло как по маслу - собрал данные по ссылкам в переменные, добавил логов через принты, убедился что нет относительных ссылок, отфильтровал и удалил все битые ссылки что не связаны с заменой юзернейма, затем еще одним проходом сделал замену в реальном пути ссылки, попутно ее пересоздавая при помощи операции "удалить + создать" в том же цикле.

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

Ну и финальным штрихом при помощи grep -r "/username" проходимся по всем файлам в домашней директории, подчищаем старые, не нужные файлы и ручками меняем значения конфигов, где был указан абсолютный путь к домашней директории пользователя чтобы восстановить работу оставшихся утилит.

Обычно таких файлов немного. Лично у меня их вышло около 10, часть fish, другая часть docker.

Ну и устаревшие билды кэша packer от Neovim, в отдельной директории, которую я просто снёс, потому что на последнем стриме переписал весь конфиг на Lazy

UPD. Узнал, что в авторский контент можно ссылки на свои ресурсы добавлять.
Мой Телеграм канал:
@cododelia

Лига Сисадминов

2.7K постов19.1K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

1
Автор поста оценил этот комментарий

"операция довольно простая, притом явно проще, чем для Линукса.
Просто создаем второго админа..."
Вы уже выполнили 2 команды.

А вот как сменить имя пользователя в линуксе:

usermod -l new_username old_username

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вы правы.. Уже и забыл )

Сразу думал о том, что фраза сомнительная, но под "проще" в этот раз я имел ввиду, что "без консоли", что значит для обычных юзеров "проще" (понятнее), хотя дальше информация пошла точно не для них.

Я 3 года жил на Linux
(Gnome, KDE, Elementary - первый год после винды. и ArchLinux на Sway - остальные два года)
С линуксом на серверах только работаю сейчас.
Перешел на Mac - в сравнении с виндой, меня приятно удивило сходство с линуксом (yeah, unix way)
Это как круто прокачанный Gnome 😁 (два года назад было такое впечатление)

Ну и приходится мириться с некоторыми нюансами различий систем. Контроля тут всё же поменьше будет.

Автор поста оценил этот комментарий

unix, бессердечная ты сука.
rm -rf / бы сделал, и норм.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

*Осторожно, Вредные Советы* 😂

1
Автор поста оценил этот комментарий
Непонятно. Если в комп с линуксом добавить два хдд по 4 ТБ, то они как будут видны пользователю?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это я не вспомню, но по идее так же как и на винде, в проводнике
Как два разных диска.

Я консолью пользовался, там это /dev/sd{a,b,c,}
И можно смонтировать куда удобно, в том числе в домашнюю директорию, выглядеть это будет просто как поддиректория.
Но на логические диски обычно не разделяют.

Ну и в случае с ноутом - редко бывает возможность добавить ещё один диск, чаще это внешний бокс с диском, что не очень удобно для постоянного исопльзования, если речь не о работе с крупными файлами (Производство медиа контента)

1
Автор поста оценил этот комментарий

инфа прямо в профиле? на маке нельзя делать другие логические диски и там всё хранить?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Физически это сделать можно, но это извращение 🤣

Если сравниваешь с Windows like [диск C / диск D]
То это не актуально для unix подобных систем (MacOS, Linux и тому подобное)

показать ответы
0
Автор поста оценил этот комментарий

не проще создать нового пользователя с необходимым именем и пользоваться им?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если у тебя в текущем пользователе лежит 300gb рабочей инфы - проще вообще не переименовывать 😂
Но если есть сильные позывы сменить юзернейм - тогда проще переименовать.

показать ответы
0
Автор поста оценил этот комментарий
В новых версиях макоси это ничего не даст, там корень в read-only смонтирован, да и куча всяких system integrity protection. Максимум, что получится - удалить юзеров и какой-нибудь не очень важный системный хлам. На все остальное будет permission denied.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Даже имя домашней директории меняется с трудом
А систему снести этой командой вряд-ли получится, согласен)

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества