📇
Podmanコンテナでpcsc_toolsを動かす
まえがき
- めちゃくちゃハマったので方法をメモしておく。
前提
- USB接続のsmartcardリーダー
- podman (dockerの場合は多分こんな苦労をしなくても動く)
理屈
- Smartcardリーダーはデバイスとして
/dev
以下にわかりやすい名前でマップされない -
/dev/bus/usb
以下にデバイスファイルとしてマップされる。(例:/dev/bus/usb/001/009
) - デバイスファイルのパスは、USBの接続した場所等で変わる。
- デバイスファイルの権限は
crw-rw-r-- 1 root root
なのでrootユーザーしか書き込みができない。
how to
- デバイスファイルの権限を変更すれば良い。そのためには udevルールを書く必要がある
- udevルールは
nn-xxxxxxxxx.rules
というファイル名にする。nnは読み込み順、xxxxは任意 - udevルールは
/etc/udev/rules.d/
に置く必要がある - 追加・更新後は、とりあえず
sudo udevadm control --reload
しておく。(自動的に反映されるらしい)
udevルールファイルの例
以下は、Gemaltのリーダーの場合の例。
以下の例では、カードリーダーを video
グループのユーザーにも使えるようにしている。
SUBSYSTEM=="usb", ATTRS{idVendor}=="08e6", ATTRS{idProduct}=="3437", GROUP="video", MODE="0660"
idVendor, idProductは lsusb
コマンドで調べることができる
例えば、以下の例だと、 idVendor=05fc idProduct=0231 である。
Bus 003 Device 004: ID 05fc:0231 Harman JBL Pebbles
確認
ls -l /dev/bus/usb
/dev/bus/usb/001:
total 0
crw-rw-r-- 1 root root 189, 0 Jun 6 18:17 001
crw-rw-r-- 1 root root 189, 1 Jun 6 18:17 002
crw-rw-r-- 1 root root 189, 2 Jun 6 18:17 003
crw-rw-r-- 1 root root 189, 3 Jun 6 18:17 004
crw-rw-r-- 1 root root 189, 18 Jun 6 18:17 019
crw-rw---- 1 root video 189, 19 Jun 6 18:17 020 <==== 所有グループが video になった
Discussion