sudo権限が拒否されましたが、suが権限を付与しました。

sudo権限が拒否されましたが、suが権限を付与しました。

suが必要なのは今回が初めてです。

ノートパソコンの画面の明るさを変更するために、/sys/devices/virtual/backlight/acpi_video0/brightnessの値を変更する方法についての記事を読んだ。

$ sudo echo 10 > brightness私は私が望んだときに拒絶されていることを初めて実現しました。

私はsuを使ってルートに切り替え、# echo 10 > brightnessほぼ瞬時に明るさを変更しました。

最後に試したときに奇妙なことが起こり# echo 20 > brightness(maxbrightnessファイルの値は15でした)、書き込みエラーが発生しました。

誰かがsudoとsuの違いを私に説明できますか?書き込みエラーについて知ると、追加の利点があります。どんな助け、アドバイス、および/またはリンクにも感謝します。

答え1

リダイレクトが機能する方法ではありません。コマンドに追加すると、ルートではなく>呼び出し側のユーザー(自分)にリダイレクトが実行されます。これでやるtee:

echo 20 | sudo tee /sys/devices/virtual/backlight/acpi_video0/brightness

または、別の権限を持つシェルでコマンドを呼び出して:

sudo bash -c "echo 20 > /sys/devices/virtual/backlight/acpi_video0/brightness"

答え2

これはsudoではなく、実際に説明したコマンドの処理方法によるものです。この問題。するとき

$ sudo echo 10 > brightness

シェルはrootとして実行されるコマンドを実行sudo echo 10しますecho 10。その後、シェルはbrightness出力をリダイレクトできるように開こうとしますが、echo 10それはできません。シェルは root ではなくユーザー権限で実行されています。私がリンクした質問に対する答えとして投稿されたいくつかの回避策があります。

$ echo 10 | sudo tee brightness

これでtee開きますbrightness。ルートとして実行しているので成功します。

答え3

数=S魔女あなたser: 他のユーザーとしてシェルを使用する

Sudo =S上層あなたセレする:rootユーザーとして次のコマンドを実行します。

あなたの場合、次のコマンドはecho 20echo 20であるため、前述のようにecho 20万ルートで実行されます。リダイレクトが再び機能します。

答え4

/etc/sudoersファイルを見たい場合があります。そのリストにエアコンがない場合、エアコンは利用できません。sudo

関連情報