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配置文件中“#”:代表注释 ,“;”代表配置示例。 [iyunv@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没有无缘无故的错误,更多的是要静下心来,慢慢排查。
|