はじめに
linuxユーザー削除時やログ参照時に突然mail関連のメッセージが出てきた経験があります。
恐らく上記はユーザー作成時に一緒に作成されるメールスプールのメッセージであることを分かりました。
メールスプールとはメールサーバー上の一時的に保管する場所のことです。
スプールについて以下のサイトが分かりやすく説明してありました。
https://linuc.org/study/knowledge/524/
メールスプールについて以下のサイトが分かりやすく説明してありました。
https://go-journey.club/archives/9377
linuxは各ユーザーごとにメールが設定されていて、一般的なEmailというよりは通知メッセージのようなイメージです。メールサーバのテストとしても使用されるそうです
過去に見かけたメッセージ
linuxのユーザーを削除時に以下のメッセージが出ました。
# userdel -r ユーザー名
# userdel: ユーザー名 mail spool (/var/mail/ユーザー名) not found
メールスプールを削除しようとしたが、メールスプールがないためメッセージが出力されています。
userdel rオプションはユーザーと一緒にメールスプールも削除されます。
userdelについて以下の記事が参考になりました。
https://linuxcommand.net/userdel/
useraddのデフォルト設定を表示してみた
useraddについて以下の記事が参考になりました。
https://www.server-memo.net/centos-settings/system/useradd.html
useraddの設定をみたところ、以下の例ではメールスプールがユーザー作成時に一緒に作成される様です。
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes ※メールスプールを作成する設定
現在のユーザー情報を確認した
パスワードファイルを参照して現在使用しているユーザーを一部表示した
[root@localhost mail]# cat /etc/passwd | tail -n 2
test_user:x:1001:1001::/home/test_user:/bin/bash
test:x:1002:1003::/home/test:/bin/bash
[root@localhost mail]#
メールスプールのフォルダ配下を確認した
各ユーザーのファイルがあることを確認した
[root@localhost mail]# ls -ltr
合計 4
-rw-rw----. 1 test_user mail 0 4月 4 20:45 test_user
-rw-------. 1 root mail 691 4月 4 20:54 root
-rw-rw----. 1 test mail 0 5月 4 16:49 test
[root@localhost mail]# pwd
/var/spool/mail
rootファイルを確認してみた
rootファイルに何かのデータが入っています。
恐らくcronのエラー文です。
[root@localhost mail]# cat root
From root@localhost.localdomain Tue Apr 4 20:54:52 2023
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 0)
id A0D108A41C8; Tue, 4 Apr 2023 20:54:52 +0900 (JST)
To: root@localhost.localdomain
From: test_user@localhost.localdomain
Auto-Submitted: auto-generated
Subject: *** SECURITY information for localhost.localdomain ***
Message-Id: <20230404115452.A0D108A41C8@localhost.localdomain>
Date: Tue, 4 Apr 2023 20:54:52 +0900 (JST)
localhost.localdomain : Apr 4 20:54:52 : test_user : user NOT in sudoers ; TTY=pts/0 ; PWD=/tmp ; USER=root ; COMMAND=/bin/chmod +x test.sh
cronの標準出力とエラー文があるとrootのメールスプールにメッセージが送信されることがあるそうです。
以下のメッセージが出力されます。
You have mail in /var/spool/mail/root
/var/spool/mail/rootについて以下のサイトが詳細が記載されていました。
https://ex1.m-yabe.com/archives/3480
rootにメールを送る設定になっていました。
[root@localhost mail]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root ※Mailの設定です
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
[root@localhost mail]#
まとめ
普段、linuxユーザー作成時にメール設定について意識はしていませんでした。
linuxは各ユーザーごとにメール設定される事が分かりました。
通常のEmailとは異なり、linuxのメールはcron等の通知メッセージのようなものであることが分かりました。
メールのスプールは溜まっていく可能性があることを知りました。
そのため場合によっては定期的に「/var/spool/mail/root」を空にする必要がありそうです。