UW IMAP Server をMac OSX Snow Leopard にインストール

■ PAMの設定

$ cd /etc/pam.d
$ sudo cp ftpd pop
$ sudo cp ftpd imap

/etc/pam.d/pop, /etc/pam.d/imap

# login: auth account password session
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so

■ UW IMAPのインストール
http://www.washington.edu/imap/ からUW IMAP toolkit source distributionをダウンロードして適当なディレクトリに展開する。
展開したディレクトリで、

$ make osx SSLTYPE=none PASSWDTYPE=pam

実行ファイルを/usr/local/libexec/にコピー。

$ sudo mkdir -p /usr/local/libexec
$ sudo cp imapd/imapd /usr/local/libexec/
$ sudo cp ipopd/ipop3d /usr/local/libexec/

■ 自動起動の設定
自動起動のためのplistを2つ作成する。
/Library/LaunchDaemons/imap.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>edu.washington.imap</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/local/libexec/imapd</string>
	</array>
	<key>Sockets</key>
	<dict>
		<key>Listeners</key>
		<dict>
			<key>Bonjour</key>
			<false/>
			<key>SockServiceName</key>
			<string>imap</string>
			<key>SockType</key>
			<string>stream</string>
		</dict>
	</dict>
	<key>inetdCompatibility</key>
	<dict>
		<key>Wait</key>
		<false/>
	</dict>
</dict>
</plist>

/Library/LaunchDaemons/pop3.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>edu.washington.pop3</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/local/libexec/ipop3d</string>
	</array>
	<key>Sockets</key>
	<dict>
		<key>Listeners</key>
		<dict>
			<key>Bonjour</key>
			<false/>
			<key>SockServiceName</key>
			<string>pop3</string>
			<key>SockType</key>
			<string>stream</string>
		</dict>
	</dict>
	<key>inetdCompatibility</key>
	<dict>
		<key>Wait</key>
		<false/>
	</dict>
</dict>
</plist>

作成したplistをロード。

$ sudo launchctl load /Library/LaunchDaemons/pop3.plist
$ sudo launchctl load /Library/LaunchDaemons/imap.plist

ASP.NET 偽装

ASP.NET 偽装
@IT:連載:プログラミングASP.NET 第17回 ASP.NETにおける認証と認定
ASP.NET偽装を有効にしていると、ASP.NETアプリケーションがIUSRで実行されたりするため、イベントログに書き込めないなど、アクセス権関連のトラブルが発生する可能性がある。
たとえば、ASP.NET偽装を有効にしていたため、以下の例外が発生した。

System.InvalidOperationException がキャッチされました
  Message="ソース 'XXX' のログを開けません。ユーザーに書き込みアクセス権がありません。"
  Source="System"
  StackTrace:
       場所 System.Diagnostics.EventLog.OpenForWrite(String currentMachineName)
       場所 System.Diagnostics.EventLog.InternalWriteEvent(UInt32 eventID, UInt16 category, EventLogEntryType type, String[] strings, Byte[] rawData, String currentMachineName)
       場所 System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
       場所 System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category)

この例外は、IISの仮想ディレクトリの設定で、ASP.NET偽装を無効にすることで解決した。