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

Ben*_*kes 5 configuration shell bash samba

我想编写将共享添加到smb.conf文件的脚本。我当前的脚本只是将它附加到文件的末尾,但这并不理想。我宁愿有一些东西,如果它不存在就会添加一个新的共享,如果它存在就替换它。

我目前正在 CentOS 7 发行版上编写此脚本,但理想情况下会喜欢跨发行版工作的东西,尽管这不是必需的。

另外,我bash之所以这样做,是因为脚本是在将其他包添加到系统之前运行的。该脚本用于yum安装samba软件包,然后应该对其进行配置并添加共享。

chi*_*cks 7

为了适应现代系统管理员的最佳实践,最好将您的配置作为单独的文件添加到其中/etc/smb/smb.d,然后使用include. 遗憾的是,samba 不支持通配符,include因此您必须添加以下内容:

include = /etc/smb/includes.conf
Run Code Online (Sandbox Code Playgroud)

在你smb.conf然后includes.conf用类似的东西生成:

ls /etc/smb/smb.d/* | sed -e 's/^/include = /' > /etc/smb/includes.conf
Run Code Online (Sandbox Code Playgroud)

有关更多上下文:

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
Run Code Online (Sandbox Code Playgroud)

因此,现在您可以将任何其他 samba 配置粘贴到 中/etc/smb/smb.d,重新生成includes.conf并重新启动 samba,生活就很好了。