你将如何通过脚本向smb.conf添加一个共享?

我想脚本添加一个共享到一个smb.conf文件。 我当前的脚本只是附加到文件的末尾,但这并不理想。 如果它不存在,我宁愿有一些将添加一个新的共享,并且如果它存在,则replace它。

我目前正在使用CentOS 7发行版来编写脚本,但是理想情况下,它们可能会在发行版中起作用,尽pipe这不是必需的。

另外,我正在使用bash来执行此操作,因为脚本是在其他程序包添加到系统之前运行的。 该脚本使用yum来安装samba包,然后应该configuration它并添加共享。

为了适应现代系统pipe理员的最佳实践,将configuration文件作为单独的文件添加到/etc/smb/smb.d然后用include引用它们会很好。 可悲的桑巴不支持通配符include所以你必须添加像这样的东西:

include = /etc/smb/includes.conf

在你的smb.conf ,然后用如下的东西生成includes.conf

ls /etc/smb/smb.d/* | sed -e 's/^/include = /' > /etc/smb/includes.conf

多一点上下文:

chicks@silver 23:57:23 smb !531 $ ls smb.d a.conf c.conf e.conf chicks@silver 23:57:29 smb !532 $ ls /etc/smb/smb.d/* | sed -e 's/^/include = /' > /etc/smb/includes.conf chicks@silver 23:57:40 smb !533 $ cat includes.conf include = /etc/smb/smb.d/a.conf include = /etc/smb/smb.d/c.conf include = /etc/smb/smb.d/e.conf

所以,现在你可以把任何附加的sambaconfiguration保存到/etc/smb/smb.d ,重新生成includes.conf并重新启动samba,生活就是好的。