FreeBSDにFTPサーバーを設置しているときに、インターネットでこれを見つけました。
/ etc/shellsにnologinを配置すると、これらのアカウントをFTPで使用できるバックドアが作成される可能性があります。
(参照: http://osdir.com/ml/freebsd-questions/2005-12/msg02392.html )
これがなぜであるか誰かが説明できますか?そして、なぜnologinのコピーを取り、それを/ etc/shellsに置くと、この問題が解決するのでしょうか。
/etc/shells
には、システムが(無制限の)シェルと見なすバイナリのリストが含まれています。つまり、シェルとしてこれらのバイナリの1つを構成したユーザーは、システムへのフルアクセス権を持っていると見なされます(つまり、適切なアクセス許可があれば、任意のコマンドを実行できます)。
最も直接的な結果は、chsh
を使用してchange構成されたシェルを使用できることです。
ユーザーがこのリストでis n'tと設定されたシェルを持っている場合、システムは彼が何らかの形で制限されていると想定します。 chsh
の場合は、ユーザーができないでその値を変更することを意味します。
他のプログラムがそのリストを照会し、同様の制限を適用する場合があります。
したがって、nologin
を/etc/shells
事実上、「シェルは完全な無制限のユーザーと見なされるため、nologin
を持つすべてのユーザー」と言います。これは、ほぼ間違いなくnologin
と言っていたの正反対です。
ftpは標準のシェルを提供せず、ftpインターフェースを提供します。シェルがnologinをポイントしている場合でもアカウントを持つユーザーは、ftpインターフェースにアクセスできます。さらに、シェルを必要としない他のサービスにもアクセスできます(たとえば、アカウント認証に依存するがシェルアクセスに依存しないhttp Webインターフェイスなどがある場合)。これは必ずしもシステムへのバックドアではありませんが、サービスへのバックドアです。