web-dev-qa-db-ja.com

Windows 7およびXBMCを介してアクセスされる匿名のパブリックSamba共有のセットアップ

だから私はこれを1週間以内に成功させたと言って開始する必要があり、問題はありませんでしたが、サーバーを再フォーマットして再構成して以来、私はそれをどうやってやったか覚えているのが一番大変です。

ここに私が以前持っていたものと私が再び達成しようとしているものがあります。 UbuntuサーバーにパブリックのSamba共有がありました。ネットワーク上の誰でも、\ Hostnameと入力するだけで共有とそのコンテンツにアクセスできます。パスワードは必要ありません。共有のワークグループにないユーザーには読み取りアクセスがありましたが、ワークグループにいるユーザーには読み取り/書き込みアクセスがありました。 (Windows 7)

ここで、\ Hostnameに接続しようとすると、ユーザー名とパスワードの入力を求められます。 un pwを入力すると、フルアクセスができますが、そうする必要はありません。私の現在の設定は...

security = user
map to guest = bad user

[Shares]
path = /home/shares
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes

私はこの髪の毛を引っ張っています。助言がありますか?

編集:

うーん、これは私にそのような苦労を与えています。私はとても近いです。

ここに私が持っているものがあります。

開始して\ Hostname\Sharenameと入力すると、Windows 7から共有にアクセスできますが、ユーザー名とパスワードの入力を求められます。ただし、ワークグループをドメインとして使用するため、空白のままにすることはできません。ユーザー名に\を入力して消去し、空のユーザー名とパスワードでログインします。共有内のファイルにアクセスできるようになりました。

私が入ったら、ワークグループ構成は正常に機能しています。デフォルトのワークグループがインストールされたコンピューターを使用している場合、読み取りと実行が可能です。私のホームワークグループのコンピューターは、読み取りと書き込みを実行できます。だからそれは働いています。

問題は、パスワードを要求するべきではないということです。ネットワーク上のすべての人に完全に公開される必要があります。 XBMCと共有しようとしていますが、ファイルマネージャーのsmbの下に表示されません。 XBMCから手動でアクセスすることもできません。接続拒否エラーが表示されます。

まだこれで髪を引き出します。最悪の部分は、これを約1週間前に初めて行ったときで、約30分を費やし、完全に機能しました。今では少なくとも4時間を費やしましたが、まだ動作していません。

Testparm:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = FELLOWSHIP
        server string = %h server (Samba, Ubuntu)
        map to guest = Bad User
        obey pam restrictions = Yes
        pam password change = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        unix password sync = Yes
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        dns proxy = No
        wins support = Yes
        usershare allow guests = Yes
        panic action = /usr/share/samba/panic-action %d
        idmap config * : backend = tdb

[printers]
        comment = All Printers
        path = /var/spool/samba
        create mask = 0700
        printable = Yes
        print ok = Yes
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

[Shares]
        path = /home/shares
        read only = No
        guest ok = Yes

更新:そのため、ワークグループに関係なく、共有はネットワーク全体で利用可能になりました。ネットワークに接続するすべてのWindowsユーザーは、Netoworkの下でNASを参照してアクセスできます。キーは、セキュリティをsecurity = shareに設定していました。廃止されましたが、機能します。セキュリティ=ユーザーおよびユーザーへのマップ=悪いユーザーは機能していませんでした。

とにかく、共有に接続する人は誰でもディレクトリのUNIXグローバル権限を取得できますが、これは管理可能ですが、smb.confで指定されたワークグループに参加しているユーザーにUNIXグループ権限を取得してほしいです。

この方法で、ディレクトリを775に設定でき、ワークグループに参加しているが、他のユーザーは読み取りと実行しかできないため、書き込みが可能になります。

8
George Spake

これがOpenElecの設定方法です。あなたが求めていることをすべきです。 (それが1年後であっても...たぶん次のものに役立つでしょう)必要に応じて共有設定を微調整してください。

[global]
  server string = YOURSERVERNAME
  workgroup = WORKGROUP
  netbios name = %h
  security = share
  guest account = root
  socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
  smb ports = 445
  max protocol = SMB2
  min receivefile size = 16384
  deadtime = 30
  os level = 20
  mangled names = no
  syslog only = yes
  syslog = 2
  name resolve order = lmhosts wins bcast Host
  preferred master = auto
  domain master = auto
  local master = yes
  printcap name = /dev/null
  load printers = no
  browseable = yes
  writeable = yes
  printable = no
  encrypt passwords = true
  enable core files = no
  passdb backend = smbpasswd
  smb encrypt = disabled
  use sendfile = yes

[share]
comment = Share
path = /share
available = yes
browsable = yes
writable = yes
public = yes
7
Ken

buntuフォーラムのこのスレッド に出くわし、それが役立つかもしれないと思いました。それは舞台裏で起こるステップを説明します:

Windowsでは、共有を参照するときにクライアントのユーザー名とパスワードが自動的に送信されます-これはユーザーの知らないうちに行われます。これにより、認証を必要としないゲスト共有であっても、Sambaは送信された資格情報を処理するようになります。

そのユーザー名が渡されると、Sambaはそのユーザーのパスワードデータベースを検索します。

  • ユーザー名に一致するものがない場合、クライアントユーザーには「Bad User」というタグが付けられ、デフォルトでは「nobody」であるゲストアカウントに変換(マッピング)されます。

  • ユーザー名に一致するものが見つかり、Windowsクライアントから送信されたものと一致するsambaパスワードがある場合、Windowsユーザーは自動的にアクセスしますが、匿名ユーザーとしてではなく、「force user = nobody」を追加する必要があります共有の定義。

  • ユーザー名と一致するが、sambaパスワードがWindowsクライアントによって自動的に送信されるパスワードと正確に一致しない場合、ゲスト共有に対してもパスワードの入力を求められます。

force user = nobodyを共有定義に追加してみて、それが実行されるかどうかを確認してください。

編集02/20/2013:

testparmはゼロ以外の終了コードを返していますか?それでも同じように、私は設定のその領域に良いハードな外観を与えます。また、smb.confで大文字と小文字が区別されるかどうかはわかりませんが、(たとえば)map to guest = Bad Userのすべての例でBとUが大文字になっています。使用しているオプションについて Sambaのマニュアルページ をチェックアウトし、すべてを再確認します。

6
Aaron

Google検索でここに来て、明確な答えがないので、私はそれを要約しました。

以下は、SMBクライアントがSambaサーバーにアクセスするときにユーザー名とパスワードの入力を求めないようにするために必要な条件です。

  1. guest account = <owner-of-your-shares>セクションの下に[global]を追加します。共有の所有者アカウントにアクセスできることが重要です。これを行わないと、Sambaはゲストアカウントがnobodyユーザーであり、共有内のデータにアクセスする可能性が低いと想定します。

    または、force user = <owner-of-your-share>ブロックの下に[shareXYZ]を指定できます。

  2. [shareXYZ]guest ok = yesがあることを確認してください。

    browsable = yesを設定しますが、通常は[global]から継承され、デフォルトでyesに設定されます。

次に、おそらくsecurity = userも設定する必要があります(環境にActive Directoryが設定されていない場合のデフォルトです)。ただし、環境にADがないため、このフラグが必要かどうかはわかりません。

もちろん、nobodyユーザーを動作させたい場合は、chown -Rh 65534:65534 /yourshareだけで構いません。その後、guest ok = yesの下の単一の設定[shareXYZ]で問題ありません。

rwxotherschmod o+rwx /yourshare)に設定しても、Sambaがそのnobodyユーザーを共有に入れないことに注意してください。これをstrace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>で確認しました。おそらく、Sambaはothersに設定されたアクセス許可を無視します。わからない。

0
Andrey Arapov

30秒で機能します

ソース: https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server

[グローバル]ゲストへのマップ=悪いユーザー

    log file = /var/log/samba/%m

    log level = 1

[ゲスト]#この共有は匿名(ゲスト)アクセスを許可します

    # without authentication!

    path = /srv/samba/guest/

    read only = no

    guest ok = yes
0
Gustavo Paredes