Samba是著名的开源项目之一,他在Linux/Unix系统中实现微软的SMB/CIFS网络协议,从而使跨平台的文件共享变得更加容易。 在Samba项目之前,Windows和linux/uninx是不能实现文件互访的。
1.1. Samba的组成
1. Samba软件包的构
:Samba 服务端
:samba-client 客户端
:Samba-common 用于提供服务端和客户端程序组的公共件
2.1 Samba 服务的程序组件
Samba服务提供两个服务程序smbd、nmbd。
Smbd:139和445端口 用于为客户机提供共享资源
Nmbd:137.138用于NetBios主机名解析。
2.2 配置文件
在Samba配置文件中“#”:代表注释 ,“;”代表配置示例。
[root@localhost mnt]# grep -v "#" /etc/samba/smb.conf |grep -v ";" |grep -v "^$"
[global] #全局配置对整个Samba服务器生效
workgroup = MYGROUP #工作组名称建议和Windows主机工作组相同
server string = Samba Server Version % #服务器描述说明文字
log file = /var/log/samba/log.%m#Samba日志文件存放
max log size = 50#日志大小
security = user #服务器安全级别:share(匿名)
# user(有samba提供用户名密码登陆),
# server(要另一台服务器验证),domain(windows域验证)
passdb backend = tdbsam #共享账户文件类型
load printers = yes
cups options = raw
[homes] #宿主目录共享,自己想共享其他文件可以参照它。
comment = Home Directories #共享目录说明
browseable = no #网上邻居是否可见
writable = yes #是否允许写入 与read only相反。
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no #等于public=no 是否允许所有人访问共享目录
writable = no
printable = yes
2.3构建服务器
2.3.1 设置共享允许匿名访问
要先将安全级别设置为share,再添加共享目录。
创建共享目录赋予权限。
保存重启smb后生效。用Windows客户端\\ip\maomaof 访问测试即可。
2.3.2 用户名访问Samba资源
2.3.2.1 要使用用户访问要先将security的安全级别升级为”user“,用户授权主要用valid users ,write list命令。授权多个用户是用空格或逗号分隔。如果授权一个用户组,可以使用“@组名”形式。 Samba的共享用户必须是系统中对应的用户。
例如:若要将本地的目录/opt/mytools 发布为共享目录,共享名字为tools,要求共享用户 zhangsna,lisi能够访问,wangwu能够写入。可以参照下列步骤
(1)创建共享用户zhangsan,Lisi, wangwu,和要共享的文件目录。
这里三个用户都要用pdbedit设置访问密码。
Pdbedit用法
Pdbedit -a -u 用户名 添加共享用户。
Pdbedit -x -u 用户名 删除共享用户。
Pdbeidt -L 列出已有的共享用户。
创建共享目录:
(2)修改配置文件,添加共享目录。设置用户权限。
用Windows客户端测试\\192.168.1.104\tools wangwu可以删除,新建。 张三李四只能读取。
注意:windowns下测试时,有时候不弹出
.
一般是因为Windows主机记录了上次登陆的信息。所以
2;有时候明明配置文件设置的没有问题。为啥还是不能新建,删除。很有可能是SELinux防火墙在搞鬼。
用命令setenfore 0 关闭SELinux防火墙
总结:至此Samba服务器已经设置完毕,在实验中出现过很多问题。一个人,默默地解决。一个个的排查。过程是非常枯燥的,但是技术就是这样,更多的是自己从中寻找乐趣。拿自己的错误自娱自乐。 Linux没有无缘无故的错误,更多的是要静下心来,慢慢排查。