Goal
Introduce a Samba (smbd) management seam — the real SMB data plane — driven
through the existing CommandRunner abstraction (the pattern the ZFS backend uses
for zfs/zpool). No production pure-Rust SMB server exists, so bundling Samba
is the faithful path; this is the deliberate, user-accepted deviation from the "no
real service" thesis (#30), scoped to CIFS and off by default.
Scope
Dependencies
#60. Blocks the CIFS auth/wiring/deploy sub-issues.
Acceptance
- Unit tests assert the generated
smb.conf + smbd argv for a sample service+share
via the mock runner. A live smoke (root) starts smbd.
Goal
Introduce a Samba (
smbd) management seam — the real SMB data plane — driventhrough the existing
CommandRunnerabstraction (the pattern the ZFS backend usesfor
zfs/zpool). No production pure-Rust SMB server exists, so bundling Sambais the faithful path; this is the deliberate, user-accepted deviation from the "no
real service" thesis (#30), scoped to CIFS and off by default.
Scope
nessie-backend-cifs(orsmbmodule) that owns: locate/launchsmbd,generate
smb.conf(global section from the CIFS service;[share]sectionsfrom shares), reload on change, and lifecycle (start/stop/health).
CommandRunnerso they are unit-testable with amock (assert the generated
smb.conf+ argv; no real smbd in unit tests).cifs.enabledconfig (default false); when off, zero Samba footprint.Dependencies
#60. Blocks the CIFS auth/wiring/deploy sub-issues.
Acceptance
smb.conf+ smbd argv for a sample service+sharevia the mock runner. A live smoke (root) starts smbd.