Shellmin::ConfigAccess
Secure Configuration Access for Scripts
Provides controlled access to Shellmin configuration for scripts while maintaining security. Scripts can read configuration values but cannot modify them.
Security Features
- Read-only access: Scripts can only read configuration, never modify
- Path validation: Configuration keys must be valid paths
- Type safety: Values are returned as JSON::Any for safe handling
- Access logging: All configuration access is logged for audit trails
Usage in Scripts
# Get a configuration value
db_host=$(shellmin config get hosts.web-server.host)
# Check if a configuration key exists
if shellmin config has hosts.web-server.user; then
echo "User configured"
fi
# Get all configuration as JSON
config_json=$(shellmin config dump)
# Get configuration for current host
my_config=$(shellmin config get hosts.$SHELLMIN_HOST_NAME)
Configuration Paths
Configuration is accessed using dot-notation paths:
hosts.web-server.host- Host addresshosts.web-server.user- SSH usernameversion- Shellmin version
Security Considerations
- Configuration access is logged for audit purposes
- Sensitive values (passwords, keys) are not exposed in logs
- Path traversal attacks are prevented
- Only valid configuration keys can be accessed