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 20
echo 20であるため、前述のようにecho 20万ルートで実行されます。リダイレクトが再び機能します。
答え4
/etc/sudoers
ファイルを見たい場合があります。そのリストにエアコンがない場合、エアコンは利用できません。sudo
。