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