IDの結果は、要求する人によって異なります。

IDの結果は、要求する人によって異なります。

私のuserXはライブグループを通してライブ権限を持っています。このユーザーに管理者権限を付与したいので、rootに切り替えます。

~>su root

それから逃げた。

#>usermod -a -G root userX

しばらくすると、プロンプトに戻って効果をテストしました。

#>id userX
#>uid=1000(userX)  gid=0(root) groups=0(root),1001(realtime)

だから成功したと思います。ダミーユーザーを追加して終了し、新しい管理者をテストしました。

#>exit
~>useradd BSD
bash: /usr/sbin/useradd: Permission denied

問題があります。私のグループメンバーシップを確認しようとしましたが、他の答えが出ました。

~>id
~>uid=1000(userX)  gid=1001(realtime) groups=1001(realtime) contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

したがって、私のユーザーは自分がルートの一部ではないと言いますが、ルートはユーザーがルートの一部であると言う理由を知る必要があります。私は何を見逃していますか?

答え1

どうしたの?

ユーザーが属するグループのリストはログイン時にのみ設定されます(ほとんど使用されていないsgコマンドを使用して変更できますが、グループにグループパスワードが設定されている場合にのみ可能です)。ユーザーがログアウトして再度ログインすると、グループに自分が含まれていることがわかります。ただし、GID 0(ほとんどのLinuxシステムでは「root」、ほとんどの非Linuxシステムでは「wheel」または「adm」)グループに属していても、実際にセキュリティの観点から見ると管理権限があるわけではありません。

これが行政権と異なるのはなぜですか?

rootユーザー(UID 0)は特別です。ルートグループ(GID 0、wheel見つからない歴史的な理由から多くの非Linuxシステムで呼び出されます)はそうではありません。ユーザーはルートグループが所有するファイルにアクセスできますが、他の権限はない場合があります。これはやや複雑な区別ですが、非常に重要な区別です。

これはなぜ悪い考えですか?

常にrootとして実行するのが悪い考えであるのとほぼ同じ理由で、これは悪い考えです。システムを無効にすることは常に1回の間違いです(たとえば、ほとんどのLinuxシステムでルートグループの一部になるとコンテンツを削除できるため、システムを簡単に起動できないようにすることができます)/boot

このユーザーに管理権限を付与する正確で安全な方法は何ですか?

可能であれば、sudoシステムに存在するdoas他の昇格ツールを設定してアクセスを許可してください。suそのようなツールがない場合は、su1つをインストールしてください(私はsudo最も広く使用されているツールなので、ドキュメントが多いので学習するのが最も簡単なツールの1つです)。これがオプションでない場合は、su管理タスクを実行する必要があるときに直接特権の昇格が正しい選択です。ただし、suこれによって呼び出されたコマンドの環境は正しくリセットされないので注意が必要です。

関連情報