35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
# 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 <user>`.
|
|
- 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 <username>
|
|
```
|