Bối cảnh: Trên Debian, khi làm cứng PHP, tôi đã vô hiệu hóa và xóa một vài mô-đun PHP không sử dụng: ví dụ, đối với wddx, tôi đã xóa:
- /etc/php/7.3/*/conf.d/20-wddx.ini
- /etc/php/7.3/mods-available/wddx.ini
- /usr/share/php7.3-xml/xml/wddx.ini
- /usr/lib/php/*/wddx.so
Khi tôi nâng cấp, các mô-đun PHP xuất hiện lại trong /usr/share/php7.3-xml/xml/wddx.ini và /usr/lib/php/*/wddx.so mặc dù dpkg đã không thêm cấu hình 'kích hoạt' vào đúng cách /etc (cảm ơn người bảo trì hoặc dpkg đã kiểm tra điều này!):
Không thay thế tệp cấu hình đã xóa /etc/php/7.3/mods-available/wddx.ini
CẢNH BÁO: Tệp wddx ini của mô-đun không tồn tại trong /etc/php/7.3/mods-available
Câu hỏi: Có cách nào, có lẽ với dpkg-divert hoặc trình kích hoạt dpkg cục bộ, để yêu cầu dpkg không ghi lại một số tệp hoặc xóa chúng sau khi chúng được ghi?
Tái bút
- nhiều mô-đun PHP được đóng gói trong php7.3-xml và tôi cần một trong số chúng, vì vậy không thể xóa toàn bộ gói Debian.
- bề mặt tấn công đã bị hạ thấp do các mô-đun PHP không được kích hoạt, việc xóa tệp .so cũng là một cách tinh chỉnh, cản trở kẻ tấn công là con người và có thể đánh bại một tập lệnh phần mềm độc hại tự động ngu ngốc, ngay cả khi có quyền root — rõ ràng là nên chỉ là một phần của phòng thủ toàn cầu.
- có thể xóa các tệp này theo cách thủ công sau khi nâng cấp hoặc sử dụng công cụ quản lý cấu hình (Ansible, Puppet, Dockerâ¦), câu hỏi đặt ra là về cách thực hiện tích hợp với dpkg.