cschantz
8f6cb6e91c
Fix HIGH priority issues: library exit, unquoted paths, and globs
...
Fixed multiple HIGH severity issues found by QA scan:
1. Library exit usage (lib/http-attack-analyzer.sh):
- Changed exit 1 to return 1
- Libraries should return, not exit (would terminate caller)
2. Unquoted path expansions (9 fixes):
- cleanup-toolkit-data.sh: Quoted $pattern in ls/rm commands
- hardware-health-check.sh: Quoted /sys/block/$disk/queue paths
- plesk-helpers.sh: Quoted /var/qmail/mailnames/$domain path
- Prevents breakage with paths containing spaces
3. Unquoted globs in rm commands (3 fixes):
- erase-toolkit-traces.sh: Quoted glob patterns
- Prevents unintended file deletion from glob expansion
All changes improve robustness and prevent edge case failures.
2026-01-02 16:39:57 -05:00
cschantz
83ad5a0b9c
Add plesk_list_users() function for Plesk user discovery
...
Issue: list_plesk_users() in user-manager.sh was trying to query MySQL
but the query was failing, resulting in 0 users detected on Plesk.
Fix:
1. Added plesk_list_users() to plesk-helpers.sh that uses:
- Plesk CLI: 'plesk bin client --list' (primary)
- Fallback: Scan /var/www/vhosts directories
2. Updated list_plesk_users() in user-manager.sh to:
- First try plesk_list_users() if available
- Then try MySQL query
- Last resort: directory scan
This should now detect Plesk users from either Plesk API or
filesystem fallback.
Testing: Will verify on Plesk server
2025-12-24 16:29:27 -05:00
cschantz
c1f2f6868d
Add comprehensive Plesk control panel support
...
Core Infrastructure Added:
- lib/plesk-helpers.sh: 30+ Plesk-specific helper functions
- Domain discovery (list, docroot, logdir, access/error logs)
- User/subscription management
- Database discovery
- PHP version detection (/opt/plesk/php/)
- PHP-FPM pool discovery
- Configuration file locations
- Mail functions
- Service management
- Version detection with log structure handling
- lib/domain-discovery.sh: Unified control panel abstraction
- Consistent API across cPanel, Plesk, InterWorx, standalone
- list_all_domains() - works on any panel
- get_domain_docroot() - panel-agnostic document root
- get_domain_logdir() - panel-agnostic log discovery
- get_domain_access_log() - access log paths
- get_domain_error_log() - error log paths
- get_all_log_files() - all logs across all domains
- get_domain_owner() - domain owner/user
- list_all_users() - user enumeration
- get_domain_fpm_socket() - PHP-FPM pool sockets
- get_domain_databases() - database discovery
- domain_exists() - existence checks
Documentation:
- PLESK_REFERENCE.md: Complete Plesk architecture reference
- Directory structure mapping
- Log file locations (current & future versions)
- PHP-FPM pool locations
- Configuration file paths
- Plesk CLI command reference
- Key differences from cPanel
- Subdomain handling differences
- PLESK_SUPPORT_SUMMARY.md: Implementation summary
- All functions documented
- Usage examples
- Migration guide for existing modules
- Version compatibility notes
- Testing checklist
System Detection Enhanced:
- lib/system-detect.sh:
- Improved Plesk detection with version-aware log paths
- Auto-sources plesk-helpers.sh when Plesk detected
- Added /opt/plesk/php/ scanning for PHP versions
- Sets SYS_USER_HOME_BASE=/var/www/vhosts for Plesk
Email Menu Added:
- launcher.sh: New Email Troubleshooting menu category
- 9 email diagnostic/maintenance tools (placeholders)
- Deliverability test, queue inspector, SMTP test
- SPF/DKIM/DMARC check, blacklist check
- Mail log analyzer, queue flush
- Mailbox cleanup, size reports
Plesk Architecture Support:
- /var/www/vhosts/ base directory structure
- system/DOMAIN/logs/ for Plesk <18.0.50
- DOMAIN/logs/ for Plesk 18.0.50+
- Automatic version detection
- Subdomain separate directory handling
- /opt/plesk/php/X.Y/ PHP version detection
- /var/www/vhosts/system/DOMAIN/php-fpm.sock pools
- /var/www/vhosts/system/DOMAIN/conf/ configs
Fallback Mechanisms:
- All functions work with or without Plesk CLI
- Directory scanning fallbacks
- MySQL direct query fallbacks
- Path inference from standard locations
Status: Core infrastructure complete, ready for module integration
Next: Test on actual Plesk server, update existing modules
Ref: system_map.tsv analysis from Plesk production system
2025-12-23 20:20:09 -05:00