web-dev-qa-db-ja.com

Simple Samba Share-パスワードなし

必要なもの:

パスワードなしのファイルサーバー用のシンプルなsamba構成と、すべてのユーザーに対する完全な読み取り書き込み。セキュリティは必要ありません。

歴史:

私は自宅のファイルをホストするサーバーを作っています。サーバーの目標は、Windowsマシンのファイルをホストすることです。私がこれまでにできた最善の方法は、この構成です。これにより、ネットワークから共有とサーバーを確認できますが、Windowsはそれらにアクセスできません。サーバーでLinux mateを使用しています。すべての最新の更新プログラムです。

私の設定:

[global]

   workgroup = BIOHAZARD
   netbios name = MATUSALEM
   guest account = nobody
   log file = /usr/local/samba/var/log.%m
   max log size = 50
   security = user
   map to guest = bad user
   encrypt passwords = yes

# Share Definitions 
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

[Teste]
    path = /home/peter/share
    writable = yes
    printable = no
    comment = teste
    only guest = yes
    public = yes
        guest ok = yes
        guest only = yes
        guest account = nobody
        browsable = yes
[REDE]
    comment = TESTE 2
    public = yes
    delete readonly = yes
    path = /HOME/REDE
    writeable = yes
        guest ok = yes
        guest only = yes
        guest account = nobody
        browsable = yes
######

何か案は?

はい、Sambaは苦痛になります。仕事だけでなく、自宅でも使用しています。

最初に行うべきことは、トラブルシューティングを容易にするためにゼロからやり直すことです。これを行うには、ターミナルで次のコマンドを実行します。

dpkg-reconfigure samba-common

次に、共有したいsambaサーバー上のフォルダーに移動し、ユーザーが共有に対して読み書きできないことを確認します。これは、ユーザーnobodyがWindowsクライアントが使用するユーザー名であるためです。通常、単純にするために/ディレクトリにフォルダーを作成しますが、「正しい」方法は/ srvのサブフォルダーを作成することです。権限をまだ変更していない場合は、以下のコマンドを使用してください。

Sudo chown -R nobody.nogroup the_folder
Sudo chmod -R 777 the_folder

また、rootとして次のコマンドを実行することにより、誰もディレクトリに書き込めないかどうかをテストできます。

Sudo -u nobody touch test_file

/etc/samba/smb.confを編集し、[printers]共有定義の下に行を追加します。

[share_name]              ;the share name can be what ever you want
browseable = yes
path = the_complete_path_to_the_shared_folder
guest ok = yes
read only = no
create mask = 777

次に、完了したら保存して次を実行します。

testparm

これにより、タイプミスをした場合に警告が表示されます。次に、Sambaサービスを再起動する必要があります。

Sudo systemctl restart smbd
Sudo systemctl restart nmbd
21
Andrew

@Andrewの回答に加えて、ubuntu 17.04から17.10への最近のアップグレードにより、systemctl samba-dc-ad.serviceで問題が発生します。おそらく、samba-dc-ad.serviceにsambaを再インストールするときのマスクのバグではありません(意図的)。追加の手順@ Andrewのanswerの前、アップグレードのためにsambaのインストール/再インストールに問題がある場合:

  1. apt-get update&apt-get-upgrade <-未解決のアップグレードがないことを確認
  2. apt-get sambaのインストール
  3. このページに移動して、手順を実行します。 https://wiki.samba.org/index.php/Managing_the_Samba_AD_DC_Service_Using_Systemd

  4. apt-get -f sambaのインストール

  5. 今、上記の手順を実行します。 :-)
0
BlizzardsGambit

これは古いスレッドであることがわかりましたが、ログインを必要とせずにフォルダを作成および共有する問題を解決するのに役立ちました。他にもたくさんのスレッドがありますが、誤解を招きます。そこには他の投稿と非常に多くの小さな違いがあるので、セミビギナーズガイドを下にあげました。私はそれがほとんどあきらめ、髪の半分を引き出した誰かを助けるかもしれないと思いました:-)

私にとって、デフォルトのAWS Linuxイメージ(Amazon Linux AMI 2017.03.0(HVM))でルートdir /にフォルダーを作成する必要がありました。デフォルトのec2-userで作成した場合、アクセス許可を割り当てることができませんでした。許可を割り当てるとき、nogroupが機能しなかったため、nobody.nobodyを使用する必要がありました。最後に、gloablスタンドアロンサーバーセクションの下に、デフォルトでsecurity = userと表示されているguest = Bad Userへのマップを含める必要がありました

したがって、完全な手順は新しいサーバーの展開になります。

必要に応じてsambaをインストールします

フォルダを作成して権限を割り当てます

Sudo su
cd /
mkdir the_folder
chown -R nobody.nobody the_folder
chmod -R 777 the_folder

sambaファイルを編集する

nano /etc/samba/smb.conf

行を見つける----スタンドアロンサーバーオプション----「ゲストにマップ」を追加

security = user
passdb backend = tdbsam
map to guest = Bad User

セクションの下で#====共有定義====共有を追加

[SHARENAME]
path = the_folder
read only = no
create mask = 777
guest ok = yes

ファイルを保存して、samabaを再起動します

/etc/init.d/smb restart
0
David