ユーザーにUID = 0 GID = 0を提供してユーザーにroot権限を付与するのに問題がありますか?

ユーザーにUID = 0 GID = 0を提供してユーザーにroot権限を付与するのに問題がありますか?

友人と私は、システム全体で特定のタスクを担当する複数の仮想マシンを管理しています。コンピュータにログインする唯一の時間は管理タスクを実行する必要があるときだけであるため、通常はコンピュータを管理する必要があるときに root としてログインします。私たちが実行するすべてのコマンドは通常sudoコマンドであるため、通常sudoを使用しません。

別の.bash_historyを提供し、他のコンピュータが最後にログインした時間などを確認するために、これらのコンピュータ上のアカウントを別々に保持しようとしています。これには、完全なroot権限を持つ2つのアカウントが必要です。

1つの方法は、通常のユーザーアカウントをrootと同じUID = 0 GID = 0に変更することです。問題は、同じUIDとGID(特にルートと同じ)を持つ複数のユーザーアカウントを持つことに起因するリスク(予期しないまたは明白ではない効果)がありますか?

PS:スーパーユーザーにこの質問をしましたが、回転秒の倍数だけが得られたので、ここで試してみましょう。

答え1

重要なのは正しいIDとGIDを持つことで、(ほとんどの)操作を「root」として実行できます。しかし、両方の新しいアカウントをrootとして持つことは、あなたとあなたの友人を区別したいので、うまくいきません。運営/ログイン。

多くの場合、システムや他のソフトウェアは混乱し、あるユーザーに別のユーザーの名前、まったく異なるユーザー、またはルート名を表示します。 (たとえば、3人のユーザーが同じID / GIDを持っている場合、システムはログインしていますが、なぜ別のログインがあると言うのか疑問に思うかもしれません)。

sudoグループに属する一般アカウントを使用し、sudo su前述のように一般ルートとして入力する乱用を避けるために、いくつかの規則に従ってsudoを使用することをお勧めします。すべてのルートコマンドをsudoコマンドとして使用すると、マイナーな不快感を無視できるという利点があります。 、あなたはこれを行うことができる正しいユーザーとしてログインしています。

セキュリティの観点からは、rootユーザーには通常、同じIDを持つ他のユーザーにシステムが課すことができないさまざまな制限があります。良い例は、sshdがデフォルトでリモートルートログインを許可しないことです。他の人もいるでしょう。

これまで。 Unixの多くは、歴史的にルートのid / gidが0であると仮定して構築されています。非伝統的な方法でこの問題を解決しようとすると、いくつかの驚くべきことが発生する可能性があります。

バラよりsudoersリストに自分を追加するには?そしてパスワードを要求せずにルートで特定のプログラムをどのように実行できますか?

答え2

誰ですかいいえただ「一般ユーザーアカウントにUID = 0、GID = 0を指定してください。」。 2つの追加ルートアカウントを作成(または変換)します。 UID = 0(およびGID = 0)はルートアカウントを定義します。

すべてのシステムは複数のルートアカウントを持つことができ、みんなルートアカウント。システムにはというアカウントは必要ありませんroot。ルートアカウントの名前は何でも構いません。

どのような方法でもルートと区別することはできません(getent passwdログイン、ホームディレクトリ、およびシェルなどの可能なフィールドを除外 - ただし、ログイン/ ssh /その他のエントリがそのフィールドを取得する方法/タイミングによっては100%保証されません)。はい根。

これを行うには多くの「問題」があります。ほとんどすべては、これらのアカウントで実行されるすべてがrootとして実行されるという事実から来ています。

これは悪いアイデア。これをしないでください。代わりに使用してくださいsudo

ちなみに、freebsdシステムには一般的に呼ばれるroot2番目のアカウントがあります。通常、cthulhuシェル(またはcthulhuシェル)ではなく(または、または何でも)シェルとしてtoor使用します。これはルートを他の人と共有するために行われたものではなく、名前付きアカウントのシェルを実際に変更することなく、好みのシェルをrootとして使用するのに便利です。ルート)シェルは)です。 tcsh/csh は実際にはひどくて精神を破壊するモンスターなので、使用してはいけませんが、一度アクセスを得たら入るのはとても簡単です。/bin/shbashkshzshcshtcshrootcshexec bashsu


最後に、たとえば別の履歴ファイルが必要な場合は、次のようにsudo -i編集して追加します。~root/.bashrc

HISTFILE="~/.bash_history.${SUDO_USER:-root}"

これは、rootがログインしているか(コンソールからまたは経由でssh)、または誰かがrootとしてログインしているかどうかに応じてsudo異なるHISTFILEを設定します。

そのシェル(および作成できるすべてのサブシェル)でHISTFILEを変更できないようにするには、直後に次を追加します。

readonly HISTFILE

関連情報