ルートの名前を変更するにはどうすればよいですか?


27

変更するのは非常に良い考えではありませんが、楽しんでください。よると、このポスト、そこにものエントリを変更した後、いくつかの問題が残っている/etc/passwd/etc/shadow/etc/sudoers。助言がありますか?


アカウント名「ルート」?トップレベルディレクトリ "/"?
アキラ

4
ユーザー名ルート
-yxkb

1
それからあなたの質問を明確にしてください
...-akira

7年後、あなたはそれを進めたのか、それによってどのようなBadStuffが起こったのか疑問に思っています... ^ _ ^
-Mioriin

回答:


29

理論的には、それを変更する/etc/passwdと、/etc/shadowあなたは「名前の変更」ルートに必要なすべてのだろう。問題が発生するのは、存在するUnixソフトウェアのほとんどすべての部分が、ユーザー名「root」が存在し、それがスーパーユーザー(メールエイリアス、さまざまなデーモン、cron ...

あなたが本当にそれを試してみたいと思っているfind /etc -type f -exec grep -l root {} +なら、おそらく変更する必要のあるすべての設定ファイルのリストを見つけることから始めるべきです-しかし、すでに述べたように、これはほとんどすべての考えられる状況で本当に悪い考えです。

EDITもう一つの考えは-あなたは既に(あなたはどのていない場合必要があります持っている)、それは確認して/etc/aliasesのエントリが含まれているroot評価し、正しくいること、および存在するユーザ名またはメールアドレスを。多くの自動化されたシステム全体のタスク(cronたとえば)はに電子メールで出力を送信しますroot。これは従来、そのシステムの運用を担当するシステム管理者にエイリアスされています。


2
/ etc / groupにもユーザー名があります
...-vrdhn

問題のグループがデフォルトグループではなく、良い点である場合のユーザー名のみ。
シャドゥール

3
それは...ですか?私は、アプリケーションのほとんどは理想的だと思いname.i UIDのために行くと、ない、ないアプリケーションは、「ルート= UID 0」を想定するべきではないと思った
yxkb

2
@yxkb:当然、アプリケーションはそれを想定すべきではありません。しかし、私は本当にすべてのアプリケーションまたはスクリプトのために1ドルを受け取りたいです!:)
ブラム

1
確かに。私たちがchown root …シェルスクリプトで個人的に記述した、または類似したすべての時間を考えてみましょう。
デロバート

24

このような恐怖はすべて、「やってはいけない!」とんでもないです。かつては、たぶん、ひどく書かれたスクリプトの多くを壊しましたが、私はそれらがもはやそれほど一般的ではないと思う。少なくとも標準配布にはありません。

Linuxサーバーのサブセットでルートアカウントの名前を変更するように言われました。それで、これを正しく行う方法を研究しようとした後、私は代わりに、「それをしないでください!」と言っている多くの投稿を見つけました。あなたがこれを行うことを選択した場合、「悪いこと」が起こるという悲惨な警告がたくさんあります。しかし、私は、起こる可能性のある「悪いこと」の具体例がまだ見つかっていません。

それで、バックアップして、私がどこにいるのか、どうやってここに来たのかを説明しましょう。PCI準拠の環境を構築していますが、これらの「要件」を満たすために役立つツールの1つは、ルートアカウントと管理者アカウントとゲストアカウントを別の名前に変更する必要があることを示しています。PCIについて教育を受けていない人には、ガイドラインに従うか、そのガイドラインに従わない、または従わないことを選択した理由、およびシステムを安全に保つための緩和戦略を文書化するオプションがあります。だから、ほとんどの場所がルートアカウントの名前を変更しない理由を文書化していると思いますが、私たちのグループは、Windows管理者アカウントの名前を問題なく変更できる場合、Linuxルートアカウントの名前も変更することを決定しました。

私は「隠蔽によるセキュリティ」の議論に精通しています。ルートアカウント名を変更するだけでは実際にセキュリティが大幅に向上するわけではないこと、SSHでルートを無効にする必要があることなどを知っています。それはポイントではなく、これ以上聞きたくありません。また、「空が落ちる」警告についても興味がありません。私は次のようなステートメントを探しています: ">この悪いこと<は、>この標準パッケージ<で起こります(あなたが>この<をしない限り)"。

これまでのところ、3つのCentOS(RHEL)システムがあり、明らかにルートアカウントの名前変更に問題はありません。私がしたことは次のとおりです。/etc/passwd、/etc/shadow、/etc/group、および/ etc / gshadowのアカウント名を変更しました。次に、/ etc /でrootという名前をgrepし、rootが新しいアカウント名のエイリアスになるようにpostfix aliasesファイルを変更し、rojotoroと呼びます。(他の電子メールシステムでも同様のことが行われます)。また、自動的に作成するファイルの所有者を説明するときに、logrotateのいくつかの構成を変更する必要があることもわかりました。そして、これが私がこれまでに変更したすべてです。

多くのinit.dスクリプトを見てきましたが、何も変更しておらず、すべてが起動時に正常に開始されるようです。sudoを使用する場合、新しいアカウント「sudo -u rojotoro vim / etc / passwd」を例として指定する必要がありますが、実際にはsudoersファイル内で何も変更する必要はありません。selinuxでいくつかの問題が発生する可能性があり、それを強制することを期待していましたが、今のところそのシステムに触れる必要はありません。

また、mkdevまたはmkfsスクリプトを調整する必要があるかもしれませんが、それらを使用する予定はないので、それらに値する精査でそれらを調べていません。

selinuxが有効なシステムに悪影響を与えずに本当に簡単に変更できる場合、なぜすべての恐怖が続くのでしょうか?


11
これは、無知な人々を呼ぶことに捧げられたいくつかの段落を切り取った場合、むしろ良い答えになるでしょう。本当に必要ありません
マイケルMrozek

3
あなたは正しいですが、私がそれを認めるのには時間がかかりました。これは、アイデアをたたく前に、他のユーザーがルートユーザー名を実際に変更した経験があることを確認するためのものでしたが、実際には必要ありませんでした。
5mi11er

3
CentOSを使用しているのでrpm -Va、ルートアカウントの名前が変更されたシステムで何が表示されるかを確認できますか?Maximum RPMガイドによると、「ユーザーとグループの識別子は非数値でなければならない」ため、rootがファイルを所有する必要があることを指定するRPMは、インストール時にそれを行うことができません。あなたのシステムがどのようにそれを処理するのか疑問に思うだけです。
ブラム

1
PCIでは、ROOTの名前を変更する必要があると言っていますか?
キッドゥーラ

@MichaelMrozek、通常、答えにはこのようなバックストーリーがあってはならないことに同意します。しかし、このトピックのインターネット検索には、OPが3つのパラグラフで費やしている正確な警告が非常に多く含まれているため、この場合に求められると思います。彼の "How To"パラグラフを構成するのに役立ち、彼のソリューションのコンテキストが自分のものと似ていることを理解しやすくなりました。
user1717828

7

提案:それをしないでください。

一部のツールはuidを介してrootと通信しようとしますが、問題は発生しません。一部のツールは、rootアカウントがrootと呼ばれ、破損することを想定しています。システムの半分を「楽しみのために」再コンパイルする準備ができていない限り、試さないでください。


2
ルートの名前を変更するのはせいぜいひどく悪い考えだと誰もが異議を唱えているとは思わない。
シャドゥール

kuhkatz、その予防策です。誰かがそれをした場合、誰かがルートを変更したときに何が起こるか知っていれば、それを元に戻すのに役立つかもしれません
yxkb

sudoを使用しているため、rootとしてのログインを中断するというメモからあなたがそのアイデアを得た記事。したがって、元に戻す唯一の方法は、クリーンな再インストールです。したがって、試してみる必要はありません。明らかにそれを復元する方法です。また、とにかくユーザーのユーザーが試行する場合に備えて、LARTを手元に用意してください。
kuhkatz

再コンパイルのために... gogo gentoo?すべてを支配するために、すべてのEbuildに1つのパッチがありますか?
バナンイン

4

私の考えでは、最も簡単なことは、UID 0で/rootホームとして新しいユーザー(エイリアス)を作成することです。

なぜにあなたのルートのデフォルトのシェルを切り替えていない/bin/false/sbin/nologin(誰もそれにログインすることはできませんが、システムはまだそれを使用するようにする)と、ログイン作成した新しいエイリアスに?

razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root

ルートのシェルをnologinに変更しても、sudo、mail、またはftwは破損しません。


確かに@ 5mi11erが指摘したように、私はこれを試していませんが、ルートのシェルが設定されている/bin/false場合、または/sbin/nologinサービスを開始できない場合。したがって、それらはすべて再構成する必要があります。さらに、全体的な目的はセキュリティを向上させることでした。「ルート」権限を持つ2番目のアカウントを追加しても、セキュリティはほとんど向上しません。
ブラム

これまでのところ、この解決策が最適だと思います。これは、ルートの名前からuidの検索を許可し、ルートのログインを無効にします。ルートの前にroot2が表示されるように行の順序を入れ替えると、whoamiはroot2を報告します。最初のuidエントリが一致すると、uidから名前へのルックアップが停止します。カーネルがプロセスを開始し、uid 0を与えてシステムをセットアップするため(init、upstart、...)
X Tian 14年

2

LinuxはWindowsではなく、現在、未知の問題を作成せずにルートの名前を簡単に変更することはできません。

rootとしてリモートログインやローカルログインを無効にすることは、アカウントルートをアクティブに無効にするため、より安全な方法です。UBUNTUは基本的にこれを行い、ルートアクセスの代わりにsudoを強制します。

システムへのログインには使用できないため、システムを攻撃するためにルートアカウントを使用することはできません。

ルートアカウント名を簡単に変更するだけでなく、インストール時にUIDをランダムに生成する標準的な方法を作成し、可能な場合はすべてのコールドスタート時にUIDターゲティングを防止するのに便利ですが、現在は存在しません。

/ etc / passwdの調整root:x:0:0:root:/ root:/ bin / nologinの変更

緊急時のみ使用するための単一のフォールバック管理者アカウントを作成してください!fallbackadmin:x:0:0:root:/ root:/ bin / bash

すべての管理者にsudoを実装して、変更ログ監査を実装して、説明責任のために誰が変更を行ったかを正確に追跡できるようにします。

これにより、PCI US Gov要件が実装され、デフォルトの管理者/ゲストアカウントが無効になり、緊急用の管理者アカウントが1つ作成されます。

監査のためにログをアーカイブする1つの方法は、集中化されたAAAが実装されていない場合、sudoアカウントにアクセスできるすべてのユーザーから端末履歴を収集することです。

管理者専用アカウントを実装するソリューションは、1つのユーザー専用アカウントと1つのsudo対応アカウントを作成し、管理アクセスのためにユーザーを強制的にsudo対応アカウントにsuすることです。

より良いセキュリティが必要な場合、スマートカード認証を実装することもできます。GNU/ Linuxで利用できるソリューションは、2要素認証用のUS Common Access Card CAC Solutionsと比較できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.