いくつかのコマンドをsudoとして実行する必要があるスクリプトがあります。私はすでにそれを見ました独断的スクリプト内でsudoを実行するのは悪い考えです。スクリプト全体をsudoとして実行することをお勧めします(便宜上、sudoerを変更できます)。ここで述べたように)。
私も考えてみましたが、理由を見つけることができません。いいえスクリプトで sudo コマンドを実行します。スクリプトとそのディレクトリの両方がルート所有であるため、純粋であると仮定すると、セキュリティの観点から違いはありません。 (しかし、スクリプト全体をsudoとして実行するのも同様に危険です。)ここで何かが抜けましたか?
答え1
ランニングはsudo
何を期待すべきか、それが本当に必要かどうかわからないので、悪い考えです。
パスワードプロンプトが表示されますか?それでは、パスワードは誰が入力するのでしょうか?覚えておいてください:スクリプトはシェル上の人によって実行される可能性がありますが、起動時にバックグラウンドで、cronによって、または端末が利用できない他の状況で実行されることがあります。
メッセージが表示されたら、ユーザーはパスワードを入力しますか?個人的には、パスワードを求めるスクリプトをすぐに停止します。また、スクリプトが多くの出力を生成する場合、プロンプトが表示されないことがあります。
sudo
利用可能で構成されていますか?現在のユーザーが実行できますかsudo
?これらの質問の1つに対する答えは「いいえ」かもしれません。この場合、ユーザーにスクリプトに必要な権限を提供する方法を選択する必要があります。スーパーユーザーになるべきですか?おそらく、スクリプトにroot権限がまったく必要ないようにシステムを設定した可能性があります。この場合、root権限は
sudo
完全に不要で、おそらく非常に混乱しています。
お願いします私必要な権限とその権限を付与する方法を決定します。
あなたがルートである場合は、以下を実行することをお勧めしますsudo
。減らすあなたの特権。たとえば、nobody:nogroup
セキュリティ上の理由から、ルートが所有するファイルを開いてすぐにそのファイルに切り替えることができます。それでもsudo
機能しない、または構成できない問題が残っています。