Соответственно часть, что бы потом не искать по сайтам.
Проблема с изменением домашнего каталога оказалась непростой, хотя я представлял её не стоящей и выеденного яйца. В любом юниксе – открыл с правами 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.