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:

Falls die Regeln in Ihrer Distribution nicht enthalten sind, können Sie sie manuell installieren:

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

Nach der Installation der Regeln müssen Sie diese neu laden:

sudo udevadm control --reload-rules && sudo udevadm trigger

Wenn Sie immer noch nicht auf Ihr Gerät zugreifen können, versuchen Sie es nach einem Neustart Ihres Systems erneut.

Begrenzungen

Die empfohlenen udev-Regeln nutzen den Mechanismus „ ` “ uaccess`, um die richtigen Berechtigungen dynamisch zuzuweisen. Dieser Mechanismus erfordert „ ` “ systemd` und funktioniert nur bei lokal angemeldeten Benutzern (das heißt, keine SSH-Anmeldungen oder Ähnliches).

Fehlersuche

Falls die Installation der udev-Regeln das Problem nicht behoben hat, können Sie die folgenden Schritte ausführen, um die Ursache zu ermitteln:

  1. Unplug the Nitrokey.

  2. Starten Sie den Computer neu, um sicherzustellen, dass die udev-Regeln aktiviert sind.

  3. Führen Sie den Befehl „ sudo dmesg --follow“ aus und schließen Sie den Nitrokey an. Beobachten Sie die anschließend angezeigten Protokollmeldungen. Es sollte eine Zeile ähnlich der folgenden erscheinen:

    [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
    
  4. Ermitteln Sie den Namen des Hidraw-Geräts anhand der Protokollmeldung. In diesem Fall lautet er „ hidraw3“.

  5. Überprüfen Sie die Berechtigungen für das hidraw-Gerät, indem Sie folgenden Befehl ausführen: ` `` getfacl /dev/$name`, wobei $name der Name des hidraw-Geräts ist. Ihr Benutzer sollte über die Berechtigungen rw verfügen. Beispiel für den Benutzer 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::---
    
  6. Falls Ihr Benutzer nicht über die erforderlichen Berechtigungen verfügt, führen Sie den Befehl „ loginctl list-sessions“ aus. Es sollte eine Sitzung für Ihren Benutzer mit einer Lizenz angezeigt werden, zum Beispiel:

    $ 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.
    

Weitere Schritte zur Fehlerbehebung bei den udev-Regeln werden hier beschrieben: ` <https://github.com/Nitrokey/pynitrokey/issues/167#issuecomment-1024921046>` __.