Відповіді:
Ви можете відкрити екземпляр 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