しかし、あなたがもっと興味を持っているかもしれない解決策があります。まさにターミナルロギングです。

しかし、あなたがもっと興味を持っているかもしれない解決策があります。まさにターミナルロギングです。

解決策の仮説ではなく目標を提示するために質問を編集しました。

  • RHELベースの展開
  • root ユーザーは絶対に使用されず、パスワードは秘密のままです。

実行されたすべてのコマンドがsudo記録されます/var/log/secure。ユーザーがrootに切り替えると、sudo su/sudo -iセッションで実行されたすべてのコマンドは記録されません。

私の目標は、管理者がすることに集中することです。


はい

ユーザーが次のことを行う場合:

alexis$ sudo visudo   # this is logged
alexis$ sudo su       # this is logged
root# visudo          # this isn't logged since it's run under root

visudoこれにより、コマンドはsuユーザーによって開始されましたが、alexisrootによって実行されたものとして記録されます。ただし、次のコマンドは root シェルで root として実行されるため記録されません。

11月1日 13:28:29 3020m sudo[6906]: アレクシス:TTY = pts / 0; PWD=/ホーム/アレクシス;ユーザー=;コマンド=/bin/su


簡単に言えば、ユーザー(管理者)がルートシェルに切り替えたくありません。。誰かがルートシェルを実行するには、ルートパスワードを知る必要があります。

答え1

不可能です。最後まで読んでください。ユーザーに完全なsudoアクセス権がある場合は、いつでもいくつかのコマンドを使用するか、独自のsudo -i -u rootスクリプト/プログラムを作成してフルシェルアクセス権を取得できます。これは些細なことです。また、ユーザーが行った構成変更などを元に戻すこともできます。デフォルトのルートシェルを 。sudo /usr/bin/bashsudo /usr/bin/{ANY_OTHER_SHELL}/sbin/nologin

[vagrant@eurolinux8-vbuilder ~]$ sudo chsh root -s  /sbin/nologin 
Changing shell for root.
chsh: Warning: "/sbin/nologin" is not listed in /etc/shells.
Shell changed.
[vagrant@eurolinux8-vbuilder ~]$ sudo -i
This account is currently not available.

ただし、すべての上級ユーザーはsudoを介して「デフォルト」bash呼び出しを使用できます。

[vagrant@eurolinux8-vbuilder ~]$ sudo /usr/bin/bash
[root@eurolinux8-vbuilder vagrant]# 

したがって、ファジーアクセスは/usr/sbin/nologinそれほど効率的ではありません。

また、bashまたは他のシェル構成にいくつかのスクリプトを追加して、ユーザーがログアウトなどのメッセージを印刷していることをroot確認することもできます。ただし、再度上級ユーザーは自分の設定を bash に使用または指定できますPlease use sudo。全体的に - 私が知っている限り、これは不可能です。通常、httpdなどのデーモンユーザーを使用するときに特別なケース(PAMを使用するなど)があることも確認します。ただし、インストール後は使用できます。 PAMベースのソリューションがあるかもしれませんが、google-fuでは見つかりませんでした。対話型アクセスを無効にすることに興味があるので、これも難しいです。他の場合(ルートへのアクセスを完全に無効にする場合)、システムはレンガになり、回復モードで変更する必要があります。--norc--noprofilehttpdsudo -u apache /usr/bin/bash

しかし、あなたがもっと興味を持っているかもしれない解決策があります。まさにターミナルロギングです。

アクセスを完全に制限するのではなく、端末の履歴を理解したいと思います。また、完全な管理者アクセス権を持つユーザーは自分のログを削除できることに注意してください。したがって、状況に応じて、rsyslogまたは他のロギングソリューションを使用して他のサーバーにログを保存する必要があります。

RHELベースのディストリビューションを使用しているので、次の内容を読んでいます。 https://www.redhat.com/sysadmin/terminal-logging

答え2

変更をPAMに戻します。あなたはそれらを必要としません。

代わりに、visudo編集ファイルを使用および/またはで始まる行を/etc/sudoersコメントアウトしてください。これにより、そのグループのユーザーはそれを使用できなくなります。%wheel%sudosudo

変更を加える前に1行を追加する必要があります。そうでない場合は、有効なルートパスワードがあるかどうかを確認するか(su存在しない場合sudo)、別の方法を使用してsudorootアクセス権を取得してください。

関連情報