过去几个月,我的 wiki 收集了大量垃圾邮件,因此我已将其屏蔽,仅对注册用户开放。遗憾的是,我从未关闭过用户注册功能。是否可以一次性屏蔽大量用户帐户,还是应该重新启动?
答案1
阻止大量注册用户进行修改的最快和最少侵入性的方法可能是对不受欢迎的用户进行批量密码更改。
假设你正在运行一个类Unix系统,并且你想要查看的人员列表保持相对较低:
禁用匿名查看和/或编辑。(听起来你已经做了?)
将用户列表从数据库转储到文件。
例如,对于 MySQL:
mysql -p -u root -B wikidb -e 'select user_name from user;' | tee user.list
从 user.list 文件中删除您想要保留的用户。
使用 MediaWiki 密码命令行工具将密码更改为随机密码。
例如。
cd [wiki-docroot]/maintenance/
while read wikiuser; do
echo $wikiuser;
php ./changePassword.php $wikiuser BOGUS%PASSblahblah77;
done <user.list
为每个用户生成不同的密码留给读者作为练习。:-)
答案2
连接到你的 mysql 服务器:
mysql -h DBSERVER_HOST -u wikiuser wikidb -p
在提示符下输入你的密码。进入 mysql 提示符后,搜索用户
mysql>从用户中选择用户id,用户名; +---------+------------+ | 用户 ID | 用户名 | +---------+------------+ | 9 | 垃圾邮件发送者 | | 7 | r2d2 | | 1 | 管理员 | +---------+------------+
使用以下命令删除每个需要的“user_id”:
mysql> 从用户中删除 user_id 在(7,9) 中的位置;