*

新サーバにMaildirディレクトリを移動させたときのトラブル

公開日: : サーバ運用, 備忘録 , , ,

この記事の所要時間:約8分54秒

サーバを作りなおした件で、Postfix・Dovecotサーバもリストアしました。

新サーバでPostfixとDovecotをyum installしたあと、設定ファイル群(/etc/postfix/etc/dovecot)と/homersync -av で旧サーバのものにごっそり入れ替え。メールの中身も設定も全てこれで受け継がれる。

しかし問題が発生。メールの送受信が上手くいかない。MacのMailがエラーを吐き続ける。/var/log/maillogを見ると以下のようになっていた。

Jun  8 10:45:45 hostname dovecot: imap(user): Error: opendir(/home/user/Maildir/tmp) failed: Permission denied
Jun  8 10:45:45 hostname dovecot: imap(user): Error: open(/home/user/Maildir/dovecot.index.log) failed: Permission denied (euid=500(user) egid=500(user) missing +r perm: /home/user/Maildir/dovecot.index.log, euid is not dir owner)
Jun  8 10:45:45 hostname dovecot: imap(user): Error: open(/home/user/Maildir/dovecot-uidlist) failed: Permission denied
Jun  8 10:45:45 hostname dovecot: imap(user): Error: open(/home/user/Maildir/dovecot-uidlist) failed: Permission denied

“Permission denied”?? rsync -aなら所有権も全てそのままコピーされるはずだけど。chmod -R user.user ~/Maildirしても何も変化なし・・・・。かなりハマりました。

調べてみると上の"euid is not dir owner"がどうもポイントのようだ。EUID(実効ユーザID)とやらが正しくないから、SELinuxに引っかかってるということらしい。EUIDはls-ZオプションをつけるとファイルのSELinuxの「コンテキスト」を表示できる。

$ ls -lZ ~/Maildir
drwx------. user user unconfined_u:object_r:home_root_t:s0 cur
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot-keywords
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot-uidlist
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot-uidvalidity
-r--r--r--. user user unconfined_u:object_r:home_root_t:s0 dovecot-uidvalidity.5161460f
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot.index
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot.index.cache
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot.index.log
-rw-------. user user unconfined_u:object_r:home_root_t:s0 dovecot.mailbox.log
drwx------. user user unconfined_u:object_r:home_root_t:s0 new
-rw-------. user user unconfined_u:object_r:home_root_t:s0 subscriptions
drwxrwxrwx. user user unconfined_u:object_r:home_root_t:s0 tmp

よく意味は分からないが、例えば”unconfied_u:object_r:home_root_t:s0″は”(ユーザ):(ロール):(タイプ):(謎)”となっているところまでは理解した。

SELinuxコンテキストがおかしくなった場合、restoreconというコマンドでその名の通り適切なものに戻してくれるらしい。

$ restorecon -R ~/Maildir

この結果が以下。タイプが全てmail_home_rw_tとなったのを確認した。

$ ls -lZ ~/Maildir
drwx------. user user unconfined_u:object_r:mail_home_rw_t:s0 cur
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot-keywords
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot-uidlist
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot-uidvalidity
-r--r--r--. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot-uidvalidity.5161460f
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot.index
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot.index.cache
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot.index.log
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 dovecot.mailbox.log
drwx------. user user unconfined_u:object_r:mail_home_rw_t:s0 new
-rw-------. user user unconfined_u:object_r:mail_home_rw_t:s0 subscriptions
drwxrwxrwx. user user unconfined_u:object_r:mail_home_rw_t:s0 tmp

このあと直ちにメールの送受信が可能になった。SELinuxで引っかかって問題が起こったのはこれが初めてなのでかなり路頭に迷ってしまった。SELinuxをdisabledにする気持ちもわかる。個人レベルのサーバだと必要ないのかもね。

SELinuxに関してこちらのサイトがわかり易かったので載せておきます。
http://www.kozupon.com/security/selinux.html

[amazonjs asin=”4873112257″ locale=”JP” title=”SELinuxシステム管理 ―セキュアOSの基礎と運用”]

関連記事

no image

公開鍵認証のSSH

サーバ構築もそろそろ守りを固めます。 SSHを公開鍵認証に。 $ ssh-keyge

記事を読む

no image

WordPress記事にツイートを埋め込むテスト

なんとWordPressでは何もプラグインを導入しなくても、デフォルトでTwitterのツイートを貼

記事を読む

MacやLinuxのシェルで使えるショートカットたち

Macでは「ターミナル」、GUIのLinuxでは「端末」と呼ばれているアレです。 個人

記事を読む

no image

USB外付けHDDをext4にフォーマットする手順

前エントリの玄人志向のHDDケースを買った。で出来上がった外付けHDDをフォーマットして、Cent

記事を読む

ドメインを取得してとりあえず使えるようにする手順

ドメイン名。ウェブページの顔ですね。ちょっとネットワークに詳しい人なら結構意識していると思います。

記事を読む

no image

自前のDropbox、ownCloudをインストールしてみる

自前のサーバを用意したら、ファイルサーバを作ってみたいと思うもの。 そこでなんと、ownClo

記事を読む

no image

MySQLからツイートを選択してツイートするPHPコード

Twitter escultura de arena / Rosaura Ochoa Ap

記事を読む

no image

/tmp/orbit-ユーザ名以下の謎のファイルが/tmpパーティションを圧迫する問題

これも以前から解決していなかった問題。tmpwatchの設定を変更することで解決した。 cronか

記事を読む

no image

NVR500でフレッツサービス情報サイト(NGN IPv4)に接続するための設定

安定性に定評のあるYAMAHAのNVR500たんを買ってもう3ヶ月になりますが、やっとこさフレッツサ

記事を読む

no image

検索エンジンのロボットに対する命令を記述するrobots.txtについてのメモ

Robots... / jeffedoe 毎朝早朝に送られてくるlogwatchからのメールを

記事を読む

ブログを移行しました

新しいブログはこちら http://queryok.ikuwow.co

ChefとAnsibleの比較 〜Ansibleはじめました〜

今まで個人のMacの環境構築には、Brewfileなるものを作成してい

no image
モチベ低い大学院生でも院進学で得られたもの

つい今月の頭に修士論文を提出して、長いプレッシャーから解放されました。

Apple Thunderbolt Displayを使って30分で理解した利点3つ

今まで研究室ではMac ProとDellのちゃちな21インチモニタで作

ニコニコ動画の動画上部のニュースを非表示にするSafari機能拡張

作りました。 HideNicoVideoNews http:/

→もっと見る

PAGE TOP ↑