SMB是Windows/unix/linux都能支持的协议,而且通过此协议打开的文件可以随时保存,不需要保存之后再上传。
使用Windows或osx来编辑保存在linux上的文件很方便。
下面是维基百科关于smb与cifs的解释:服务器消息区块(英语:Server Message Block,缩写为SMB,服务器消息区块),又称网络文件共享系统(英语:Common Internet File System,缩写为CIFS),一种应用层网络传输协议,由微软开发,主要功能用是使网络上的机器能够共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的进程间通讯机能。它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network。
经过Unix服务器厂商重新开发后,它可以用于连接Unix服务器和Windows客户机,执行打印和文件共享等任务。
CentOS上提供了samba软件可以提供smb协议的服务。
环境与需求
CentOS 6.5
要求共享『/var/www/』目录给本地网络访问,访问该共享的资源,需要使用user帐号,其密码为password。
安装过程
yum groupinstall "CIFS file server"配置
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
Winbind是Samba套件的功能之一。它允许Unix系统利用Windows NT的用户帐号信息。winbind验证器是Samba winbindd服务进程的客户端。在使用该验证器之前,必须安装Samba和运行winbindd服务。
我们使用chkconfig工具将下面2个服务设置为开机启动。
chkconfig smb on
chkconfig nmb on
smb服务的配置文件为"/etc/samba/smb.conf"
在其配置文件尾部添加下面配置,添加一个共享指定user用户可写:[wwwroot]
comment = wwwroot
path = /var/www/
writable = yes
write list = user
创建用户
samba用户首先必须为系统用户,smbpasswd工具可以创建或变更用户。
先创建一个系统用户,然后添加其为samba用户。
需要注意的是,对于共享的目录,系统用户user必须可读写才可以。useradd user
smbpasswd -a user
启动服务
service smb startservice nmb start
至此,Linux就可以为局域网内的其他主机提供文件共享服务了。上述只是一个简单的安装配置过程,还有很多个性化的设置以及其他功能,各位读者可以查阅相关资料,或者查看man帮助文件。
异常与解决
1、连接失败
如果您未配置防火墙(iptables),出现连接失败的情况,请执行以下操作临时清空防火墙:iptables -F
该指令会临时清空防火墙规则,在您重新启动防火墙(service iptables restart)或重新启动操作系统(reboot)后规则会恢复。
或者执行以下指令永久清空防火墙规则:iptables -F
service iptables save
2、连接成功后无法写入
如果您已连接并成功登陆后,无法读取或写入文件,请查看是否是未成功配置 selinux。
查看方法是直接在命令行输入 getenforce,如果显示 Enforcing 表示启用了 selinux,如果显示 Permissive 或 Disabled 则表示未启用 selinux。[root@localhost opt]# getenforce
Enforcing[root@localhost opt]# getenforce
Permissive
如果您不知道如何配置 selinux,笔者建议您可以关闭此功能,下面是关闭方法:
1)临时关闭[root@localhost opt]# setenforce 0
[root@localhost opt]# getenforce
Permissive
2)永久关闭
编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 修改为 SELINUX=disabled 并重新启动操作系统。
3、其他问题
如果您遇到了其他解决不了的问题,可以在此页面下留言,或者点击本站菜单栏的联系按钮,通过微信或 QQ 联系站长获取帮助。