Gnu / LinuxのGUI(およびCLI)でシステムファイルをrootとして正しく編集するには?

Gnu / LinuxのGUI(およびCLI)でシステムファイルをrootとして正しく編集するには?

システム:Linux Mint 18.1 64ビットシナモン


目標:定義吹くさまざまなリリースのためのエイリアスコマンドラインインタフェースそしてGUIファイルを開くときは、テキストエディタを使用します。パターンのソースgnome-terminalエミュレータ。


進展

たとえば、次のエイリアスは期待どおりに動作するようです。

~のためコマンドラインインタフェース、この例ではNano(公式ウェブサイト):

alias sunano='sudo nano'

~のためGUI、この例では Xed(ウィキペディア記事):

alias suxed='sudo xed'

両方ともファイルを開きます。


質問

質問があります。gksudoこれと組み合わせるsublime-text:

alias susubl='gksudo /opt/sublime_text/sublime_text'

時々効果があるほとんどの場合、何もしません。

この一貫性のない動作をどのようにデバッグしますか?何も出力しません。エラーメッセージやそのようなものはありません。


質問

gksudoDebianでは廃止され、Ubuntu 18.04 Bionicには含まれなくなりました。

LinuxのGUI(およびCLI)でシステムファイルをrootとして正しく編集するには?

適切にこの場合は、次のように定義します。安全にたとえば、ファイルの編集中に停電が発生した場合にSSHを切断するなどの別の例があります。

ベストアンサー1

sudoedit必要な場合以外は、rootとしてエディタを実行しないでください。sudo -eまたはsudo --editデスクトップ環境の管理機能です。

sudoedit

sudoedit正しく設定されたら、次のことができます。

SUDO_EDITOR="/opt/sublime_text/sublime_text -w" sudoedit yourfile

sudoeditこの操作が許可されていることを確認し、所有権を手動で変更せずに編集できるファイルのコピーを作成し、エディタを起動し、エディタが終了したら、ファイルが変更された場合は再度コピーします。

エイリアスの代わりに関数を使用することをお勧めします。

function susubl {
    export SUDO_EDITOR="/opt/sublime_text/sublime_text -w"
    sudoedit "$@"
}

たとえジェフ・シャラーenvこれをエイリアスに入れ、シェル環境を変更する必要はないと指摘しました。

alias susubl='env SUDO_EDITOR="/opt/sublime_text/sublime_text -w" sudoedit'

$SUDO_EDITOR$VISUALorが十分であれば、$EDITOR環境変数を使用する必要はありません。

これ-wオプションsudoeditファイルを返して再コピーする前に、ファイルが閉じるまでSublime Text呼び出しが待機していることを確認してください。

デスクトップ環境(GNOME)

GNOME(およびその他のデスクトップ環境)では、次のいずれかを使用できます。GIO/GVFSadmin://- 計画のある有能な編集者

gedit admin:///etc/shells

その後、PolKitを使用して適切な認証を要求し、認証が成功したら編集するファイルを開きます。

おすすめ記事