Моя вики собрала много спама за последние несколько месяцев, поэтому я заблокировал ее только для зарегистрированных пользователей. К сожалению, я никогда не отключал регистрацию пользователей. Можно ли заблокировать сразу несколько учетных записей пользователей или просто перезапустить?
Самый быстрый и наименее инвазивный способ предотвратить внесение изменений большим списком зарегистрированных пользователей - это, вероятно, массовая смена пароля для нежелательных пользователей.
Предполагая, что вы используете 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
Создание разных паролей для каждого пользователя оставлено в качестве упражнения для читателя. :-)
Подключитесь к вашему серверу mysql:
mysql -h DBSERVER_HOST -u wikiuser wikidb -p
Введите свой пароль в ответ на приглашение. В командной строке mysql найдите пользователя
mysql> select user_id,user_name from user; +---------+------------+ | user_id | user_name | +---------+------------+ | 9 | spammer | | 7 | r2d2 | | 1 | admin | +---------+------------+
Удалите все "user_id", которые вам нужны:
mysql> delete from user where user_id in(7,9);