次のコマンドを使用してSudoで集中的なタスクを実行することには違いがありますか?
ところでこれはLinux 3.x用です。
違いがあります、重要な違いです。
減少プロセスの優先順位を指定する場合、順序は関係ありません。一方、増加にする場合は、Sudo
の前にNice
を置く必要があります。
通常のユーザーとしてコマンドを実行しているため(そうでない場合は、Sudoをまったく使用しません)、コマンドの優先度を下げることしかできません。ただし、最初にSudo
を使用する場合は、必要に応じて増やすことができます。
Nice Sudo
を実行すると、パスワードのプロンプトも適切に機能しますが、パスワードの入力にはるかに多くの時間を費やすため、それほど重要ではありません。
ThoriumBRが述べたように、優先度を下げる場合、順序は関係ありませんが、優先度を上げる場合、(これはrootとして実行する必要があるため)Sudo Nice
を使用する必要があります。
そうでなければ、私は本当の違いを想像することはできません。
遅い答え:
Sudoアクセスが特定のプログラム(foo
およびbar
など)に制限されている場合、Sudo Nice foo
を実行する権限はありませんが、Nice Sudo foo
の実行は許可されます。
'principle of least privilege' を使用すると、ルート権限で必要な場合にのみプログラムを実行し、不要になったらすぐに再度ドロップする必要があります。
つまり、違いがあります。ニースのエクスプロイトがある場合、攻撃者はニースプログラムと同じ特権でコードを実行する可能性があります。
また、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を介して実行する「ニース」コマンドは、実際には別のバイナリになる可能性があります。
$ which ash
~/.local/bin/ash
$ Sudo which ash
[Sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)