一、简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
二、搭建步骤
1、使用包管理器安装Samba服务器
sudo apt-get install samba
2、备份samba配置文件,避免错误配置,便于及时回退之前的状态
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
3.创建共享目录
注释:/home/share可以指定为一个合法的路径即可
sudo mkdir -p /home/share
4.修改配置文件
sudo vim /etc/samba/smb.conf
5、例如此时为所有的用户创建一个共享目录,此时在配置文件smb.conf最后添加如下:
[共享]
Commnet = “xxxxxx” 注释:该共享目录的描述
Path = “/home/share” 注释:设置共享目录为/home/share
Avaliable = yes/no 注释:设置共享目录是否可显示
Writable = yes/no 注释:指定该目录缺省是否可写,也可以用readonly = no来设置可写
Browseable = yes/no 注释:设置共享目录是否可显示
以下为附加选项:
Public yes/no 注释:指明该共享资源是否能给游客账号访问
Valid users = zhaop_os 注释:samba账户名,这里是指此文件夹的合法用户为zhaop_os,若需要添加组,那么可以写成valid users = zhaopei_os,@group
Invalid users =XX 注释:zengxs_os //指定不能使用的用户和组
Readlist users = 注释:/指定能读取和写共享文件的组
write list = user, @group 注释: 指定能读取和写该共享资源的用户和组
admin list = user, @group 注释:指定能管理该共享资源(包括读写和权限赋予等)的用户和组
ide dot files = yes|no 注释: 指明是否像UNIX那样隐藏以“.”号开头的文件
create mode = 0755 注释: 指明新建立的文件的属性,一般是0755
directory mode = 0755 注释:# 指明新建立的目录的属性,一般是0755
sync always = yes|no 注释:# 指明对该共享资源进行写操作后是否进行同步操作
short preserve case = yes|no 注释:# 指明是否区分文件名大小写
preserve case = yes|no 注释:# 指明是否保持大小写
case sensitive = yes|no 注释:# 指明是否对大小写敏感,一般选no,不然可能引起错误
mangle case = yes|no 注释:# 指明混合大小写
default case = upper|lower 注释:# 指明缺省的文件名是全部大写还是小写
force user = testuser 注释:# 强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= testuser强制建立文件的属主是testuser,同时限制create mask = 0755,这样guest就不能删除了
wide links = yes|no 注释:# 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用
max connections = 100 注释:# 设定最大同时连接数
delete readonly = yes|no 注释:# 指明能否删除共享资源里面已经被定义为只读的文件
6、创建samba用户
例如为配置文件中的users创建zhaop_os,执行以下两个步骤:
1.sudo useradd zhaop_os
2.sudo smbpasswd zhaop_os
7、重启samba服务
1. sudo testparm 注释:查看载入的samba配置文件的内容,检查是否出错
2. sudo service reload 注释:重新载入配置文件
3. sudo service restart 注释:重启samba服务
Add-ons:我的samba私有文件夹具体配置过程
mkdir -p /home/pri/zhaopei_os
增加配置文件内容如下:
【zhaop_os】
Commnet = “xxxxxx” 注释:该共享目录的描述
Path = “/home/pri/zhaopei_os” 注释:设置共享目录为/home/share
Avaliable = yes/no 注释:设置共享目录是否可显示
Writable = yes/no 注释:指定该目录缺省是否可写,也可以用readonly = no来设置可写
Browseable = yes/no
Public yes/no 注释:指明该共享资源是否能给游客账号访问
Valid users = zhaop_os 注释:samba账户名,这里是指此文件夹的合法用户为zhaop_os,若需要添加组,那么可以写成valid users = zhaopei_os,@group
创建对应的关联samba用户
1.sudo useradd zhaop_os
2.sudo smbpasswd zhaop_os
常见question
1.win7访问Linux Samba的共享目录提示“登录失败:用户名或密码错误”解决方法;
解决方法:见链接http://blog.sina.com.cn/s/blog_72aace390100r042.html。
2.长时间连接后,出现失去连接的情况;
解决方法:根据日志分析。
三、搭建过程中的心得
便于管理用户账户和密码可以在/etc/samba目录下创建一个smbusers.
当客户端访问smb服务器的连接已经打开,此时服务器重启以后,客户端需要重启才能重新完成此次连接。
windows在地址栏中输入//XXXXXX,最后出现访问拒绝的情况,在确认服务器配置无误并且用户名存在的情况下,可以修改windows的本地策略,可以参照一下http://blog.sina.com.cn/s/blog_7291f6ad0100xedv.html。
本人搭建的过程远远不像自己写文章这么的一气呵成,尝试,failed,尝试,failed,四五个来回总算基本能使用和部署samba服务器了。人生也是如此,贵在尝试,贵在坚持,我想若干年后看看曾经写过的东西,回想一路的艰辛,那一刻该有多么美好。
来源:oschina
链接:https://my.oschina.net/u/2496664/blog/521806