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:

Ja jūsu distribūcijā šie noteikumi nav iekļauti, tos varat instalēt manuāli:

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

Pēc noteikumu instalēšanas tie ir jāpārlādē:

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

Ja joprojām nevarat piekļūt savai ierīcei, mēģiniet vēlreiz pēc sistēmas pārstartēšanas.

Ierobežojumi

Ieteicamajos udev noteikumos tiek izmantots mehānisms uaccess, lai dinamiski piešķirtu pareizās atļaujas. Šim mehānismam ir nepieciešams systemd, un tas darbojas tikai ar lietotājiem, kuri ir pieteikušies lokāli (tas nozīmē, ka nav iespējama pieteikšanās caur SSH vai līdzīgiem līdzekļiem).

Problēmu novēršana

Ja problēma netika atrisināta, instalējot udev noteikumus, varat veikt šādus soļus, lai izpētītu problēmu:

  1. Unplug the Nitrokey.

  2. Pārstartējiet datoru, lai nodrošinātu, ka udev noteikumi ir aktivizēti.

  3. Izpildiet komandu ` `` sudo dmesg –follow` un pieslēdziet Nitrokey. Sekojiet līdzi pēc tam parādītajiem žurnāla ziņojumiem. Jums vajadzētu redzēt rindu, kas izskatās aptuveni šādi:

    [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. Nosakiet hidraw ierīces nosaukumu pēc žurnāla ziņojuma. Šajā gadījumā tas ir hidraw3.

  5. Pārbaudiet hidraw ierīces atļaujas, izpildot komandu „ ` ” getfacl /dev/$name`, kur $name ir hidraw ierīces nosaukums. Jums vajadzētu redzēt savu lietotāju ar atļaujām rw. Piemēram, lietotājam 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. Ja jūsu lietotājam nav atbilstošas atļaujas, izpildiet komandu loginctl list-sessions. Jums vajadzētu redzēt vienu sesiju jūsu lietotājam ar licenci, piemēram:

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

Papildu soļi udev noteikumu kļūdu novēršanai ir aprakstīti šeit: ` <https://github.com/Nitrokey/pynitrokey/issues/167#issuecomment-1024921046>` __.