回答:
必要に応じてC-x C-f
、/su::/etc/hostname
または入力してください/sudo::/etc/hostname
。
これは、Emacsとともに配布されるTRAMPパッケージを使用します。このパッケージは、リモートファイルへのアクセスを提供し、より一般的にはEmacsが直接開くことができないファイルへのアクセスを提供します。
/su:otheruser@localhost:
たとえば、できます。
/sudo::
はトランプの略記ですsudo:root@<hostname>:
find-file
trampで使用します。プロンプト/sudo::/etc/ssh/ssh_config
で、sudoとサブシェルを使用して、ルート特権でそのファイルを開きます。sudoを最初に使用するときは、パスワードの入力を求められますが、そのセッションが終了するまで、既存の/sudo::
コマンドをプレフィックスとして使用して、これらのアクセス許可を持つファイルを編集できます。
詳細については、http://www.gnu.org/software/tramp/を参照してください。
ivy
パッケージを使用し、counsel-find-file
を置き換えるfind-file
ように設定している場合、すでに設定済みの「ivyアクション」の1つは、ファイルをルートとして編集することです。hydra
そのアクションのデフォルトのキーストロークはr
です。
現在、この問題を解決する多くのパッケージがあります(2018年現在)。それらのいくつかは次のとおりです。
sudo-edit
、既に開いている読み取り専用ファイルの編集権限を切り替えることができます。M-x sudo
パスワードを入力するだけで完了です。これを何年も使用した後、私はこのニーズにもっと便利だと思います。sudo-edit
任意のユーザーとしてファイルを開くことができますが、何も指定されていない場合はデフォルトでsudoが使用されます。dired-toggle-sudo
。これは、この質問をした後に見つけた最初のパッケージソリューションです。Dired指向なので、ファイル指向のバージョンを好む場合は、このリストの最初の箇条書きを参照してください。Helmを使用する場合。外部パッケージ/追加の設定は必要ありません。そのまま使用できます。
内部では、にバインドされたをhelm-find-files
呼び出すことができます。これは、セッション中のファイルまたはディレクトリに対して機能します。find file as root
C-c rhelm-find-files
ルートファイル/ディレクトリを開くたびにパスワードを入力したくない場合。次の行を~/.authinfo.gpg
machine localhost port sudo login root password xxxxxx
machine your_machine_name port sudo login root password xxxxx
::
ですか?