Mac OS X @ change home directory

Соответственно часть, что бы потом не искать по сайтам.

Проблема с изменением домашнего каталога оказалась непростой, хотя я представлял её не стоящей и выеденного яйца. В любом юниксе – открыл с правами root /etc/passwd и исправил каталог. Тут же не всё так просто, тут же сделано всё как и в windows – всё закопано по самое небалуйся.

Итак, если ты в графической среде, никаких проблем – зашел в Accounts, в меню Advanced options и выбрал нужный каталог. А вот когда ты заходишь в систему указав загрузочный параметр -s, всё становится нетривиальным.

Когда входишь с ключом -s, то бишь single mode, то графическая часть не загружается, а значит войти в окна для изменения параметров не получится. Утилита же для выполнения действий из командной строки – dscl отказывается запускаться без загруженного framework.

итак, что бы запустить dscl необходимо выполнить

launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist

а вот потом разные документации говорят о разном. В одних, требуется вылнить

dscl . -create /Users/testuser NFSHomeDirectory /Users/testuser

или

dscl . -create /Users/testuser home /Users/testuser

предварительно удалив параметр

dscl . -delete /Users/testuser home

в других, рекомендуют запустить dscl localhost, а потом уже писать

delete /Users/user home

create /Users/user home /new_working_dir

Это-то и предстоит выяснить. 🙂

А кроме этого, есть еще одна инструкция, в которой приводятся 2 пути решения проблемы:

Easy way:

  • mount -uw /
  • убиваем-переименовываем: /private/var/db/netinfo/local.nidb
  • перегрузитья и система посчитает, что еще не установилась до конца и попросит еще раз добавить пользователя в систему, необходимо ввести того же пользователя и тот же самый пароль, что и вводили при установке системы.

и путь, если есть бакап. Но это для меня не подходит, потому как я не создавал бакапа диска, где стоит система.

А вот, что рекомендует делать “виновница“, если кратно, то

  • загрузка в режиме single user
  • mount -uw /
  • launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist
  • ну, а дальше в их ситуации необходимо снести пароль dscl . -delete /Users/username AuthenticationAuthority и поставить его заново через passwd, а в моей видимо надо использовать синтаксис одного из варианта работы с dscl.

С одним разобрались, другое же – включение возможности заходить рутом.

По постам получается самый простой путь установить пароль пользователя

sudo passwd root

и делов-то. Проверим.

Другой вариант использования скрипта dsenableroot -u user, главное что бы пользователь user имел права администратора.

Поиски привели в каталог /var/db/dslocal/nodes/Default , в котором, по идее, должны находиться все файлы управления пользователями и изменяемые утилитой dscl.

You must be