私はLinuxが初めてなので、我慢してください。キーボードバックライトを備えたSony VaioラップトップでUbuntu 16.04を実行しています。このコマンドを端末に入力し、*value*
の代わりに「0」を入力してバックライトをオフにし、「2」を入力してバックライトをオンにします。
Sudo su -c "echo *value* > /sys/devices/platform/sony-laptop/kbd_backlight"
設定アプリに行ってカスタムキーボードショートカットを作成し、それを単純なctrlキーバインドにバインドすると、機能しません。どんな助けでも大歓迎です。
3つのオプションがあります。あなたが一番好きなものを選んでください:
まだインストールされていない場合はgksu
パッケージをインストールし、gksudo
のように端末コンソールで要求される代わりにSudo
を使用してGUIパスワード入力ダイアログポップアップを取得します。キーボードショートカットとして実行するため、機能しません)。
Sudo apt install gksu
ショートカットにバインドする必要があるコマンドは次のとおりです。
gksudo -- bash -c 'echo VALUE > /sys/devices/platform/sony-laptop/kbd_backlight'
pkexec
の代わりにSudo
を使用します。 gksudo
と同様に機能し、プリインストールする必要がありますが、ターミナルコマンドでのみ機能します。GUIアプリケーションをルートとして実行する場合は、特別な設定が必要です。しかし、あなたのコマンドにはそれで十分でしょう。
ショートカットにバインドする必要があるコマンドは次のとおりです。
pkexec bash -c 'echo VALUE > /sys/devices/platform/sony-laptop/kbd_backlight'
明るさを変更する短いスクリプトを作成し、Sudo
のNOPASSWD
オプションを設定して、パスワードを求められることなくrootとして実行できるようにします。
関連する質問: パスワードなしで特定のSudoコマンドを実行するにはどうすればよいですか?
特定の場合に必要なことは次のとおりです。
Rootとして実行される、目的を達成するために必要なすべてのコマンドを含むスクリプトファイルを作成します。
#!/bin/bash
if test "$(id -u)" -ne 0 ; then
Sudo "$0" "$1"
exit $?
fi
if test "$1" -gt 0 ; then
echo "$1" > /sys/devices/platform/sony-laptop/kbd_backlight
else
echo "Invalid argument $1"
exit 1
fi
上記のスクリプトは、コマンドライン引数としてゼロより大きい整数を取り、基本的な健全性チェックを実行した後にバックライト制御ファイルに書き込みます。また、必要に応じて値0
および2
のみを許可するようにチェックを変更することもできますが、それはあなたにお任せします。
さらに、実行中のユーザーとしてチェックし、必要に応じてSudo
を使用して自分自身を実行することにより、特権をrootに昇格しようとします。つまり、実行時にSudo
を省略することもできます。
このスクリプトを/usr/local/bin/set-kbd-backlight
として保存します(別のファイル名を選択することもできますが、ディレクトリは同じままにしてください。この場所への書き込みにはSudo
が必要であることに注意してください)
スクリプトファイルの所有権とアクセス許可の設定が正しいことを確認してください。パスワードなしでこのスクリプトをrootとして実行できるようになるため、すべてのユーザーが実行できることを確認する必要がありますが、root以外のユーザーは編集できません。
Sudo chown root:root /usr/local/bin/set-kbd-backlight
Sudo chmod 755 /usr/local/bin/set-kbd-backlight
これで、Sudo
を構成して、このスクリプトをパスワードなしでrootとして実行できるようになります。
以下のコマンドを実行して、Sudo
構成ファイル/etc/sudoers
を編集します(他の方法ではありません!):
Sudo visudo
ファイルの終わり近くでincludedir /etc/sudoers.d
を含む行の直前に次の行を追加し、USERNAME
をrootとしてパスワードなしの実行を許可する正しいユーザー名に置き換えます。
USERNAME ALL=(root) NOPASSWD: /usr/local/bin/set-kbd-backlight
を押してvisudo
エディターを終了します Ctrl+X、その後 Y (またはロケールで「はい」を表すキー) Enter。
現在のシェルセッションで最後の15分以内にパスワードを入力した場合に備えて、最初にSudo -k
を実行してキャッシュされたパスワードを取り消すことにより、機能していることを確認します。これは、スクリプトが機能するために必要ではなく、NOPASSWD
を正しく構成したかどうかをテストするだけです。
次に、以下のコマンドを実行して、Sudo
なしでバックライトをオンまたはオフにします。パスワードを要求されるべきではありません。
set-kbd-backlight 0
set-kbd-backlight 2
コマンド(set-kbd-backlight 0
はライトをオフにし、set-kbd-backlight 2
はライトをオンにします)をそれぞれのキーボードショートカットにバインドします。