まあは、非てgitosis/gitoriousセットアップのために次の2つのオプションがあり、本当に:
- はgitリポジトリへのアクセス権を持っている人に完全なシェル(パスワードおよび/またはSSHキー)とLinuxのアカウントを与えます。
- sshキーを
/home/ac/.ssh/authorized_keys2
に設定して、シェルを/usr/bin/git-shell
に設定すると、Linuxアカウントにアクセスできます。つまり、シェルを使ってLinuxユーザとしてログインすることはできず、マシン上でgitを使う以外は何もしません。
いずれの場合も、ユーザーは、ユーザーまたはグループの一部として、必要に応じてgitリポジトリへのアクセス権(読み込み|書き込み|両方)を必要とします。
複数の人が同じリポジトリにプッシュするのは、一般的には悪い考えです(私の経験では人が簡単にやってしまう)ので、/ git/projectディレクトリを作成してそこにユーザリポジトリを置くことは意味があります。 。たとえば、/srv/git/proj/proj-ninefingers.git
を持っていて、 '/ srv/git/proj/project.git`の "release"レポを持っているかもしれません。パーミッション、シェルなどを適切に設定する。
読み取り専用のgitプロトコルを使用してエクスポートを許可するには、設定されたgitユーザーに読み取りアクセス権があり、裸のリポジトリにgit-daemon-export-ok
が存在することを確認する必要があります。 git update-server-info
は、gitweb
がリポジトリを取得する前に実行しておく必要があります。
他の人によると、git gc
はリポジトリを最適化しており、これを定期的に行うことをお勧めします。 Cronの仕事ですか?
最後に、これを簡略化するためのフレームワークが多数存在します(gitosis、gitorious、...)。私はさまざまなメカニズムを介してフォルダへのアクセスを提供するより簡単になるとは思わないが、それは私です。私のセットアップの一例として、
は、それは私だけであること、私が持っている:
$ cat /etc/passwd | grep git
git:x:1002:1002:Antony Vennard,,,:/home/git:/usr/bin/git-shell
gitdaemon:x:112:65534::/nonexistent:/bin/false
$ cat /etc/group | grep git
git:x:1002:
$ ls -l /srv/git
drwxr-xr-x 7 git git 4096 2010-09-12 23:31 bsdnt.git
drwxr-xr-x 7 git git 4096 2010-06-16 22:32 vforth.git
$ cat /home/git/.ssh/authorized_keys2
ssh-rsa somehex user1
ssh-rsa somehex user2
これは、秘密鍵USER1と誰がログインしてこれらのリポジトリのいずれかにコミットできることを意味します。
これはserverfaultに適していませんか? – marcgg