152 lines
2.5 KiB
Markdown
152 lines
2.5 KiB
Markdown
# Samba Share
|
|
|
|
A Samba share lets you access files on this machine over the network (Windows SMB protocol).
|
|
|
|
`<>` - Is used to mark that you need to fill that in
|
|
|
|
## Initial Setup (one-time)
|
|
|
|
### 1. Install Samba
|
|
|
|
```bash
|
|
sudo pacman -S samba # Arch
|
|
sudo apt install samba # Debian/Ubuntu
|
|
```
|
|
|
|
### 2. Create a Samba user
|
|
|
|
The samba password is **separate** from your system password.
|
|
|
|
```bash
|
|
sudo smbpasswd -a <username>
|
|
```
|
|
|
|
### 3. Edit `/etc/samba/smb.conf`
|
|
|
|
Example config for sharing the Projects folder:
|
|
|
|
```ini
|
|
[global]
|
|
workgroup = WORKGROUP
|
|
server string = %h
|
|
map to guest = Bad User
|
|
log file = /var/log/samba/%m.log
|
|
max log size = 50
|
|
socket options = TCP_NODELAY
|
|
|
|
[Projects]
|
|
comment = Projects
|
|
path = /home/honney/Projects
|
|
browseable = yes
|
|
read only = no
|
|
writable = yes
|
|
valid users = honney
|
|
create mask = 0664
|
|
directory mask = 0775
|
|
```
|
|
|
|
### 4. Start Samba
|
|
|
|
```bash
|
|
sudo systemctl enable --now smb
|
|
```
|
|
|
|
### 5. Allow Samba through the firewall
|
|
|
|
```bash
|
|
sudo firewall-cmd --add-service=samba --permanent
|
|
sudo firewall-cmd --reload
|
|
```
|
|
|
|
Or with `ufw`:
|
|
|
|
```bash
|
|
sudo ufw allow samba
|
|
```
|
|
|
|
## Mounting the share on another Linux machine
|
|
|
|
Install `cifs-utils`:
|
|
|
|
```bash
|
|
sudo pacman -S cifs-utils # Arch
|
|
sudo apt install cifs-utils # Debian/Ubuntu
|
|
```
|
|
|
|
Mount manually:
|
|
|
|
```bash
|
|
sudo mount -t cifs //<IP>/Projects </path/to/mount> -o username=honney,vers=3.0
|
|
```
|
|
|
|
### `/etc/fstab` entry
|
|
|
|
```text
|
|
//<IP>/Projects </path/to/mount> cifs username=honney,password=<password>,vers=3.0,nofail,uid=1000,gid=1000,iocharset=utf8,file_mode=0664,dir_mode=0775 0 0
|
|
```
|
|
|
|
Or with a credentials file (more secure):
|
|
|
|
```text
|
|
//<IP>/Projects </path/to/mount> cifs credentials=</path/to/.smbcredentials>,vers=3.0,nofail,uid=1000,gid=1000,iocharset=utf8,file_mode=0664,dir_mode=0775 0 0
|
|
```
|
|
|
|
Credentials file (`~/.smbcredentials`):
|
|
|
|
```text
|
|
username=honney
|
|
password=<password>
|
|
```
|
|
|
|
```bash
|
|
chmod 600 ~/.smbcredentials
|
|
```
|
|
|
|
### Find the IP of the Samba server
|
|
|
|
```bash
|
|
ip a | grep inet
|
|
```
|
|
|
|
### List available shares
|
|
|
|
```bash
|
|
smbclient -L //<IP> -U honney
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
Check if Samba is running:
|
|
|
|
```bash
|
|
sudo systemctl status smb
|
|
```
|
|
|
|
View active connections:
|
|
|
|
```bash
|
|
sudo smbstatus
|
|
```
|
|
|
|
Test the config for errors:
|
|
|
|
```bash
|
|
testparm
|
|
```
|
|
|
|
Restart Samba after config changes:
|
|
|
|
```bash
|
|
sudo systemctl restart smb
|
|
```
|
|
|
|
## Access from Windows
|
|
|
|
Open File Explorer and type:
|
|
|
|
```text
|
|
\\<IP>\Projects
|
|
```
|
|
|
|
Then log in with the samba username and password.
|