linuxシステムでは、デフォルトで多くのユーザーがいます:デーモン、ビン、システム、ゲームなど。
私の/ etc/passwdによると、これらのユーザーのほとんどはシェルが割り当てられており(/ bin/sh)、これは私にはある種の安全ではないようです。私の素朴な考えはこう言うでしょう:それらのユーザーにサーバーにログインできるシェルだけを与えてください。
私の考えは間違っていますか?
完全に間違っていない場合:副作用なしに「デーモン」と「www-data」のシェルを無効にできますか(たとえば、システムが起動しない、またはApache PHPはシステムコールを実行できません))?
追加:私のディストリビューションはDebianSqueezeです。
ヒントをありがとう!
私が知っている(そしてCentOSとGentooでこれを確認したばかりの)ほとんどのディストリビューションでは、あなたが説明しているように、そのようなユーザーのシェルが「無効」になっているため、これがどのLinuxディストリビューションで見られるのか興味があります。
したがって、はい、シェルを/bin/false
または/sbin/nologin
に設定しても安全です。しかし、そもそもなぜそれらがその値に設定されていないのかを最初に理解するかもしれません。多分これはあなたが見ているシステムに特有のものです。
Debianの場合(最初のコメントで述べたように) この他の質問 関連する可能性があります。他の人もこれをバグと見なしていることがわかります( bug 274229 、 bug 581899 、 bug 330882 )
あなたが質問したユーザーは、直接ログインするためではなく、プログラム/プロセスを実行するためのものです。シェルを割り当てないことはとにかく害を及ぼすと思います。ただし、1つの良いチェックは、/ etc/shadowファイルをチェックして、それらのアカウントの2番目のフィールドがX(取り消し線)であるかどうかを確認することです。つまり、ログインしてシェルを取得することはできません。
したがって、最初に/ etc/shadowファイルを確認してから、必要に応じて、それらのユーザーのシェルを無効にし、システムを通常どおり実行して、何かが壊れていないかどうかを確認することをお勧めします。ない場合は、行ってもいいです。何かが壊れて、それが実際にシェルを/ bin/falseに変更するためのものであることがわかった場合(これは非常に疑わしいです)、元の状態に戻します。その際、セキュリティプラグインについてさらに検討する必要があります:)