web-dev-qa-db-ja.com

スクリプトを介してsmb.confに共有をどのように追加しますか?

Smb.confファイルに共有を追加するスクリプトを作成したいと思います。私の現在のスクリプトはそれをファイルの最後に追加するだけですが、それは理想的ではありません。存在しない場合は新しい共有を追加し、存在する場合は置き換えるものが必要です。

私は現在、CentOS 7ディストリビューションでこれをスクリプト化していますが、必須ではありませんが、理想的にはディストリビューション間で機能するものが必要です。

また、他のパッケージがシステムに追加される前にスクリプトが実行されるため、これを行うためにbashを使用しています。スクリプトはyumを使用してsambaパッケージをインストールし、それを構成して共有を追加することになっています。

5
Benjamin Peikes

最新のシステム管理者のベストプラクティスに合わせるには、構成を/etc/smb/smb.dに個別のファイルとして追加し、includeで参照することをお勧めします。残念ながら、sambaはワイルドカードincludesをサポートしていないため、次のようなものを追加する必要があります。

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

これで、追加のsamba構成を/etc/smb/smb.dに貼り付け、includes.confを再生成し、sambaを再起動することができます。

6
chicks