外部認證再強,若本地用戶可讀寫數據目錄,授權體系形同虛設。本文演示**文件級攻擊實測**,給出**最小權限加固標準操作流**。
go+r)。mysql_install_db 成為新實例 root。test 库下。SELECT * FROM test.stolen_table **直接讀出所有數據**,繞過原實例所有權限。結論:數據文件**可讀即可盜**,權限必須收斂到**僅服務器運行用戶可讀寫**。
GRANT、SET PASSWORD、INSERT ... VALUES('secret')。grep -i password /var/lib/mysql/*.log 即可撈取。**對策**:日志目錄同樣收斂權限;生產關閉通用日志;定期清理/加密歸檔。
# 1. 定位數據目錄
DATADIR=/var/lib/mysql
cd $DATADIR
# 2. 統一所有權(需 root)
chown -R mysql:mysql .
# 3. 目錄權限:僅擁有者可進入
find . -type d -exec chmod 700 {} \;
# 4. 文件權限:僅擁有者可讀寫
find . -type f -exec chmod 600 {} \;
# 5. 驗證
ls -l
# 輸出應全為 drwx------ / -rw------- mysql mysql
mysqld --user=mysql 強制以 mysql 用戶運行(即使 root 啟動也會 drop 權限)。User=mysql Group=mysql。cat $DATADIR/db/tbl.frm → Permission denied。mysql -u root -p 正常(網絡認證獨立)。700/600。sudo -u mysql 提權。