web-dev-qa-db-ja.com

一時的なSamba共有を作成する

Sambaごとに一時的にディレクトリを共有する可能性はありますか?

Pythonを使用すると、[〜#〜] http [〜#〜]ごとに現在のディレクトリを提供できます。

python -m http.server

Sambaでも同じことをしたいです。

9
schmijos

Sambaデーモンの古さ、およびビルド時に使用された構成オプションによっては、smb.confで「動的」共有を定義するオプションがあります。たとえば/ var/dynamic /を指定します。以下を参照してください、次に、一時的に共有したいディレクトリへのシンボリックリンクをディレクトリに追加するだけです。

このハックでは、sambaが共有ルートの外部のリンクをたどることができるように、ワイドリンクオプションをはいに設定する必要があります。残念ながら、数年前、Sambaの乗組員は、悪用される可能性があるため、デフォルトの構成を微調整して、ワイドシェアを防止しました。 Google for:Sambaおよび「ワイドリンク」履歴と回避策。

[dynamic]
    comment = Somewhere to park dynamic shares 
    path = /var/dynamic
    read only = Yes
    inherit acls = Yes
    follow symlinks = yes
    wide links = yes

簡単なテストで、たとえば.

mkdir -p /var/dynamic/test
cd /var/dynamic
ln -s test a_link
ln -s /tmp/  tmp_test
1
arober11

LinuxのNFSでexportfsが実行し、Solarisでshareが実行するのと同様に、アドホック共有を作成する方法はないようです。理由はさまざまですが、技術的には、同じマシン上で 複数サーバーの実行 のページで説明されているようなことを実行し、カスタムsmb.confを使用して必要な処理を実行できます。

SWATを使用して動的に共有を作成および削除する オプションもあります。これを行うには、 smb.conf を変更する必要があります。add share commandおよびdelete share command

個人的には、動的な共有が必要な場合は、ホームディレクトリを共有し、 buntuフォーラムSambaメーリングリスト などの多くの場所で議論されているsambaを介して動的なホーム共有を使用することをお勧めします。 。

1
Karlson

/ somefolderをsomeuserの一時的な読み取り専用とすばやく共有したいとします。

システムユーザーを追加します。

useradd -r someuser

強制する必要がある場合、多くの場合、デフォルトでフォルダは他の読み取り可能です(ls -ld/somefolderで確認してください)。

chmod -R o+r /somefolder

次のようなパスワードを使用して、ユーザーをsambaに追加します。

smbpasswd -a someuser

Smb.confをすばやく編集し、下部に追加します

[someshare]
path = /somefolder
read list = someuser

終了し、保存して、最後に実行します

smbcontrol smbd reload-config

etvoila。

明らかに、完了したら「someshare」セクションを削除して、reload-configコマンドを再実行することをお勧めします。

免責事項:私はこれを完全にテストしませんでしたが、質問への答えがいかに簡単であるかに驚いていました。既存のsambaアクセス権を持つユーザーがすでにいる場合は、いくつかの手順をスキップして、smb.confの編集に直接飛び込むことができます。これはまさに私が遭遇したことです。

0
DaaNMaGeDDoN