# samba-configer `samba-configer` is a small interactive terminal program for reading an existing Samba configuration, listing shares, and guiding add/edit/delete operations. It is implemented in Go with only the standard library so it builds into a single executable easily. ## Build ```bash go build -o samba-configer . ``` ## Run ```bash ./samba-configer -config /etc/samba/smb.conf ``` The program: - Reads the Samba config and parses non-`[global]` sections as shares. - Detects a missing Samba installation when the config file does not exist yet. - Offers to install the Samba server package with a detected package manager such as `apt`, `dnf`, `yum`, `pacman`, `zypper`, or `apk`. - Prompts to add, edit, or delete a share. - Checks `valid users` entries against local accounts. - Offers to create missing local accounts with `useradd -M -s /usr/sbin/nologin `. - If user creation fails because admin rights are needed, explains the issue and offers to retry with `sudo`. - Writes a timestamped backup before saving changes. If you create a local account for a Samba-authenticated share, you may still need to add the Samba password separately: ```bash smbpasswd -a ```