Trac安装2 - 账户管理

上一篇中已经搭建了一个可用的Trac系统,本文记录了Trac中账户管理功能的集成。

一、激活Admin管理页面

1. 用命令行为项目指定一个管理员:

sudo trac-admin /var/lib/trac/YourProject permission add fake_admin TRAC_ADMIN

2. 用htpasswd命令(apache2附带工具)生成密码文件:

sudo htpasswd -c trac.htpasswd fake_admin

3. 配置apache中的basic授权:

<LocationMatch "/trac/[^/]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile path_to_pwd_file
    Require valid-user
</LocationMatch>

    或者,如果以后要用AccountManager插件的话,干脆就不配置apache2中的授权,运行以下命令后直接跳到下一步【参考】:

tracd -p 8000 –basic-auth=”*,pwd_file_path,local_trac” path_to_project
 

4. 用fake_admin登陆,便可看见admin菜单。

二、AccountManagerPlugin插件的安装与配置

    插件本身的安装就不说了,安装完之后用刚刚的fake_admin重登陆trac便可看见该插件的配置页面。配置本身也很清晰易懂,但是有3个需要注意的地方:

  1. 要用accountManager提供的登陆界面,需要disable默认的loginModule;
  2. 注意文档中提到的各种AuthStore和wsgi/mode_python的兼容问题【参考】,这里选择的是SessionStore
  3. 如果以tracd命令启动服务的,别忘了重启时忽略掉–basic-auth选项,否则浏览器将不显示accountManager登陆界面

    有意思的是,在account管理页面,user列表中并没有最开始创建的admin_user。那么我们是否可以先创建一个临时账户(有admin权限),在配置好accountManager之后删除掉呢?下面做个实验:

  1. 在account的管理页面中创建一个新用户:real_admin
  2. 运行 trac-admin path_to_project permission add real_admin TRAC_ADMIN
  3. 用real_admin登陆,发现同样具有admin的权限

    所以,通过临时账户来创建真正的admin的思路是可以的。现在的问题是如何删除那个临时账户呢?

    首先,删除临时账户的admin权限:

trac-admin testtrac permission remove fakead_min TRAC_ADMIN

    其次,由于AuthStore会将用户信息存入数据库中,我们先前指定的trac.htpasswd文件也不会再用,所以现在唯一的问题是:临时账户信息会被导入到数据库中么?那么,我们在不指定trac.htpasswd文件时启动服务,能用临时账户登录进去么?答案是不能。看来,这个临时admin的方法是安全的。 

猜你喜欢

转载自woodyhuang.iteye.com/blog/1439315