Як відкрити файл як корінь у TextEdit на Lion?


13

Як відкрити файл як root у TextEdit? Я намагався ці команди як root, але TextEdit завжди говорить, що він заблокований:

open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf

І звичайно sudo !!це не має ніякого значення.

Відповіді:


14

Ви можете відкрити екземпляр textedit як root, ввівши повний шлях до фактичного виконуваного файлу:

sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"

Після відкриття вашої кореневої інстанції ви можете перейти до потрібного вам файлу або зробити це з командного рядка:

sudo su - root -c "open -e /etc/apache2/httpd.conf"

Спасибі, спрацювало! sudo /Applications/Textedit.app/Contents/MacOS/TextEditтоді просто відкрийте файл з TextEdit
Znarkus

Якщо ви не хочете вводити це щоразу, коли ви можете створити псевдонім, перейдіть у свою домашню директорію у терміналі, тоді pico .bash_profileдодайте alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', збережіть файл та перезавантажте Terminal. Тепер ви можете просто ввести sudotextдля запуску TextEdit як root.
webbiedave

Як вказували інші відповіді, для цього в одному вкладиші єдиним реальним варіантом є створення стороннього редактора, який його підтримує. Потім просто введіть, open -t "/etc/hosts"наприклад. За допомогою TextWrangler ви можете просто ввести edit /etc/hosts.
Крегокс

2
Яке жахливе користувацьке враження! Чи не існує простішого способу?
Марк

2
Що ж, на моєму Yosemite 10.10.2 sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"не працює :(
де Суса

8

BBEdit - це безкоштовний інструмент для цього в 2019 році, і він замінює всю функціональність TextErangler, і ви можете завантажити його з App Store та веб-сайту розробника.


TextEdit насправді не є правильним інструментом для редагування файлів конфігурацій - замість цього використовуйте TextWrangler . Це безкоштовно, має вбудовану можливість редагувати файли з кореневим доступом з облікового запису адміністратора, а також такі речі, як відкриття невидимих ​​файлів та каталогів, що легко редагують файли через SFTP тощо.


emacsтакож має приємний кольоровий конф-режим.
msanford

Це, здається, не працює для мене в Гірському Леві. Я отримую помилку при спробі збереження системних файлів конфігурації в TextWrangler. Чи змінилося це?
Simon Simon

@Simon: Здається, що у вас є версія TextWrangler з App Store, а не пряме завантаження з barebones.com . Якщо це так, у нього було вилучено кілька функцій (включаючи цю), щоб відповідати політиці безпеки App Store; тому скиньте його і отримайте натомість пряму версію!
Гордон Девіссон

Що робити, якщо ви перебуваєте на іноземному Mac без Інтернету? У 2 хакерських термінальних лініях прийняті рішення по - , як і раніше в цілому краще. Але для практичного щоденного використання я весь час їду з третьою стороною! :-)
Крегокс

6

Ось спосіб уникнути запуску 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>безпосередньо.


2

Оскільки користувач root відключений, єдиний спосіб змусити довільну програму OS X мати права доступу до root - це включити root та увійти як root.

Звичайно, програми можуть використовувати API, щоб запитати систему про автентифікацію та спливати діалогове вікно, яке ви очікуєте, коли запитаєте користувача адміністратора та пароль. TextEdit не має такої функції, тому вам доведеться обійти права доступу до файлів до та після відкриття та запису потрібних файлів.

Ви намагалися sudo open -a texteditвідкрити додаток?


Чи є у вас пропозиції щодо додатків, які мають таку функціональність? Переважно безкоштовно :)
Znarkus

3
Це не зовсім точно. У Terminal.app я запускаю, sudo su -щоб запустити оболонку як корінь, і тоді я можу open "/Applications/Textedit.app/Contents/MacOS/TextEdit"успішно працювати . У мене не ввімкнено кореневого користувача, а також я не ввійшов як користувач root.
EmmEff

1
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Треба працювати


Гаразд, значить, не вдається запустити TextEdit як root? Я дуже хотів би уникнути зайвих клопотів щодо зміни дозволів вперед і назад.
Знаркус

1
У Лева все змінилося, я думаю, це пісочниця
Пол Екклз

Справа в тому, що файл, який ви намагаєтесь відкрити, не можна викорінювати через їх дозвіл. Це було б однаково для одного з ваших файлів (насправді це те саме, за винятком того, що TextEdit є "розумним" для файлів Користувачів, тому він змінює дозвіл, запитуючи вас).
Gio

@Gio Дійсно, це пов'язано з пісочницею Лева: /etc/apache2/httpd.confмає дозволи за замовчуванням 0444. Я цілий ранок намагався редагувати цей файл ( emacsвіддалено), але ніколи не думав перевіряти (нові Lion) дозволи.
msanford

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.