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:

Ak vaša distribúcia tieto pravidlá neposkytuje, môžete ich nainštalovať ručne:

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

Po inštalácii pravidiel je potrebné ich znovu načítať:

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

Ak sa vám stále nedarí získať prístup k zariadeniu, skúste to znovu po reštartovaní systému.

Obmedzenia

Odporúčané pravidlá udev využívajú mechanizmus uaccess na dynamické prideľovanie správnych oprávnení. Tento mechanizmus vyžaduje systemd a funguje iba v prípade používateľov, ktorí sú prihlásení lokálne (to znamená, že nefunguje pri prihlásení cez SSH ani podobných spôsoboch).

Riešenie problémov

Ak inštalácia pravidiel udev problém nevyriešila, môžete na jeho zistenie vykonať nasledujúce kroky:

  1. Unplug the Nitrokey.

  2. Reštartujte počítač, aby ste sa uistili, že sú pravidlá udev aktivované.

  3. Spustite príkaz sudo dmesg --follow a pripojte Nitrokey. Sledujte hlásenia v protokole, ktoré sa následne zobrazia. Mal by sa vám zobraziť riadok podobný tomuto:

    [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. Z správy v protokole zistite názov zariadenia hidraw. V tomto prípade je to hidraw3.

  5. Skontrolujte oprávnenia pre zariadenie hidraw spustením príkazu getfacl /dev/$name, kde $name je názov zariadenia hidraw. Mal by sa vám zobraziť váš používateľ s oprávneniami rw. Napríklad pre používateľa 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. Ak váš používateľ nemá správne oprávnenia, spustite príkaz loginctl list-sessions. Malo by sa vám zobraziť jedna relácia vášho používateľa s licenciou, napríklad:

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

Ďalšie kroky na odstraňovanie chýb v pravidlách udev sú popísané na stránke tu.