解决samba testparm消息:rlimit_max:rlimit_max(8192)低于最小Windows限制(16384)

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)。