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:

Jei jūsų distribucijoje šios taisyklės nėra pateiktos, jas galite įdiegti rankiniu būdu:

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

Įdiegus taisykles, jas reikia iš naujo įkelti:

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

Jei vis dar negalite prisijungti prie savo įrenginio, pabandykite dar kartą, iš naujo paleidę sistemą.

Apribojimai

Rekomenduojamose „udev“ taisyklėse naudojamas mechanizmas „ ` “ uaccess`, skirtas dinamiškai priskirti tinkamas teises. Šiam mechanizmui reikalingas „ ` “ systemd`, ir jis veikia tik su vietoje prisijungusiais vartotojais (tai reiškia, kad jis neveikia prisijungus per SSH ar panašiais būdais).

Trikčių šalinimas

Jei įdiegus „udev“ taisykles problema neišspręsta, galite atlikti šiuos veiksmus, kad išsiaiškintumėte problemos priežastį:

  1. Unplug the Nitrokey.

  2. Iš naujo paleiskite kompiuterį, kad įsitikintumėte, jog „udev“ taisyklės yra aktyvuotos.

  3. Vykdykite komandą „ sudo dmesg --follow“ ir prijunkite „Nitrokey“. Stebėkite po to pasirodančius žurnalo pranešimus. Turėtumėte pamatyti eilutę, panašią į šią:

    [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. Iš žurnalo pranešimo nustatykite „hidraw“ įrenginio pavadinimą. Šiuo atveju tai yra „ ` “ hidraw3`.

  5. Patikrinkite „hidraw“ įrenginio teises, paleisdami komandą „ ` “ getfacl /dev/$name`, kur $name yra „hidraw“ įrenginio pavadinimas. Turėtumėte pamatyti savo vartotoją, turintį rw teises. Pavyzdžiui, vartotojo myuser atveju:

    $ 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. Jei jūsų vartotojas neturi reikiamų teisių, įvykdykite komandą „ loginctl list-sessions“. Turėtumėte pamatyti vieną sesiją, priskirtą jūsų vartotojui, turinčiam licenciją, pavyzdžiui:

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

Papildomi veiksmai, skirti „udev“ taisyklių derinimo klaidų šalinimui, aprašyti čia: ` <https://github.com/Nitrokey/pynitrokey/issues/167#issuecomment-1024921046>` __.