Installing Samba from the command line
12 (bookworm) |
Basic Samba install & minimal configuration
(Assuming you'll replace USER with your own username...)
mkdir ~/share
touch ~/share/Foo
Install Samba
sudo apt install samba -y
sudo vi /etc/samba/smb.conf
[New_share] comment= my share path = /home/USER/share force create mode = 0660 ; readable and writable by user and group force directory mode = 0770 ; readable, writable and searchable by user and group browseable = yes Read only = no guest ok = yes
Note: Files & folders placed in this share by an anonymous user will belong to nobody:nogroup.
- oddly, even as the owner of the share, you won't have direct control over these files/folders.
- So, it might be a good idea to add yourself to the nogroup group:
sudo usermod -a -G nogroup USER
[New_share] comment= my share path = /home/USER/share browseable = yes Read only = no guest ok = no
Restart Samba
While you're in there, if you don't have printer(s) connected to the machine, comment out or remove the [printers] and [print$] blocks
sudo systemctl restart smbd
Set up usernames & passwords for Samba acess
(Samba uses it's own password list. Therefore, you'll need to set up each user...)
For each user that will be allowed access (USERs must exist as users on the system),
sudo smbpasswd -a USER
Additional bits to install
Client & utils & such... (optional)
In order to be able to mount CIFS (Samba, Windows...) shares from other servers
sudo apt install cifs-utils -y
For some reason...
sudo apt install samba-client -y
seems to be recommended. Gonna hafta research what that actually provides.
Usage Notes
sudo smbstatus --shares
(NOTE: This only shows the shares if they've very recently been accessed from a client machine.)
Connecting from a Linux desktop with samba installed...
NOTE: At this point, the share can be accessed, but you need to know where it is because Samba does not advertise it's presence.
- You can see the shares from the machine by entering
smb://MACHINENAME/
into the address bar of your file browser.
Also... SMB seems to get harder & harder to deal with. If just trying to get to the server results in Error: Failed to retrieve share list from server: Invalid argument, it's because of some of the many changes done to the protocols over the years.
sudo vi /etc/samba/smb.conf
& add
client min protocol = NT1 server min protocol = NT1
into the [global] section. (after the "workgroup =" line is recommended.)
Connecting from a Windows machine...
You should be able to see the available shares by opening Windows Explorer and entering \\MACHINENAME
into the address bar. (Or even by simply selecting Network and then MACHINENAME if Windows is behaving.)
Ongoing Research
Still need to find a way for Samba to properly show up when browsing the network...
Hey SAMBA! How about a solution to the whole "nobody:nogroup" stupidity???