非ルートディレクトリのルート所有ファイルをsudoeditとして編集する

非ルートディレクトリのルート所有ファイルをsudoeditとして編集する

ルートが所有するファイルを編集できないのに、ホームディレクトリのどこかに次のようなものが表示されるのはなぜですか?

sudoedit: existingFile: editing files in a writable directory is not permitted

次の関数を定義しましたが:

function sunano {
    export SUDO_EDITOR='/usr/local/bin/nano'
    sudoedit "$@"
}

私は次のように編集します。

sunano existingFile

ファイルは実際にはルートが所有しています。

ls -l existingFile

証明する:

-rwxr-xr-x 1 root root 40 Jun 15  2015 existingFile

ベストアンサー1

これマンページ説明する

ユーザーが書き込むことができるディレクトリにあるファイルは、そのユーザーがroot(バージョン1.8.16以降)でない限り編集できません。

ファイルが含まれているディレクトリに書き込むことができれば、実際に編集できますsudoedit(現在の内容を読むことはできませんが)。そのファイルを別の場所に移動して、同じ名前の新しいファイルを作成できます。 。特別な場合はファイルを読み取ることができ、少なくとも一部の編集者は編集を許可します(少なくとも一時ファイルを作成して名前を変更してファイルを保存する編集者)。

この機能の理由は次のとおりです。sudoエラー707:デフォルトでは、ユーザーが書き込み可能なディレクトリでファイルを編集できるようにすることで、設定に設定されているsudoedit制限をバイパスできますsudoedit(システム内のすべてのファイルを効果的に編集できます)。

おすすめ記事