在用Python和django写一个类似github的程序,当然功能是非常少的,目前只想做到可以创建git仓库,自行管理ssh公钥还有些基本的权限控制。
在ssh公钥管理这里,其实就是管理Linux用户目录下的.ssh/authorized_keys文件,当用户提交公钥时,向这个文件里写入公钥内容。
authorized_keys的权限设置非常严格,只有当除了用户自己可以有写权限外,组权限和其他权限都不能有写入的权限才行,否则这个文件就无效,即使把公钥写入这个文件,通过ssh登录到该用户时还是需要输入密码,这是ssh出于安全的考虑,防止由于用户自己对权限设置不当而造成安全问题。
但是现在我要通过web界面管理这个文件,那么读写这个文件的用户就是运行web服务器的用户,一般来说运行apache的用户是www-data,那么就无法写入了,我本身对apache也只会一些最基本的配置,然后就搜阿搜。。。
搜到一个suexec,然后装啊,设置阿,测试阿,弄了半天不是太明白,也没成功,运行虚拟主机的用户仍旧是www-data。
Redmine的确不错,以前用Trac,不过试用了Redmine后觉得更加好用,比如多个项目的管理,可以完全基于web的配置管理,还有完整的国际化语言包,非常方便。
对于 ruby on rails 我是从来没接触过,安装这个东西我都是通过google到处搜索的,折腾了一段时间才装上- -,下面就是记录下。
Redmine 的基本安装可以先看 官方文档,Apache要启用mod_rewrite 。