解決策 1:
決定的な違いがあります。
減らす場合 プロセスの優先度、順序は関係ありません。一方、増やしたい場合は sudo
を入力する必要があります nice
より前 .
通常のユーザーとしてコマンドを実行しているため (そうしないと、sudo をまったく気にしないでしょう)、コマンドの優先度を下げることしかできません。しかし、 sudo
を使用すると まず、必要に応じて増やすことができます。
解決策 2:
nice sudo
を実行した場合 そうすれば、パスワードのプロンプトも表示されますが、パスワードの入力にはるかに多くの時間を費やすことになるため、それほど重要ではありません.
ThoriumBR が指摘したように、優先度を下げる場合、順序は関係ありませんが、優先度を上げる場合は (これは root として行う必要があるため) sudo nice
を使用する必要があります .
そうでなければ、本当の違いは想像できません.
解決策 3:
「最小権限の原則」を使用して、ルート権限が必要な場合にのみプログラムを実行し、必要がなくなったらすぐに削除する必要があります。
そうです、違いがあります。nice のエクスプロイトがあれば、攻撃者は nice プログラムと同じ権限でコードを実行できます。
また、sudo は環境をリセットするため、副作用がある可能性があります。試してください
$ echo 'echo $PATH' | sh
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jens/.local/bin:/home/jens/bin:/home/jens/.local/bin
$ echo 'echo $PATH' | sudo sh
[sudo] password for jens:
/sbin:/bin:/usr/sbin:/usr/bin
そのため、sudo 経由で実行する「nice」コマンドは、実際には別のバイナリになる可能性があります。
$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
解決策 4:
遅い回答:
sudo アクセスが特定のプログラム (foo
) に制限されている場合 そして bar
、たとえば)、 sudo nice foo
を実行する権限がありません 、しかし nice sudo foo
の実行は許可されます .