Ben*_*kes 5 configuration shell bash samba
我想编写将共享添加到smb.conf文件的脚本。我当前的脚本只是将它附加到文件的末尾,但这并不理想。我宁愿有一些东西,如果它不存在就会添加一个新的共享,如果它存在就替换它。
我目前正在 CentOS 7 发行版上编写此脚本,但理想情况下会喜欢跨发行版工作的东西,尽管这不是必需的。
另外,我bash之所以这样做,是因为脚本是在将其他包添加到系统之前运行的。该脚本用于yum安装samba软件包,然后应该对其进行配置并添加共享。
为了适应现代系统管理员的最佳实践,最好将您的配置作为单独的文件添加到其中/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,生活就很好了。