次のコマンドを実行したい
echo 1000 > /sys/class/backlight/intel_backlight/brightness
bashは実際に出力をルート所有の明るさファイルに送信するプロセスなので、以下のようにすることはできません。
sudo echo 1000 > /sys/class/backlight/intel_backlight/brightness
それでは、このコマンドをどのように実行する必要がありますか?
- ルートパスワードを求めるメッセージを表示したくない
- root でログインしない場合は、コマンドを実行して終了します。
- 現在、ユーザーが使用できるsudo権限を使用してコマンドを実行する必要があります。
ベストアンサー1
あなたが要求することは不可能です。現在のプロセスはルートとしては実行されず、ルートのみを実行できますsetuid
。したがって、まず別のプロセスをrootとして起動する必要があります(この場合はsetuid実行可能ファイルを使用してsudo
)。
これは不可能なものを取り除き、あなたが要求するものに最も近いものです。
echo 1000 | sudo tee /sys/class/backlight/intel_backlight/brightness
パスワードを求めるプロンプトを表示したくない場合は、次の行を追加します/etc/sudoers
(を使用してユーザー名にvisudo
置き換えます)。rag
Cmnd_Alias BACKLIGHT = /usr/bin/tee /sys/class/backlight/intel_backlight/brightness, ! /usr/bin/tee /sys/class/backlight/intel_backlight/brightness *
rag ALL=(root) NOPASSWD: BACKLIGHT