Как редактировать защищённые файлы Mac OS X?
Основа стабильности любой операционной системы — это ограничение доступа к важным файлам, от которых зависит работа компьютера, или попросту «защита от дурака». В Mac OS X, как во всех остальных *nix-системах, эта защита реализована через права доступа, группы и владельцев объектов. Прочитать обо всём этом вы можете в нашем цикле статей о Терминале Mac OS X, а сегодня речь пойдёт не столько о защите, сколько о способах её преодоления.
Зачем это нужно? Рано или поздно любой пользователь Мака сталкивается с необходимостью что-нибудь отредактировать в настройках системы или отдельных программ. Ну а владельцы хакинтошей сталкиваются с этой необходимостью чуть ли не каждый день. Как же обойти хитрую систему присвоения прав доступа, чтобы что-нибудь поменять в системе исключительно ради благой цели?
Стандартным форматом настроек Mac OS X и программ для неё является PLIST. Это обычный текстовый файл, который по умолчанию откроется в текстовом редакторе TextEdit. Теперь представьте, что вы открыли такой файл, внесли все нужные изменения и теперь хотите сохранить его. Но не тут-то было! Вы увидите вот такую ошибку:
Вариант у вас только один — сохранить файл ещё где-нибудь. Но это очень и очень плохой вариант. Во-первых, вы потом не сможете скопировать этот файл в его исходную папку. Система просто не даст вам перезаписать имеющийся файл (и будет права). Ну а если вы удалите старый файл и только затем скопируете в ту же папку отредактированную копию, то она скопируется, но будут нарушены права доступа. А это грозит вам самыми загадочными и непредсказуемыми глюками.
Именно поэтому мы рассмотрим несколько других вариантов.
1) Редактирование через Терминал
Терминал даёт пользователю возможность выполнять действия от имени корневого администратора. А это означает, что вам будет подвластен каждый файл компьютера. Надеемся, нет смысла предупреждать вас об опасности наличия такой власти ;)
В самом Терминале есть несколько встроенных средств редактирования, например, команды nano и vi. Воспользоваться ими проще простого. Сначала нужно приобрести права root-администратора. Введите команду:
sudo -s
Затем вслепую введите пароль и нажмите Enter.
А теперь достаточно ввести:
nano путь к файлу
Например:
nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Или можно ввести nano и пробел, а потом перетащить редактируемый файл в окно Терминала. Останется нажать Enter. Работа с командой vi осуществляется точно так же.
Но редактировать файл в таком режиме — удовольствие не из приятных. Судите сами: никакого управления мышью тут не предвидится, и даже курсор придётся передвигать с клавиатуры.
Полезный совет: чтобы выйти из nano, закройте Терминал или нажмите на клавиатуре Ctrl+X.
2) Запуск текстового редактора с правами администратора
Второй способ более элегантен. Он позволит вам пользоваться обычными программами Mac OS X для правки текста, но запущенными от имени администратора. В этом случае никаких ошибок с правами доступа не возникнет.
Запустите Терминал, введите sudo -s и пароль. Затем нужно будет ввести громоздкую конструкцию типа:
/Applications/TextEdit.app/Contents/MacOS/TextEdit
Заметьте: через Терминал нужно запускать не саму программу (т.е. файл TextEdit.app), а её бинарник, упрятанный внутри программы, в подпапке Contents/MacOS.
После этого TextEdit отлично сможет работать с любыми файлами, но только до первого закрытия программы.
3) Сторонние специализированные программы
Не можем не порекомендовать текстовый редактор TextMate. Это продвинутая версия TextMate, которая делалась в расчёте на программистов, но будет полезна на каждом Маке (а на хакинтоше тем более). К вашим услугам — наглядное форматирование текста, работа с самыми разными кодировками и главное — поддержка работы с защищёнными файлами без дополнительных махинаций в Терминале.
При сохранении защищённого файла TextMate предложит вам ввести пароль, и без проблем сохранит все изменения.
Впрочем, цена — явно не достоинство TextMate. После окончания 30-дневного триала с вас попросят 39 евро. Разработчики оправдываются, указывая на огромное количество встроенных модулей по обработке разных скриптов и языков программирования:
Только вот зачем они рядовому пользователю? Если же цена вас не отпугивает, то можете скачать TextMate по ссылке ниже: