画面の明るさを調整するためにBrightnessctlをインストールしましたが、rootとしてのみ機能します。それ以外の場合は、「デバイスファイルへの書き込み権限を取得しました」というアドバイスが印刷されます。これを行う正しい方法は何ですか?また、root権限なしでamixerを使用してボリュームを設定できるようにしたいです。これは同じ問題だと思います。
答え1
多くのデバイスアクセスの問題は、グループメンバーシップの変更で解決できます。
sudo journalctl --follow
デバイスが接続されている間に視聴してデバイス名を見つけることができます。または、ls -1 /dev >dev.before
デバイスを接続して10秒間待ちますls -1 /dev >dev.after;diff dev.{before,after}
。
特に、ls -l
グループ表示権限(2番目のrwx
三重項)が「」rw
(例: " -rw-rw----
")の場合、デバイスを所有するグループに自分自身を追加すると、rw
アクセス権が付与されます。
それだけです:
# change to your device name
device="/dev/dvdrw"
sudo adduser $USER $(stat -c "%G" $device)
これにより、デバイスを使用できるグループのメンバーになることができますrw
。しかし、もう一つのステップがあります。
すべてのプロセスを新しいグループのメンバーにするには、ログアウトしてログインします。グループメンバーシップは時間ベースで設定されますlogin
。
新しいグループから単一のプロセスを作成するには(テスト用、ログアウト/ログイン前):
newgrp $(stat -c "%G" $device)
またはグループ名を入力してください。望むよりman newgrp
。
答え2
オプション:
推奨事項:
sudo
一般ユーザーとして実行できるように構成します。明るさctlを実行するスクリプトを作成するには、suid rootを使用してください。 (パッケージマネージャを使用したと仮定すると、次のアップグレードでは維持されないため、Brightnessctlで直接suid rootを試みないでください。)スクリプトの作成方法によっては、セキュリティホールが発生する可能性があります。
問題のあるデバイスファイルを識別し、udevルールを作成して、作成後に権限を設定します。文章を書いたりデバッグしたりするのは楽しいことではありません。
また、rootアクセスなしでamixerを使用してボリュームを設定できるようにしたいです。
ルートなしでうまく機能するため、amixer
この場合はディストリビューション/コンピュータに奇妙な設定があると思われます。または、あなたのディストリビューションが私と似ている場合は、オーディオ操作を実行する権限を持つグループのメンバーとして使用法が設定されていません(マイaudio
ディストリビューションでは編集またはディストリビューションが提供する/etc/group
ツールのみを使用)。
答え3
video
自分をグループに追加する必要がinput
正常にbrightnessctl
動作します。バラよりhttps://github.com/Hummer12007/brightnessctl/issues/63。