geditをsudoで使用すると、具体的にどのような問題が発生しますか?


10

私はこの答えを読んで、「時々」ルートが/home/$USERディレクトリで何かを所有できることを説明しました。

誰でもそれを証明する方法の例を挙げられますか?本当に悪いことが起こったとき、実行したときにテストケースを与えるだけです

sudo gedit /etc/rc.local

ファイルを編集して保存します。

OPを手助けしようとする多くの反対投票があり、sudoでgeditを実行するのは犯罪だとコメントが殺到しました。

誰かが実際の例を挙げられますか?

この質問が重複していない理由を明確に説明しました。リンクされた質問に対するgeditに固有の回答はありません。

そして、なぜ広く使われているのsudo geditが悪いのか、そうでないのかなどを説明することが重要です。


2
常にsudoで使用し、問題はありませんでした。良い質問。
Dario Salvati、2015年

1
@ Wilf、nanoは〜/ .nano_historyを書くのが好きです。sudoで実行すると、ファイルはrootによって所有されるため、sudoなしでnanoを実行すると、ファイルにアクセスできないというメッセージが表示されます。簡単にsudo chown修正します。
psusi

1
rc.localに関する限り、これは実行レベルのスクリプトであり、rootが所有する必要があるため、sudoはスクリプトに影響を与えません。〜/ .bashrcで試してください。rootが所有していて、デフォルト設定に戻る必要がある場合、シェルはそのファイルを受け入れないと思います。しかし、それは単なる提案です。私は明日戻ってきます。この質問がどのように行われるかを見てください
セルギーコロディアズニー

1
ほとんどの編集者にとって、それは冒頭ではありません。mOst editrosは設定sをどこかに保存するので、設定を変更した場合は更新されます。
Wilf

2
価値があるのは、それをインプレースで編集して、-H見たときに使用できるようにすることだけです。
muru

回答:


11

限りsudo gedit、特に最近のように、何も悲惨なことはなく、単に悪い練習です。提案するのはどれほど難しいでしょうsudo -H geditか?

-H--set-homeセキュリティポリシーにHOME環境変数をターゲットユーザーのパスワードデータベースエントリで指定されたホームディレクトリに設定するよう要求します。ポリシーによっては、これがデフォルトの動作になる場合があります。

起こりますか?

あなたはあなたのホームフォルダにいくつかのルート所有ファイルを取得します。1つ(recently-used.xbel)はユーザーの所有権に戻る可能性があります。これは、ファイルが削除されて再作成されたときに発生する可能性があります。何sudo geditが変更されたかを確認するには、実行find ~ -user root -group rootして何が返されるかを確認します。デフォルトでは、これは何もないはずです。

このコマンドを使用すると、rootが所有するいくつかのファイルが表示される場合があります。一つは新しいだろう.file.gvfsと、遅かれ早かれ、root所有~/.cache/dconfし、前述のrecently-used.xbel

したがって、「空が壊れている」ことはありませんが、それでもまだです。現在、継続して使用すると他の問題が発生するという報告がありますが、ここに表示されていないものについては主張しません。

また、13.10以降sudo geditでは、ルートのgedit構成ではなく、ユーザーのgedit構成を使用することに注意してください。繰り返しになりますが、これはなぜ悪い習慣なのでしょうか。


1
それは簡単で、ほとんどの場合geditに取って代わることができるので、時にはnanoの使用方法をユーザーに示す機会にもなります。ただし、使用方法を知っている人にとっても、geditがnanoよりも優れている場合もあります。また、sudoのgeditのは、ここで私はpkexecこの議論の範囲を超えてgeditが、thatsのが有効になっている(.. sudoのオウムガイおそらく悪くなっているにつながることができます
ダグ

@wjandrea、いい音、編集
doug

12

まあそれはファンタジーかもしれませんが、同じことを言う人はたくさんいます:

それでは、テストしてみましょう。

2つの新しい仮想ボックス。Ubuntu 14.04。それらに対してFirefoxを実行しないでください。コマンドを実行するとどうなりsudo firefoxますか?

tim@Hairy14CVB:~$ sudo firefox    
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

...

shutdownObserver@XPIProvider.jsm:2192:13

これは、両方の仮想ボックスで同じです(または少なくとも非常に似ています)。Firefoxの実行中に、YouTube拡張機能をインストールしました-注目の拡張機能。次に、Firefoxを閉じて、出力を確認しました。

tim@Hairy14CVB:~$ ls -la .ICEauthority 
-rw------- 1 tim tim 1336 Jun  4 21:31 .ICEauthority

まあ、.ICEauthority元気です!しかしながら...

tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x  3 root root 4096 Jun  1 20:49 ..
drwx------  3 root root 4096 Jun  5 22:41 .dbus
drwx------  4 root root 4096 Jun  5 22:41 .mozilla

ホームフォルダー(/home/tim/)の3つのアイテムは、ルート(...dbusおよび.mozilla)が所有しています。これは、両方の仮想ボックスで同じです(または少なくとも非常に似ています)。

それで、これは問題です。よくわからなかったので、次のようにFirefoxを実行しました。

tim@Hairy14CVB:~$ firefox

(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.

そして、この醜いエラー:

ここに画像の説明を入力してください

完全なターミナル出力(firefox babbleを含む)については、こちらこちらの 2つのペーストビンを参照してください

ちなみに、まだrootとしてFirefoxを実行できます。しかし、今はより多くのファイルが変更されました:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..
drwx------  3 root root  4096 Jun  5 22:55 .adobe
drwx------  3 root root  4096 Jun  5 22:40 .dbus
drwx------  3 root root  4096 Jun  5 22:55 .macromedia
drwx------  4 root root  4096 Jun  5 22:40 .mozilla

これは、画像をimgur.comにアップロードしたためですか?わからない。

これをどのように修正しましたか?chown。わかりませんが、インターネットはそうするように言っており、それは仮想ボックスなので、非常に便利です。

sudo chown -R tim:tim /home/tim/

そして、それはそれを修正しました。これで、出力は単なる..ファイルになります。

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..

そして、それは私の実際のコンピューターでも同じです。ああ、そして私のKubuntu virtualbox:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  3 root root  4096 May 16 14:10 ..

sudoコマンドを実行することすらありません。すべてが順調です。sudoGUIアプリケーションでは実行しないでください。

最終テスト:-H-iフラグを指定して実行します。

sudo -H firefox

そして

sudo -i firefox

そして朗報!それでも、唯一のルート「もの」は..です。そして、firefoxルートなしで実行できます。


OPは私にGeditについて話してほしいと思っています。

私は走った

sudo gedit

次に、いくつかのランダムなプラグインをインストールしました。これは出力でした:

tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..

の所有権を表示することさえできないことに注意してください.gvfs

tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..
dr-x------  2 root root      0 Jun  6 10:05 .gvfs

したがって、実行sudo geditすると、ホームディレクトリのファイルがルートに変更されます。

私はまだgeditを開くことができますが、今回はゴミを出します:

(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.

これは、~.local/share/recently-used.xbel変更された別のファイル()があることを示しています。これは最近使用したファイルのリストであり、(幸いなことに)最近使用したファイルのリストはもうありません。

そこにというファイルがあるはずoutput2.txt.save2です。私の代名詞は彼/彼です


1
あなたは質問に対する答え以外のすべてを書きました。geditでテストケースを指定してください。「回答なし」とフラグを立てるべきですか?または「非常に悪い品質」
ですが

5
@ Pilot6-質問Can anyone give an example how to prove it ..... Can anyone give a real example?-これは過去のものへのリンクであり、Firefoxをrootとして使用すると何が発生するかについての例を示します-「奇妙な不機嫌」を見つけることができないため、コメントに「建設的ではない」とフラグを付けますか?素敵なcmon :)
Wilf

1
ああls -la|grep root、どちらかを使用しないでくださいfind . -uid 0find . -user root
solsTiCe

1
@ Pilot6大丈夫、私はgeditに関するものを含むように編集しました。それは私の答えに何も追加しないと思いますが、あなたはそれを望んでいるようです...
Tim

4
引用と詳細な例の両方がこれを非常に便利にします!Geditを追加してよかったですが、@ Wilfが以前から良かったことに同意します。私が(意図的に)そこに含めなかったのは、Geditの例だけではありません。人々が望むなら、「時々」についての短いメモをそこに追加できますが、私はこの質問は別個であり、再開することを投票したと本当に思っています。これを再度開く場合は、Geditに関する詳細を含む別の回答を追加してみますが、これは依然としてほとんどの人にとって最も役立つ回答です。
Eliah Kagan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.