我无法让桑巴共享工作访问共享。
我已经安装了一个独立的运行Fedora 16的机器,用作文件共享和Web开发服务器。 它需要能够与Windows 7 PC和运行OSX Snow Leopard的Mac共享文件。
我已经使用Fedora上的SambaconfigurationGUI工具设置了Samba。 将用户添加到Fedora中,并将它们连接为Samba用户(与Windows和Mac用户名和密码相同)。 工作组名称与Windows工作组相同。 身份validation设置为用户。 我已经允许Samba和Samba客户端通过防火墙,并将以太网设置为防火墙中的信任端口。
Windows和Mac机器都可以连接到服务器并查看共享,但是当试图访问共享时,Windows会报错:
0x80070035 " Windows cannot access \\SERVERNAME\ShareName."
在访问服务器时,不会提示Windows用户input用户名或密码(可在“networking位置”下find)。 当连接IP而不是服务器名称时也会发生这种情况。
Mac也可以连接到服务器并查看共享,但在select共享时出现错误:
The original item for ShareName cannot be found.
当通过IP连接时,Mac用户会被提示input用户名和密码,当通过身份validation时会给出一个共享列表,但是当select共享连接时,会显示错误并且用户无法访问共享。
由于两台机器在尝试访问共享时的行为都是相似的,因此我认为这是Samba如何configuration的问题。
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
如何让桑巴共享工作?
更新:我想通了,这是因为我共享第二个硬盘驱动器。 看到下面的检查答案。
猜测1:在这个盒子之前,我有另一个盒子安装了相同版本的Fedora(16)和Samba为这些相同的计算机工作。 我启动了旧的机器,并将smb.conf文件从旧机器复制到新机器上(编辑新机器的共享定义),但在两台客户机上仍然出现相同的错误。 环境的唯一区别是硬件和路由器。 在旧的机器上,路由器收到一个dynamic公共IP,并为networking上的每个设备分配dynamic私有IP,而新机器连接到具有静态公有IP的路由器(尽pipe如此,仍然是dynamic的内部IP)。正在影响桑巴?
猜测2:由于我试图分享的目录实际上是一个整个内部磁盘,我试过这些东西:
1.)将挂载磁盘的所有者从根目录更改为我的用户(与Windows机器上的用户名相同)
2)做了一个共享,只包括磁盘上的文件夹中的一个,而不是整个磁盘与我的用户再次作为所有者。
两个testing失败都给了我有关networking地址相同的错误。
推测3:当我尝试连接到Windows 7客户端上的共享时,系统提示input我的用户名和密码。 当我input正确的凭据,我得到一个访问被拒绝的消息。 但是我注意到,在login框“域:WINDOWS-PC-NAME”被列出。 我相信这可能是问题所在。
猜测4:所以我已经完全重新安装了Fedora和Samba。 我已经在第一个硬盘上创build了一个共享(安装了一个fedora),我可以从Windows访问这个共享。 但是,当我尝试共享第二个磁盘上的任何数据时,我收到相同的错误。 我相信这是问题所在。 我想我需要在fstab或fdisk中改变一些东西。
推测5:所以在fstab我把驱动器映射到正确工作的文件夹中。 我还将samba_share_t SElinux标签添加到现在允许我访问Windows计算机上的共享的挂载点目录,但是我无法看到windows计算机上目录中的任何文件。 (他们在那里,我可以在本地在Fedora文件浏览器中看到他们)
发布你的smb.conf,这样我们可以检查你的configuration是否正常。
你的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密码。
另一个重要的事情是重新启动Samba。 :P
终于明白了 所以首先问题是我试图共享第二个硬盘,而不是安装在同一个驱动器上的数据。 以下是能够通过Samba共享第二个驱动器的步骤:(这是针对内部安装的驱动器,但我认为它也可能适用于外部)
1.)您必须将驱动器设置为以fstab自动挂载。 加:
/dev/sdbx /mountpoint ext3 auto 0 0
到/ etc / fstab其中x是驱动器的分区号,“/ media / mountpoint”是安装目录(我创build了一个名为/ 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访问共享读取和写入。
确保你可以看到使用netstat运行的samba
netstat -an | grep LISTEN | egrep "445"
也尝试添加接口绑定到configuration:
interfaces = eth0或interfaces = <ip address>在smb.conf中
我有同样的麻烦,最后我可以解决它,编辑/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