Je démarre X en tant qu'utilisateur et je dois régler la luminosité de mon clavier /sys/class/leds/asus\:\:kbd_backlight/brightness
. Le /sys/
répertoire est recréé après le redémarrage, de sorte que les autorisations seront également réinitialisées. Comment le configurer pour ne pas avoir à rendre le fichier accessible en écriture par tous les utilisateurs après chaque démarrage?
J'utilise Archlinux avec SDDM comme gestionnaire de connexion et KDE comme DE.
filesystems
permissions
users
xoned
la source
la source
Réponses:
Non, vous ne pouvez pas, l'autorisation de sysfs est définie dans l'espace du noyau et ne peut pas être modifiée avec les outils de l'espace utilisateur (sauf avec le support côté noyau).
Mais pour votre propre problème, vous pouvez configurer une entrée sudo qui permet à tout le monde d'écrire sur ce chemin, c'est-à-dire
ALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/class/leds/asus\:\:kbd_backlight/brightness
Et lorsque vous écrivez dans ce répertoire, utilisez un script comme celui-ci,
echo 1 | sudo /usr/bin/tee "/sys/class/leds/asus::kbd_backlight/brightness"
la source
/sys/devices/platform/sony-laptop/kbd_backlight
pour contrôler le rétroéclairage du clavier. J'ai changé le chemin dans votre code, ce qui conduit à cette erreur:bash: syntax error near unexpected token
(`` La commande que j'ai tapée estALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/devices/platform/sony-laptop/kbd_backlight
Please help/usr/bin/tee
et/sys/class...
. Après un bref examen de la grammaire,man sudoers
je pense que la virgule est nécessaire.Le
/sys
répertoire sous Linux est faux, c'est une vue dans le noyau déguisé en fichiers. Donc, changer les autorisations en permanence signifie pirater le noyau, et ce serait mal avisé. Comme le disent les commentaires, peut-être qu'unesystemd
unité définissant ce serait une solution (en général, définissez la modification dans le cadre du processus de démarrage).la source
J'ai eu un problème similaire, j'avais besoin de définir les autorisations avant d'exécuter le service incliné. Suite au commentaire de goldilocks j'ai créé ce script systemd:
Après avoir écrit le fichier de service, je l'ai activé avec
la source