fix: harden driver manager uploads

This commit is contained in:
Codex
2026-06-28 22:12:20 +08:00
parent 88a3d3468c
commit 41eb8b8a6e
4 changed files with 196 additions and 127 deletions

View File

@@ -24,6 +24,8 @@ CUPS_ALLOWED_NET="${CUPS_ALLOWED_NET:-@LOCAL}"
DRIVER_MANAGER_HOST="${DRIVER_MANAGER_HOST:-0.0.0.0}"
DRIVER_MANAGER_USERNAME="${DRIVER_MANAGER_USERNAME:-admin}"
DRIVER_MANAGER_PRIVATE_ONLY="${DRIVER_MANAGER_PRIVATE_ONLY:-1}"
DRIVER_MANAGER_MAX_UPLOAD_MB="${DRIVER_MANAGER_MAX_UPLOAD_MB:-512}"
DRIVER_MANAGER_COMMAND_TIMEOUT="${DRIVER_MANAGER_COMMAND_TIMEOUT:-900}"
# 打印带颜色的信息
info() { echo -e "${BLUE}[信息]${NC} $1"; }
@@ -1127,6 +1129,16 @@ install_driver_manager() {
else
sed -i "/DRIVER_MANAGER_PASSWORD=/a Environment=DRIVER_MANAGER_ALLOW_PRIVATE_ONLY=$DRIVER_MANAGER_PRIVATE_ONLY" /etc/systemd/system/cups-driver-manager.service
fi
if grep -q "DRIVER_MANAGER_MAX_UPLOAD_MB" /etc/systemd/system/cups-driver-manager.service; then
sed -i "s/DRIVER_MANAGER_MAX_UPLOAD_MB=.*/DRIVER_MANAGER_MAX_UPLOAD_MB=$DRIVER_MANAGER_MAX_UPLOAD_MB/" /etc/systemd/system/cups-driver-manager.service
else
sed -i "/DRIVER_MANAGER_ALLOW_PRIVATE_ONLY=/a Environment=DRIVER_MANAGER_MAX_UPLOAD_MB=$DRIVER_MANAGER_MAX_UPLOAD_MB" /etc/systemd/system/cups-driver-manager.service
fi
if grep -q "DRIVER_MANAGER_COMMAND_TIMEOUT" /etc/systemd/system/cups-driver-manager.service; then
sed -i "s/DRIVER_MANAGER_COMMAND_TIMEOUT=.*/DRIVER_MANAGER_COMMAND_TIMEOUT=$DRIVER_MANAGER_COMMAND_TIMEOUT/" /etc/systemd/system/cups-driver-manager.service
else
sed -i "/DRIVER_MANAGER_MAX_UPLOAD_MB=/a Environment=DRIVER_MANAGER_COMMAND_TIMEOUT=$DRIVER_MANAGER_COMMAND_TIMEOUT" /etc/systemd/system/cups-driver-manager.service
fi
else
# 手动创建服务文件
cat > /etc/systemd/system/cups-driver-manager.service << EOF
@@ -1145,6 +1157,8 @@ RestartSec=5
Environment="DRIVER_MANAGER_USERNAME=$service_user"
Environment="DRIVER_MANAGER_PASSWORD=$service_pass"
Environment=DRIVER_MANAGER_ALLOW_PRIVATE_ONLY=$DRIVER_MANAGER_PRIVATE_ONLY
Environment=DRIVER_MANAGER_MAX_UPLOAD_MB=$DRIVER_MANAGER_MAX_UPLOAD_MB
Environment=DRIVER_MANAGER_COMMAND_TIMEOUT=$DRIVER_MANAGER_COMMAND_TIMEOUT
[Install]
WantedBy=multi-user.target