Xをユーザーとして開始し、キーボードの明るさを/sys/class/leds/asus\:\:kbd_backlight/brightness
で設定する必要があります。 /sys/
ディレクトリは再起動後に再作成されるため、権限もリセットされます。起動するたびにすべてのユーザーがファイルを書き込み可能にする必要がないようにするには、どうすればよいですか?
ログインマネージャーとしてSDDMを、DEとしてKDEを使用してArchlinuxを使用しています。
できません。sysfsの権限はカーネル空間で定義され、ユーザー空間ツールで変更することはできません(カーネル側のサポートがない場合)。
しかし、あなた自身の問題のために、誰もがそのパスに書き込むことを許可するSudoエントリ、つまりALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/class/leds/asus\:\:kbd_backlight/brightness
をセットアップすることができます
そして、そのディレクトリに書き込むときは、次のようなスクリプトを使用します。echo 1 | Sudo /usr/bin/tee "/sys/class/leds/asus::kbd_backlight/brightness"
Linuxの/sys
ディレクトリは偽物であり、ファイルとしてドレスアップされたカーネルのビューです。そのため、パーミッションを永続的に変更することはカーネルをハッキングすることを意味し、それはお勧めできません。コメントが言うように、おそらくsystemd
ユニットを設定することでこれが解決策になります(一般に、ブートプロセスの一部として変更をセットアップします)。
同様の問題があり、noderedサービスを実行する前に権限を設定する必要がありました。 goldilocksのコメントに続いて、このsystemdスクリプトを作成しました。
$ cat /etc/systemd/system/setledspermissions.service
[Unit]
Description=Set leds writable to everybody
Before=nodered.service
[Service]
Type=oneshot
User=root
ExecStart=/bin/bash -c "/bin/chmod a+w /sys/class/leds/led0/*"
[Install]
WantedBy=multi-user.target
サービスファイルを書き込んだ後、私はそれを有効にしました
$ Sudo systemctl enable setledspermissions.service
$ Sudo systemctl start setledspermissions.service
$ Sudo systemctl status setledspermissions.service