正巧,前一段时间主力NAS炸了(详情见此处),临时把NanoPi NEO2翻出来顶上了。顺手用导热胶把散热片和外壳粘一起了,效果拔群。
经过这一段时间的使用,发现被动散热真是个好东西。原先的主力NAS,现在设置成冷备机,通过网络唤醒,每周自动执行备份同步,然后关机。完美,终于没有风扇的噪音了~
因为NanoPi上跑的东西有点多(Docker真是个好东西),所以需要一个轻量的Git权限管理工具。
最后我选定了Gitolite来实现对源码仓库权限管理。
部署&配置Gitolite
部署
推荐新建个低权限用户安装运行
1#新建一个用户git,<-s>参数指定新用户使用的shell路径
2sudo useradd -s /bin/bash git
3#设置密码
4sudo passwd git
5#切换用户
6su git
说真的,Gitolite安装非常简单。你可以直接从源来安装。
1sudo apt install gitolite3
当然,你也可以从仓库拉取源码安装。
1git clone https://github.com/sitaramc/gitolite
2mkdir -p $HOME/bin
3gitolite/install -to $HOME/bin
配置
首先上传你用来管理Git仓用户的公钥。
info:注意:请保证公钥名称和用户名一致
初始化gitolite
1gitolite setup -pk YourName.pub

然后,使用你用来管理Git仓用户,克隆gitolite-admin.git

下面是gitolite.conf文件的说明
1#用户组users
2@users = ding Administrator
3
4#管理员库
5repo gitolite-admin
6 #可以执行任何操作(create, push, delete, rewind/overwrite etc)
7 RW+ = ding
8
9#contact.git仓库(新建仓库的增加此句即可)
10repo contact
11 #拥有此权限的用户有ding
12 RW+ = ding
13 #仅可以clone/pull
14 R = Administrator
15
16repo testing
17 #@all表示所有人(仅限于提交公钥的用户)
18 RW+ = @all
19
20repo foo
21 #可以clone/pull、push
22 RW = @users
23 #可以push任何不以master开头的分支,且创建任何不以v+数字头的标签
24 - master = @all
25 - refs/tags/v[0-9] = @all
26 RW = @all
然后像提交仓库一样push就行了,权限自动生效,新添加仓库自动初始化。
1git add conf
2git add keydir
3git commit -m "提交说明"
4git push
禁止非授权用户使用shell
此时,使用SSH登陆git用户时,Gitolite会接管shell,显示当前用户可以使用的仓库列表。

如果,该用户没有提交公钥到Gitolite中,仍可以正常登陆。为了安全需要限制这一问题。
我们可以把用户shell指向到Gitolite提供的shell,来解决这个问题。
1#编辑etc/passwd文件
2sudo vim /etc/passwd

此时未在Gitolite中授权的用户直接被踢出,授权用户则显示可用仓库列表。

打印当前用户可用命令列表
1ssh git@host help
