3

会社のコード管理にGitを使用する可能性を調査しています。この点に関して2つの質問があります。

  1. ユーザーごとの「クローン」または「コードアクセス」ごとに広範なログが必要です。サードパーティのコンサルタントが会社のIPにアクセスしようとした過去の事件がありましたが、活動が記録されました。現在のところ、Gitリポジトリのクローンを作成すると、そのようなコードへのアクセスを示すログはありません。

    • この情報のログはどこで入手する必要がありますか?

    • それ以上に、Gitリポジトリがエンジニアによって複製された場合でも、誰かがそれらから複製しようとした場合、さらに「複製」のログを取得できますか?

  2. 同じGitリポジトリ内で、コードの特定の部分へのアクセスを制御する方法はありますか?たとえば、TOP_DIR2つのサブディレクトリとでTOP_DIR/DIR_GLOBAL名前が付けられたリポジトリについて考えてみますTOP_DIR/DIR_SECUREDIR_SECURE少数のチームメンバーだけに読み取り/書き込みアクセスを許可したいのですが、ほとんどすべての人に完全な読み取り/書き込みアクセスを許可しますDIR_GLOBAL

これらの点に関するポインタは高く評価されます。

4

4 に答える 4

3

git自体には権限管理がまったくありません。

ラッパーを使用する必要があります。一般的なのはgitoliteで、これはsshに基づいており、秘密鍵認証を使用してユーザーを認証します。各リポジトリのキー(つまりユーザー)に基づいて個別に権限を付与できます。

認証後にsshがgitoliteに渡されるとすぐに呼び出される実行可能ファイルを変更することにより、gitolite(トリガー? )を拡張してすべての不正アクセスの試行をログに記録するのは簡単です。gitoliteにまったく登録されていない人によるアクセスは、ログイン時に許可が拒否されたため、sshd/pamによってログに記録されます。

前述のように、gitは認証や承認を行わないため、ディレクトリベースのアクセス制御が必要な場合は、サブモジュールを使用する必要があります。サブモジュールは時々かゆみを伴うことがありますが、必要なことは実行されます。

于 2012-11-27T14:35:49.907 に答える
2

Gitフックを使用して、中央サーバーにロギングを実装できます。Gitoliteはユーザー管理に適しており、フックが確実に呼び出されるようにします。gitoliteを使用すると、誰がどのリポジトリにアクセスできるかを制御でき、フックを使用してユーザーイベントをログに記録できます。

誰かが別のユーザーのリポジトリのコピーからリポジトリのクローンを作成する場合は、常に問題が発生します。Gitは分散化されているため、これは絶対確実なソリューションではありませんが、ユーザーが誰にもリポジトリをコピーさせない場合は、誰もが中央サーバーを使用するようにすることができます。

フックが不十分な場合は、http: //sitaramc.github.com/gitolite/triggers.htmlを確認してください 。Gitoliteは「トリガー」をサポートしており、ログに記録できる何が起こっているかについてより多くの情報を提供します。

于 2012-11-27T15:04:44.463 に答える
0

さまざまな入力に感謝します。これが私がやったことです。-(1)サーバー上で、3種類のアカウントを作成しました。(a)sudo'ersアカウント(b)リポジトリの管理者-リポジトリへのアクセスを制御するLinuxグループ(c)shell = / usr / bin / git-shellのgitユーザーアカウント(直接ログインできないようにするため)-追加しました同じLinuxグループで。

パスワードは各チームメンバーに郵送されました。ユーザーがシステムにアクセスするたびに、sslライブラリはアクセスを/etc/log/auth_user.logに記録します。これらのログは十分ではありませんが、どこかから始めます。

私がgitoliteを選択しなかった理由:gitoliteの目的は、リポジトリの選択された部分へのアクセスを制御することです。また、製品は積極的にテストされておらず(まだ多くのバグが開いていることがわかります)、アクセスをログに記録したり、b/wクローンやその他のAPIを区別したりすることはできません。もっと冗長にするためにgitコードを変更することを考えています。

于 2012-12-18T05:49:32.793 に答える
0

git-measureを使用して、ユーザーごとの統計を取得できます。

于 2019-02-26T20:42:15.027 に答える