自建git server

git 支持ssh, https, git协议. 自建的只支持ssh

git账号就是linux账号.

创建一组账号, 加入同一个组

每个项目是一个组可写的目录. 

git提供了git-shell禁止交互式shell登录.

如果~/git-shell-commands存在, 可以以无参数形式执行这些命令.

下面的脚本创建一组命令, 加入git组, 同时提供修改密码和上传sshkey功能.


#!/bin/bash
#users=("u1" "u2")
for user in ${users[*]}; do
        #useradd -m -g git -s /usr/bin/git-shell $user  && echo "$user:wl" | chpasswd
        #mkdir /home/$user/git-shell-commands
        #ln -s /usr/bin/passwd  /home/$user/git-shell-commands/passwd
        mkdir /home/$user/.ssh
        touch /home/$user/.ssh/authorized_keys
        chown $user -R /home/$user/.ssh
        chmod 700 -R /home/$user/.ssh
        ln -s /bin/setsshkey /home/$user/git-shell-commands/setsshkey

done

客户端执行 cat ~/.ssh/id_rsa.pub | ssh zhanglihua@1.1.1.1  'setsshkey' 上传 sshkey

setsshkey脚本:

/bin/cat >  ~/.ssh/authorized_keys

 

修改git配置, shift提交时创建的目录也是组可写的

创建项目步骤

1.  用root用户创建目录 

mkdir xxx,   cd xxx

2. 初始化

git init --bare  --shared

3. 设置组可写

git config core.sharedRepository group

sudo chown git:git -R .
sudo chmod -R g+rwX .

 

迁移git仓库

git clone --bare 旧路径

git push --mirror 新路径

 

另外要注意一下, 如果用户不是通过上面的脚本创建的, 也就是说, 用户的默认组不是git, 这个用户创建的文件就不属于git组, 其他用户就没有修改的权限. 所以最好所有用户都使用上面的脚本创建. 实在需要其他用户加入git的话, 用newgrp 修改用户的默认组为git, 即可.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值