Setting up the udev Rules¶
To be able to access your devices without root privileges, nitropy requires the Nitrokey udev rules. On many distributions, they can be installed from a package:
Arch Linux:`nitrokey-udev-rules<https://archlinux.org/packages/extra/any/nitrokey-udev-rules/>`__
Debian:`nitrokey-udev<https://packages.debian.org/search?keywords=nitrokey-udev&searchon=names&exact=1&suite=all§ion=all>`__(自 Debian 14 Forky 起)
NixOS:`nitrokey-udev-rules<https://search.nixos.org/packages?channel=unstable&query=nitrokey-udev-rules#show=nitrokey-udev-rules>`__ (将
hardware.nitrokey.enable设置为``true``)Ubuntu:`nitrokey-udev<https://packages.ubuntu.com/search?keywords=nitrokey-udev&searchon=names&exact=1&suite=all§ion=all>`__(自 Ubuntu 26.10 Stonking Stingray 起)
如果您的发行版未提供这些规则,您可以手动安装这些规则:
wget https://raw.githubusercontent.com/Nitrokey/nitrokey-udev-rules/main/41-nitrokey.rules
sudo mv 41-nitrokey.rules /etc/udev/rules.d/
sudo chown root:root /etc/udev/rules.d/41-nitrokey.rules
sudo chmod 644 /etc/udev/rules.d/41-nitrokey.rules
安装完规则后,你需要重新加载它们:。
sudo udevadm control --reload-rules && sudo udevadm trigger
如果您仍然无法访问您的设备,请重启系统后再试一次。
限制条件¶
推荐的 udev 规则使用``uaccess`` 机制来动态分配正确的权限。该机制需要``systemd``,且仅对本地登录的用户有效(这意味着不支持 SSH 登录或类似方式)。
故障排除¶
如果安装 udev 规则后问题仍未解决,您可以按照以下步骤排查问题:
Unplug the Nitrokey.
重新启动计算机,以确保 udev 规则已生效。
执行命令
` `sudo dmesg --follow,并连接硝基。观察随后出现的日志消息。您应该会看到类似以下的一行:[46561.825062] hid-generic 0003:20A0:42B2.000F: hiddev97,hidraw3: USB HID v1.11 Device [Nitrokey Nitrokey 3] on usb-0000:00:14.0-3.4.1/input1
根据日志消息确定 hidraw 设备名称。在此情况下,该设备名称为``hidraw3``。
通过运行`getfacl /dev/$name` 来检查hidraw设备的权限,其中`$name` 是hidraw设备的名称。您应该看到您的用户拥有`rw` 的权限。例如,对于用户`myuser` :
$ getfacl /dev/hidraw3 getfacl: Removing leading '/' from absolute path names # file: dev/hidraw3 # owner: root # group: root user::rw- user:myuser:rw- group::--- mask::rw- other::---
如果您的用户没有相应的权限,请执行以下命令:
loginctl list-sessions。您应该会看到该用户有一个带有席位的会话,例如:$ loginctl list-sessions SESSION UID USER SEAT LEADER CLASS TTY IDLE SINCE 1 1000 myuser seat0 1487 user - no - 2 1000 myuser - 1495 manager - no - 2 sessions listed.
有关调试 udev 规则的其他步骤,请参阅`此处<https://github.com/Nitrokey/pynitrokey/issues/167#issuecomment-1024921046>`__。