Tweet

KVM でキーマップがクリアされる件

で,しばらく様子見してたら,現象が再発. というわけで,対策してみる.

以下の方法は,お行儀が悪く,マルチユーザのマシンでは権限昇格のセキュリティホールになり得るんだけど,自分しか使ってないマシンなので気にしないことにする.

udev 側の設定

/etc/udev/rules.d/z99999_usbkbd.rules ファイルを作成.udev を再起動.

ACTION=="add", KERNEL=="event*", ATTRS{idVendor}=="0430", ATTRS{idProduct}=="0011", RUN+="/home/imai/bin/usbkbd_handler"
  • idVendor と idProduct の値は,自分のデバイスのものに書き換える
  • RUN+= の値は,デバイスが刺された時点で実行させたいスクリプトを指定する

キーマップ設定スクリプト

udev 側のハンドラから呼び出される /home/imai/bin/usbkbd_handler はこんなかんじ. imai なんてユーザアカウント使ってない場合は,適宜書き換えてね.

#!/bin/sh
sleep 5
su imai -c 'xmodmap -display :0.0 /home/imai/.Xmodmap'
# date >> /home/imai/usbkbd.log
exit 0

date >> 行はコメントアウトしてありますが,これを有効にすると「デバイスを刺したタイミングでホントにスクリプトが実行されてるか」「1回の接続で何回もスクリプトが呼び出されていないか」チェックすることができます.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-20 (日) 21:05:51 (3678d)