使用可能なsudo権限を持つ他のユーザーとしてコマンドを実行します。

使用可能なsudo権限を持つ他のユーザーとしてコマンドを実行します。

次のコマンドを実行したい

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

おすすめ記事