Відповіді:
Ви можете відкрити екземпляр textedit як root, ввівши повний шлях до фактичного виконуваного файлу:
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
Після відкриття вашої кореневої інстанції ви можете перейти до потрібного вам файлу або зробити це з командного рядка:
sudo su - root -c "open -e /etc/apache2/httpd.conf"
pico .bash_profileдодайте alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', збережіть файл та перезавантажте Terminal. Тепер ви можете просто ввести sudotextдля запуску TextEdit як root.
open -t "/etc/hosts"наприклад. За допомогою TextWrangler ви можете просто ввести edit /etc/hosts.
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"не працює :(
BBEdit - це безкоштовний інструмент для цього в 2019 році, і він замінює всю функціональність TextErangler, і ви можете завантажити його з App Store та веб-сайту розробника.
TextEdit насправді не є правильним інструментом для редагування файлів конфігурацій - замість цього використовуйте TextWrangler . Це безкоштовно, має вбудовану можливість редагувати файли з кореневим доступом з облікового запису адміністратора, а також такі речі, як відкриття невидимих файлів та каталогів, що легко редагують файли через SFTP тощо.
emacsтакож має приємний кольоровий конф-режим.
Ось спосіб уникнути запуску TextEdit як root:
EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf
Після редагування файлу вам потрібно буде залишити копію TextEdit.
sudo -e, іноді відомий як, sudoeditале не в OS X, робить тимчасову копію файлу з дозволом на запит для поточного користувача, викликає редактор на ньому звичайним способом Unix, а потім копіює його назад.
Параметри open: -Wчекає, коли TextEdit завершиться, тому sudoзнає, коли скопіювати файл назад. -nгарантує, що він чекає на окремому екземплярі TextEdit, а не на одному, у вас уже є відкритий, який ви, можливо, не захочете вийти. Крім того, можна замінити -tзамість -eякщо у вас є улюблений текстовий редактор, крім TextEdit.
Якщо у вас вже є EDITORнабір змінних для використання графічного редактора з його власним інструментом командного рядка, здатним чекати (наприклад, TextMate або BBEdit), вам не потрібен жоден із цих хитрощів і ви можете просто використовувати sudo -e <file>безпосередньо.
Оскільки користувач root відключений, єдиний спосіб змусити довільну програму OS X мати права доступу до root - це включити root та увійти як root.
Звичайно, програми можуть використовувати API, щоб запитати систему про автентифікацію та спливати діалогове вікно, яке ви очікуєте, коли запитаєте користувача адміністратора та пароль. TextEdit не має такої функції, тому вам доведеться обійти права доступу до файлів до та після відкриття та запису потрібних файлів.
Ви намагалися sudo open -a texteditвідкрити додаток?
sudo su -щоб запустити оболонку як корінь, і тоді я можу open "/Applications/Textedit.app/Contents/MacOS/TextEdit"успішно працювати . У мене не ввімкнено кореневого користувача, а також я не ввійшов як користувач root.
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file
Треба працювати
/etc/apache2/httpd.confмає дозволи за замовчуванням 0444. Я цілий ранок намагався редагувати цей файл ( emacsвіддалено), але ніколи не думав перевіряти (нові Lion) дозволи.
sudo /Applications/Textedit.app/Contents/MacOS/TextEditтоді просто відкрийте файл з TextEdit