There are a couple of things you need to know about the samba configuration file. Well, i'm lying. There is a lot you need to know (I had to spend a couple of days reading through the manual). But to sum everything up it depends on where you are sharing the folder from.
If the folder is inside your home folder, you can simply right click the folder, select sharing and follow the options provided. Easy solution.
If the folder is outside your home folder, for example, in
/media/username/movies, the fastest way of sharing the folder is to put in the
[global] section in the smb.conf file
force user = USERNAME where username is your user or the owner of the shared folder. This has several security implications but is nonetheless, the fastest way of sharing if you are on a LAN and trust the rest of the group.
If you already did the 2 mentioned above for each case, you then need to check if you are actually on the same LAN network (Check IP class), same subnet and same workgroup. For the latter, you can change the workgroup in the smb.conf under the
workgroup = variable.
If you already have done all the steps mentioned above then we proceed to see if the permissions are correct:
- Does the share folder actually have the username as owner?
- Does the share folder have read/write/execute permissions?
- Can you access the shared folder from another Ubuntu PC or another version of Windows?
Depending on this answers you can most likely know where the problem is coming from. Most of the time, it is, in my case, a Windows 8 problem. Windows 8 has several options that you need to change in the "Network & Sharing" menu in order to see the LAN correctly (This applies not only to seeing Ubuntu shared resources but also other Windows versions like XP and 7).
There are tools to simplify the sharing of folders outside the home folder like the
system-config-samba package, but they help to a degree. You can also check
man smb.conf to see a lot of information regarding this file, specially the part about security which I would recommend reading this https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ServerType.html#id2559439 which is better for the eye than the man pages. Specially the part about
security = user.
Here is an example of a working samba share
/media/cyrex/movies working for another Windows 7, Windows 8 and 2 Ubuntu PCs in the same IP range and Workgroup:
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
dns proxy = no
force user = cyrex
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
create mask = 0700
comment = Printer Drivers
path = /var/lib/samba/printers
path = /media/cyrex/titan/movies
browseable = yes
guest ok = yes
The only lines I added where the
force user = cyrex in the
[global] section and the section for the
[movies] which was made by the
system-config-samba app but you can also do it by hand.
After that just
sudo service smbd restart and wait a couple of seconds/minutes for the switch/router/network devices to update.