どういうわけか私のgitoliteにはサンプルの設定ファイルが付属しておらず、どこにも見つからないようです。誰かが私にコピーを見つけてくれたら、この質問にそのファイルで答えてください!
とにかく、gitolite設定ファイルのフォーマットは十分に単純です、ここに私のものからの抜粋があります
gitolite conf
# please see doc/gitolite.conf.mkd for details on syntax and features
@nmscDevs = dev1@compaid.com dev2@compaid.com dev3@compaid.com
@buildMgr = william_slepecki@compaid.com dev4@compaid.com
repo gitolite-admin
RW+ = gitadmin william_slepecki@compaid.com
repo grindstone
RW+ = gitadmin
RW+ prod$ = @buildMgr
- prod$ = @nmscDevs
RW = @nmscDevs
keydirフォルダーにいくつかの公開鍵があります。
keydir/
gitadmin.pub
william_slepecki@compaid.com.pub
私の問題は、gitoliteが個々のユーザーに設定された権限を無視しているように見えることです。gitadminユーザーにフルコントロールを与えない限り、リポジトリでは何も機能しません(読み取り、書き込みなど)。そうすると、誰もがgitadminユーザーの権限を使用しているようです。このようにリポジトリのクローンを作成します
git clone git@server:grindstone.git
しかし、私がこのようなものでクローンを作成しようとすると
git clone 'dev1@compaid.com'@server:grindstone.git
パスワードの入力を求められました。個々のユーザーがサーバーにSSHで接続できるように、サーバーにアカウントを持っている必要がありますか?
パーミッションはgitoliteでどの程度正確に機能しますか?gitユーザーがサーバーにSSHで接続するにはアカウントが必要であると理解するようになりました。その後、gitoliteが引き継ぐと、gitリクエストとともに渡される電子メールを使用して権限を決定します。ここで間違っていますか?私は何が欠けていますか?
ところで、これが私の.ssh/configです
host server
user git
hostname server
identityfile ~/.ssh/gitadmin
host server
user william_slepecki@compaid.com
hostname server
identityfile ~/.ssh/id_rsa
更新:最新バージョンのgitoliteにアップグレードしました。クローンを作成しようとすると、これが表示されます。
$ git clone git@server:testing.git
Cloning into 'testing'...
FATAL: R any testing gitadmin DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly
私の設定ファイルは次のようになります:
repo testing
RW+ = william_slepecki
.sshの設定は変更されていません。さらに、私は私のログにこれを持っています
2012-05-08.13:01:13 19027 ssh ARGV=gitadmin SOC=git-upload-pack 'testing.git' FROM=10.99.5.146
2012-05-08.13:01:13 19027 access(testing, gitadmin, R, 'any'),-> R any testing gitadmin DENIED by fallthru
2012-05-08.13:01:13 19027 trigger,Writable,access_1,ACCESS_1,testing,gitadmin,R,any,R any testing gitadmin DENIED by fallthru
これが私のグローバルなgitconfigのトップスニップです
[user]
name = Willie Slepecki
email = william_slepecki@compaid.com
なぜ世界でこれはまだgitadminがレポにあると主張しているのですか、そしてなぜそれはwilliam_slepeckiを使用していないのですか?これは正確にどこで使用する名前を取得しますか?