Zaptel udev
現在のLinuxディストリビューションでは、その多くでデバイスの新しい管理方法としてudevが使用されています。udevの挙動に注意しないとAsteriskをroot以外のユーザで動作させることができません。
目次
ディストリに依存しない一番簡単な方法
init.dのzaptelのstartに以下を入れてしまいます。
elif [ $system = redhat ]; then action "Running ztcfg: " /sbin/ztcfg fi RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zaptel chown -R asterisk:asterisk /dev/zap <--これ
こうすればデバイスが生成された後、chownされてしまいます。
Fedora Core 4
どうもzaptelがインストールする設定ファイル類に間違いがある気がします。普通に/etc/init.d/zaptel startを実行するとオーナがrootでデバイスが出来上がってしまいます。/etc/udev/rules.dにzaptel.rulesというファイルがあるのですが、この内容が反映されないようです。そこで以下の方法で解決しました。 50-udev.rulesファイルに以下のようなzaptelのエントリがあります。
# Section for zaptel device KERNEL=="zapctl", NAME="zap/ctl" KERNEL=="zaptimer", NAME="zap/timer" KERNEL=="zapchannel", NAME="zap/channel" KERNEL=="zappseudo", NAME="zap/pseudo" KERNEL=="zap[0-9]*", NAME="zap/%n"
どうもこの設定が最終的には生きるようなので、これらを以下のように修正します。
# Section for zaptel device KERNEL=="zapctl", NAME="zap/ctl",MODE="0600",OWNER="asterisk",GROUP="asterisk" KERNEL=="zaptimer", NAME="zap/timer",MODE="0600",OWNER="asterisk",GROUP="asterisk" KERNEL=="zapchannel", NAME="zap/channel",MODE="0600",OWNER="asterisk",GROUP="asterisk" KERNEL=="zappseudo", NAME="zap/pseudo",MODE="0600",OWNER="asterisk",GROUP="asterisk" KERNEL=="zap[0-9]*", NAME="zap/%n",MODE="0600",OWNER="asterisk",GROUP="asterisk"
これでasterisk:asteriskでデバイスが生成されるようになります。
CentOS 4.4
基本的に正しいudevのrulesファイルがインストールされるようです。ユーザ名asteriskとグループasteriskを追加した後、Zaptelを再起動すると各デバイスのオーナ/グループがasteriskに設定されます。
CentOS 5
/etc/udev/rules.dの40-udev.rulesファイルにzaptelエントリがあるため、zaptelを起動するとデバイスのオーナがrootになってしまいます。zaptelを正しくインストールし、make configを行ったのであれば50-udev.rulesファイルを編集し、以下のようにzaptelのエントリをコメントアウトすれば正しいオーナで設定されます。
# Section for zaptel device #KERNEL=="zapctl", NAME="zap/ctl" #KERNEL=="zaptimer", NAME="zap/timer" #KERNEL=="zapchannel", NAME="zap/channel" #KERNEL=="zappseudo", NAME="zap/pseudo" #KERNEL=="zap[0-9]*", NAME="zap/%n"
permissons.dがある場合
この場合にはrules.dの下にzaptel.rulesファイルを置くだけでは正しくパーミッションが設定されません。permissions.d/50-udev.permissionsファイルの最後に以下を追加します。
# zaptel device zap/ctl:asterisk:asterisk:0600 zap/timer:asterisk:asterisk:0600 zap/channel:asterisk:asterisk:0600 zap/pseudo:asterisk:asterisk:0600 zap/zap[0-9]*:asterisk:asterisk:0600