First off, this is just a warning. On MS Windows the number of file handlers on the client and the server must be identical, else you will see the "too many files open" message when e. g. copying files over the network. More recent Samba versions take care of this on their own.
However, if you want to remove this warning, you can do so by changing your local file limits. It is always useful to distinguish local (user or session) limits and global (system wide) limits. Check you global limits with
cat /proc/sys/fs/file-max
Chances are good that your global limits far exceed your local limits. I think the typical GNU/Linux limit is in the 100k range, I haven't looked in a really long time. You can change this value temporarely by executing
sysctl -w fs.file-max=n
or permanently by editing /etc/sysctl.conf
and running sysctl -p
.
To check your local limits, switch to the concerned user, e. g. samba, and run
ulimit -Hn
ulimit -Sn
This will show you hard and soft limits for the local session. The hard limit is enforced by the system, while the soft limit is enforced by the local session. You can increase the local soft limit up to the global hard limit, if necessary.
You can change the limits temporarely by running
ulimit -Hn n
ulimit -Sn m
or you can set user limits via /etc/security/limits.conf
and you can even specify for which users which limits apply, e. g.
samba soft nofile 16384
samba hard nofile 32768
As always the man-pages of both files and the commands offer much more insight. Hope that helps.