web-dev-qa-db-ja.com

geditをsudoで使用すると、具体的にどのような悪いことが起こりますか?

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

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

Sudo gedit /etc/rc.local

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

私は多くのダウン票を獲得しました OPを手伝おうとしています アウトし、sudoでgeditを実行するのは犯罪だと言うコメントが殺到しました。

誰でも実際の例を挙げることができますか?

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

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

10
Pilot6

Sudo geditに関しては、特に最近の時点で、何も悲惨なことはなく、ただの悪い練習です。 Sudo -H geditを提案するのはどれほど難しいでしょうか?

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

does起こりますか?

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

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

だから、「空が壊れている」ものはないが、それでも。現在、継続使用は他の問題を引き起こすが、私がここで見ないものを主張するつもりはないという報告があります。

また、13.10の時点で、Sudo geditは、ルートのgedit構成ではなく、ユーザーのgedit構成を使用することに注意してください。繰り返しますが、悪い習慣です。なぜそうし続けるのか、他の人がそうするのを提案するのですか

11
doug

まあそれは空想かもしれませんが、同じことを言っている人がたくさんいます:

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

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

...

[email protected]: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

ホームフォルダー内の3つのもの(/home/tim/)はルート(...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.

そして、このいエラー:

enter image description here

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

ところで、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コマンドを実行したこともない。すべて順調です。 GUIアプリケーションでSudoを実行しないでください。

最終テスト:-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というファイルがあるはずです。

12
Tim