Skip to main content
P-BitM uses SQLite and filesystem storage rooted at the configured storage/ directory.

Ownership

On rootful Linux, P-BitM selects a positive host UID/GID and builds every unprivileged process that writes shared storage with those numeric IDs. A normal launch follows the current user, a sudo launch follows the original user, and a direct root launch still selects a non-root container identity. Linux checks numeric IDs rather than account names, so the containers can keep their internal names (bitm or abc) without requiring a host account with the same name. The host storage/ directory remains a bind mount so operators can inspect, back up, and manage files directly. The admin backend receives the full tree; each campaign and target-browser container receives only its own scoped subdirectory at /storage. Top-level storage and campaign directories use mode 0700, so unrelated host users cannot traverse engagement data. The admin backend owns the primary database, transactions, and stored artifacts. Campaign services send authenticated events to it instead of writing through a separate public database interface.

Layout

The default host layout includes:
Campaign directories contain copied plugin and module definitions plus scoped per-victim artifacts such as screenshots, uploaded files, and exported profiles. Runtime service logs remain Docker-managed; P-BitM does not create a top-level storage/logs/ directory. Runtime paths inside containers use /storage; HOST_STORAGE_PATH identifies the same location from Docker host operations.

Consistency

Campaign and target-record creation is committed atomically. File metadata and filesystem writes use bounded validation and cleanup paths to avoid leaving a successful database record for a failed artifact write.

Retention

Container restarts do not erase persisted storage. Docker-managed logs follow the lifetime and logging configuration of their containers. P-BitM does not assume an automatic retention period; operators must implement the engagement’s backup and deletion policy.
Last modified on August 28, 2026