何度もファイルを編集してnano
保存しようとしましたが、rootとして実行するのを忘れてしまったため、権限エラーが発生しました。sudo
ファイルを再度開いて編集しなくてもエディタ内でルートになる簡単な方法はありますか?
ベストアンサー1
いいえ、実行中のプログラムが起動したときに持っていない権限を付与することはできません。これは「権限エスカレーション」というセキュリティホールです。
次の2つのことができます。
- /tmpまたは他の場所に一時ファイルを保存し、エディタを閉じて一時ファイルの内容を編集中のファイルにダンプします。
sudo cp $TMPFILE $FILE
。この方法mv
はファイルの所有権と権限が変更される可能性があるため、お勧めできません。ファイルプレースホルダー自体ではなく、ファイルの内容を変更するだけです。 - Ctrl+を使用してエディタをバックグラウンドにし、ファイルの所有z権または権限を変更して書き込むことができるようにし、を使用してエディタ
fg
に戻って保存します。権限を変更することを忘れないでください!
一部の編集者は、実際には別の権限で新しいプロセスを開始し、保存するためにそのプロセスにデータを渡すことでこれを行うことができます。例を見るこの関連質問パイプを処理するためのファイルバッファの書き込みを可能にする高度なエディタの他のソリューション用です。 Nanoには、新しいプロセスを開始したり、データを別のプロセスに渡したりする機能がないため、除外されます。