ユーザーはLinuxサーバーで実行されているアプリケーションを使用します。アプリケーションはユーザーにサーバーからファイルを読み書きできるAPIを提供しますが、ファイルの実行方法は提供しません。ユーザーがサーバーでコマンドを実行できないようにするのに十分ですか?
デフォルトのファイルシステムはnoexecを使用してマウントされません。
ユーザーは読み書きするファイルを選択でき、任意の名前で新しいファイルを作成できます。ユーザーはファイルを削除できます。
アプリケーションは「システム」ファイルにアクセスできず、デスクトップユーザーと同様の比較的標準的な権限のないユーザーアカウントで実行されます。
答え1
ファイルシステムの権限に応じて、任意の場所のすべての名前を拡張して任意のコードを実行できます。$HOME
たとえば、これらのファイルの多くはログイン時に自動的に実行されます。新しいコンテンツが追加されました(たとえば、すべてのシステムユーザーセッションコンテンツがかなり新しくなります)。あるいは、$HOME/bin
デフォルトでは$ PATHの前に置くこともできます。
攻撃者の他の良い目標は次のとおりです~/.ssh
。しなければならないログインアクセス権がありますが、認証キーファイルをインストールした後にログインできますか?もちろん、設定でこの機能を無効にすることはできますが、/etc/ssh/
これは単なるプログラムです。他の人もいるかもしれません。
私はあなたについて疑う余地がありませんできるこれを確認してください。しかし、多くの作業が必要です(そしてOSをアップグレードするときは非常に注意する必要があります!)。
ただし、任意のファイルに制限できますが、特定のディレクトリ(およびサブディレクトリのみ)にのみ制限できる場合は/srv/yourapp/
安全です(正しくプログラムされている場合)。