バックライトを変更するスクリプトを実行しようとしていますが、キーボード ショートカットを使用してルート権限が必要です。明るさを変更するたびにパスワードを入力したくないので、そのスクリプトの sudoers ファイルに例外を追加したいと思います。しかし、私の試みはどれも成功していません。このスクリプトは私が自分で書いたものではないため、完全に理解しているわけではありません (ほとんどの部分は理解していますが)。
追加情報:
- .bashrc ファイルにスクリプトのエイリアスを作成しました:
alias backlight='sudo ./.config/Scripts/backlight.sh'
- スクリプトから sudo コマンドを削除しました:
#!/bin/bash
# base dir for backlight class
basedir="/sys/class/backlight/"
# get the backlight handler
handler=$basedir$(ls $basedir)"/"
# get current brightness
old_brightness=$(cat $handler"brightness")
# get max brightness
max_brightness=$(cat $handler"max_brightness")
# get current brightness %
old_brightness_p=$(( 100 * $old_brightness / $max_brightness ))
# calculate new brightness %
new_brightness_p=$(($old_brightness_p $1))
# calculate new brightness value
new_brightness=$(( $max_brightness * $new_brightness_p / 100 ))
# set the new brightness value
(sudo) chmod 666 $handler"brightness"
echo $new_brightness > $handler"brightness"
- これらは、sudoers ファイルの末尾に追加して実験していた行です。
ALL ALL=(ALL) NOPASSWD: /home/sepseel/.conf/Scripts/$
#ALL ALL=(ALL) NOPASSWD: /bin/chmod
- 私のシステムは現在、i3wm を搭載した Ubuntu 16.04 を実行しているため、ショートカットの i3 構成ファイルに次の内容が含まれています。
bindsym XF86MonBrightnessUp exec "sudo ./home/sepseel/.config/Scripts/backlight.sh +10"
bindsym XF86MonBrightnessDown exec "sudo ./home/sepseel/.config/Scripts/backlight.sh -10"
前もって感謝します。