web-dev-qa-db-ja.com

ルートユーザーのホームディレクトリを変更することで不利な点はありますか?

私にはメインユーザーがいます。 daveとホームディレクトリ/home/dave。そして、それはvimbashなどのように実行できるさまざまなプログラムのための多くの設定を持っています。rootユーザーとしてログインすると、ルートには別の設定があるため、すべての設定が使用されませんホームディレクトリ:/root

自分のマシンに他のユーザーを配置する予定はありません。では、rootユーザーのホームディレクトリをdaveに変更すると、何かデメリットがありますか?

4
ivanjermakov

はい、多く。

  • Rootとして実行して$HOMEの構成または状態を変更すると、/home/daveの内容が更新され、変更されたファイルがrootによって所有されてしまい、変更が不可能になります。 rootにならない場合(一部のプログラムが壊れる可能性があります(vimとほとんどのシェルは主要な例なので、コマンド履歴は最終的にrootしか使用できなくなります)。
  • /home/daveへの書き込みアクセス権を持つ誰もが、理論的にはrootとして簡単にコマンドを実行できます。多くのCLIツールでは、$HOMEにスタートアップファイルがあり、起動時に解析されるだけでなくrunを取得することに注意してください。 .bashrc.vimrcは簡単な例です。どちらも、それらに書き込むことができる誰でも、bashまたはvimを実行するユーザーの権限で任意のコマンドを実行できますそれらを使用する方法で。
  • セキュリティ上の理由から、/rootに含まれている可能性のあるものは、他のユーザーが読み取ることはできません。代表的な例はSSHやGPGキーのようなものですが、他にもあります。 /rootを別のホームディレクトリとマージすると、これらのシークレットを秘密にしておくことが非常に難しくなります。これが/rootが存在する理由であることに注意してください。古いUNIXシステムは、ルートのホームディレクトリとして/を使用しただけで、他のユーザーに多くの情報を漏らしました。
  • /home/daveの設定ファイルの設定に誤りがあり、daveユーザーがログインできなくなった場合、rootユーザーもログインできなくなります。これによりanyが作成されます。設定変更ははるかに危険です。

2番目と3番目のポイントは、シングルユーザーシステムであっても、潜在的に深刻なセキュリティ問題であることに注意してください。ユーザーができることは何でもできるので、コードを実行する能力をなんとかして獲得する攻撃はすべて覚えておいてください。

システム全体で構成を共有するだけの場合は、ホームディレクトリではなく/etcの下の構成ファイルを使用することで、上記の最後の問題以外のすべてを回避できます。これらはシステム全体の構成のデフォルトであるため、変更するとシステム上のすべてのユーザーの構成が変更されます。本質的にユーザー固有ではない何らかの形式の構成を持つほとんどすべての対話型CLIツールには、/etcの下に構成ファイルがあります。

5

安全にプレイし、コマンドごとのリダイレクトを追加します。

これは2つの方法で実行できます。

  • 構成ファイルを1つずつシンボリックリンクする、たとえばvimの場合:Sudo ln -s /home/dave/.viminfo /root/.viminfo
  • 各コマンドの前にHOME=/home/daveを追加します。 .bashrcファイルにエイリアスを作成できるので、それについて考える必要はありません。
    echo "alias vim='HOME=/home/dave vim'" | Sudo tee -a /root/.bashrc
    
1
Gogowitsch

ファイルをrootとして編集することを目的としている場合は、sudoeditを使用するだけです(Sudo -eと同等だと思います)。

このコマンドは、正常終了時に元のファイルを置き換える一時ファイルでエディターを開きます。 (Vimの:cquitコマンドを使用して、終了を「失敗」させることができます。)

シェルに関しては、それを最低限にしておくことをお勧めします。 rootとして長時間ログインしたくないことを思い出させます。必要な場合は、/etcディレクトリまたはルートを具体的に設定するその他の手段を使用してください。ただし、ファイルをリンクしないでください。

0
D. Ben Knoble