本文讲的是ubuntu系统中部署samba的方法,如果是centos系统,配置文件smb.conf里面不能加下面这两行

force user = nobody

force group = nogroup

否则共享的目录是无法正常被centos系统挂载的



下面开始讲ubuntu服务器如何部署一个基础samba服务

安装samba

sudo apt-get install samba smbfs

如果要用本机测试samba的连通性,再装一个客户端

sudo apt-get install smbclient


创建共享目录

mkdir ~/share

chmod 777 ~/share

上面~是当前用户家目录

share为发布出去的共享文件夹名


配置samba

备份原来的配置文件

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak


修改配置文件

sudo vim /etc/samba/smb.conf

在文件结尾添加

[share]

path = /home/john/share

available = yes

browseable = yes

public = yes

writable = yes

valid users = smbuser

create mask = 0700

directory mask =0700

force user = nobody

force group = nogroup


配置说明

valid users = smbuser 这个smbuser是可用来访问的帐号,后面添加samba帐号就是添加这个。如果匿名访问,就把valid users行去掉

[share]名字也是可以随便起的,这个是你在windows下访问时显示的名字,

在windows的地址栏输入 \\162.168.44.240\share

就可以访问linux下/home/john/share目录下的内容了

其中162.168.44.240是samba server的IP地址

找到[global]里面添加如下2行

unix charset = UTF-8

dos charset = cp936

可以解决中文被显示为乱码的问题



建samba帐户

建立smbuser这个网络访问帐户或使用samba服务器本地帐号

sudo useradd smbuser

只建立用户但没有给用户赋予本机登录密码,所以这个用户将只能从远程访问,不能从本机登录。若使用本地帐号可以单独为samba建立其他密码

sudo smbpasswd -a smbuser

如果你用本地已有账号,就把smbuser替换成那个帐号就行

然后会要求你输入两遍samba帐户的密码

这个密码不是开机登录时候用的,是访问smb用的专属密码


删除samba帐号

sudo smbpasswd -x smbuser


检测samba配置情况

sudo testparm



重启samba服务器

sudo service smbd restart


放行来访者

vim /etc/sysconfig/iptables

-A INPUT -s 172.31.0.0/16 -j ACCEPT

/etc/init.d/iptables restart


chown smbuser.smbuser -R /home/john/share

试验smb服务器搭好没

对于linux客户端,终端输入

smbclient -L //localhost

或 

smbclient -L //127.0.0.1 -U smbuser


在windows客户端,地址栏输入

\\192.168.44.240\share


linux系统挂载smb共享目录到本地/smb来用,假设刚才建立的smbuser的smb密码是smbuser

sudo mount -t cifs -o username=smbuser,password=smbuser //192.168.44.240/share /test