解決策の仮説ではなく目標を提示するために質問を編集しました。
- 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
ユーザーによって開始されましたが、alexis
rootによって実行されたものとして記録されます。ただし、次のコマンドは 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/bash
sudo /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
--noprofile
httpd
sudo -u apache /usr/bin/bash
しかし、あなたがもっと興味を持っているかもしれない解決策があります。まさにターミナルロギングです。
アクセスを完全に制限するのではなく、端末の履歴を理解したいと思います。また、完全な管理者アクセス権を持つユーザーは自分のログを削除できることに注意してください。したがって、状況に応じて、rsyslogまたは他のロギングソリューションを使用して他のサーバーにログを保存する必要があります。
RHELベースのディストリビューションを使用しているので、次の内容を読んでいます。 https://www.redhat.com/sysadmin/terminal-logging
答え2
変更をPAMに戻します。あなたはそれらを必要としません。
代わりに、visudo
編集ファイルを使用および/またはで始まる行を/etc/sudoers
コメントアウトしてください。これにより、そのグループのユーザーはそれを使用できなくなります。%wheel
%sudo
sudo
変更を加える前に1行を追加する必要があります。そうでない場合は、有効なルートパスワードがあるかどうかを確認するか(su
存在しない場合sudo
)、別の方法を使用してsudo
rootアクセス権を取得してください。