5

このリンク$HOMEの指示に従って、ユニのサーバー上にリポジトリを作成することができました。を使用して、サーバー上のこのリポジトリにクローン/プル/プッシュしますSSH

私の質問は:このリポジトリから他の誰かにアクセスを許可することは可能ですか? clone/push/pull明らかに、サーバー側でルート権限を持っていません。さらに、私はそれを公開リポジトリにしたくありません...誰がクローンを作成してこのリポジトリにプッシュしているのか知りたいです。

アカウントのウェブストレージ部分でそのようなことを行うことはできますか? 私のウェブサイトはどこに保存されており、htaccessアクセスを管理するために何かを使用していますか?

4

3 に答える 3

1

リポジトリに POSIX ACL を設定して、より多くのユーザーがアクセスできるようにすることができます。しかし、それは誰かが別のユーザーとしてコミットすることを保証するものではありません/設定するのは非常に面倒です/ ...

代わりに、 https ://github.com/sitaramc/gitolite の gitolite を使用することをお勧めします。

これは、github のプル/プッシュ メカニズムと非常によく似た方法で機能します。1 人の ssh ユーザー、ログインに使用された ssh キーに応じてユーザーを認証するカスタム シェルです。

より複雑なもの (多くの機能を提供する Web UI を備えた github のようなもの) が必要な場合は、gitlab ( http://gitlabhq.org/ ) または gitorious ( http://getgitorious.com/ ) を参照してください。

アップデート

gitolite をインストールしたユーザーとしてサーバーに正常にログインできるようにするには:

  • 新しい SSH キーを作成~/.ssh/id_rsa-git_adminし、ワークステーションなどに保管します。
  • ~/.ssh/authorized_keysマシン上のファイルの最初のキーとして追加します
  • gitolite をインストールし、キーがまだそこにあることを確認します (ログアウトする前に待ちます)
  • 別の端末から a を実行し、動作git clone git@yourhost:gitolite-adminすることを確認します。
  • 別の端末から、マシンにログインしてみてくださいssh -i ~/.ssh/id_rsa-git_admin git@yourhost

最後の 2 つの手順で問題がなければ、インストールは完了です。

于 2013-03-04T13:42:22.547 に答える
0

ほとんどの git セットアップはユーザー アカウントに依存するため、これは注意が必要です。@redShadowの回答で説明されているようにGitoliteをインストールできない限り、2つのオプションがあります。

すべての開発者はサーバー上にアカウントを持っています

他の人が同じマシンにアカウントを持っている場合は、linux/unix グループのアクセス許可を冷静に使用し、そのグループだけがリポジトリを読み書きできるようにします。グループが存在しない場合は、ルート アクセス権を持つユーザーがグループを作成する必要があります。

htaccess による独自のユーザー管理による HTTP 経由の読み取り専用アクセス

制限されたグループのクローンのみのアクセスが問題なく、パッチの形で変更を受け取る意思がある場合は、リポジトリを Web サイトのルート フォルダーに移動し、htaccess を使用してファイルへのアクセスを制限できます。しかし、これは読み取り専用になります。

あなたのhtaccessは次のようになります

AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins

参考文献:

于 2013-03-04T13:52:06.677 に答える
0

私はあなたがしたと仮定していますgit init --bare ...

デフォルトでは、裸のリポジトリを初期化すると、グループ書き込みの権限が与えられ、他の誰もが読み取ることができます。これについては、次のヘルプ ドキュメントで説明されていますgit init

http://www.kernel.org/pub/software/scm/git/docs/git-init.html

umask オプションを使用して、アクセスをより厳密に制御できます。

0xxx: 0xxx is an octal number and each file will have mode 0xxx. 
0xxx will override users' umask(2) value (and not only loosen permissions 
as group and all does). 0640 will create a repository which is group-readable, 
but not group-writable or accessible to others. 0660 will create a 
repo that is readable and writable to the current user and group, but 
inaccessible to others.
于 2013-03-04T13:52:53.683 に答える