Bagaimana cara membuka file sebagai root di TextEdit on Lion?

13

Bagaimana cara membuka file sebagai root, di TextEdit? Saya sudah mencoba perintah-perintah ini root, tetapi TextEdit selalu mengatakan itu dikunci:

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

Dan tentu saja sudo !!tidak ada bedanya.

Znarkus
sumber

Jawaban:

14

Anda dapat membuka instance textedit sebagai root dengan memasukkan lintasan lengkap ke executable aktual:

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

Setelah instance root Anda terbuka, Anda dapat menelusuri file yang Anda butuhkan atau melakukan ini dari baris perintah:

sudo su - root -c "open -e /etc/apache2/httpd.conf"
Tyr
sumber
Terima kasih, itu berhasil! sudo /Applications/Textedit.app/Contents/MacOS/TextEditmaka cukup buka file dari TextEdit
Znarkus
Jika Anda tidak ingin mengetik itu setiap kali Anda dapat membuat alias dengan membuka direktori home Anda di Terminal, kemudian pico .bash_profile, tambahkan alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', simpan file, restart Terminal. Sekarang Anda cukup mengetik sudotextuntuk memulai TextEdit sebagai root.
webbiedave
Seperti jawaban lain menunjukkan, untuk melakukannya dalam 1 liner satu-satunya pilihan nyata adalah memiliki editor pihak ke-3 yang mendukungnya. Kemudian ketikkan saja open -t "/etc/hosts"misalnya. Dengan TextWrangler Anda cukup mengetik edit /etc/hosts.
cregox
2
Pengalaman pengguna yang mengerikan! Apakah tidak ada cara yang lebih mudah?
Marc
2
Nah, pada Yosemite 10.10.2 saya sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"tidak berfungsi :(
Henrique de Sousa
8

BBEdit adalah alat gratis untuk melakukan ini pada 2019 dan itu menggantikan semua fungsionalitas TextErangler dan Anda dapat mengunduhnya dari App Store dan situs web pengembang.


TextEdit sebenarnya bukan alat yang tepat untuk mengedit file konfigurasi - gunakan TextWrangler sebagai gantinya. Gratis, memiliki kemampuan bawaan untuk mengedit file dengan akses root dari akun admin, serta hal-hal seperti membuka file dan direktori yang tidak terlihat dengan mudah mengedit file melalui SFTP, dll.

Gordon Davisson
sumber
emacsmemiliki mode conf kode warna yang bagus juga.
msanford
Ini sepertinya tidak bekerja untuk saya di Mountain Lion. Saya mendapatkan kesalahan saat mencoba menyimpan file konfigurasi sistem di TextWrangler. Apakah ini sudah berubah?
Simon East
@Simon: Sepertinya Anda memiliki versi TextWrangler dari App Store, daripada unduhan langsung dari barebones.com . Jika demikian, ada beberapa fitur (termasuk yang ini) yang dihapus untuk mematuhi kebijakan keamanan App Store; jadi buang dan dapatkan versi langsungnya!
Gordon Davisson
Bagaimana jika Anda menggunakan Mac asing tanpa internet? Solusi 2 jalur peretasan yang diterima umumnya masih lebih baik. Tetapi untuk penggunaan sehari-hari yang praktis, saya menggunakan pihak ke-3 sepanjang jalan! :-)
cregox
6

Berikut cara untuk menghindari menjalankan TextEdit sebagai root:

EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf

Anda harus keluar dari salinan TextEdit setelah mengedit file.

sudo -e, kadang-kadang dikenal sebagai sudoedittetapi tidak pada OS X, membuat salinan sementara file dengan izin menulis untuk pengguna saat ini, memanggil editor di dalamnya dengan cara Unix yang biasa, dan kemudian menyalinnya kembali.

Opsi untuk open: -Wmenunggu TextEdit untuk keluar, jadi sudotahu kapan harus menyalin file kembali. -nmemastikan bahwa itu menunggu pada instance TextEdit yang terpisah, bukan yang sudah Anda buka yang mungkin tidak ingin Anda tutup. Anda juga dapat mengganti -talih-alih -ejika Anda memiliki editor teks favorit selain TextEdit.

Jika Anda sudah memiliki EDITORset variabel untuk menggunakan editor grafis dengan alat baris perintah menunggu-sendiri sendiri (seperti TextMate atau BBEdit), maka Anda tidak memerlukan trik ini dan hanya dapat menggunakan sudo -e <file>langsung.

Kevin Reid
sumber
2

Karena pengguna root dinonaktifkan, satu-satunya cara untuk memaksa aplikasi OS X sewenang-wenang untuk memiliki izin root adalah dengan mengaktifkan root dan masuk sebagai root.

Aplikasi tentu saja dapat menggunakan API untuk meminta sistem untuk otentikasi dan memunculkan dialog yang Anda harapkan ketika diminta untuk pengguna administrator dan kata sandi. TextEdit tidak memiliki fungsi itu sehingga Anda harus bekerja di sekitar izin file sebelum dan setelah Anda membuka dan menulis file yang diinginkan.

Sudahkah Anda mencoba menggunakan sudo open -a textedituntuk membuka aplikasi?

bmike
sumber
Apakah Anda memiliki saran tentang aplikasi yang memang memiliki fungsi itu? Lebih disukai gratis :)
Znarkus
3
Ini tidak terlalu akurat. Di Terminal.app saya jalankan sudo su -untuk memulai shell sebagai root dan kemudian saya bisa menjalankan dengan open "/Applications/Textedit.app/Contents/MacOS/TextEdit"sukses. Saya tidak mengaktifkan pengguna root atau masuk sebagai pengguna 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

Harus bekerja

Gio
sumber
Oke, jadi tidak mungkin untuk meluncurkan TextEdit sebagai root? Saya benar-benar ingin menghindari kerumitan ekstra untuk mengubah izin bolak-balik.
Znarkus
1
Banyak hal telah berubah di Lion, saya kira itu adalah kotak pasir
Paul Eccles
Intinya adalah bahwa file yang Anda coba buka tidak dapat ditulisi karena izin mereka. Itu akan sama untuk salah satu file milik Anda (sebenarnya itu sama, kecuali fakta bahwa TextEdit "cerdas" untuk file Pengguna, jadi itu mengubah izin dengan meminta Anda).
Gio
@ Geo Memang, itu karena sandboxing Lion: /etc/apache2/httpd.confmemiliki izin default 0444. Saya telah berusaha sepanjang pagi untuk mengedit file itu (dengan emacsjarak jauh) tetapi tidak pernah berpikir untuk memeriksa izin (Lion baru).
msanford
-5
sudo nano /etc/hosts 

bekerja untuk Lion

Bektur
sumber
2
Pertanyaannya adalah tentang TextEdit, bukan nano.
gosmond