回答:
実際の実行可能ファイルへのフルパスを入力することにより、rootとしてtexteditインスタンスを開くことができます。
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"'
、保存、ターミナルを再起動します。これでsudotext
、ルートとしてTextEditを起動するだけで入力できます。
open -t "/etc/hosts"
、たとえば入力するだけです。TextWranglerのは、単に入力することができますedit /etc/hosts
。
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
動作しません:(
BBEditは2019年にこれを行う無料のツールであり、TextEranglerのすべての機能に置き換わるものであり、App Storeおよび開発者のWebサイトからダウンロードできます。
TextEditは実際には設定ファイルを編集するための適切なツールではありません。代わりにTextWranglerを使用してください。無料で、管理者アカウントからルートアクセスでファイルを編集する機能が組み込まれています。また、SFTPを介してファイルを簡単に編集する非表示のファイルやディレクトリを開くなどの機能があります。
emacs
素敵な色分けされたconfモードもあります。
ルートとしてTextEditを実行しないようにする方法を次に示します。
EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf
ファイルを編集した後、TextEditのコピーを終了する必要があります。
sudo -e
、sudoedit
OS Xでは知られていないこともありますが、現在のユーザーの書き込み権限でファイルの一時コピーを作成し、通常のUnix方式でエディターを呼び出してからコピーします。
open
:のオプション-W
は、TextEditが終了するのを待つので、sudo
いつファイルをコピーバックするかがわかります。-n
終了したくない可能性がある既に開いているものではなく、TextEditの別のインスタンスで待機していることを確認します。TextEdit以外のお気に入りのテキストエディタがある場合は、-t
代わりに置き換えることもでき-e
ます。
EDITOR
独自の待機対応コマンドラインツール(TextMateやBBEditなど)でグラフィカルエディターを使用するように変数が既に設定されている場合、これらのトリックは不要で、sudo -e <file>
直接使用できます。
rootユーザーは無効になっているため、任意のOS Xアプリに強制的にroot権限を付与する唯一の方法は、rootを有効にしてrootとしてログインすることです。
もちろん、アプリはAPIを使用してシステムに認証を要求し、管理者ユーザーとパスワードを要求されたときに期待するダイアログをポップアップ表示できます。TextEditにはその機能がないため、目的のファイルを開いたり書き込んだりする前後にファイルのアクセス許可を回避する必要があります。
sudo open -a textedit
アプリを開くために使用してみましたか?
sudo su -
して、rootとしてシェルを起動すると、open "/Applications/Textedit.app/Contents/MacOS/TextEdit"
正常に実行できます。ルートユーザーを有効にしておらず、ルートユーザーとしてログインしていません。
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からファイルを開く