「 ユーザー名はsudoersファイルにありません。このインシデントは報告されます 」という質問に沿って、エラーのプログラム的な側面を説明し、いくつかの回避策を提案しました。知りたいのですが、このエラーの意味は何ですか?
X is not in the sudoers file. This incident will be reported.
エラーの前の部分は、エラーを明確に説明しています。しかし、2番目の部分は、「このエラーが報告される」と述べていますか?!しかし、なぜ?エラーが報告される理由と場所は?誰に?私はユーザーと管理者の両方であり、レポートを受け取りませんでした:)!
システムの管理者は、非特権ユーザーがSudo
を使用してコマンドを実行しようとしたが失敗したことを知りたいと思うでしょう。これが発生した場合、それは
Sudo
だけではこれらを区別できないため、Sudo
を使用しようとして失敗した場合は、管理者に通知されます。
システムでのSudo
の構成方法に応じて、Sudo
の使用の試み(成功したかどうかにかかわらず)がログに記録されます。成功した試行は監査目的で記録され(誰がいつ何をしたかを追跡できるようにするため)、セキュリティのために失敗した試行が記録されます。
私が持っているかなりバニラUbuntuセットアップでは、これは/var/log/auth.log
にログインしています。
ユーザーが間違ったパスワードを3回入力した場合、またはそれらがsudoers
ファイルにない場合、電子メールがrootに送信されます(Sudo
の構成に応じて、以下を参照)。これが「この事件が報告される」という意味です。
メールには目立つ件名があります:
Subject: *** SECURITY information for thehostname ***
メッセージの本文には、ログファイルの関連する行が含まれています。次に例を示します。
thehostname : Jun 22 07:07:44 : nobody : user NOT in sudoers ; TTY=console ; PWD=/some/path ; USER=root ; COMMAND=/bin/ls
(ここでは、ユーザーnobody
がls
からSudo
をrootとして実行しようとしましたが、sudoers
ファイルにないため失敗しました)。
システムに(ローカル)メールが設定されていない場合、メールは送信されません。
これらすべてのものも同様に構成可能であり、デフォルトの構成のローカルなバリエーションは、Unixバリアント間で異なる場合があります。
sudoers
マニュアルのmail_no_user
設定(および関連するmail_*
設定)をご覧ください(以下に重点を置きます):
mail_no_user
設定すると、メールが送信されますmailtoユーザーに呼び出しユーザーが
sudoers
ファイルにない場合。 このフラグはデフォルトでオンになっています。
Debianおよびその派生物では、Sudo
インシデントレポートは_/var/log/auth.log
_に記録されます。これには、使用されたユーザーログインや認証メカニズムなどのシステム認証情報が含まれます。
_$ Sudo su
[Sudo] password for regularjohn:
regularjohn is not in the sudoers file. This incident will be reported.
[as root]
$ tail -n 1 /var/log/auth.log
Jun 21 16:30:26 marvin Sudo: regularjohn : user NOT in sudoers ; TTY=pts/19 ; PWD=/home/regularjohn ; USER=root ; COMMAND=/bin/su
_
このログファイルには通常、adm
グループのユーザー、つまり システムモニタリングタスク へのアクセス権を持つユーザーのみがアクセスできます。
_$ ls -la /var/log/auth.log
-rw-r----- 1 syslog adm 76189 Jun 21 16:30 /var/log/auth.log
_
Debian Wiki から:
グループadmは、システム監視タスクに使用されます。このグループのメンバーは、/ var/log内の多くのログファイルを読み取ることができ、xconsoleを使用できます。歴史的に、/ var/logは/ usr/adm(以降は/ var/adm)であり、したがってグループの名前でした。
adm
グループのユーザーは通常管理者 であり、このグループ権限は、su
を使用せずにログファイルを読み取ることを許可することを目的としています。
デフォルトでは、Sudo
はロギングにSyslog auth
機能を使用します 。 Sudo
のロギング動作は、_/etc/sudoers
_または_/etc/sudoers.d
_のlogfile
またはsyslog
オプションを使用して変更できます。
logfile
オプションは、Sudo
ログファイルへのパスを設定します。syslog
オプションは、ロギングに syslog(3)
が使用されている場合にSyslog機能を設定します。Syslog auth
ファシリティは、次の構成スタンザの存在によって_/var/log/auth.log
_の_etc/syslog.conf
_にリダイレクトされます。
_auth,authpriv.* /var/log/auth.log
_
技術的には、あまり意味がありません。多くの(すべてではないにしても)他のソフトウェアは、ログインの失敗、失敗などを記録します。たとえば、sshd
およびsu
:
Jun 21 17:52:22 somehost sshd[25807]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=::1 user=root
Jun 21 17:52:22 somehost sshd[25807]: Failed password for root from ::1 port 37268 ssh2
Jun 21 17:52:23 somehost sshd[25807]: Connection closed by ::1 port 37268 [preauth]
Jun 21 17:52:28 somehost su[25809]: pam_unix(su:auth): authentication failure; logname= uid=1000 euid=0 tty=/dev/pts/15 ruser=someuser rhost= user=root
Jun 21 17:52:28 somehost su[25809]: pam_authenticate: Authentication failure
Jun 21 17:52:28 somehost su[25809]: FAILED su for root by someuser
また、多くのシステムは、起こり得るブルートフォースの試みに対処できるように、または問題が発生した後にイベントを再構築するために情報を使用するために、過度の認証エラーを検出するための何らかの自動化を備えています。
Sudo
は、ここでは特に例外的なことは何もしません。すべてのメッセージの意味は、Sudo
の作成者が、たまたま使用できないコマンドを実行するユーザーとのコミュニケーションにおいて、いくぶん積極的な哲学を取っているように見えることです。
これは単に、(管理者権限にアクセスするために)Sudo
コマンドを使用しようとしたが、それを使用する権限を持っていないことを意味します(sudoersファイルにリストされていないため)。これはハッキングの試みまたはその他のセキュリティ上のリスクである可能性があるため、メッセージはSudo
の使用の試みがシステム管理者に報告され、調査できることを示しています。