web-dev-qa-db-ja.com

Linux-デーモンを「nobody」として実行します

現在rootとして実行されているデーモンがルートディレクトリにあります。ただし、このプログラムはファイルシステムを読み取ることができるため、これは明らかにセキュリティ上の問題です。この問題を解決できるように、どうすれば誰としても実行できませんか?

「su--nobody-c/root/myscript」を実行しても機能せず、アクセス許可拒否エラーが返されます。私がこれを回避するように見える唯一の方法は次のとおりです。

  1. Chmod -R 777/root。これはルートディレクトリでは実行したくないので、sshも台無しにします。
  2. スクリプトを/ optまたは/ varに移動してから、(1)を実行します。

もちろん、私が見逃している簡単な解決策があるかもしれません。私は誰にもそれをchownすることはできませんが、それでも問題は解決しません。何か案は?

2
Chris Bunch

やりたくない(1)-rootのホームディレクトリはそのままにしておきます。 (2)が最善のオプションです-デーモンが実行されるユーザーが所有する新しいディレクトリを作成し、そのディレクトリで実行する必要のあるディスクI/Oを実行します。

半関連、お願い「nobody」として実行しないでください-すべてのデーモンが「nobody」として実行されるため、* NIXシステムで通常誰も最も特権のあるユーザーではないという古いジョークがあります。

あなたが本当にセキュリティについて心配しているなら、あなたはその罠に陥りたくありません。適切な制限付きでデーモン専用のユーザーを作成するには、さらに1分かかる価値があります:-)

4
voretaq7

ええと-スクリプトは現在/ rootにあります。ターゲットユーザーがrootでない場合、もちろん、そのユーザーがスクリプトを読み取ったり実行したりしようとすると、アクセス許可エラーが発生します。

スクリプトを別のディレクトリに移動することに反対することは何ですか?そうすれば、ファイルの所有権/モードを正しく設定すれば、問題は発生しないはずです。

1
EEAA