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:

Če vaša distribucija teh pravil ne vsebuje, jih lahko namestite ročno:

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 namestitvi pravil jih morate ponovno naložiti:

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

Če še vedno ne morete dostopati do naprave, poskusite ponovno po ponovnem zagonu sistema.

Omejitve

Priporočena pravila udev uporabljajo mehanizem uaccess za dinamično dodeljevanje ustreznih dovoljenj. Ta mehanizem zahteva systemd in deluje le pri uporabnikih, ki so prijavljeni lokalno (kar pomeni, da ni mogoče uporabljati SSH-prijav ali podobnih načinov).

Odpravljanje težav

Če namestitev pravil udev ni odpravila težave, lahko za preiskavo težave izvedete naslednje korake:

  1. Unplug the Nitrokey.

  2. Ponovno zaženite računalnik, da se prepričate, da so pravila udev aktivirana.

  3. Izvedite ukaz sudo dmesg --follow in priključite Nitrokey. Opazujte sporočila v dnevniku, ki se nato prikažejo. Videti bi morali vrstico, podobno tej:

    [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. Iz sporočila v dnevniku ugotovite ime naprave hidraw. V tem primeru je to hidraw3.

  5. Preverite dovoljenja za napravo hidraw tako, da zaženete ukaz ` `` getfacl /dev/$name`, pri čemer je ` `` $name` ime naprave hidraw. Vaš uporabnik naj bi imel dovoljenja ` `` rw`. Na primer za uporabnika ` `` 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. Če vaš uporabnik nima ustreznih dovoljenj, izvedite ukaz loginctl list-sessions. Prikazala se bo ena seja za vašega uporabnika z licenco, na primer:

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

Dodatni koraki za odpravljanje napak v pravilih udev so opisani na tukaj.