3

Webアプリケーションのユーザーがrsyncを介してディレクトリのコンテンツをアップロードできるようにしたいと思います。これらはオンラインでサインアップしたユーザーにすぎないため、永続的なUNIXアカウントを作成したくありません。また、アップロードしたファイルがすべて、自分のアカウントに固有のディレクトリの下でのみサーバーに保存されるようにします。理想的には、フローは次のようになります。

  1. ユーザーが認証されたWebUIを介して「rsyncでファイルを更新したい」と言った
  2. サーバーは「OK、実行してください:rsync / path / to / yourfiles uploaduser123abc @ myserver:/」と表示します
  3. クライアントはそれを実行し、サーバー上で変更されたファイルを更新します
    • アップロード場所がchrootされているか何か-クライアントがサーバー上の指定されたディレクトリの下にあるファイルにのみ書き込むようにしたい
    • 理想的には、クライアントはパスワードを入力する必要はありません-ユーザー名の123abcは、この1つのrsyncトランザクションを安全に保つのに十分な秘密のトークンであり、トランザクション後にこのトークンは破棄されます-新しいステップ1が発生するまでrsyncは行われません。
  4. サーバーには、更新されたユーザーファイルのセットがあります。

Google AppEngineを使用したことがある場合、目的の動作は「更新」コマンドと同様です。つまり、変更されたファイルのみをappengineに送信してホスティングします。

このようなものを実装するための最良のアプローチは何ですか?1回限りのユーザーを作成し、それらのアカウントのchroot jailでrsyncデーモンを実行するのでしょうか?このようなことをする可能性のあるライブラリ(できればPython)またはスクリプトはありますか?

4

1 に答える 1

0

You can run ssh jailrooted and rsync normally, just use PAM to authenticate against an "alternate" authdb.

于 2010-12-15T05:29:19.683 に答える