docs(samba): add install, configure, and uninstall recipes

This commit is contained in:
2026-07-04 15:33:16 -03:00
parent 229e183ec3
commit 988715b433
3 changed files with 268 additions and 0 deletions
+96
View File
@@ -0,0 +1,96 @@
# Install Samba
This recipe installs Samba on Ubuntu, enables the required services, and configures a basic file share.
## Install Packages
```bash
sudo apt update
sudo apt install -y samba
```
## Verify Installation
```bash
smbd --version
```
Expected output:
```text
Version 4.x.x
```
## Enable Services
```bash
sudo systemctl enable smbd
sudo systemctl enable nmbd
sudo systemctl start smbd
sudo systemctl start nmbd
```
## Verify Services
```bash
systemctl status smbd --no-pager
systemctl status nmbd --no-pager
```
Both services should be reported as **active (running)**.
## Configure Samba
Replace the default configuration.
```bash
sudo cp smb.conf /etc/samba/smb.conf
```
Validate the configuration.
```bash
testparm
```
Expected output:
```text
Loaded services file OK.
```
## Restart Samba
```bash
sudo systemctl restart smbd
sudo systemctl restart nmbd
```
## Configure Firewall (Optional)
If UFW is enabled:
```bash
sudo ufw allow samba
```
## Verify Listening Ports
```bash
sudo ss -tulpn | grep smb
```
Expected output should include ports **139** and **445**.
## Create Samba User (Optional)
```bash
sudo smbpasswd -a <username>
sudo smbpasswd -e <username>
```
List configured Samba users.
```bash
sudo pdbedit -L
```
+89
View File
@@ -0,0 +1,89 @@
# Configure Samba Share
This recipe configures a basic Samba file share.
## Backup Existing Configuration
```bash
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
```
## Create Configuration
Replace the existing configuration.
```bash
sudo tee /etc/samba/smb.conf >/dev/null <<'EOF'
[global]
workgroup = WORKGROUP
server string = Samba Server
security = user
map to guest = Bad User
[Share]
path = /srv/samba
browseable = yes
writable = yes
guest ok = no
read only = no
create mask = 0664
directory mask = 0775
EOF
```
## Create Share Directory
```bash
sudo mkdir -p /srv/samba
```
## Configure Permissions
Replace `<username>` with your Linux username.
```bash
sudo chown -R <username>:<username> /srv/samba
sudo chmod -R 775 /srv/samba
```
## Create Samba User
If the user does not already exist on Linux, create it first.
```bash
sudo smbpasswd -a <username>
sudo smbpasswd -e <username>
```
## Validate Configuration
```bash
testparm
```
Expected output:
```text
Loaded services file OK.
```
## Restart Samba
```bash
sudo systemctl restart smbd
sudo systemctl restart nmbd
```
## Verify Share
```bash
smbclient -L localhost -U <username>
```
Expected output should include:
```text
Sharename Type
--------- ----
Share Disk
```
+83
View File
@@ -0,0 +1,83 @@
# Uninstall Samba
This recipe completely removes Samba from Ubuntu, including services, packages, and configuration files.
## Stop Services
```bash
sudo systemctl stop smbd
sudo systemctl stop nmbd
```
## Disable Services
```bash
sudo systemctl disable smbd
sudo systemctl disable nmbd
```
## Remove Packages
```bash
sudo apt purge -y samba samba-common samba-common-bin smbclient
sudo apt autoremove -y
```
## Remove Configuration
```bash
sudo rm -rf /etc/samba
sudo rm -rf /var/lib/samba
sudo rm -rf /var/cache/samba
sudo rm -rf /var/log/samba
```
## Remove Firewall Rule (Optional)
If UFW was configured:
```bash
sudo ufw delete allow samba
```
## Remove Shared Directories (Optional)
Only run this if the directory was created exclusively for Samba and does not contain important files.
```bash
sudo rm -rf /srv/samba
```
## Verify Removal
Check that the package is no longer installed.
```bash
dpkg -l | grep samba
```
No packages should be listed.
Verify that the service no longer exists.
```bash
systemctl status smbd
```
Expected output:
```text
Unit smbd.service could not be found.
```
Verify that the configuration directory has been removed.
```bash
ls /etc/samba
```
Expected output:
```text
ls: cannot access '/etc/samba': No such file or directory
```