*

新サーバに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

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

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

記事を読む

サーバに追加していく機能まとめ。

いろいろと本を読んでいたら錯綜してきた。 ちょっとここでこれからやることを整理する。

記事を読む

no image

Postfixに新規ユーザを追加する場合の手順

送受信どちらも問題なくできるようになり、ひとまず安心。 サブで使ってるユーザアカウントの方のア

記事を読む

no image

Twitterで自動フォロー返しをするPHPコード

Apple信者の毒舌な妹botで使用している自動フォロー返しのコードをメモ。前提は Githu

記事を読む

CakePHPディレクトリを他サーバに移転する際に困ったこと

まだ解決できていないが、CakePHPで作ったアプリケーションを別のレンタルサーバーに移転し

記事を読む

OP25Bを越えてメールの送信を可能にする手順

やっと出来るようになりました。この本のお陰ですほんとに。 送信関連でやったことは、SM

記事を読む

no image

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

Twitter escultura de arena / Rosaura Ochoa Ap

記事を読む

no image

外付けHDDを起動時に自動マウントする

  前エントリでフォーマットからマウントまでやったが、自動マウントの設定を忘れていた

記事を読む

no image

ApacheでSSLを有効に(mod_ssl)

動機は、ownCloudをインストールしたこと。自分しか使わないとはいえブラウザでアクセスできるオン

記事を読む

no image

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

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

記事を読む

ブログを移行しました

新しいブログはこちら 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 ↑