「suはrootとして実行されたコマンドを記録しません」

「suはrootとして実行されたコマンドを記録しません」

私は今本を読んでいます。UnixおよびLinuxシステムの管理 - Evi Nemeth。 70ページの「su:ユーザーIDの交換」の項目の下に、次の説明があります。「suはrootとして実行されたコマンドを記録しませんが、誰がrootになったのか、いつrootになったのかを示すログエントリを生成します。」 私も私と同じくらい混乱しています。スーゲンCentOS Linuxバージョン7.6.1810および実行中歴史コマンドを実行すると、rootとして実行したコマンドが表示されます。

ポリスチレン本へのリンクが追加されました - 以前のバージョン。

ベストアンサー1

history現在のシェルで実行されているコマンドのみが表示されます。この歴史には多くの欠点があります。

  1. ユーザーがこれを行わないようにシェルを構成すると、どのファイルにも保存されないことがあります。
  2. 記録されていても、ユーザーに書き込み権限を持つファイル(通常、~/.history、~/.bash_history、~/.zsh_history、または同様のファイル)にあります。したがって、ユーザーが偽造することができます。

全体として、これは信頼できるセキュリティ監査証跡ではありません。

本で「ロギングコマンド」が意味するのは、コマンドをいくつかのログに記録することです。いいえ一般ユーザーがアクセス可能です。本は言うsu する何かを記録するには、以下を試してください。

$ su
Password: 
root@firefly:/home/minoru# echo hello
hello
root@firefly:/home/minoru# exit

それでは、記録された内容を見てみましょうauth.log(パスはほとんどのディストリビューションで同じでなければなりません)。

$ sudo less /var/log/auth.log
Jun 12 22:40:35 firefly su: (to root) minoru on pts/8
Jun 12 22:40:35 firefly su: pam_unix(su:session): session opened for user root by (uid=1000)
Jun 12 22:40:41 firefly su: pam_unix(su:session): session closed for user root

私(みのる)がスーパーユーザー権限を持っているのが見られ、いつecho hello私は処刑された痕跡なしでそうしました。

sudoここで、本の次のセクションで説明する他のツールと比較してみましょう。

$ sudo echo hello
hello
$ sudo less /var/log/auth.log
Jun 12 22:44:48 firefly sudo:   minoru : TTY=pts/8 ; PWD=/home/minoru ; USER=root ; COMMAND=/bin/echo hello
Jun 12 22:44:48 firefly sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 12 22:44:48 firefly sudo: pam_unix(sudo:session): session closed for user root

誰がいつ権限を得たのかを知ることができるだけでなく、私がどのディレクトリ(/var/log)にあったのか、私が実行したコマンド、私が使ったコンソールまで見ることができます。はるかに良いです!

おすすめ記事