testamba在桑巴可能会产生这样的信息:
rlimit_max: rlimit_max (8192) below minimum Windows limit (16384)
这似乎可以通过使用这个Linux命令ulimit -n 16384增加最大打开文件限制来解决。
这是一个典型的桑巴箱安全的变化? 应该在哪里存储这个设置,以便在启动时可以使用samba服务?
首先,这只是一个警告。 在MS Windows上,客户端和服务器上的文件处理程序数量必须相同,否则,例如通过networking复制文件时,将看到“文件太多”的消息。 最近的Samba版本自行处理这个问题。
但是,如果要删除此警告,则可以通过更改本地文件限制来完成此操作。 区分本地(用户或会话)限制和全局(系统范围)限制总是有用的。 检查你的全球限制
cat /proc/sys/fs/file-max
机会是好的,你的全球限制远远超过你的本地限制。 我认为典型的GNU / Linux限制在100k范围内,我没有看很长时间。 您可以通过执行临时更改此值
sysctl -w fs.file-max=n
或者通过编辑/etc/sysctl.conf并运行sysctl -p永久保存。
要检查您的本地限制,请切换到相关用户,例如samba,然后运行
ulimit -Hn ulimit -Sn
这将显示本地会话的硬性和软性限制。 硬限制由系统执行,而软限制由本地会话强制执行。 如有必要,您可以将本地软限制提高到全局硬限制。
您可以通过运行暂时更改限制
ulimit -Hn n ulimit -Sn m
或者您可以通过/etc/security/limits.conf来设置用户限制,甚至可以指定哪些用户使用哪些限制,例如
samba soft nofile 16384 samba hard nofile 32768
一如既往,文件和命令的手册页提供了更多的见解。 希望有所帮助。
限制取自/etc/security/limits.conf。
你用ulimit -n显示你的实际限制
你可以通过编辑(或添加)行来改变它
* - nofile 16385
并重新加载你的env参数(或退出shell并再次inputshell)。