2.6.18-xenU-ec2-v1.5でnscdを動かす

2.6.18-xenU-ec2-v1.5でnscdを起動しようとすると、以下のエラーが発生。

shell> nscd -d
2011年11月24日 21時52分03秒 - 3629: Failed to drop capabilities
nscd: cap_set_proc failed

「modprobe capability」で直るようだが、うまく動作しない。


以下のフォーラムで一応の解決策が書いてあった。
https://forums.aws.amazon.com/thread.jspa?threadID=40532

v1.2のモジュールを落としてきて展開。

wget http://s3.amazonaws.com/ec2-downloads/ec2-modules-2.6.18-xenU-ec2-v1.2-x86_64.tgz
tar zxvf ec2-modules-2.6.18-xenU-ec2-v1.2-x86_64.tgz -C /

v1.2のモジュールをロード。

echo 'install commoncap /sbin/modprobe -i commoncap || /sbin/modprobe -i --set-version 2.6.18-xenU-ec2-v1.2 commoncap' >/etc/modprobe.d/commoncap-hack
modprobe capability
modprobe capability # 2回実行する

これでとりあえずはnscdが起動するようになる。

shell> /etc/init.d/nscd start
nscd を起動中:                                             [  OK  ]
shell> /etc/init.d/nscd status
nscd (pid 2156) を実行中...

/etc/init.d/nscdに以下のパッチをあてておく。*1

---- /etc/init.d/nscd.orig	2011-07-22 23:59:09.000000000 +0900
+++ /etc/init.d/nscd	2011-11-24 22:41:53.000000000 +0900
@@ -38,6 +38,10 @@
 start () {
     [ -d /var/run/nscd ] || mkdir /var/run/nscd
     [ -d /var/db/nscd ] || mkdir /var/db/nscd
+
+    # see https://forums.aws.amazon.com/thread.jspa?threadID=40532
+    /sbin/modprobe capability
+
     secure=""
 #   for table in passwd group hosts
 #   do

*1:/etc/modprobe.confをいじってもうまくいかなかった