昔我往矣

Samba文件共享服务器

2012年04月26日

文件共享有多种方式,在linux与linux之间使用nfs(网络文件系统),网络上的文件共享大多使用ftp,linux与windows文件共享则可以使用samba。windows文件共享使用smb/cifs网络协议实现文件和打印资源共享。samba比windows共享的效率更高。

SMB:service message block 服务消息块
CIFS:Common Internet File System ,通用互联网文件系统
共享服务器运行两个程序:
  smbd : 共享访问
  nmbd : netbios名称解析

首先,查看是否安装了必须的samba软件包,如果已经安装,则启动它,没安装的就先安装了再启动它

# rpm -qa | grep samba
samba-3.5.4-68.el6.i686
samba-winbind-clients-3.5.4-68.el6.i686
samba-common-3.5.4-68.el6.i686
samba-client-3.5.4-68.el6.i686
# service smb start

启动 SMB 服务:                                            [确定]
# cat /etc/samba/smb.conf | grep -v "^;" | grep -v "^#" | grep -v "^$"</code>

和;均为注释,#后面是说明文字,;后面是配置样例

服务器的主配置文件路径:/etc/samba/smb.conf。使用vim编辑这个文件,以下是这个文件中最重要的几个部分,和一些常用的参数。

workgroup = WORKGROUP 设置samba服务器在windows的哪一个工作组
server string = Samba Server Version %v 注释信息
hosts allows 127. 192.168.12. 192.168.13.
security = user 设置samba服务器的安全级别。share,user,server,domain,ads
passdb backend = tdbsam 密码验证方式

[homes]
comment = Home Directories 注释信息
browseable = no 设置是否所有人都有浏览权限
writable = yes 写权限
valid users = %S 设置可使用该共享用户
create mask = 0700 设置新建文件的权限
directory mask = 0777 设置新建目录的权限

[printers]
打印机相关,暂时用不到,就不说了

[public]
comment = Public Stuff 注释信息
path = /pub 公共目录的路径(要先建立这个文件夹)
public = yes 是否支持匿名访问
writable = yes

使用testparm命令测试配置文件的语法,smbstatus 用于显示当前主机中的samba服务器的链接状态信息。
samba用户必须首先是系统用户,但是系统用户不一定是samba用户,只有samba用户才能使用共享。登录系统口令和samba口令可以不一样。也可以建立账户但不分配密码,这样的账户是不能登陆系统的的,但是可以分配samba密码,使用这些账户登陆samba。管理samba账户主要使用smbpasswd命令。

smbpasswd 命令用法如下:

smbpasswd -a sambauser 添加samba用户
smbpasswd -d sambauser 禁用samba用户
smbpasswd -e sambauser 启用samba用户
smbpasswd -x sambauser 删除samba帐号

这时可以试着访问新搭建的samba服务器。我设置的ip地址是192.168.1.1
如果出现连接错误,可能是服务器防火墙的问题,使用service iptables stop关闭即可。
如果不能进入共享文件夹,可能是selinux在其作用,使用setenfore 0暂时停用selinux。

启动samba服务器

# /etc/init.d/smb
service smb start
service smb status
service smb stop
service smb restart 

192.168.1.1是我的samba服务器ip地址,aaa是我的用户名,无论是linux还是windows客户端,都可以使用图形化和字符命令方式登陆samba服务器,这里主要讲一下linux客户端的登陆命令。
windows访问方式,在windows主机上可以通过网上邻居或者"开始"->“运行”->输入“\192.168.1.1”
smbclient是samba客户端命令

smbclient -U name -L 192.168.1.2  列出服务器上的共享资源
smbclient //192.168.1.a/aaa -U  aaa 登陆samba服务器,这种方式类似于ftp
smbmount //192.168.1.a/aaa /mnt   挂载远程共享到本机上
mount -t cifs -o username=aaa  //192.168.1.2/aaa /mnt</code>

samba安全级别

share : 允许匿名访问,不需要用户名和密码
user :使用用户名和密码访问,最常用
server : 使用一台服务器专门用来验证访问权限
domain: 使用一台域服务器控制访问

在windows客户机上测试的过程中,可能需要切换samba用户登陆共享文件夹,这时可以使用“开始”->“运行”->输入cmd,在命令提示符中输入

net use * /del /y windows 

断开当前的所有共享连接。

当前暂无评论 »

添加新评论 »