【问题标题】:Failure to use udev rule to change smart card device ownership in Xen/QubesOs VM未能使用 udev 规则更改 Xen/QubesOs VM 中的智能卡设备所有权
【发布时间】:2017-05-03 21:34:58
【问题描述】:

在 Xen VM(在 QubesOS 内)中,我可以看到我的手动 USB 智能卡读卡器,如下所示:

Prompt> lsusb
Bus 002 Device 002: ID 04e6:5116 SCM Microsystems, Inc. SCR331-LC1 / SCR3310 SmartCard Reader
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...

使用udevadm 进行深入研究:

Prompt> udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/002/002)
looking at device '/devices/platform/vhci_hcd/usb2/2-1':
  KERNEL=="2-1"
  SUBSYSTEM=="usb"
  DRIVER=="usb"
  ATTR{authorized}=="1"
  ATTR{avoid_reset_quirk}=="0"
  ATTR{bConfigurationValue}=="1"
  ATTR{bDeviceClass}=="00"
  ATTR{bDeviceProtocol}=="00"
  ATTR{bDeviceSubClass}=="00"
  ATTR{bMaxPacketSize0}=="32"
  ATTR{bMaxPower}=="100mA"
  ATTR{bNumConfigurations}=="1"
  ATTR{bNumInterfaces}==" 1"
  ATTR{bcdDevice}=="0204"
  ATTR{bmAttributes}=="a0"
  ATTR{busnum}=="2"
  ATTR{configuration}=="CCID Class"
  ATTR{devnum}=="2"
  ATTR{devpath}=="1"
  ATTR{idProduct}=="5116"
  ATTR{idVendor}=="04e6"
  ATTR{ltm_capable}=="no"
  ATTR{manufacturer}=="SCM Microsystems Inc."
  ATTR{maxchild}=="0"
  ATTR{product}=="SCR3310 v2.0 USB SC Reader"
  ATTR{quirks}=="0x0"
  ATTR{removable}=="unknown"
  ATTR{speed}=="12"
  ATTR{urbnum}=="14"
  ATTR{version}==" 2.00"

looking at parent device '/devices/platform/vhci_hcd/usb2':
  KERNELS=="usb2"
  SUBSYSTEMS=="usb"
  DRIVERS=="usb"
...

尽管权限设置如下:

Prompt> ls -la /dev/bus/usb/002/002
crw-rw-r-- 1 root root 189, 129 May  3 23:01 /dev/bus/usb/002/002

调用gpg2 --card-status 的结果与root 一样,但作为普通用户会产生Card error。 我尝试使用以下 udev 规则 (/etc/udev/rules.d/51-SCR3310.rules) 来解决此问题:

KERNEL=="usb*", SUBSYSTEM=="usb", ATTRS{idVendor}=="04e6", ATTRS{idProduct}=="5116", MODE="0660", GROUP="user" 

但无论我做什么,我都无法让普通用户通过gpg2访问阅读器。

我在哪里搞砸了?

【问题讨论】:

    标签: smartcard gnupg xen udev qubes-os


    【解决方案1】:

    经过多次谷歌搜索(即startpaging),我终于找到了答案here。

    除了需要具有以下内容的/etc/udev/rules.d/71-gpg-ccid.rules 文件以使udev 允许我的用户组(user)访问设备(取自here)

    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e6", ENV{ID_MODEL_ID}=="5116", MODE="660", GROUP="user"
    

    我受到gnome-keyring 与gpg-agent 的干扰并添加

    Hidden=true
    X-GNOME-Autostart-enabled=false
    

    以/etc/xdg/autostart/gnome-keyring-ssh.desktop 和gnome-keyring-gpg.desktop 结尾的智能卡访问作为普通用户工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多