2025/10/23

MediaWiki 1.44 使用者帳號管理指令

 注意:MediaWiki 1.40 之後,維護腳本需使用 maintenance/run.php 執行,不再直接執行腳本檔案。


以 https://github.com/checko/mediawiki144 啟動/restore 的 mediawiki container 為例:

方法一:建立新的管理員帳號

建立一個具有管理員和行政員權限的新帳號:

docker compose exec mediawiki php maintenance/run.php createAndPromote \
  --bureaucrat --sysop --force \
  使用者名稱 密碼

範例:

docker compose exec mediawiki php maintenance/run.php createAndPromote \
  --bureaucrat --sysop --force \
  admin AdminPassword123!

方法二:重設現有使用者密碼

變更現有使用者的密碼:

docker compose exec mediawiki php maintenance/run.php changePassword \
  --user=使用者名稱 \
  --password=新密碼

範例:

docker compose exec mediawiki php maintenance/run.php changePassword \
  --user=Ken.Lin \
  --password=kenlinpassword123!

方法三:提升現有使用者為管理員

將現有使用者提升為管理員和行政員:

docker compose exec mediawiki php maintenance/run.php createAndPromote \
  --bureaucrat --sysop --force \
  使用者名稱

範例:

docker compose exec mediawiki php maintenance/run.php createAndPromote \
  --bureaucrat --sysop --force \
  ExistingUser

方法四:使用 SQL 指令直接操作(不建議)

直接在資料庫中授予使用者管理員權限:

docker compose exec mysql mysql -u root -proot_password mediawiki -e "
  INSERT INTO user_groups (ug_user, ug_group)
  SELECT user_id, 'sysop' FROM user WHERE user_name = '使用者名稱'
  ON DUPLICATE KEY UPDATE ug_group = ug_group;

  INSERT INTO user_groups (ug_user, ug_group)
  SELECT user_id, 'bureaucrat' FROM user WHERE user_name = '使用者名稱'
  ON DUPLICATE KEY UPDATE ug_group = ug_group;
"

權限說明

  • sysop:管理員權限,可以刪除頁面、封鎖使用者、保護頁面等
  • bureaucrat:行政員權限,可以授予其他使用者權限、重新命名使用者等

注意事項

  • 使用 maintenance/run.php 是 MediaWiki 1.40 之後的標準做法
  • 舊的直接執行方式(maintenance/scriptName.php)雖仍可用但已過時
  • 建議使用維護腳本而非直接操作 SQL 資料庫
  • 密碼中如有特殊字元,需注意 shell 跳脫字元處理

沒有留言:

張貼留言