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:

Εάν η διανομή σας δεν παρέχει τους κανόνες, μπορείτε να τους εγκαταστήσετε χειροκίνητα:

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

Αφού εγκαταστήσετε τους κανόνες, πρέπει να τους επαναφορτώσετε:

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

Εάν εξακολουθείτε να μην έχετε πρόσβαση στη συσκευή σας, δοκιμάστε ξανά αφού επανεκκινήσετε το σύστημά σας.

Περιορισμοί

Οι συνιστώμενοι κανόνες του udev χρησιμοποιούν τον μηχανισμό uaccess για τη δυναμική εκχώρηση των σωστών δικαιωμάτων. Ο μηχανισμός αυτός απαιτεί systemd και λειτουργεί μόνο με χρήστες που έχουν συνδεθεί τοπικά (δηλαδή, δεν υποστηρίζει συνδέσεις μέσω SSH ή παρόμοιες).

Αντιμετώπιση προβλημάτων

Εάν η εγκατάσταση των κανόνων του udev δεν έλυσε το πρόβλημα, μπορείτε να ακολουθήσετε τα παρακάτω βήματα για να διερευνήσετε το πρόβλημα:

  1. Unplug the Nitrokey.

  2. Επανεκκινήστε τον υπολογιστή για να βεβαιωθείτε ότι οι κανόνες του udev έχουν ενεργοποιηθεί.

  3. Εκτελέστε την εντολή sudo dmesg --follow και συνδέστε το Nitrokey. Παρατηρήστε τα μηνύματα καταγραφής που εμφανίζονται στη συνέχεια. Θα πρέπει να δείτε μια γραμμή παρόμοια με την εξής:

    [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. Προσδιορίστε το όνομα της συσκευής hidraw από το μήνυμα καταγραφής. Στην περίπτωση αυτή, είναι hidraw3.

  5. Ελέγξτε τα δικαιώματα για τη συσκευή hidraw εκτελώντας την εντολή ` `` getfacl /dev/$name`, όπου ` `` $name` είναι το όνομα της συσκευής hidraw. Θα πρέπει να δείτε τον χρήστη σας με δικαιώματα ` `` rw`. Για παράδειγμα, για τον χρήστη ` `` 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. Εάν ο χρήστης σας δεν διαθέτει τα κατάλληλα δικαιώματα, εκτελέστε την εντολή loginctl list-sessions. Θα πρέπει να δείτε μία συνεδρία για τον χρήστη σας με μια θέση, για παράδειγμα:

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

Περισσότερες οδηγίες για τον εντοπισμό σφαλμάτων στους κανόνες του udev περιγράφονται εδώ: ` <https://github.com/Nitrokey/pynitrokey/issues/167#issuecomment-1024921046>` __.