在我们使用 Windows 作为客户机的时候,通常有文件、打印共享的需求。作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过 Windows Network 固有的功能实现这些要求。然而,通过 Samba 我们也可以让一台 Fedora 主机来兼容 Windows 网络,实现同样的功能,进而充分发挥 Fedora 主机的可用性。
本文主要介绍怎样通过 Samba 服务器的构建实现 Windows 网络中的文件共享。
SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务,NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block) 协议,这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在 Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置, 就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。
Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。
samba的安装
首先,通过 yum 来在线安装 Samba 。
yum -y install samba
samba的启动:
方法一,
配置网络服务:#setup ,到相应的网络服务中选中samba即可
方法二,
#service smb start //启动samba服务
#service smb restart //重启samba 服务
可以通过命令 #service smb status 查看是否启动了samba服务;
可以通过命令netstat查看samba默认的端口是否打开,如: #netstat -an | grep 901
- samba的配置-smb.conf文件
[global]
workgroup = WORKGROUP //设置工作组
security = user //设置安全级别
log file = /var/log/samba/log.%m //日志保存路径
max log size = 50 //最大连接书
encrypt passwords = yes
[homes]
valid users = %S
browseable = no
[gerry]
path = /home/gerry //路径
public = no
browsealbe = yes
writalbe = yes //可写
write list = gerry
[qixb]
path = /home/qixb
public = no
browsealbe = yes
writalbe = yes
write list = qixb
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
- samba用户
在进行到服务端的连接之前,需要预先对用于登录 Samba 的用户进行设置。这里我们以 Fedora 中 Samba 标准的 Samba 用户数据库管理工具“smbpasswd”为例,创建用于登录 Samba 的用户数据。这里需要注意的一点:用 smbpasswd 创建用户的前提是,系统用户中存在该用户 -- 在基于系统用户之上,才可以创建该用户在 Samba 用户数据库中的信息。
smbpasswd -a gerry
smbpasswd -e gerry
- samba的注意事项
在其它版本的linux中(AS5,AS4,Centos)中做如上设置后就可以正常访问共享了,但是在fedora9中却不行,我们只能看到共享,但是访问的时候会出现拒绝访问的情况,这是为什么呢?因为selinux对samba共享做了限制,我们只用把selinux中对samba的限制给解决了就行了,我们做如下设置就OK了,这也是我做此教程的目的:
#setsebool –P samba_enable_home_dir on
#setsebool –P samba_export_all_ro on
#setsebool –P samba_export_all_rw on
我们可以用命令getsebool –a | grep samba
查看上面三项是否打开,打开的话你的共享应该就正常了。