Skip to main content

No project description provided

Project description

File System Snapper

fs-snapper consists of two tools. The first is a Rust-written CLI tool that enables one to create databases with filesystem path trees and their accompanying UNIX permission related information. This allows one to diff the databases to easily identify changes over time for systems. The second tool is a Python GUI (Qt/PySide6) tool which allows one for easier navigation of filesystem trees and examining UNIX permissions.

Installation

This assumes you have Python as well as a Rust toolchain installed. The easiest is to build within a python virtual environment as follows:

$ python3 -m venv env
$ source env/bin/activate
(env) $ python3 -m pip install .
Processing /home/gvb/fs-snapper
  Installing build dependencies ... \
...
Successfully installed fssnap-0.1.0

You can then run both tools by executing fssnap-cli and fssnap-gui respectively:

(env) $ fssnap-cli
Usage: fssnap-cli [OPTIONS] <COMMAND>
....
(env) $ fssnap-gui
...

Usage

$ fssnap-cli index --db test.db --paths /etc
$ fssnap-cli calc-perms --db test.db --user gvb --output test_gvb.db
$ fssnap-gui test_gvb.db

Building portable cli

The project is structured as a backend library that is used as a Python extension for the GUI using PyO3. This means that if you want a portable build to dump the binary on a target Linux machine without having to deal with potential GLIBC versioning errors you should build against musl libc. Just blindly running cargo build then will fail as musl does not support dynamically linked libraries so the Python extension module cannot be built then. To just build the cli for the musl target use the following:

cargo build --release --target x86_64-unknown-linux-musl --bin fssnap-cli

The resulting static binary will be found at ./target/x86_64-unknown-linux-musl/release/fssnap-cli.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fssnap-0.8.2.tar.gz (1.9 MB view details)

Uploaded Source

File details

Details for the file fssnap-0.8.2.tar.gz.

File metadata

  • Download URL: fssnap-0.8.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for fssnap-0.8.2.tar.gz
Algorithm Hash digest
SHA256 9a645498fc66a9130d8a63699dea7f81880d5d80be371cea7d4bfaf006dc390a
MD5 7014da4df3f8cbfca82efdc30e7d26dc
BLAKE2b-256 52ea3682e8fd024e50000fc09f7eb0fc1b78a17119c17213cb1ccc6b479a59e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page