2

我有一长串要删除的用户。我登录了 trac.db,但没有找到任何类似于用户/密码表的内容。trac 在默认安装中将用户和密码存储在哪里?

4

2 回答 2

2

供将来参考:可能最简单的方法(自 Trac 0.12 起)是使用

$ trac-admin <path-to-trac-env> session list
$ trac-admin <path-to-trac-env> session delete username1 username2 ...
于 2013-05-20T05:57:34.230 回答
1

首先也是最重要的:直到现在,Trac 中还没有明确的既不是帐户也不是用户的概念。所谓的“用户名”基本上是经过身份验证的会话 ID,或映射到“匿名”会话的任意字符串。

查看关于 Trac 的数据库模式的权威参考

会话表包含所有有效的会话 ID。请注意,密钥是“sid”+“已验证”标志(0 = 未验证,1 = 已验证)。如果愿意,匿名会话中的用户可以通过会话首选项选择另一个更容易记住的会话 ID。

这取决于 Trac db 后端,如果会话的主键在session_attribute中也被强制为外键。这是另一个相关表,其中包含给定会话的其他属性,例如名字+姓氏或电子邮件地址。同样,'sid' + 'authenticated' 标志组合是那里的主键。

Trac 会在一段时间不活动后自动清除匿名会话(注意会话表的“last_visit”中的 POSIX 秒/微秒时间戳),而经过身份验证的会话的条目将永远保留在那里。您很可能正在寻找它们(SELECT sid,last_visit FROM session WHERE authenticated=1)。

您不会在 Trac 数据库中找到密码哈希。只有像 AccountManager 的 SessionStore 这样的 Trac 插件才会将他们的密码哈希(永远不应该是明文密码)存储在数据库中(在这种情况下是表 'session_attribute')。根据您的身份验证设置,用户凭据是独立管理的,即在 Apache htpasswd/htdigest 格式的文件中,由运行 Web 服务器 Trac 使用,或tracd用于独立的 Trac 设置。

于 2013-03-16T13:06:02.250 回答