web-dev-qa-db-ja.com

Sambaサーバーに接続できますが、共有にアクセスできません。

共有にアクセスするためにsamba共有を機能させるのに問題があります。

ファイル共有およびWeb開発サーバーとして使用するために、Fedora 16を実行するスタンドアロンボックスをセットアップしました。 Windows 7 PCおよびOSX Snow Leopardを実行しているMacとファイルを共有できる必要があります。

FedoraでSamba構成GUIツールを使用してSambaをセットアップしました。 Fedoraにユーザーを追加し、それらをSambaユーザーとして接続しました(WindowsおよびMacのユーザー名とパスワードと同じです)。ワークグループ名は、Windowsワークグループと同じです。認証はユーザーに設定されます。 SambaとSambaクライアントがファイアウォールを通過することを許可し、イーサネットをファイアウォールの信頼できるポートに設定しました。

WindowsマシンとMacマシンの両方がサーバーに接続して共有を表示できますが、共有にアクセスしようとすると、Windowsはエラーをスローします。

0x80070035 " Windows cannot access \\SERVERNAME\ShareName." 

Windowsユーザーは、サーバーにアクセスするときにユーザー名またはパスワードの入力を求められません(「ネットワークプレース」にあります)。これは、サーバー名ではなくIPで接続する場合にも発生します。

Macはサーバーに接続して共有を表示することもできますが、共有を選択するとエラーが発生します。

The original item for ShareName cannot be found.

IP経由で接続する場合、Macユーザーはユーザー名とパスワードの入力を求められます。認証時に共有のリストが表示されますが、接続する共有を選択するとエラーが表示され、ユーザーは共有にアクセスできません。

共有にアクセスしようとすると、両方のマシンが同様に動作するため、Sambaの構成方法に問題があると思います。

smb.conf:

[global]

    workgroup = workgroup
    server string = Server
    log file = /var/log/samba/log.%m
    max log size = 50
    security = user
    load printers = yes
    cups options = raw
    printcap name = lpstat
    printing = cups


[homes]
    comment = Home Directories
    browseable = no
    writable = yes


[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = yes
    printable = yes

[FileServ]
    comment = FileShare
    path = /media/FileServ
    read only = no
    browseable = yes
    valid users = user1, user2

[webdev]
    comment = Web development
    path = /var/www/html/webdev
    read only = no
    browseable = yes
    valid users = user1

Samba共有を機能させるにはどうすればよいですか?

更新:私はそれを理解しました、それは私が2台目のハードドライブを共有していたからでした。以下のチェック済み回答を参照してください。

憶測1:このボックスの前に、同じバージョンのFedoraがインストールされた別のボックス(16)があり、これらの同じコンピューターでsambaが動作していた。古いマシンを起動して、smb.confファイルを古いマシンから新しいマシンにコピーしました(もちろん、新しい共有の共有定義を編集しています)と、両方のクライアントマシンで同じエラーが発生します。環境の唯一の違いは、ハードウェアとルーターです。古いマシンでは、ルーターは動的なパブリックIPを受け取り、ネットワーク上の各デバイスに動的なプライベートIPを割り当てましたが、新しいマシンは静的なパブリックIP(まだ動的な内部IP)を持つルーターに接続されています。 Sambaに影響がありますか?

憶測2:共有しようとしているディレクトリは実際には内部ディスク全体なので、次のことを試しました。

1.)マウントされたディスクの所有者をrootから私のユーザーに変更します(これはWindowsマシンと同じユーザー名です)

2.)所有者として再びユーザーを使用して、ディスク全体ではなくディスク上のフォルダの1つだけを含む共有を作成しました。

どちらのテストも失敗し、ネットワークアドレスに関して同じエラーが発生しました。

憶測3:Windows 7クライアントの共有に接続しようとすると、ユーザー名とパスワードの入力を求められます。正しい資格情報を入力すると、アクセス拒否のメッセージが表示されます。ただし、ログインボックスの下に「domain:WINDOWS-PC-NAME」が表示されていることに気付きました。これが問題になるのではないかと思います。

憶測4:そこで、FedoraとSambaを完全に再インストールしました。最初のハードドライブ(1つのFedoraがインストールされている)に共有を作成しました。Windowsからそのアクセスが可能です。しかし、2番目のディスクのデータを共有しようとすると、同じエラーが発生します。これが問題だと思います。 fstabやfdiskなどのいくつかを変更する必要があると思います。

推測5:fstabで、ドライブを自動マウントするフォルダーにマッピングして、正しく機能するようにしました。また、samba_share_t SElinuxラベルをマウントポイントディレクトリに追加しました。これにより、Windowsマシンの共有にアクセスできるようになりますが、Windowsマシンのディレクトリにあるファイルは表示されません。 (それらはそこにあり、Fedoraファイルブラウザでローカルに見ることができます)

2
biggles

ついに手に入れました。最初に問題が発生したのは、OSがインストールされているドライブと同じドライブ上のデータではなく、2台目のハードドライブを共有しようとしていたためです。 Sambaを介して2番目のドライブを共有できるようにする手順は次のとおりです(これらは内部にマウントされたドライブ用ですが、外部ドライブでも機能すると思います)

1.)fstabでドライブを自動マウントするように設定する必要があります。追加:

/dev/sdbx /mountpoint ext3 auto 0 0

/ etc/fstabにxはドライブのパーティション番号、「/ media/mountpoint」はマウントディレクトリ(/ shareというディレクトリを作成し、そこにドライブをマウント)、「ext3」はファイルシステム

2.)マウントポイントの権限を755に設定します。

chmod 755 /mountpoint

3.)新しいSElinuxラベル「samba_share_t」を追加し、このラベルをマウントポイントに適用します

chcon -t samba_share_t /mountpoint

4.)これらのアクセス許可を、含まれているすべてのファイルとフォルダーに適用します。 (これにはGnomeのGUIを使用しました)

Windows 7 PCとOSXを実行しているMacの両方から共有への読み取りと書き込みにアクセスできます。

1
biggles

Smb.confを投稿して、すべての設定が正しいかどうかを確認できるようにします。

Smb.confの最も重要な部分は次のようなものです。

[name_of_the_shared_folder_resource]
   valid users = user1 user2    #you can use groups
   public = no
   path = /var/www    #the path of your folder
   printable = no
   writable = yes

ユーザーごとにsmbpasswdを実行してSambaパスワードを生成することを忘れないでください。

もう1つ重要なことは、Sambaを再起動することです。 :P

1
Vic Abreu

私は同じ問題を抱えていました、最後に私はそれを解決して編集できました/etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled    # if the files dont appears is because this parameters is not disabled
0
ron

netstatを使用してsambaが実行されていることを確認してください

netstat -an | grep LISTEN | egrep "445"

また、インターフェースバインディングを構成に追加してみてください。

interfaces = eth0またはinterfaces = <ip address> smb.conf内

0
Sc0rian