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:

Om reglerna inte ingår i din distribution kan du installera dem manuellt:

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

När du har installerat reglerna måste du ladda om dem:

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

Om du fortfarande inte kan komma åt din enhet, försök igen efter att du har startat om systemet.

Begränsningar

De rekommenderade udev-reglerna använder mekanismen uaccess för att dynamiskt tilldela rätt behörigheter. Denna mekanism kräver systemd och fungerar endast för användare som är inloggade lokalt (det vill säga inga SSH-inloggningar eller liknande).

Felsökning

Om problemet inte löstes genom att installera udev-reglerna kan du följa stegen nedan för att utreda orsaken till problemet:

  1. Unplug the Nitrokey.

  2. Starta om datorn för att säkerställa att udev-reglerna är aktiverade.

  3. Kör kommandot sudo dmesg --follow och anslut Nitrokey. Titta på loggmeddelandena som visas därefter. Du bör se en rad som ser ut ungefär så här:

    [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. Ta reda på namnet på hidraw-enheten utifrån loggmeddelandet. I det här fallet är det hidraw3.

  5. Kontrollera behörigheterna för hidraw-enheten genom att köra getfacl /dev/$name där $name är namnet på hidraw-enheten. Du bör se att din användare har behörigheterna rw. Till exempel för användaren 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. Om din användare inte har rätt behörigheter, kör kommandot loginctl list-sessions. Du bör då se en session för din användare med en licens, till exempel:

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

Ytterligare steg för felsökning av udev-reglerna beskrivs på här.